Changeset 141383 in webkit
- Timestamp:
- Jan 31, 2013 12:12:20 AM (11 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r141380 r141383 1 2013-01-31 Kentaro Hara <haraken@chromium.org> 2 3 [V8] 'new MouseEvent("click", {relatedTarget: window}).window' should return window 4 https://bugs.webkit.org/show_bug.cgi?id=108432 5 6 Reviewed by Adam Barth. 7 8 In V8 'new MouseEvent("click", {relatedTarget: window}).window' 9 returns null. JSC returns window, which is a correct behavior. 10 V8 should also return window. 11 12 * fast/events/constructors/mouse-event-constructor-expected.txt: 13 * fast/events/constructors/mouse-event-constructor.html: 14 1 15 2013-01-30 Hajime Morrita <morrita@google.com> 2 16 -
trunk/LayoutTests/fast/events/constructors/mouse-event-constructor-expected.txt
r140657 r141383 166 166 PASS new MouseEvent('eventType', { relatedTarget: document }).relatedTarget is document 167 167 PASS new MouseEvent('eventType', { relatedTarget: xhr }).relatedTarget is xhr 168 PASS new MouseEvent('eventType', { relatedTarget: window }).relatedTarget is window 168 169 PASS new MouseEvent('eventType', { relatedTarget: testObject }).relatedTarget is null 169 170 PASS new MouseEvent('eventType', { relatedTarget: undefined }).relatedTarget is null -
trunk/LayoutTests/fast/events/constructors/mouse-event-constructor.html
r140657 r141383 124 124 shouldBe("new MouseEvent('eventType', { relatedTarget: document }).relatedTarget", "document"); 125 125 shouldBe("new MouseEvent('eventType', { relatedTarget: xhr }).relatedTarget", "xhr"); 126 shouldBe("new MouseEvent('eventType', { relatedTarget: window }).relatedTarget", "window"); 126 127 127 128 // Invalid objects. -
trunk/Source/WebCore/ChangeLog
r141382 r141383 1 2013-01-31 Kentaro Hara <haraken@chromium.org> 2 3 [V8] 'new MouseEvent("click", {relatedTarget: window}).window' should return window 4 https://bugs.webkit.org/show_bug.cgi?id=108432 5 6 Reviewed by Adam Barth. 7 8 In V8 'new MouseEvent("click", {relatedTarget: window}).window' 9 returns null. JSC returns window, which is a correct behavior. 10 V8 should also return window. 11 12 The point is that we need to handle a DOMWindow wrapper specially 13 before converting it to an EventTarget object. A wrapper returned by 14 Dictionary::get("relatedTarget") is not an expected DOMWindow wrapper. 15 To get the expected DOMWindow wrapper, we need to look up a prototype 16 chain of the DOMWindow wrapper. 17 18 In JSC, this special handling is done by JSEventTargetCustom::toEventTarget(). 19 20 Test: fast/events/constructors/mouse-event-constructor.html 21 22 * bindings/v8/Dictionary.cpp: 23 (WebCore::Dictionary::get): 24 1 25 2013-01-31 Mark Pilgrim <pilgrim@chromium.org> 2 26 -
trunk/Source/WebCore/bindings/v8/Dictionary.cpp
r140729 r141383 467 467 468 468 EventTarget* target = 0; 469 // We need to handle a DOMWindow specially, because a wrapper object of a DOMWindow 470 // exists on a prototype chain of v8Value. 471 if (v8Value->IsObject()) { 472 v8::Handle<v8::Object> wrapper = v8::Handle<v8::Object>::Cast(v8Value); 473 v8::Handle<v8::Object> window = wrapper->FindInstanceInPrototypeChain(V8DOMWindow::GetTemplate(m_isolate)); 474 if (!window.IsEmpty()) { 475 value = toWrapperTypeInfo(window)->toEventTarget(window); 476 return true; 477 } 478 } 479 469 480 if (V8DOMWrapper::isDOMWrapper(v8Value)) { 470 481 v8::Handle<v8::Object> wrapper = v8::Handle<v8::Object>::Cast(v8Value);
Note: See TracChangeset
for help on using the changeset viewer.