<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[207041] trunk</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/207041">207041</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2016-10-10 21:43:26 -0700 (Mon, 10 Oct 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>Update WheelEvent / MouseEvent to stop using legacy [ConstructorTemplate=Event]
https://bugs.webkit.org/show_bug.cgi?id=163254
Reviewed by Darin Adler.
Source/WebCore:
Update WheelEvent / MouseEvent to stop using legacy [ConstructorTemplate=Event]
and use a regular constructor instead, as in the specification:
- https://www.w3.org/TR/uievents/#interface-mouseevent
- https://www.w3.org/TR/uievents/#interface-wheelevent
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateDictionaryHeader):
Fix our broken dependency tracking when it comes to dictionaries.
* dom/MouseEvent.cpp:
(WebCore::MouseEvent::create):
(WebCore::MouseEvent::MouseEvent):
* dom/MouseEvent.h:
* dom/MouseEvent.idl:
* dom/MouseEventInit.h: Added.
* dom/MouseEventInit.idl: Added.
* dom/MouseRelatedEvent.cpp:
(WebCore::MouseRelatedEvent::MouseRelatedEvent):
* dom/MouseRelatedEvent.h:
* dom/UIEventWithKeyState.h:
(WebCore::UIEventWithKeyState::UIEventWithKeyState):
* dom/WheelEvent.cpp:
(WebCore::WheelEvent::WheelEvent):
* dom/WheelEvent.h:
* dom/WheelEvent.idl:
LayoutTests:
Update existing tests now that:
- Exception messages are now slightly different in some cases.
- We now throw when an invalid relatedTarget type is passed in the dictionary.
* fast/events/constructors/mouse-event-constructor.html:
* fast/events/constructors/wheel-event-constructor.html:
* platform/mac/fast/events/constructors/mouse-event-constructor-expected.txt:
* platform/mac/fast/events/constructors/wheel-event-constructor-expected.txt:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfasteventsconstructorsmouseeventconstructorhtml">trunk/LayoutTests/fast/events/constructors/mouse-event-constructor.html</a></li>
<li><a href="#trunkLayoutTestsfasteventsconstructorswheeleventconstructorhtml">trunk/LayoutTests/fast/events/constructors/wheel-event-constructor.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfasteventsconstructorsmouseeventconstructorexpectedtxt">trunk/LayoutTests/platform/mac/fast/events/constructors/mouse-event-constructor-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfasteventsconstructorswheeleventconstructorexpectedtxt">trunk/LayoutTests/platform/mac/fast/events/constructors/wheel-event-constructor-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreDerivedSourcescpp">trunk/Source/WebCore/DerivedSources.cpp</a></li>
<li><a href="#trunkSourceWebCoreDerivedSourcesmake">trunk/Source/WebCore/DerivedSources.make</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm</a></li>
<li><a href="#trunkSourceWebCoredomMouseEventcpp">trunk/Source/WebCore/dom/MouseEvent.cpp</a></li>
<li><a href="#trunkSourceWebCoredomMouseEventh">trunk/Source/WebCore/dom/MouseEvent.h</a></li>
<li><a href="#trunkSourceWebCoredomMouseEventidl">trunk/Source/WebCore/dom/MouseEvent.idl</a></li>
<li><a href="#trunkSourceWebCoredomMouseRelatedEventcpp">trunk/Source/WebCore/dom/MouseRelatedEvent.cpp</a></li>
<li><a href="#trunkSourceWebCoredomMouseRelatedEventh">trunk/Source/WebCore/dom/MouseRelatedEvent.h</a></li>
<li><a href="#trunkSourceWebCoredomUIEventWithKeyStateh">trunk/Source/WebCore/dom/UIEventWithKeyState.h</a></li>
<li><a href="#trunkSourceWebCoredomWheelEventcpp">trunk/Source/WebCore/dom/WheelEvent.cpp</a></li>
<li><a href="#trunkSourceWebCoredomWheelEventh">trunk/Source/WebCore/dom/WheelEvent.h</a></li>
<li><a href="#trunkSourceWebCoredomWheelEventidl">trunk/Source/WebCore/dom/WheelEvent.idl</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoredomMouseEventInith">trunk/Source/WebCore/dom/MouseEventInit.h</a></li>
<li><a href="#trunkSourceWebCoredomMouseEventInitidl">trunk/Source/WebCore/dom/MouseEventInit.idl</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (207040 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-10-11 04:33:56 UTC (rev 207040)
+++ trunk/LayoutTests/ChangeLog        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -1,5 +1,21 @@
</span><span class="cx"> 2016-10-10 Chris Dumez <cdumez@apple.com>
</span><span class="cx">
</span><ins>+ Update WheelEvent / MouseEvent to stop using legacy [ConstructorTemplate=Event]
+ https://bugs.webkit.org/show_bug.cgi?id=163254
+
+ Reviewed by Darin Adler.
+
+ Update existing tests now that:
+ - Exception messages are now slightly different in some cases.
+ - We now throw when an invalid relatedTarget type is passed in the dictionary.
+
+ * fast/events/constructors/mouse-event-constructor.html:
+ * fast/events/constructors/wheel-event-constructor.html:
+ * platform/mac/fast/events/constructors/mouse-event-constructor-expected.txt:
+ * platform/mac/fast/events/constructors/wheel-event-constructor-expected.txt:
+
+2016-10-10 Chris Dumez <cdumez@apple.com>
+
</ins><span class="cx"> Add support for languagechange event
</span><span class="cx"> https://bugs.webkit.org/show_bug.cgi?id=163222
</span><span class="cx">
</span></span></pre></div>
<a id="trunkLayoutTestsfasteventsconstructorsmouseeventconstructorhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/events/constructors/mouse-event-constructor.html (207040 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/constructors/mouse-event-constructor.html        2016-10-11 04:33:56 UTC (rev 207040)
+++ trunk/LayoutTests/fast/events/constructors/mouse-event-constructor.html        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -136,19 +136,19 @@
</span><span class="cx"> shouldBe("new MouseEvent('eventType', { relatedTarget: window }).relatedTarget", "window");
</span><span class="cx">
</span><span class="cx"> // Invalid objects.
</span><del>-shouldBe("new MouseEvent('eventType', { relatedTarget: testObject }).relatedTarget", "null");
</del><ins>+shouldThrowErrorName("new MouseEvent('eventType', { relatedTarget: testObject })", "TypeError");
</ins><span class="cx"> shouldBe("new MouseEvent('eventType', { relatedTarget: undefined }).relatedTarget", "null");
</span><span class="cx"> shouldBe("new MouseEvent('eventType', { relatedTarget: null }).relatedTarget", "null");
</span><del>-shouldBe("new MouseEvent('eventType', { relatedTarget: false }).relatedTarget", "null");
-shouldBe("new MouseEvent('eventType', { relatedTarget: true }).relatedTarget", "null");
-shouldBe("new MouseEvent('eventType', { relatedTarget: '' }).relatedTarget", "null");
-shouldBe("new MouseEvent('eventType', { relatedTarget: 'chocolate' }).relatedTarget", "null");
-shouldBe("new MouseEvent('eventType', { relatedTarget: 12345 }).relatedTarget", "null");
-shouldBe("new MouseEvent('eventType', { relatedTarget: 18446744073709551615 }).relatedTarget", "null");
-shouldBe("new MouseEvent('eventType', { relatedTarget: NaN }).relatedTarget", "null");
</del><ins>+shouldThrowErrorName("new MouseEvent('eventType', { relatedTarget: false })", "TypeError");
+shouldThrowErrorName("new MouseEvent('eventType', { relatedTarget: true })", "TypeError");
+shouldThrowErrorName("new MouseEvent('eventType', { relatedTarget: '' })", "TypeError");
+shouldThrowErrorName("new MouseEvent('eventType', { relatedTarget: 'chocolate' })", "TypeError");
+shouldThrowErrorName("new MouseEvent('eventType', { relatedTarget: 12345 })", "TypeError");
+shouldThrowErrorName("new MouseEvent('eventType', { relatedTarget: 18446744073709551615 })", "TypeError");
+shouldThrowErrorName("new MouseEvent('eventType', { relatedTarget: NaN })", "TypeError");
</ins><span class="cx"> // Note that valueOf() is not called, when the left hand side is evaluated.
</span><del>-shouldBeFalse("new MouseEvent('eventType', { relatedTarget: {valueOf: function () { return testDiv; } } }).relatedTarget == testDiv");
-shouldBe("new MouseEvent('eventType', { get relatedTarget() { return 123; } }).relatedTarget", "null");
</del><ins>+shouldThrowErrorName("new MouseEvent('eventType', { relatedTarget: {valueOf: function () { return testDiv; } } })", "TypeError");
+shouldThrowErrorName("new MouseEvent('eventType', { get relatedTarget() { return 123; } })", "TypeError");
</ins><span class="cx"> shouldThrow("new MouseEvent('eventType', { get relatedTarget() { throw 'MouseEvent Error'; } })");
</span><span class="cx">
</span><span class="cx"> // All initializers are passed.
</span></span></pre></div>
<a id="trunkLayoutTestsfasteventsconstructorswheeleventconstructorhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/events/constructors/wheel-event-constructor.html (207040 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/constructors/wheel-event-constructor.html        2016-10-11 04:33:56 UTC (rev 207040)
+++ trunk/LayoutTests/fast/events/constructors/wheel-event-constructor.html        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -172,19 +172,19 @@
</span><span class="cx"> shouldBe("new WheelEvent('eventType', { relatedTarget: xhr }).relatedTarget", "xhr");
</span><span class="cx">
</span><span class="cx"> // Invalid objects.
</span><del>-shouldBe("new WheelEvent('eventType', { relatedTarget: testObject }).relatedTarget", "null");
</del><ins>+shouldThrowErrorName("new WheelEvent('eventType', { relatedTarget: testObject })", "TypeError");
</ins><span class="cx"> shouldBe("new WheelEvent('eventType', { relatedTarget: undefined }).relatedTarget", "null");
</span><span class="cx"> shouldBe("new WheelEvent('eventType', { relatedTarget: null }).relatedTarget", "null");
</span><del>-shouldBe("new WheelEvent('eventType', { relatedTarget: false }).relatedTarget", "null");
-shouldBe("new WheelEvent('eventType', { relatedTarget: true }).relatedTarget", "null");
-shouldBe("new WheelEvent('eventType', { relatedTarget: '' }).relatedTarget", "null");
-shouldBe("new WheelEvent('eventType', { relatedTarget: 'chocolate' }).relatedTarget", "null");
-shouldBe("new WheelEvent('eventType', { relatedTarget: 12345 }).relatedTarget", "null");
-shouldBe("new WheelEvent('eventType', { relatedTarget: 18446744073709551615 }).relatedTarget", "null");
-shouldBe("new WheelEvent('eventType', { relatedTarget: NaN }).relatedTarget", "null");
</del><ins>+shouldThrowErrorName("new WheelEvent('eventType', { relatedTarget: false })", "TypeError");
+shouldThrowErrorName("new WheelEvent('eventType', { relatedTarget: true })", "TypeError");
+shouldThrowErrorName("new WheelEvent('eventType', { relatedTarget: '' })", "TypeError");
+shouldThrowErrorName("new WheelEvent('eventType', { relatedTarget: 'chocolate' })", "TypeError");
+shouldThrowErrorName("new WheelEvent('eventType', { relatedTarget: 12345 })", "TypeError");
+shouldThrowErrorName("new WheelEvent('eventType', { relatedTarget: 18446744073709551615 })", "TypeError");
+shouldThrowErrorName("new WheelEvent('eventType', { relatedTarget: NaN })", "TypeError");
</ins><span class="cx"> // Note that valueOf() is not called, when the left hand side is evaluated.
</span><del>-shouldBeFalse("new WheelEvent('eventType', { relatedTarget: {valueOf: function () { return testDiv; } } }).relatedTarget == testDiv");
-shouldBe("new WheelEvent('eventType', { get relatedTarget() { return 123; } }).relatedTarget", "null");
</del><ins>+shouldThrowErrorName("new WheelEvent('eventType', { relatedTarget: {valueOf: function () { return testDiv; } } })", "TypeError");
+shouldThrowErrorName("new WheelEvent('eventType', { get relatedTarget() { return 123; } }).relatedTarget", "TypeError");
</ins><span class="cx"> shouldThrow("new WheelEvent('eventType', { get relatedTarget() { throw 'WheelEvent Error'; } })");
</span><span class="cx">
</span><span class="cx"> // All initializers are passed.
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfasteventsconstructorsmouseeventconstructorexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/fast/events/constructors/mouse-event-constructor-expected.txt (207040 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/events/constructors/mouse-event-constructor-expected.txt        2016-10-11 04:33:56 UTC (rev 207040)
+++ trunk/LayoutTests/platform/mac/fast/events/constructors/mouse-event-constructor-expected.txt        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -23,19 +23,19 @@
</span><span class="cx"> PASS new MouseEvent('eventType', { cancelable: true }).cancelable is true
</span><span class="cx"> PASS new MouseEvent('eventType', { view: window }).view is window
</span><span class="cx"> PASS new MouseEvent('eventType', { view: this }).view is this
</span><del>-PASS new MouseEvent('eventType', { view: testObject }).view threw exception TypeError: Dictionary member is not of type Window.
-PASS new MouseEvent('eventType', { view: document }).view threw exception TypeError: Dictionary member is not of type Window.
</del><ins>+PASS new MouseEvent('eventType', { view: testObject }).view threw exception TypeError: Type error.
+PASS new MouseEvent('eventType', { view: document }).view threw exception TypeError: Type error.
</ins><span class="cx"> PASS new MouseEvent('eventType', { view: undefined }).view is null
</span><span class="cx"> PASS new MouseEvent('eventType', { view: null }).view is null
</span><del>-PASS new MouseEvent('eventType', { view: false }).view threw exception TypeError: Dictionary member is not of type Window.
-PASS new MouseEvent('eventType', { view: true }).view threw exception TypeError: Dictionary member is not of type Window.
-PASS new MouseEvent('eventType', { view: '' }).view threw exception TypeError: Dictionary member is not of type Window.
-PASS new MouseEvent('eventType', { view: 'chocolate' }).view threw exception TypeError: Dictionary member is not of type Window.
-PASS new MouseEvent('eventType', { view: 12345 }).view threw exception TypeError: Dictionary member is not of type Window.
-PASS new MouseEvent('eventType', { view: 18446744073709551615 }).view threw exception TypeError: Dictionary member is not of type Window.
-PASS new MouseEvent('eventType', { view: NaN }).view threw exception TypeError: Dictionary member is not of type Window.
-PASS new MouseEvent('eventType', { view: {valueOf: function () { return window; } } }).view threw exception TypeError: Dictionary member is not of type Window.
-PASS new MouseEvent('eventType', { get view() { return 123; } }).view threw exception TypeError: Dictionary member is not of type Window.
</del><ins>+PASS new MouseEvent('eventType', { view: false }).view threw exception TypeError: Type error.
+PASS new MouseEvent('eventType', { view: true }).view threw exception TypeError: Type error.
+PASS new MouseEvent('eventType', { view: '' }).view threw exception TypeError: Type error.
+PASS new MouseEvent('eventType', { view: 'chocolate' }).view threw exception TypeError: Type error.
+PASS new MouseEvent('eventType', { view: 12345 }).view threw exception TypeError: Type error.
+PASS new MouseEvent('eventType', { view: 18446744073709551615 }).view threw exception TypeError: Type error.
+PASS new MouseEvent('eventType', { view: NaN }).view threw exception TypeError: Type error.
+PASS new MouseEvent('eventType', { view: {valueOf: function () { return window; } } }).view threw exception TypeError: Type error.
+PASS new MouseEvent('eventType', { get view() { return 123; } }).view threw exception TypeError: Type error.
</ins><span class="cx"> PASS new MouseEvent('eventType', { get view() { throw 'MouseEvent Error'; } }) threw exception MouseEvent Error.
</span><span class="cx"> PASS new MouseEvent('eventType', { detail: 0 }).detail is 0
</span><span class="cx"> PASS new MouseEvent('eventType', { detail: 2147483647 }).detail is 2147483647
</span><span class="lines">@@ -176,18 +176,18 @@
</span><span class="cx"> PASS new MouseEvent('eventType', { relatedTarget: document }).relatedTarget is document
</span><span class="cx"> PASS new MouseEvent('eventType', { relatedTarget: xhr }).relatedTarget is xhr
</span><span class="cx"> PASS new MouseEvent('eventType', { relatedTarget: window }).relatedTarget is window
</span><del>-PASS new MouseEvent('eventType', { relatedTarget: testObject }).relatedTarget is null
</del><ins>+PASS new MouseEvent('eventType', { relatedTarget: testObject }) threw exception TypeError: Type error.
</ins><span class="cx"> PASS new MouseEvent('eventType', { relatedTarget: undefined }).relatedTarget is null
</span><span class="cx"> PASS new MouseEvent('eventType', { relatedTarget: null }).relatedTarget is null
</span><del>-PASS new MouseEvent('eventType', { relatedTarget: false }).relatedTarget is null
-PASS new MouseEvent('eventType', { relatedTarget: true }).relatedTarget is null
-PASS new MouseEvent('eventType', { relatedTarget: '' }).relatedTarget is null
-PASS new MouseEvent('eventType', { relatedTarget: 'chocolate' }).relatedTarget is null
-PASS new MouseEvent('eventType', { relatedTarget: 12345 }).relatedTarget is null
-PASS new MouseEvent('eventType', { relatedTarget: 18446744073709551615 }).relatedTarget is null
-PASS new MouseEvent('eventType', { relatedTarget: NaN }).relatedTarget is null
-PASS new MouseEvent('eventType', { relatedTarget: {valueOf: function () { return testDiv; } } }).relatedTarget == testDiv is false
-PASS new MouseEvent('eventType', { get relatedTarget() { return 123; } }).relatedTarget is null
</del><ins>+PASS new MouseEvent('eventType', { relatedTarget: false }) threw exception TypeError: Type error.
+PASS new MouseEvent('eventType', { relatedTarget: true }) threw exception TypeError: Type error.
+PASS new MouseEvent('eventType', { relatedTarget: '' }) threw exception TypeError: Type error.
+PASS new MouseEvent('eventType', { relatedTarget: 'chocolate' }) threw exception TypeError: Type error.
+PASS new MouseEvent('eventType', { relatedTarget: 12345 }) threw exception TypeError: Type error.
+PASS new MouseEvent('eventType', { relatedTarget: 18446744073709551615 }) threw exception TypeError: Type error.
+PASS new MouseEvent('eventType', { relatedTarget: NaN }) threw exception TypeError: Type error.
+PASS new MouseEvent('eventType', { relatedTarget: {valueOf: function () { return testDiv; } } }) threw exception TypeError: Type error.
+PASS new MouseEvent('eventType', { get relatedTarget() { return 123; } }) threw exception TypeError: Type error.
</ins><span class="cx"> PASS new MouseEvent('eventType', { get relatedTarget() { throw 'MouseEvent Error'; } }) threw exception MouseEvent Error.
</span><span class="cx"> PASS new MouseEvent('eventType', { bubbles: true, cancelable: true, view: window, detail: 111, screenX: 222, screenY: 333, clientX: 444, clientY: 555, ctrlKey: true, shiftKey: true, altKey: true, metaKey: true, button: 666, relatedTarget: testDiv }).bubbles is true
</span><span class="cx"> PASS new MouseEvent('eventType', { bubbles: true, cancelable: true, view: window, detail: 111, screenX: 222, screenY: 333, clientX: 444, clientY: 555, ctrlKey: true, shiftKey: true, altKey: true, metaKey: true, button: 666, relatedTarget: testDiv }).cancelable is true
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfasteventsconstructorswheeleventconstructorexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/fast/events/constructors/wheel-event-constructor-expected.txt (207040 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/events/constructors/wheel-event-constructor-expected.txt        2016-10-11 04:33:56 UTC (rev 207040)
+++ trunk/LayoutTests/platform/mac/fast/events/constructors/wheel-event-constructor-expected.txt        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -26,19 +26,19 @@
</span><span class="cx"> PASS new WheelEvent('eventType', { cancelable: true }).cancelable is true
</span><span class="cx"> PASS new WheelEvent('eventType', { view: window }).view is window
</span><span class="cx"> PASS new WheelEvent('eventType', { view: this }).view is this
</span><del>-PASS new WheelEvent('eventType', { view: testObject }).view threw exception TypeError: Dictionary member is not of type Window.
-PASS new WheelEvent('eventType', { view: document }).view threw exception TypeError: Dictionary member is not of type Window.
</del><ins>+PASS new WheelEvent('eventType', { view: testObject }).view threw exception TypeError: Type error.
+PASS new WheelEvent('eventType', { view: document }).view threw exception TypeError: Type error.
</ins><span class="cx"> PASS new WheelEvent('eventType', { view: undefined }).view is null
</span><span class="cx"> PASS new WheelEvent('eventType', { view: null }).view is null
</span><del>-PASS new WheelEvent('eventType', { view: false }).view threw exception TypeError: Dictionary member is not of type Window.
-PASS new WheelEvent('eventType', { view: true }).view threw exception TypeError: Dictionary member is not of type Window.
-PASS new WheelEvent('eventType', { view: '' }).view threw exception TypeError: Dictionary member is not of type Window.
-PASS new WheelEvent('eventType', { view: 'chocolate' }).view threw exception TypeError: Dictionary member is not of type Window.
-PASS new WheelEvent('eventType', { view: 12345 }).view threw exception TypeError: Dictionary member is not of type Window.
-PASS new WheelEvent('eventType', { view: 18446744073709551615 }).view threw exception TypeError: Dictionary member is not of type Window.
-PASS new WheelEvent('eventType', { view: NaN }).view threw exception TypeError: Dictionary member is not of type Window.
-PASS new WheelEvent('eventType', { view: {valueOf: function () { return window; } } }).view threw exception TypeError: Dictionary member is not of type Window.
-PASS new WheelEvent('eventType', { get view() { return 123; } }).view threw exception TypeError: Dictionary member is not of type Window.
</del><ins>+PASS new WheelEvent('eventType', { view: false }).view threw exception TypeError: Type error.
+PASS new WheelEvent('eventType', { view: true }).view threw exception TypeError: Type error.
+PASS new WheelEvent('eventType', { view: '' }).view threw exception TypeError: Type error.
+PASS new WheelEvent('eventType', { view: 'chocolate' }).view threw exception TypeError: Type error.
+PASS new WheelEvent('eventType', { view: 12345 }).view threw exception TypeError: Type error.
+PASS new WheelEvent('eventType', { view: 18446744073709551615 }).view threw exception TypeError: Type error.
+PASS new WheelEvent('eventType', { view: NaN }).view threw exception TypeError: Type error.
+PASS new WheelEvent('eventType', { view: {valueOf: function () { return window; } } }).view threw exception TypeError: Type error.
+PASS new WheelEvent('eventType', { get view() { return 123; } }).view threw exception TypeError: Type error.
</ins><span class="cx"> PASS new WheelEvent('eventType', { get view() { throw 'WheelEvent Error'; } }) threw exception WheelEvent Error.
</span><span class="cx"> PASS new WheelEvent('eventType', { detail: 0 }).detail is 0
</span><span class="cx"> PASS new WheelEvent('eventType', { detail: 2147483647 }).detail is 2147483647
</span><span class="lines">@@ -245,18 +245,18 @@
</span><span class="cx"> PASS new WheelEvent('eventType', { relatedTarget: testDiv }).relatedTarget is testDiv
</span><span class="cx"> PASS new WheelEvent('eventType', { relatedTarget: document }).relatedTarget is document
</span><span class="cx"> PASS new WheelEvent('eventType', { relatedTarget: xhr }).relatedTarget is xhr
</span><del>-PASS new WheelEvent('eventType', { relatedTarget: testObject }).relatedTarget is null
</del><ins>+PASS new WheelEvent('eventType', { relatedTarget: testObject }) threw exception TypeError: Type error.
</ins><span class="cx"> PASS new WheelEvent('eventType', { relatedTarget: undefined }).relatedTarget is null
</span><span class="cx"> PASS new WheelEvent('eventType', { relatedTarget: null }).relatedTarget is null
</span><del>-PASS new WheelEvent('eventType', { relatedTarget: false }).relatedTarget is null
-PASS new WheelEvent('eventType', { relatedTarget: true }).relatedTarget is null
-PASS new WheelEvent('eventType', { relatedTarget: '' }).relatedTarget is null
-PASS new WheelEvent('eventType', { relatedTarget: 'chocolate' }).relatedTarget is null
-PASS new WheelEvent('eventType', { relatedTarget: 12345 }).relatedTarget is null
-PASS new WheelEvent('eventType', { relatedTarget: 18446744073709551615 }).relatedTarget is null
-PASS new WheelEvent('eventType', { relatedTarget: NaN }).relatedTarget is null
-PASS new WheelEvent('eventType', { relatedTarget: {valueOf: function () { return testDiv; } } }).relatedTarget == testDiv is false
-PASS new WheelEvent('eventType', { get relatedTarget() { return 123; } }).relatedTarget is null
</del><ins>+PASS new WheelEvent('eventType', { relatedTarget: false }) threw exception TypeError: Type error.
+PASS new WheelEvent('eventType', { relatedTarget: true }) threw exception TypeError: Type error.
+PASS new WheelEvent('eventType', { relatedTarget: '' }) threw exception TypeError: Type error.
+PASS new WheelEvent('eventType', { relatedTarget: 'chocolate' }) threw exception TypeError: Type error.
+PASS new WheelEvent('eventType', { relatedTarget: 12345 }) threw exception TypeError: Type error.
+PASS new WheelEvent('eventType', { relatedTarget: 18446744073709551615 }) threw exception TypeError: Type error.
+PASS new WheelEvent('eventType', { relatedTarget: NaN }) threw exception TypeError: Type error.
+PASS new WheelEvent('eventType', { relatedTarget: {valueOf: function () { return testDiv; } } }) threw exception TypeError: Type error.
+PASS new WheelEvent('eventType', { get relatedTarget() { return 123; } }).relatedTarget threw exception TypeError: Type error.
</ins><span class="cx"> PASS new WheelEvent('eventType', { get relatedTarget() { throw 'WheelEvent Error'; } }) threw exception WheelEvent Error.
</span><span class="cx"> PASS new WheelEvent('eventType', { bubbles: true, cancelable: true, view: window, detail: 111, screenX: 222, screenY: 333, clientX: 444, clientY: 555, ctrlKey: true, shiftKey: true, altKey: true, metaKey: true, button: 666, relatedTarget: testDiv, wheelDeltaX: 777, wheelDeltaY: 888, deltaMode: WheelEvent.DOM_DELTA_PAGE }).bubbles is true
</span><span class="cx"> PASS new WheelEvent('eventType', { bubbles: true, cancelable: true, view: window, detail: 111, screenX: 222, screenY: 333, clientX: 444, clientY: 555, ctrlKey: true, shiftKey: true, altKey: true, metaKey: true, button: 666, relatedTarget: testDiv, wheelDeltaX: 777, wheelDeltaY: 888, deltaMode: WheelEvent.DOM_DELTA_PAGE }).cancelable is true
</span></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (207040 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2016-10-11 04:33:56 UTC (rev 207040)
+++ trunk/Source/WebCore/CMakeLists.txt        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -412,6 +412,7 @@
</span><span class="cx"> dom/MessageEvent.idl
</span><span class="cx"> dom/MessagePort.idl
</span><span class="cx"> dom/MouseEvent.idl
</span><ins>+ dom/MouseEventInit.idl
</ins><span class="cx"> dom/MutationEvent.idl
</span><span class="cx"> dom/MutationObserver.idl
</span><span class="cx"> dom/MutationRecord.idl
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (207040 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-10-11 04:33:56 UTC (rev 207040)
+++ trunk/Source/WebCore/ChangeLog        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -1,5 +1,44 @@
</span><span class="cx"> 2016-10-10 Chris Dumez <cdumez@apple.com>
</span><span class="cx">
</span><ins>+ Update WheelEvent / MouseEvent to stop using legacy [ConstructorTemplate=Event]
+ https://bugs.webkit.org/show_bug.cgi?id=163254
+
+ Reviewed by Darin Adler.
+
+ Update WheelEvent / MouseEvent to stop using legacy [ConstructorTemplate=Event]
+ and use a regular constructor instead, as in the specification:
+ - https://www.w3.org/TR/uievents/#interface-mouseevent
+ - https://www.w3.org/TR/uievents/#interface-wheelevent
+
+ * CMakeLists.txt:
+ * DerivedSources.cpp:
+ * DerivedSources.make:
+ * WebCore.xcodeproj/project.pbxproj:
+
+ * bindings/scripts/CodeGeneratorJS.pm:
+ (GenerateHeader):
+ (GenerateDictionaryHeader):
+ Fix our broken dependency tracking when it comes to dictionaries.
+
+ * dom/MouseEvent.cpp:
+ (WebCore::MouseEvent::create):
+ (WebCore::MouseEvent::MouseEvent):
+ * dom/MouseEvent.h:
+ * dom/MouseEvent.idl:
+ * dom/MouseEventInit.h: Added.
+ * dom/MouseEventInit.idl: Added.
+ * dom/MouseRelatedEvent.cpp:
+ (WebCore::MouseRelatedEvent::MouseRelatedEvent):
+ * dom/MouseRelatedEvent.h:
+ * dom/UIEventWithKeyState.h:
+ (WebCore::UIEventWithKeyState::UIEventWithKeyState):
+ * dom/WheelEvent.cpp:
+ (WebCore::WheelEvent::WheelEvent):
+ * dom/WheelEvent.h:
+ * dom/WheelEvent.idl:
+
+2016-10-10 Chris Dumez <cdumez@apple.com>
+
</ins><span class="cx"> Add support for languagechange event
</span><span class="cx"> https://bugs.webkit.org/show_bug.cgi?id=163222
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources.cpp (207040 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources.cpp        2016-10-11 04:33:56 UTC (rev 207040)
+++ trunk/Source/WebCore/DerivedSources.cpp        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -347,6 +347,7 @@
</span><span class="cx"> #include "JSMessageEvent.cpp"
</span><span class="cx"> #include "JSMessagePort.cpp"
</span><span class="cx"> #include "JSMouseEvent.cpp"
</span><ins>+#include "JSMouseEventInit.cpp"
</ins><span class="cx"> #include "JSMutationEvent.cpp"
</span><span class="cx"> #include "JSMutationObserver.cpp"
</span><span class="cx"> #include "JSMutationRecord.cpp"
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources.make (207040 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources.make        2016-10-11 04:33:56 UTC (rev 207040)
+++ trunk/Source/WebCore/DerivedSources.make        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -321,6 +321,7 @@
</span><span class="cx"> $(WebCore)/dom/MessageEvent.idl \
</span><span class="cx"> $(WebCore)/dom/MessagePort.idl \
</span><span class="cx"> $(WebCore)/dom/MouseEvent.idl \
</span><ins>+ $(WebCore)/dom/MouseEventInit.idl \
</ins><span class="cx"> $(WebCore)/dom/MutationEvent.idl \
</span><span class="cx"> $(WebCore)/dom/MutationObserver.idl \
</span><span class="cx"> $(WebCore)/dom/MutationRecord.idl \
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (207040 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-10-11 04:33:56 UTC (rev 207040)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -2877,6 +2877,8 @@
</span><span class="cx">                 830519961BB0F11000F3772E /* HTMLTimeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 830519931BB0F0E700F3772E /* HTMLTimeElement.h */; };
</span><span class="cx">                 8306EFF11B8BCEA50031D032 /* NativeNodeFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8306EFF01B8BCE7C0031D032 /* NativeNodeFilter.cpp */; };
</span><span class="cx">                 830784B21C52EE2C00104D1D /* XMLDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = 830784B11C52EE1900104D1D /* XMLDocument.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><ins>+                830A36BC1DAC5FAD006D7D09 /* JSMouseEventInit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 830A36BA1DAC5FA7006D7D09 /* JSMouseEventInit.cpp */; };
+                830A36BD1DAC5FAD006D7D09 /* JSMouseEventInit.h in Headers */ = {isa = PBXBuildFile; fileRef = 830A36BB1DAC5FA7006D7D09 /* JSMouseEventInit.h */; };
</ins><span class="cx">                 83120C701C56F3F6001CB112 /* HTMLDataElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 831D1F291C56ECA000F5F6C0 /* HTMLDataElement.cpp */; };
</span><span class="cx">                 83120C711C56F3FB001CB112 /* HTMLDataElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 834B86A71C56E83A00F3F0E3 /* HTMLDataElement.h */; };
</span><span class="cx">                 832B843419D8E55100B26055 /* SVGAnimateElementBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 832B843319D8E55100B26055 /* SVGAnimateElementBase.h */; };
</span><span class="lines">@@ -2902,6 +2904,7 @@
</span><span class="cx">                 836FBCEA178C113200B21A15 /* SVGAnimatedTypeAnimator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 836FBCE9178C113200B21A15 /* SVGAnimatedTypeAnimator.cpp */; };
</span><span class="cx">                 836FBCEC178C117F00B21A15 /* SVGAnimatedProperty.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 836FBCEB178C117F00B21A15 /* SVGAnimatedProperty.cpp */; };
</span><span class="cx">                 8372DB311A6780A800C697C5 /* DiagnosticLoggingResultType.h in Headers */ = {isa = PBXBuildFile; fileRef = 8372DB301A6780A800C697C5 /* DiagnosticLoggingResultType.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><ins>+                83765F951DAC522F00C06537 /* MouseEventInit.h in Headers */ = {isa = PBXBuildFile; fileRef = 83765F941DAC521800C06537 /* MouseEventInit.h */; settings = {ATTRIBUTES = (Private, ); }; };
</ins><span class="cx">                 8386A96D19F61B2E00E1EC4A /* StyleBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8386A96C19F61B2E00E1EC4A /* StyleBuilder.h */; };
</span><span class="cx">                 8386A97019F61E4F00E1EC4A /* StyleBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8386A96E19F61E4F00E1EC4A /* StyleBuilder.cpp */; };
</span><span class="cx">                 838867351D13BA5F003697D0 /* RenderObjectEnums.h in Headers */ = {isa = PBXBuildFile; fileRef = 838867341D13BA59003697D0 /* RenderObjectEnums.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -10023,6 +10026,8 @@
</span><span class="cx">                 8306EFF01B8BCE7C0031D032 /* NativeNodeFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NativeNodeFilter.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 830784B01C52EE1900104D1D /* XMLDocument.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = XMLDocument.idl; sourceTree = "<group>"; };
</span><span class="cx">                 830784B11C52EE1900104D1D /* XMLDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XMLDocument.h; sourceTree = "<group>"; };
</span><ins>+                830A36BA1DAC5FA7006D7D09 /* JSMouseEventInit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMouseEventInit.cpp; sourceTree = "<group>"; };
+                830A36BB1DAC5FA7006D7D09 /* JSMouseEventInit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMouseEventInit.h; sourceTree = "<group>"; };
</ins><span class="cx">                 831D1F291C56ECA000F5F6C0 /* HTMLDataElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLDataElement.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 8329DCC21C7A6AE300730B33 /* HTMLHyperlinkElementUtils.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = HTMLHyperlinkElementUtils.idl; sourceTree = "<group>"; };
</span><span class="cx">                 832B843319D8E55100B26055 /* SVGAnimateElementBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimateElementBase.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -10052,6 +10057,8 @@
</span><span class="cx">                 836FBCE9178C113200B21A15 /* SVGAnimatedTypeAnimator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedTypeAnimator.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 836FBCEB178C117F00B21A15 /* SVGAnimatedProperty.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedProperty.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 8372DB301A6780A800C697C5 /* DiagnosticLoggingResultType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiagnosticLoggingResultType.h; sourceTree = "<group>"; };
</span><ins>+                83765F931DAC521800C06537 /* MouseEventInit.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MouseEventInit.idl; sourceTree = "<group>"; };
+                83765F941DAC521800C06537 /* MouseEventInit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MouseEventInit.h; sourceTree = "<group>"; };
</ins><span class="cx">                 8386A96C19F61B2E00E1EC4A /* StyleBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleBuilder.h; sourceTree = "<group>"; };
</span><span class="cx">                 8386A96E19F61E4F00E1EC4A /* StyleBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleBuilder.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 838867341D13BA59003697D0 /* RenderObjectEnums.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderObjectEnums.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -19759,6 +19766,8 @@
</span><span class="cx">                                 E1ADEDD80E76BD93004A1A5E /* JSMessagePort.h */,
</span><span class="cx">                                 A86629CC09DA2B47009633A5 /* JSMouseEvent.cpp */,
</span><span class="cx">                                 A86629CB09DA2B47009633A5 /* JSMouseEvent.h */,
</span><ins>+                                830A36BA1DAC5FA7006D7D09 /* JSMouseEventInit.cpp */,
+                                830A36BB1DAC5FA7006D7D09 /* JSMouseEventInit.h */,
</ins><span class="cx">                                 65DF31E709D1CC60000BE325 /* JSMutationEvent.cpp */,
</span><span class="cx">                                 65DF31E809D1CC60000BE325 /* JSMutationEvent.h */,
</span><span class="cx">                                 1A0D573E0A5C7867007EDD4C /* JSOverflowEvent.cpp */,
</span><span class="lines">@@ -23234,6 +23243,8 @@
</span><span class="cx">                                 85031B2F0A44EFC700F992E0 /* MouseEvent.cpp */,
</span><span class="cx">                                 85031B300A44EFC700F992E0 /* MouseEvent.h */,
</span><span class="cx">                                 141B94E509EC4223000E9413 /* MouseEvent.idl */,
</span><ins>+                                83765F941DAC521800C06537 /* MouseEventInit.h */,
+                                83765F931DAC521800C06537 /* MouseEventInit.idl */,
</ins><span class="cx">                                 85031B310A44EFC700F992E0 /* MouseRelatedEvent.cpp */,
</span><span class="cx">                                 85031B320A44EFC700F992E0 /* MouseRelatedEvent.h */,
</span><span class="cx">                                 C6F0900114327B6100685849 /* MutationCallback.h */,
</span><span class="lines">@@ -26580,6 +26591,7 @@
</span><span class="cx">                                 97BC6A571505F081001B74AC /* SQLTransactionCoordinator.h in Headers */,
</span><span class="cx">                                 97BC6A581505F081001B74AC /* SQLTransactionErrorCallback.h in Headers */,
</span><span class="cx">                                 FE36FD1816C7826500F887C1 /* SQLTransactionState.h in Headers */,
</span><ins>+                                83765F951DAC522F00C06537 /* MouseEventInit.h in Headers */,
</ins><span class="cx">                                 FE36FD1716C7826500F887C1 /* SQLTransactionStateMachine.h in Headers */,
</span><span class="cx">                                 1A2E6E5A0CC55213004A2062 /* SQLValue.h in Headers */,
</span><span class="cx">                                 93F1996308245E59001E9ABC /* SSLKeyGenerator.h in Headers */,
</span><span class="lines">@@ -27042,6 +27054,7 @@
</span><span class="cx">                                 7CC289DF1AA0FE5D009A9CE3 /* URLRegistry.h in Headers */,
</span><span class="cx">                                 93D437A21D57B3FE00AB85EA /* URLUtils.h in Headers */,
</span><span class="cx">                                 A72763BF16689BFB002FCACB /* UserActionElementSet.h in Headers */,
</span><ins>+                                830A36BD1DAC5FAD006D7D09 /* JSMouseEventInit.h in Headers */,
</ins><span class="cx">                                 868160D618766A130021E79D /* UserActivity.h in Headers */,
</span><span class="cx">                                 26255F0318878E110006E1FD /* UserAgent.h in Headers */,
</span><span class="cx">                                 CDAB6D3117C9259500C60B34 /* UserAgentScripts.h in Headers */,
</span><span class="lines">@@ -27703,6 +27716,7 @@
</span><span class="cx">                                 37DDCD9E13844FFA0008B793 /* Archive.cpp in Sources */,
</span><span class="cx">                                 512DD8FA0D91E6AF000F89EE /* ArchiveFactory.cpp in Sources */,
</span><span class="cx">                                 512DD8FB0D91E6AF000F89EE /* ArchiveResource.cpp in Sources */,
</span><ins>+                                830A36BC1DAC5FAD006D7D09 /* JSMouseEventInit.cpp in Sources */,
</ins><span class="cx">                                 512DD8F70D91E6AF000F89EE /* ArchiveResourceCollection.cpp in Sources */,
</span><span class="cx">                                 49B3760C15C6C6840059131D /* ArrayValue.cpp in Sources */,
</span><span class="cx">                                 FD5686C913AC180200B69C68 /* AsyncAudioDecoder.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (207040 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2016-10-11 04:33:56 UTC (rev 207040)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -1711,6 +1711,13 @@
</span><span class="cx"> my $currentInterface = shift;
</span><span class="cx"> push(@ancestors, $currentInterface->name);
</span><span class="cx"> }, 0);
</span><ins>+ for my $dictionary (@$dictionaries) {
+ my $parentDictionary = $dictionary->parent;
+ while (defined($parentDictionary)) {
+ push(@ancestors, $parentDictionary) if $codeGenerator->IsExternalDictionaryType($parentDictionary);
+ $parentDictionary = $codeGenerator->GetDictionaryByName($parentDictionary)->parent;
+ }
+ }
</ins><span class="cx"> push(@depsContent, "$className.h : ", join(" ", map { "$_.idl" } @ancestors), "\n");
</span><span class="cx"> push(@depsContent, map { "$_.idl :\n" } @ancestors);
</span><span class="cx"> }
</span><span class="lines">@@ -4321,6 +4328,18 @@
</span><span class="cx"> push(@headerContent, "\nnamespace WebCore {\n\n");
</span><span class="cx"> push(@headerContent, GenerateDictionaryHeaderContent($dictionary, $className));
</span><span class="cx"> push(@headerContent, "} // namespace WebCore\n");
</span><ins>+
+ # - Generate dependencies.
+ if ($writeDependencies) {
+ my @ancestors;
+ my $parentDictionary = $dictionary->parent;
+ while (defined($parentDictionary)) {
+ push(@ancestors, $parentDictionary) if $codeGenerator->IsExternalDictionaryType($parentDictionary);
+ $parentDictionary = $codeGenerator->GetDictionaryByName($parentDictionary)->parent;
+ }
+ push(@depsContent, "$className.h : ", join(" ", map { "$_.idl" } @ancestors), "\n");
+ push(@depsContent, map { "$_.idl :\n" } @ancestors);
+ }
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> sub GenerateDictionaryImplementation
</span></span></pre></div>
<a id="trunkSourceWebCoredomMouseEventcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MouseEvent.cpp (207040 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MouseEvent.cpp        2016-10-11 04:33:56 UTC (rev 207040)
+++ trunk/Source/WebCore/dom/MouseEvent.cpp        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -33,9 +33,9 @@
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><del>-Ref<MouseEvent> MouseEvent::createForBindings(const AtomicString& type, const MouseEventInit& initializer)
</del><ins>+Ref<MouseEvent> MouseEvent::create(const AtomicString& type, const MouseEventInit& initializer, IsTrusted isTrusted)
</ins><span class="cx"> {
</span><del>- return adoptRef(*new MouseEvent(type, initializer));
</del><ins>+ return adoptRef(*new MouseEvent(type, initializer, isTrusted));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> Ref<MouseEvent> MouseEvent::create(const AtomicString& eventType, DOMWindow* view, const PlatformMouseEvent& event, int detail, PassRefPtr<Node> relatedTarget)
</span><span class="lines">@@ -130,8 +130,8 @@
</span><span class="cx"> initCoordinates(IntPoint(clientX, clientY));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-MouseEvent::MouseEvent(const AtomicString& eventType, const MouseEventInit& initializer)
- : MouseRelatedEvent(eventType, initializer)
</del><ins>+MouseEvent::MouseEvent(const AtomicString& eventType, const MouseEventInit& initializer, IsTrusted isTrusted)
+ : MouseRelatedEvent(eventType, initializer, isTrusted)
</ins><span class="cx"> , m_button(initializer.button == (unsigned short)-1 ? 0 : initializer.button)
</span><span class="cx"> , m_buttonDown(initializer.button != (unsigned short)-1)
</span><span class="cx"> , m_relatedTarget(initializer.relatedTarget)
</span></span></pre></div>
<a id="trunkSourceWebCoredomMouseEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MouseEvent.h (207040 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MouseEvent.h        2016-10-11 04:33:56 UTC (rev 207040)
+++ trunk/Source/WebCore/dom/MouseEvent.h        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -23,6 +23,7 @@
</span><span class="cx">
</span><span class="cx"> #pragma once
</span><span class="cx">
</span><ins>+#include "MouseEventInit.h"
</ins><span class="cx"> #include "MouseRelatedEvent.h"
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -30,13 +31,6 @@
</span><span class="cx"> class DataTransfer;
</span><span class="cx"> class PlatformMouseEvent;
</span><span class="cx">
</span><del>-struct MouseEventInit : public MouseRelatedEventInit {
- int clientX { 0 };
- int clientY { 0 };
- unsigned short button { 0 };
- RefPtr<EventTarget> relatedTarget;
-};
-
</del><span class="cx"> class MouseEvent : public MouseRelatedEvent {
</span><span class="cx"> public:
</span><span class="cx"> static Ref<MouseEvent> create(const AtomicString& type, bool canBubble, bool cancelable, double timestamp, DOMWindow*,
</span><span class="lines">@@ -67,7 +61,7 @@
</span><span class="cx"> return adoptRef(*new MouseEvent);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- static Ref<MouseEvent> createForBindings(const AtomicString& eventType, const MouseEventInit&);
</del><ins>+ static Ref<MouseEvent> create(const AtomicString& eventType, const MouseEventInit&, IsTrusted = IsTrusted::No);
</ins><span class="cx">
</span><span class="cx"> virtual ~MouseEvent();
</span><span class="cx">
</span><span class="lines">@@ -115,7 +109,7 @@
</span><span class="cx"> bool ctrlKey, bool altKey, bool shiftKey, bool metaKey,
</span><span class="cx"> unsigned short button, unsigned short syntheticClickType, PassRefPtr<EventTarget> relatedTarget);
</span><span class="cx">
</span><del>- MouseEvent(const AtomicString& type, const MouseEventInit&);
</del><ins>+ MouseEvent(const AtomicString& type, const MouseEventInit&, IsTrusted);
</ins><span class="cx">
</span><span class="cx"> MouseEvent();
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoredomMouseEventidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MouseEvent.idl (207040 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MouseEvent.idl        2016-10-11 04:33:56 UTC (rev 207040)
+++ trunk/Source/WebCore/dom/MouseEvent.idl        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -18,23 +18,22 @@
</span><span class="cx"> */
</span><span class="cx">
</span><span class="cx"> [
</span><del>- ConstructorConditional=DOM4_EVENTS_CONSTRUCTOR,
- ConstructorTemplate=Event,
</del><ins>+ Constructor(DOMString type, optional MouseEventInit eventInitDict),
</ins><span class="cx"> DoNotCheckConstants,
</span><span class="cx"> ] interface MouseEvent : UIEvent {
</span><span class="cx"> [Conditional=MOUSE_FORCE_EVENTS] const double WEBKIT_FORCE_AT_MOUSE_DOWN = 1;
</span><span class="cx"> [Conditional=MOUSE_FORCE_EVENTS] const double WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN = 2;
</span><span class="cx">
</span><del>- [InitializedByEventConstructor] readonly attribute long screenX;
- [InitializedByEventConstructor] readonly attribute long screenY;
- [InitializedByEventConstructor] readonly attribute long clientX;
- [InitializedByEventConstructor] readonly attribute long clientY;
- [InitializedByEventConstructor] readonly attribute boolean ctrlKey;
- [InitializedByEventConstructor] readonly attribute boolean shiftKey;
- [InitializedByEventConstructor] readonly attribute boolean altKey;
- [InitializedByEventConstructor] readonly attribute boolean metaKey;
- [InitializedByEventConstructor] readonly attribute unsigned short button;
- [InitializedByEventConstructor] readonly attribute EventTarget? relatedTarget;
</del><ins>+ readonly attribute long screenX;
+ readonly attribute long screenY;
+ readonly attribute long clientX;
+ readonly attribute long clientY;
+ readonly attribute boolean ctrlKey;
+ readonly attribute boolean shiftKey;
+ readonly attribute boolean altKey;
+ readonly attribute boolean metaKey;
+ readonly attribute unsigned short button;
+ readonly attribute EventTarget? relatedTarget;
</ins><span class="cx"> [Conditional=POINTER_LOCK] readonly attribute long movementX;
</span><span class="cx"> [Conditional=POINTER_LOCK] readonly attribute long movementY;
</span><span class="cx"> [Conditional=MOUSE_FORCE_EVENTS, ImplementedAs=force]readonly attribute double webkitForce;
</span></span></pre></div>
<a id="trunkSourceWebCoredomMouseEventInith"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/dom/MouseEventInit.h (0 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MouseEventInit.h         (rev 0)
+++ trunk/Source/WebCore/dom/MouseEventInit.h        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -0,0 +1,39 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include "MouseRelatedEvent.h"
+
+namespace WebCore {
+
+struct MouseEventInit : MouseRelatedEventInit {
+ int clientX { 0 };
+ int clientY { 0 };
+ unsigned short button { 0 };
+ RefPtr<EventTarget> relatedTarget;
+};
+
+}
</ins></span></pre></div>
<a id="trunkSourceWebCoredomMouseEventInitidl"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/dom/MouseEventInit.idl (0 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MouseEventInit.idl         (rev 0)
+++ trunk/Source/WebCore/dom/MouseEventInit.idl        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -0,0 +1,37 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+dictionary MouseEventInit : EventModifierInit {
+ long screenX = 0;
+ long screenY = 0;
+ long clientX = 0;
+ long clientY = 0;
+ unsigned short button = 0;
+
+ // FIXME: We need to support the following member.
+ // unsigned short buttons = 0;
+
+ EventTarget? relatedTarget = null;
+};
</ins></span></pre></div>
<a id="trunkSourceWebCoredomMouseRelatedEventcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MouseRelatedEvent.cpp (207040 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MouseRelatedEvent.cpp        2016-10-11 04:33:56 UTC (rev 207040)
+++ trunk/Source/WebCore/dom/MouseRelatedEvent.cpp        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -71,8 +71,8 @@
</span><span class="cx"> init(isSimulated, windowLocation);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-MouseRelatedEvent::MouseRelatedEvent(const AtomicString& eventType, const MouseRelatedEventInit& initializer)
- : UIEventWithKeyState(eventType, initializer)
</del><ins>+MouseRelatedEvent::MouseRelatedEvent(const AtomicString& eventType, const MouseRelatedEventInit& initializer, IsTrusted isTrusted)
+ : UIEventWithKeyState(eventType, initializer, isTrusted)
</ins><span class="cx"> , m_screenLocation(IntPoint(initializer.screenX, initializer.screenY))
</span><span class="cx"> #if ENABLE(POINTER_LOCK)
</span><span class="cx"> , m_movementDelta(IntPoint(0, 0))
</span></span></pre></div>
<a id="trunkSourceWebCoredomMouseRelatedEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MouseRelatedEvent.h (207040 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MouseRelatedEvent.h        2016-10-11 04:33:56 UTC (rev 207040)
+++ trunk/Source/WebCore/dom/MouseRelatedEvent.h        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx"> const IntPoint& movementDelta,
</span><span class="cx"> #endif
</span><span class="cx"> bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, bool isSimulated = false);
</span><del>- MouseRelatedEvent(const AtomicString& type, const MouseRelatedEventInit&);
</del><ins>+ MouseRelatedEvent(const AtomicString& type, const MouseRelatedEventInit&, IsTrusted = IsTrusted::No);
</ins><span class="cx">
</span><span class="cx"> void initCoordinates();
</span><span class="cx"> void initCoordinates(const LayoutPoint& clientLocation);
</span></span></pre></div>
<a id="trunkSourceWebCoredomUIEventWithKeyStateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/UIEventWithKeyState.h (207040 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/UIEventWithKeyState.h        2016-10-11 04:33:56 UTC (rev 207040)
+++ trunk/Source/WebCore/dom/UIEventWithKeyState.h        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>- UIEventWithKeyState(const AtomicString& type, const EventModifierInit& initializer, IsTrusted isTrusted = IsTrusted::No)
</del><ins>+ UIEventWithKeyState(const AtomicString& type, const EventModifierInit& initializer, IsTrusted isTrusted)
</ins><span class="cx"> : UIEvent(type, initializer, isTrusted)
</span><span class="cx"> , m_ctrlKey(initializer.ctrlKey)
</span><span class="cx"> , m_altKey(initializer.altKey)
</span></span></pre></div>
<a id="trunkSourceWebCoredomWheelEventcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/WheelEvent.cpp (207040 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/WheelEvent.cpp        2016-10-11 04:33:56 UTC (rev 207040)
+++ trunk/Source/WebCore/dom/WheelEvent.cpp        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -35,16 +35,6 @@
</span><span class="cx"> return event.granularity() == ScrollByPageWheelEvent ? WheelEvent::DOM_DELTA_PAGE : WheelEvent::DOM_DELTA_PIXEL;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-WheelEventInit::WheelEventInit()
- : deltaX(0)
- , deltaY(0)
- , deltaZ(0)
- , deltaMode(WheelEvent::DOM_DELTA_PIXEL)
- , wheelDeltaX(0)
- , wheelDeltaY(0)
-{
-}
-
</del><span class="cx"> WheelEvent::WheelEvent()
</span><span class="cx"> : m_deltaX(0)
</span><span class="cx"> , m_deltaY(0)
</span><span class="lines">@@ -54,8 +44,8 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-WheelEvent::WheelEvent(const AtomicString& type, const WheelEventInit& initializer)
- : MouseEvent(type, initializer)
</del><ins>+WheelEvent::WheelEvent(const AtomicString& type, const Init& initializer, IsTrusted isTrusted)
+ : MouseEvent(type, initializer, isTrusted)
</ins><span class="cx"> , m_wheelDelta(initializer.wheelDeltaX ? initializer.wheelDeltaX : -initializer.deltaX, initializer.wheelDeltaY ? initializer.wheelDeltaY : -initializer.deltaY)
</span><span class="cx"> , m_deltaX(initializer.deltaX ? initializer.deltaX : -initializer.wheelDeltaX)
</span><span class="cx"> , m_deltaY(initializer.deltaY ? initializer.deltaY : -initializer.wheelDeltaY)
</span></span></pre></div>
<a id="trunkSourceWebCoredomWheelEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/WheelEvent.h (207040 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/WheelEvent.h        2016-10-11 04:33:56 UTC (rev 207040)
+++ trunk/Source/WebCore/dom/WheelEvent.h        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -32,17 +32,6 @@
</span><span class="cx">
</span><span class="cx"> class PlatformWheelEvent;
</span><span class="cx">
</span><del>-struct WheelEventInit : public MouseEventInit {
- WheelEventInit();
-
- double deltaX;
- double deltaY;
- double deltaZ;
- unsigned deltaMode;
- int wheelDeltaX; // Deprecated.
- int wheelDeltaY; // Deprecated.
-};
-
</del><span class="cx"> class WheelEvent final : public MouseEvent {
</span><span class="cx"> public:
</span><span class="cx"> enum { TickMultiplier = 120 };
</span><span class="lines">@@ -63,9 +52,18 @@
</span><span class="cx"> return adoptRef(*new WheelEvent);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- static Ref<WheelEvent> createForBindings(const AtomicString& type, const WheelEventInit& initializer)
</del><ins>+ struct Init : MouseEventInit {
+ double deltaX { 0 };
+ double deltaY { 0 };
+ double deltaZ { 0 };
+ unsigned deltaMode { DOM_DELTA_PIXEL };
+ int wheelDeltaX { 0 }; // Deprecated.
+ int wheelDeltaY { 0 }; // Deprecated.
+ };
+
+ static Ref<WheelEvent> create(const AtomicString& type, const Init& initializer, IsTrusted isTrusted = IsTrusted::No)
</ins><span class="cx"> {
</span><del>- return adoptRef(*new WheelEvent(type, initializer));
</del><ins>+ return adoptRef(*new WheelEvent(type, initializer, isTrusted));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> WEBCORE_EXPORT void initWheelEvent(int rawDeltaX, int rawDeltaY, DOMWindow*,
</span><span class="lines">@@ -96,7 +94,7 @@
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> WheelEvent();
</span><del>- WheelEvent(const AtomicString&, const WheelEventInit&);
</del><ins>+ WheelEvent(const AtomicString&, const Init&, IsTrusted);
</ins><span class="cx"> WheelEvent(const PlatformWheelEvent&, DOMWindow*);
</span><span class="cx">
</span><span class="cx"> bool isWheelEvent() const override;
</span></span></pre></div>
<a id="trunkSourceWebCoredomWheelEventidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/WheelEvent.idl (207040 => 207041)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/WheelEvent.idl        2016-10-11 04:33:56 UTC (rev 207040)
+++ trunk/Source/WebCore/dom/WheelEvent.idl        2016-10-11 04:43:26 UTC (rev 207041)
</span><span class="lines">@@ -20,8 +20,7 @@
</span><span class="cx"> */
</span><span class="cx">
</span><span class="cx"> [
</span><del>- ConstructorConditional=DOM4_EVENTS_CONSTRUCTOR,
- ConstructorTemplate=Event,
</del><ins>+ Constructor(DOMString type, optional WheelEventInit eventInitDict),
</ins><span class="cx"> ] interface WheelEvent : MouseEvent {
</span><span class="cx"> // DeltaModeCode
</span><span class="cx"> const unsigned long DOM_DELTA_PIXEL = 0x00;
</span><span class="lines">@@ -28,14 +27,14 @@
</span><span class="cx"> const unsigned long DOM_DELTA_LINE = 0x01;
</span><span class="cx"> const unsigned long DOM_DELTA_PAGE = 0x02;
</span><span class="cx">
</span><del>- [InitializedByEventConstructor] readonly attribute unrestricted double deltaX;
- [InitializedByEventConstructor] readonly attribute unrestricted double deltaY;
- [InitializedByEventConstructor] readonly attribute unrestricted double deltaZ;
- [InitializedByEventConstructor] readonly attribute unsigned long deltaMode;
</del><ins>+ readonly attribute unrestricted double deltaX;
+ readonly attribute unrestricted double deltaY;
+ readonly attribute unrestricted double deltaZ;
+ readonly attribute unsigned long deltaMode;
</ins><span class="cx">
</span><span class="cx"> // Legacy MouseWheelEvent API replaced by standard WheelEvent API.
</span><del>- [InitializedByEventConstructor] readonly attribute long wheelDeltaX;
- [InitializedByEventConstructor] readonly attribute long wheelDeltaY;
</del><ins>+ readonly attribute long wheelDeltaX;
+ readonly attribute long wheelDeltaY;
</ins><span class="cx"> readonly attribute long wheelDelta;
</span><span class="cx">
</span><span class="cx"> readonly attribute boolean webkitDirectionInvertedFromDevice;
</span><span class="lines">@@ -45,3 +44,14 @@
</span><span class="cx"> optional boolean ctrlKey = false, optional boolean altKey = false,
</span><span class="cx"> optional boolean shiftKey = false, optional boolean metaKey = false);
</span><span class="cx"> };
</span><ins>+
+dictionary WheelEventInit : MouseEventInit {
+ double deltaX = 0.0;
+ double deltaY = 0.0;
+ double deltaZ = 0.0;
+ unsigned long deltaMode = 0;
+
+ // Legacy members that we still support for backward compatibility.
+ long wheelDeltaX = 0;
+ long wheelDeltaY = 0;
+};
</ins></span></pre>
</div>
</div>
</body>
</html>