<!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>[203391] 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/203391">203391</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2016-07-18 18:18:06 -0700 (Mon, 18 Jul 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>EventTarget.dispatchEvent() parameter should not be nullable
https://bugs.webkit.org/show_bug.cgi?id=159897

Reviewed by Benjamin Poulain.

Source/WebCore:

EventTarget.dispatchEvent() parameter should not be nullable:
- https://dom.spec.whatwg.org/#interface-eventtarget

Even though the parameter was marked as nullable in our IDL, our
implementation does a null check and we already throw a TypeError
when calling dispatchEvent(null).

Update our IDL so that it matches the specification and so that
the null check is generated in the bindings instead.

No new tests, rebaseline existing tests.

* dom/EventTarget.cpp:
(WebCore::EventTarget::dispatchEventForBindings):
* dom/EventTarget.h:
* dom/EventTarget.idl:

LayoutTests:

Update layout tests as the message of the TypeError exception being
thrown when calling dispatchEvent(null) is now more helpful.

* fast/dom/Window/dispatchEvent-expected.txt:
* fast/events/dispatchEvent-crash-expected.txt:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastdomWindowdispatchEventexpectedtxt">trunk/LayoutTests/fast/dom/Window/dispatchEvent-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfasteventsdispatchEventcrashexpectedtxt">trunk/LayoutTests/fast/events/dispatchEvent-crash-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorGObjectpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestGObjectWebKitDOMTestEventTargetcpp">trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestGObjectWebKitDOMTestNodecpp">trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestNode.cpp</a></li>
<li><a href="#trunkSourceWebCoredomEventTargetcpp">trunk/Source/WebCore/dom/EventTarget.cpp</a></li>
<li><a href="#trunkSourceWebCoredomEventTargeth">trunk/Source/WebCore/dom/EventTarget.h</a></li>
<li><a href="#trunkSourceWebCoredomEventTargetidl">trunk/Source/WebCore/dom/EventTarget.idl</a></li>
<li><a href="#trunkSourceWebKitwinDOMCoreClassescpp">trunk/Source/WebKit/win/DOMCoreClasses.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (203390 => 203391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-07-19 01:16:24 UTC (rev 203390)
+++ trunk/LayoutTests/ChangeLog        2016-07-19 01:18:06 UTC (rev 203391)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2016-07-18  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        EventTarget.dispatchEvent() parameter should not be nullable
+        https://bugs.webkit.org/show_bug.cgi?id=159897
+
+        Reviewed by Benjamin Poulain.
+
+        Update layout tests as the message of the TypeError exception being
+        thrown when calling dispatchEvent(null) is now more helpful.
+
+        * fast/dom/Window/dispatchEvent-expected.txt:
+        * fast/events/dispatchEvent-crash-expected.txt:
+
</ins><span class="cx"> 2016-07-17  Filip Pizlo  &lt;fpizlo@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Implement table-based switches in B3/Air
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomWindowdispatchEventexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Window/dispatchEvent-expected.txt (203390 => 203391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Window/dispatchEvent-expected.txt        2016-07-19 01:16:24 UTC (rev 203390)
+++ trunk/LayoutTests/fast/dom/Window/dispatchEvent-expected.txt        2016-07-19 01:18:06 UTC (rev 203391)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx"> On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-PASS window.dispatchEvent(event) threw exception TypeError: Type error.
</del><ins>+PASS window.dispatchEvent(event) threw exception TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event.
</ins><span class="cx"> PASS window.dispatchEvent(event) threw exception InvalidStateError (DOM Exception 11): The object is in an invalid state..
</span><span class="cx"> PASS myEventDispatched is true
</span><span class="cx"> PASS target is window
</span></span></pre></div>
<a id="trunkLayoutTestsfasteventsdispatchEventcrashexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/events/dispatchEvent-crash-expected.txt (203390 => 203391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/dispatchEvent-crash-expected.txt        2016-07-19 01:16:24 UTC (rev 203390)
+++ trunk/LayoutTests/fast/events/dispatchEvent-crash-expected.txt        2016-07-19 01:18:06 UTC (rev 203391)
</span><span class="lines">@@ -1,28 +1,28 @@
</span><span class="cx"> This is a test for https://bugs.webkit.org/show_bug.cgi?id=21063 (NULL pointer crash in dispatchEvent(null)). It passes if it does not crash.
</span><span class="cx"> 
</span><del>-Exception thrown for null: TypeError: Type error
-Exception thrown for undefined: TypeError: Type error
-Exception thrown for string: TypeError: Type error
-Exception thrown for 0: TypeError: Type error
-Exception thrown for object: TypeError: Type error
-Exception thrown for null: TypeError: Type error
-Exception thrown for undefined: TypeError: Type error
-Exception thrown for string: TypeError: Type error
-Exception thrown for 0: TypeError: Type error
-Exception thrown for object: TypeError: Type error
-Exception thrown for null: TypeError: Type error
-Exception thrown for undefined: TypeError: Type error
-Exception thrown for string: TypeError: Type error
-Exception thrown for 0: TypeError: Type error
-Exception thrown for object: TypeError: Type error
-Exception thrown for null: TypeError: Type error
-Exception thrown for undefined: TypeError: Type error
-Exception thrown for string: TypeError: Type error
-Exception thrown for 0: TypeError: Type error
-Exception thrown for object: TypeError: Type error
-Exception thrown for null: TypeError: Type error
-Exception thrown for undefined: TypeError: Type error
-Exception thrown for string: TypeError: Type error
-Exception thrown for 0: TypeError: Type error
-Exception thrown for object: TypeError: Type error
</del><ins>+Exception thrown for null: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for undefined: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for string: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for 0: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for object: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for null: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for undefined: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for string: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for 0: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for object: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for null: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for undefined: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for string: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for 0: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for object: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for null: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for undefined: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for string: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for 0: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for object: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for null: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for undefined: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for string: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for 0: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
+Exception thrown for object: TypeError: Argument 1 ('event') to EventTarget.dispatchEvent must be an instance of Event
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (203390 => 203391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-07-19 01:16:24 UTC (rev 203390)
+++ trunk/Source/WebCore/ChangeLog        2016-07-19 01:18:06 UTC (rev 203391)
</span><span class="lines">@@ -1,5 +1,29 @@
</span><span class="cx"> 2016-07-18  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        EventTarget.dispatchEvent() parameter should not be nullable
+        https://bugs.webkit.org/show_bug.cgi?id=159897
+
+        Reviewed by Benjamin Poulain.
+
+        EventTarget.dispatchEvent() parameter should not be nullable:
+        - https://dom.spec.whatwg.org/#interface-eventtarget
+
+        Even though the parameter was marked as nullable in our IDL, our
+        implementation does a null check and we already throw a TypeError
+        when calling dispatchEvent(null).
+
+        Update our IDL so that it matches the specification and so that
+        the null check is generated in the bindings instead.
+
+        No new tests, rebaseline existing tests.
+
+        * dom/EventTarget.cpp:
+        (WebCore::EventTarget::dispatchEventForBindings):
+        * dom/EventTarget.h:
+        * dom/EventTarget.idl:
+
+2016-07-18  Chris Dumez  &lt;cdumez@apple.com&gt;
+
</ins><span class="cx">         DocType's publicId / systemId should not be nullable
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=159901
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorGObjectpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm (203390 => 203391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm        2016-07-19 01:16:24 UTC (rev 203390)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm        2016-07-19 01:18:06 UTC (rev 203391)
</span><span class="lines">@@ -1707,9 +1707,11 @@
</span><span class="cx">     push(@cBodyProperties, &quot;static gboolean webkit_dom_${decamelize}_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error)\n{\n&quot;);
</span><span class="cx">     push(@cBodyProperties, &quot;#if ${conditionalString}\n&quot;) if $conditionalString;
</span><span class="cx">     push(@cBodyProperties, &quot;    WebCore::Event* coreEvent = WebKit::core(event);\n&quot;);
</span><ins>+    push(@cBodyProperties, &quot;    if (!coreEvent)\n&quot;);
+    push(@cBodyProperties, &quot;        return false;\n&quot;);
</ins><span class="cx">     push(@cBodyProperties, &quot;    WebCore::${interfaceName}* coreTarget = static_cast&lt;WebCore::${interfaceName}*&gt;(WEBKIT_DOM_OBJECT(target)-&gt;coreObject);\n\n&quot;);
</span><span class="cx">     push(@cBodyProperties, &quot;    WebCore::ExceptionCode ec = 0;\n&quot;);
</span><del>-    push(@cBodyProperties, &quot;    gboolean result = coreTarget-&gt;dispatchEventForBindings(coreEvent, ec);\n&quot;);
</del><ins>+    push(@cBodyProperties, &quot;    gboolean result = coreTarget-&gt;dispatchEventForBindings(*coreEvent, ec);\n&quot;);
</ins><span class="cx">     push(@cBodyProperties, &quot;    if (ec) {\n        WebCore::ExceptionCodeDescription description(ec);\n&quot;);
</span><span class="cx">     push(@cBodyProperties, &quot;        g_set_error_literal(error, g_quark_from_string(\&quot;WEBKIT_DOM\&quot;), description.code, description.name);\n    }\n&quot;);
</span><span class="cx">     push(@cBodyProperties, &quot;    return result;\n&quot;);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestGObjectWebKitDOMTestEventTargetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp (203390 => 203391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp        2016-07-19 01:16:24 UTC (rev 203390)
+++ trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp        2016-07-19 01:18:06 UTC (rev 203391)
</span><span class="lines">@@ -72,10 +72,12 @@
</span><span class="cx"> static gboolean webkit_dom_test_event_target_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error)
</span><span class="cx"> {
</span><span class="cx">     WebCore::Event* coreEvent = WebKit::core(event);
</span><ins>+    if (!coreEvent)
+        return false;
</ins><span class="cx">     WebCore::TestEventTarget* coreTarget = static_cast&lt;WebCore::TestEventTarget*&gt;(WEBKIT_DOM_OBJECT(target)-&gt;coreObject);
</span><span class="cx"> 
</span><span class="cx">     WebCore::ExceptionCode ec = 0;
</span><del>-    gboolean result = coreTarget-&gt;dispatchEventForBindings(coreEvent, ec);
</del><ins>+    gboolean result = coreTarget-&gt;dispatchEventForBindings(*coreEvent, ec);
</ins><span class="cx">     if (ec) {
</span><span class="cx">         WebCore::ExceptionCodeDescription description(ec);
</span><span class="cx">         g_set_error_literal(error, g_quark_from_string(&quot;WEBKIT_DOM&quot;), description.code, description.name);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestGObjectWebKitDOMTestNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestNode.cpp (203390 => 203391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestNode.cpp        2016-07-19 01:16:24 UTC (rev 203390)
+++ trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestNode.cpp        2016-07-19 01:18:06 UTC (rev 203391)
</span><span class="lines">@@ -60,10 +60,12 @@
</span><span class="cx"> static gboolean webkit_dom_test_node_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error)
</span><span class="cx"> {
</span><span class="cx">     WebCore::Event* coreEvent = WebKit::core(event);
</span><ins>+    if (!coreEvent)
+        return false;
</ins><span class="cx">     WebCore::TestNode* coreTarget = static_cast&lt;WebCore::TestNode*&gt;(WEBKIT_DOM_OBJECT(target)-&gt;coreObject);
</span><span class="cx"> 
</span><span class="cx">     WebCore::ExceptionCode ec = 0;
</span><del>-    gboolean result = coreTarget-&gt;dispatchEventForBindings(coreEvent, ec);
</del><ins>+    gboolean result = coreTarget-&gt;dispatchEventForBindings(*coreEvent, ec);
</ins><span class="cx">     if (ec) {
</span><span class="cx">         WebCore::ExceptionCodeDescription description(ec);
</span><span class="cx">         g_set_error_literal(error, g_quark_from_string(&quot;WEBKIT_DOM&quot;), description.code, description.name);
</span></span></pre></div>
<a id="trunkSourceWebCoredomEventTargetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/EventTarget.cpp (203390 => 203391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/EventTarget.cpp        2016-07-19 01:16:24 UTC (rev 203390)
+++ trunk/Source/WebCore/dom/EventTarget.cpp        2016-07-19 01:18:06 UTC (rev 203391)
</span><span class="lines">@@ -158,16 +158,11 @@
</span><span class="cx">     return removeEventListener(eventType, *listener, false);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool EventTarget::dispatchEventForBindings(Event* event, ExceptionCode&amp; ec)
</del><ins>+bool EventTarget::dispatchEventForBindings(Event&amp; event, ExceptionCode&amp; ec)
</ins><span class="cx"> {
</span><del>-    if (!event) {
-        ec = TypeError;
-        return false;
-    }
</del><ins>+    event.setUntrusted();
</ins><span class="cx"> 
</span><del>-    event-&gt;setUntrusted();
-
-    if (!event-&gt;isInitialized() || event-&gt;isBeingDispatched()) {
</del><ins>+    if (!event.isInitialized() || event.isBeingDispatched()) {
</ins><span class="cx">         ec = INVALID_STATE_ERR;
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><span class="lines">@@ -175,7 +170,7 @@
</span><span class="cx">     if (!scriptExecutionContext())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    return dispatchEvent(*event);
</del><ins>+    return dispatchEvent(event);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool EventTarget::dispatchEvent(Event&amp; event)
</span></span></pre></div>
<a id="trunkSourceWebCoredomEventTargeth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/EventTarget.h (203390 => 203391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/EventTarget.h        2016-07-19 01:16:24 UTC (rev 203390)
+++ trunk/Source/WebCore/dom/EventTarget.h        2016-07-19 01:18:06 UTC (rev 203391)
</span><span class="lines">@@ -148,7 +148,7 @@
</span><span class="cx"> 
</span><span class="cx">     virtual void removeAllEventListeners();
</span><span class="cx">     virtual bool dispatchEvent(Event&amp;);
</span><del>-    bool dispatchEventForBindings(Event*, ExceptionCode&amp;); // DOM API
</del><ins>+    bool dispatchEventForBindings(Event&amp;, ExceptionCode&amp;); // DOM API
</ins><span class="cx">     virtual void uncaughtExceptionInEventHandler();
</span><span class="cx"> 
</span><span class="cx">     // Used for legacy &quot;onEvent&quot; attribute APIs.
</span></span></pre></div>
<a id="trunkSourceWebCoredomEventTargetidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/EventTarget.idl (203390 => 203391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/EventTarget.idl        2016-07-19 01:16:24 UTC (rev 203390)
+++ trunk/Source/WebCore/dom/EventTarget.idl        2016-07-19 01:18:06 UTC (rev 203391)
</span><span class="lines">@@ -34,8 +34,7 @@
</span><span class="cx">     [ObjCLegacyUnnamedParameters, ImplementedAs=addEventListenerForBindings] void addEventListener([AtomicString] DOMString type, EventListener? listener, optional boolean useCapture = false);
</span><span class="cx">     [ObjCLegacyUnnamedParameters, ImplementedAs=removeEventListenerForBindings] void removeEventListener([AtomicString] DOMString type, EventListener? listener, optional boolean useCapture = false);
</span><span class="cx"> 
</span><del>-    // FIXME: event should not be nullable.
-    [ImplementedAs=dispatchEventForBindings, RaisesException] boolean dispatchEvent(Event? event);
</del><ins>+    [ImplementedAs=dispatchEventForBindings, RaisesException] boolean dispatchEvent(Event event);
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> dictionary EventListenerOptions {
</span></span></pre></div>
<a id="trunkSourceWebKitwinDOMCoreClassescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/DOMCoreClasses.cpp (203390 => 203391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/DOMCoreClasses.cpp        2016-07-19 01:16:24 UTC (rev 203390)
+++ trunk/Source/WebKit/win/DOMCoreClasses.cpp        2016-07-19 01:18:06 UTC (rev 203391)
</span><span class="lines">@@ -441,8 +441,11 @@
</span><span class="cx">     if (FAILED(hr))
</span><span class="cx">         return hr;
</span><span class="cx"> 
</span><ins>+    if (!domEvent-&gt;coreEvent())
+        return E_FAIL;
+
</ins><span class="cx">     WebCore::ExceptionCode ec = 0;
</span><del>-    *result = m_node-&gt;dispatchEventForBindings(domEvent-&gt;coreEvent(), ec) ? TRUE : FALSE;
</del><ins>+    *result = m_node-&gt;dispatchEventForBindings(*domEvent-&gt;coreEvent(), ec) ? TRUE : FALSE;
</ins><span class="cx">     return ec ? E_FAIL : S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -938,8 +941,11 @@
</span><span class="cx">     if (FAILED(hr))
</span><span class="cx">         return hr;
</span><span class="cx"> 
</span><ins>+    if (!domEvent-&gt;coreEvent())
+        return E_FAIL;
+
</ins><span class="cx">     WebCore::ExceptionCode ec = 0;
</span><del>-    *result = m_window-&gt;dispatchEventForBindings(domEvent-&gt;coreEvent(), ec) ? TRUE : FALSE;
</del><ins>+    *result = m_window-&gt;dispatchEventForBindings(*domEvent-&gt;coreEvent(), ec) ? TRUE : FALSE;
</ins><span class="cx">     return ec ? E_FAIL : S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>