<!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>[192354] trunk/Source/WebCore</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/192354">192354</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2015-11-11 23:28:57 -0800 (Wed, 11 Nov 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Stop passing a PassRefPtr to dispatchEvent()
https://bugs.webkit.org/show_bug.cgi?id=151158

Reviewed by Alex Christensen.

Stop passing a PassRefPtr to dispatchEvent() because:
1. PassRefPtr is legacy and should no longer be used
2. We don't actually transfer ownership of the Event to the callee

Pass a C++ reference instead.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesbatteryBatteryControllercpp">trunk/Source/WebCore/Modules/battery/BatteryController.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesbatteryBatteryManagercpp">trunk/Source/WebCore/Modules/battery/BatteryManager.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesbatteryBatteryManagerh">trunk/Source/WebCore/Modules/battery/BatteryManager.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBEventDispatchercpp">trunk/Source/WebCore/Modules/indexeddb/IDBEventDispatcher.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBEventDispatcherh">trunk/Source/WebCore/Modules/indexeddb/IDBEventDispatcher.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbclientIDBDatabaseImplcpp">trunk/Source/WebCore/Modules/indexeddb/client/IDBDatabaseImpl.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbclientIDBRequestImplcpp">trunk/Source/WebCore/Modules/indexeddb/client/IDBRequestImpl.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbclientIDBRequestImplh">trunk/Source/WebCore/Modules/indexeddb/client/IDBRequestImpl.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbclientIDBTransactionImplcpp">trunk/Source/WebCore/Modules/indexeddb/client/IDBTransactionImpl.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbclientIDBTransactionImplh">trunk/Source/WebCore/Modules/indexeddb/client/IDBTransactionImpl.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddblegacyLegacyDatabasecpp">trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyDatabase.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddblegacyLegacyDatabaseh">trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyDatabase.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddblegacyLegacyOpenDBRequestcpp">trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyOpenDBRequest.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddblegacyLegacyOpenDBRequesth">trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyOpenDBRequest.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddblegacyLegacyRequestcpp">trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyRequest.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddblegacyLegacyRequesth">trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyRequest.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddblegacyLegacyTransactioncpp">trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyTransaction.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddblegacyLegacyTransactionh">trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyTransaction.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaStreamcpp">trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaStreamh">trunk/Source/WebCore/Modules/mediastream/MediaStream.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCDTMFSendercpp">trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCDTMFSenderh">trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCDataChannelcpp">trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCDataChannelh">trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCPeerConnectioncpp">trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCPeerConnectionh">trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h</a></li>
<li><a href="#trunkSourceWebCoreModulespluginsQuickTimePluginReplacementmm">trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.mm</a></li>
<li><a href="#trunkSourceWebCoreModulesproximityDeviceProximityControllercpp">trunk/Source/WebCore/Modules/proximity/DeviceProximityController.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesproximityDeviceProximityControllerh">trunk/Source/WebCore/Modules/proximity/DeviceProximityController.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsWebSocketcpp">trunk/Source/WebCore/Modules/websockets/WebSocket.cpp</a></li>
<li><a href="#trunkSourceWebCorecssFontLoadercpp">trunk/Source/WebCore/css/FontLoader.cpp</a></li>
<li><a href="#trunkSourceWebCorecssFontLoaderh">trunk/Source/WebCore/css/FontLoader.h</a></li>
<li><a href="#trunkSourceWebCoredomDeviceMotionControllercpp">trunk/Source/WebCore/dom/DeviceMotionController.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDeviceMotionControllerh">trunk/Source/WebCore/dom/DeviceMotionController.h</a></li>
<li><a href="#trunkSourceWebCoredomDeviceOrientationControllercpp">trunk/Source/WebCore/dom/DeviceOrientationController.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDeviceOrientationControllerh">trunk/Source/WebCore/dom/DeviceOrientationController.h</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumenth">trunk/Source/WebCore/dom/Document.h</a></li>
<li><a href="#trunkSourceWebCoredomDocumentEventQueuecpp">trunk/Source/WebCore/dom/DocumentEventQueue.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumentEventQueueh">trunk/Source/WebCore/dom/DocumentEventQueue.h</a></li>
<li><a href="#trunkSourceWebCoredomElementcpp">trunk/Source/WebCore/dom/Element.cpp</a></li>
<li><a href="#trunkSourceWebCoredomEventcpp">trunk/Source/WebCore/dom/Event.cpp</a></li>
<li><a href="#trunkSourceWebCoredomEventh">trunk/Source/WebCore/dom/Event.h</a></li>
<li><a href="#trunkSourceWebCoredomEventDispatchercpp">trunk/Source/WebCore/dom/EventDispatcher.cpp</a></li>
<li><a href="#trunkSourceWebCoredomEventDispatcherh">trunk/Source/WebCore/dom/EventDispatcher.h</a></li>
<li><a href="#trunkSourceWebCoredomEventQueueh">trunk/Source/WebCore/dom/EventQueue.h</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="#trunkSourceWebCoredomGenericEventQueuecpp">trunk/Source/WebCore/dom/GenericEventQueue.cpp</a></li>
<li><a href="#trunkSourceWebCoredomMessagePortcpp">trunk/Source/WebCore/dom/MessagePort.cpp</a></li>
<li><a href="#trunkSourceWebCoredomNodecpp">trunk/Source/WebCore/dom/Node.cpp</a></li>
<li><a href="#trunkSourceWebCoredomNodeh">trunk/Source/WebCore/dom/Node.h</a></li>
<li><a href="#trunkSourceWebCoredomScopedEventQueuecpp">trunk/Source/WebCore/dom/ScopedEventQueue.cpp</a></li>
<li><a href="#trunkSourceWebCoredomScopedEventQueueh">trunk/Source/WebCore/dom/ScopedEventQueue.h</a></li>
<li><a href="#trunkSourceWebCoredomScriptExecutionContextcpp">trunk/Source/WebCore/dom/ScriptExecutionContext.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingAlternativeTextControllercpp">trunk/Source/WebCore/editing/AlternativeTextController.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingEditorcpp">trunk/Source/WebCore/editing/Editor.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingReplaceSelectionCommandcpp">trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingTextInsertionBaseCommandcpp">trunk/Source/WebCore/editing/TextInsertionBaseCommand.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementcpp">trunk/Source/WebCore/html/HTMLMediaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementh">trunk/Source/WebCore/html/HTMLMediaElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTrackElementcpp">trunk/Source/WebCore/html/HTMLTrackElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlMediaControllercpp">trunk/Source/WebCore/html/MediaController.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlMediaControllerh">trunk/Source/WebCore/html/MediaController.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLRenderingContextBasecpp">trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLScriptRunnercpp">trunk/Source/WebCore/html/parser/HTMLScriptRunner.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmltrackTextTrackCuecpp">trunk/Source/WebCore/html/track/TextTrackCue.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmltrackTextTrackCueh">trunk/Source/WebCore/html/track/TextTrackCue.h</a></li>
<li><a href="#trunkSourceWebCoreloaderFrameLoadercpp">trunk/Source/WebCore/loader/FrameLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderappcacheApplicationCacheHostcpp">trunk/Source/WebCore/loader/appcache/ApplicationCacheHost.cpp</a></li>
<li><a href="#trunkSourceWebCorepageDOMWindowcpp">trunk/Source/WebCore/page/DOMWindow.cpp</a></li>
<li><a href="#trunkSourceWebCorepageDOMWindowh">trunk/Source/WebCore/page/DOMWindow.h</a></li>
<li><a href="#trunkSourceWebCorepageDeviceControllercpp">trunk/Source/WebCore/page/DeviceController.cpp</a></li>
<li><a href="#trunkSourceWebCorepageDeviceControllerh">trunk/Source/WebCore/page/DeviceController.h</a></li>
<li><a href="#trunkSourceWebCorepageDragControllercpp">trunk/Source/WebCore/page/DragController.cpp</a></li>
<li><a href="#trunkSourceWebCorepageEventHandlercpp">trunk/Source/WebCore/page/EventHandler.cpp</a></li>
<li><a href="#trunkSourceWebCorepageEventHandlerh">trunk/Source/WebCore/page/EventHandler.h</a></li>
<li><a href="#trunkSourceWebCorepageEventSourcecpp">trunk/Source/WebCore/page/EventSource.cpp</a></li>
<li><a href="#trunkSourceWebCorepageEventSourceh">trunk/Source/WebCore/page/EventSource.h</a></li>
<li><a href="#trunkSourceWebCorepageFrameViewcpp">trunk/Source/WebCore/page/FrameView.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockcpp">trunk/Source/WebCore/rendering/RenderBlock.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerEventQueuecpp">trunk/Source/WebCore/workers/WorkerEventQueue.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerEventQueueh">trunk/Source/WebCore/workers/WorkerEventQueue.h</a></li>
<li><a href="#trunkSourceWebCorexmlXMLHttpRequestProgressEventThrottlecpp">trunk/Source/WebCore/xml/XMLHttpRequestProgressEventThrottle.cpp</a></li>
<li><a href="#trunkSourceWebCorexmlXMLHttpRequestProgressEventThrottleh">trunk/Source/WebCore/xml/XMLHttpRequestProgressEventThrottle.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/ChangeLog        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -1,5 +1,18 @@
</span><span class="cx"> 2015-11-11  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Stop passing a PassRefPtr to dispatchEvent()
+        https://bugs.webkit.org/show_bug.cgi?id=151158
+
+        Reviewed by Alex Christensen.
+
+        Stop passing a PassRefPtr to dispatchEvent() because:
+        1. PassRefPtr is legacy and should no longer be used
+        2. We don't actually transfer ownership of the Event to the callee
+
+        Pass a C++ reference instead.
+
+2015-11-11  Chris Dumez  &lt;cdumez@apple.com&gt;
+
</ins><span class="cx">         Fix leaks in idbKeyFromInspectorObject()
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=151179
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesbatteryBatteryControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/battery/BatteryController.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/battery/BatteryController.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/battery/BatteryController.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -84,7 +84,7 @@
</span><span class="cx"> 
</span><span class="cx"> void BatteryController::didChangeBatteryStatus(const AtomicString&amp; eventType, PassRefPtr&lt;BatteryStatus&gt; batteryStatus)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;Event&gt; event = Event::create(eventType, false, false);
</del><ins>+    Ref&lt;Event&gt; event = Event::create(eventType, false, false);
</ins><span class="cx">     RefPtr&lt;BatteryStatus&gt; battery = batteryStatus;
</span><span class="cx">     for (auto&amp; listener : m_listeners)
</span><span class="cx">         listener-&gt;didChangeBatteryStatus(event, battery);
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesbatteryBatteryManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/battery/BatteryManager.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/battery/BatteryManager.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/battery/BatteryManager.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx">     return m_batteryStatus ? m_batteryStatus-&gt;level() : 1;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void BatteryManager::didChangeBatteryStatus(PassRefPtr&lt;Event&gt; event, PassRefPtr&lt;BatteryStatus&gt; batteryStatus)
</del><ins>+void BatteryManager::didChangeBatteryStatus(Event&amp; event, PassRefPtr&lt;BatteryStatus&gt; batteryStatus)
</ins><span class="cx"> {
</span><span class="cx">     updateBatteryStatus(batteryStatus);
</span><span class="cx">     dispatchEvent(event);
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesbatteryBatteryManagerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/battery/BatteryManager.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/battery/BatteryManager.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/battery/BatteryManager.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx">     double dischargingTime();
</span><span class="cx">     double level();
</span><span class="cx"> 
</span><del>-    void didChangeBatteryStatus(PassRefPtr&lt;Event&gt;, PassRefPtr&lt;BatteryStatus&gt;);
</del><ins>+    void didChangeBatteryStatus(Event&amp;, PassRefPtr&lt;BatteryStatus&gt;);
</ins><span class="cx">     void updateBatteryStatus(PassRefPtr&lt;BatteryStatus&gt;);
</span><span class="cx">     void batteryControllerDestroyed() { m_batteryController = nullptr; }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBEventDispatchercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBEventDispatcher.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBEventDispatcher.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBEventDispatcher.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -36,30 +36,30 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-bool IDBEventDispatcher::dispatch(Event* event, Vector&lt;RefPtr&lt;EventTarget&gt;&gt;&amp; eventTargets)
</del><ins>+bool IDBEventDispatcher::dispatch(Event&amp; event, Vector&lt;RefPtr&lt;EventTarget&gt;&gt;&amp; eventTargets)
</ins><span class="cx"> {
</span><span class="cx">     size_t size = eventTargets.size();
</span><span class="cx">     ASSERT(size);
</span><span class="cx"> 
</span><del>-    event-&gt;setEventPhase(Event::CAPTURING_PHASE);
</del><ins>+    event.setEventPhase(Event::CAPTURING_PHASE);
</ins><span class="cx">     for (size_t i = size - 1; i; --i) { // Don't do the first element.
</span><del>-        event-&gt;setCurrentTarget(eventTargets[i].get());
</del><ins>+        event.setCurrentTarget(eventTargets[i].get());
</ins><span class="cx">         eventTargets[i]-&gt;fireEventListeners(event);
</span><del>-        if (event-&gt;propagationStopped())
</del><ins>+        if (event.propagationStopped())
</ins><span class="cx">             goto doneDispatching;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    event-&gt;setEventPhase(Event::AT_TARGET);
-    event-&gt;setCurrentTarget(eventTargets[0].get());
</del><ins>+    event.setEventPhase(Event::AT_TARGET);
+    event.setCurrentTarget(eventTargets[0].get());
</ins><span class="cx">     eventTargets[0]-&gt;fireEventListeners(event);
</span><del>-    if (event-&gt;propagationStopped() || !event-&gt;bubbles() || event-&gt;cancelBubble())
</del><ins>+    if (event.propagationStopped() || !event.bubbles() || event.cancelBubble())
</ins><span class="cx">         goto doneDispatching;
</span><span class="cx"> 
</span><del>-    event-&gt;setEventPhase(Event::BUBBLING_PHASE);
</del><ins>+    event.setEventPhase(Event::BUBBLING_PHASE);
</ins><span class="cx">     for (size_t i = 1; i &lt; size; ++i) { // Don't do the first element.
</span><del>-        event-&gt;setCurrentTarget(eventTargets[i].get());
</del><ins>+        event.setCurrentTarget(eventTargets[i].get());
</ins><span class="cx">         eventTargets[i]-&gt;fireEventListeners(event);
</span><del>-        if (event-&gt;propagationStopped() || event-&gt;cancelBubble())
</del><ins>+        if (event.propagationStopped() || event.cancelBubble())
</ins><span class="cx">             goto doneDispatching;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -82,9 +82,9 @@
</span><span class="cx">     //        event on the window until that has been implemented).&quot; -- Jonas Sicking
</span><span class="cx"> 
</span><span class="cx"> doneDispatching:
</span><del>-    event-&gt;setCurrentTarget(nullptr);
-    event-&gt;setEventPhase(0);
-    return !event-&gt;defaultPrevented();
</del><ins>+    event.setCurrentTarget(nullptr);
+    event.setEventPhase(0);
+    return !event.defaultPrevented();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBEventDispatcherh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBEventDispatcher.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBEventDispatcher.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBEventDispatcher.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx"> 
</span><span class="cx"> class IDBEventDispatcher {
</span><span class="cx"> public:
</span><del>-    static bool dispatch(Event*, Vector&lt;RefPtr&lt;EventTarget&gt;&gt;&amp;); // The target first and then its ancestors in order of how the event bubbles.
</del><ins>+    static bool dispatch(Event&amp;, Vector&lt;RefPtr&lt;EventTarget&gt;&gt;&amp;); // The target first and then its ancestors in order of how the event bubbles.
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     IDBEventDispatcher();
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbclientIDBDatabaseImplcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/client/IDBDatabaseImpl.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/client/IDBDatabaseImpl.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/indexeddb/client/IDBDatabaseImpl.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -331,7 +331,7 @@
</span><span class="cx">     
</span><span class="cx">     Ref&lt;Event&gt; event = IDBVersionChangeEvent::create(currentVersion, requestedVersion, eventNames().versionchangeEvent);
</span><span class="cx">     event-&gt;setTarget(this);
</span><del>-    scriptExecutionContext()-&gt;eventQueue().enqueueEvent(adoptRef(&amp;event.leakRef()));
</del><ins>+    scriptExecutionContext()-&gt;eventQueue().enqueueEvent(WTF::move(event));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void IDBDatabase::didCreateIndexInfo(const IDBIndexInfo&amp; info)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbclientIDBRequestImplcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/client/IDBRequestImpl.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/client/IDBRequestImpl.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/indexeddb/client/IDBRequestImpl.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -194,16 +194,14 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     event-&gt;setTarget(this);
</span><del>-    scriptExecutionContext()-&gt;eventQueue().enqueueEvent(&amp;event.get());
</del><ins>+    scriptExecutionContext()-&gt;eventQueue().enqueueEvent(WTF::move(event));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool IDBRequest::dispatchEvent(PassRefPtr&lt;Event&gt; prpEvent)
</del><ins>+bool IDBRequest::dispatchEvent(Event&amp; event)
</ins><span class="cx"> {
</span><del>-    LOG(IndexedDB, &quot;IDBRequest::dispatchEvent - %s&quot;, prpEvent-&gt;type().characters8());
</del><ins>+    LOG(IndexedDB, &quot;IDBRequest::dispatchEvent - %s&quot;, event.type().characters8());
</ins><span class="cx"> 
</span><del>-    RefPtr&lt;Event&gt; event = prpEvent;
-
-    if (event-&gt;type() != eventNames().blockedEvent)
</del><ins>+    if (event.type() != eventNames().blockedEvent)
</ins><span class="cx">         m_readyState = IDBRequestReadyState::Done;
</span><span class="cx"> 
</span><span class="cx">     Vector&lt;RefPtr&lt;EventTarget&gt;&gt; targets;
</span><span class="lines">@@ -217,7 +215,7 @@
</span><span class="cx">     bool dontPreventDefault;
</span><span class="cx">     {
</span><span class="cx">         TransactionActivator activator(m_transaction.get());
</span><del>-        dontPreventDefault = IDBEventDispatcher::dispatch(event.get(), targets);
</del><ins>+        dontPreventDefault = IDBEventDispatcher::dispatch(event, targets);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     m_hasPendingActivity = false;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbclientIDBRequestImplh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/client/IDBRequestImpl.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/client/IDBRequestImpl.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/indexeddb/client/IDBRequestImpl.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -78,7 +78,7 @@
</span><span class="cx">     using RefCounted&lt;IDBRequest&gt;::deref;
</span><span class="cx"> 
</span><span class="cx">     void enqueueEvent(Ref&lt;Event&gt;&amp;&amp;);
</span><del>-    virtual bool dispatchEvent(PassRefPtr&lt;Event&gt;) override final;
</del><ins>+    virtual bool dispatchEvent(Event&amp;) override final;
</ins><span class="cx"> 
</span><span class="cx">     IDBConnectionToServer&amp; connection() { return m_connection; }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbclientIDBTransactionImplcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/client/IDBTransactionImpl.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/client/IDBTransactionImpl.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/indexeddb/client/IDBTransactionImpl.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -346,7 +346,7 @@
</span><span class="cx">     enqueueEvent(Event::create(eventNames().abortEvent, true, false));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void IDBTransaction::enqueueEvent(Ref&lt;Event&gt; event)
</del><ins>+void IDBTransaction::enqueueEvent(Ref&lt;Event&gt;&amp;&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(m_state != IndexedDB::TransactionState::Finished);
</span><span class="cx"> 
</span><span class="lines">@@ -354,22 +354,22 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     event-&gt;setTarget(this);
</span><del>-    scriptExecutionContext()-&gt;eventQueue().enqueueEvent(&amp;event.get());
</del><ins>+    scriptExecutionContext()-&gt;eventQueue().enqueueEvent(WTF::move(event));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool IDBTransaction::dispatchEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+bool IDBTransaction::dispatchEvent(Event&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     LOG(IndexedDB, &quot;IDBTransaction::dispatchEvent&quot;);
</span><span class="cx"> 
</span><span class="cx">     ASSERT(scriptExecutionContext());
</span><del>-    ASSERT(event-&gt;target() == this);
-    ASSERT(event-&gt;type() == eventNames().completeEvent || event-&gt;type() == eventNames().abortEvent);
</del><ins>+    ASSERT(event.target() == this);
+    ASSERT(event.type() == eventNames().completeEvent || event.type() == eventNames().abortEvent);
</ins><span class="cx"> 
</span><span class="cx">     Vector&lt;RefPtr&lt;EventTarget&gt;&gt; targets;
</span><span class="cx">     targets.append(this);
</span><span class="cx">     targets.append(db());
</span><span class="cx"> 
</span><del>-    return IDBEventDispatcher::dispatch(event.get(), targets);
</del><ins>+    return IDBEventDispatcher::dispatch(event, targets);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Ref&lt;IDBObjectStore&gt; IDBTransaction::createObjectStore(const IDBObjectStoreInfo&amp; info)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbclientIDBTransactionImplh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/client/IDBTransactionImpl.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/client/IDBTransactionImpl.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/indexeddb/client/IDBTransactionImpl.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx">     virtual void refEventTarget() override final { ref(); }
</span><span class="cx">     virtual void derefEventTarget() override final { deref(); }
</span><span class="cx">     using EventTarget::dispatchEvent;
</span><del>-    virtual bool dispatchEvent(PassRefPtr&lt;Event&gt;) override final;
</del><ins>+    virtual bool dispatchEvent(Event&amp;) override final;
</ins><span class="cx"> 
</span><span class="cx">     virtual const char* activeDOMObjectName() const override final;
</span><span class="cx">     virtual bool canSuspendForPageCache() const override final;
</span><span class="lines">@@ -128,7 +128,7 @@
</span><span class="cx"> 
</span><span class="cx">     void fireOnComplete();
</span><span class="cx">     void fireOnAbort();
</span><del>-    void enqueueEvent(Ref&lt;Event&gt;);
</del><ins>+    void enqueueEvent(Ref&lt;Event&gt;&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     Ref&lt;IDBRequest&gt; requestIndexRecord(ScriptExecutionContext&amp;, IDBIndex&amp;, IndexedDB::IndexRecordType, const IDBKeyRangeData&amp;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddblegacyLegacyDatabasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyDatabase.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyDatabase.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyDatabase.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx">         // connection called setVersion, but the frontend connection is being
</span><span class="cx">         // closed before they could fire.
</span><span class="cx">         for (auto&amp; event : m_enqueuedEvents)
</span><del>-            context-&gt;eventQueue().cancelEvent(*event);
</del><ins>+            context-&gt;eventQueue().cancelEvent(event);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -321,7 +321,7 @@
</span><span class="cx">     // connection called setVersion, but the frontend connection is being
</span><span class="cx">     // closed before they could fire.
</span><span class="cx">     for (auto&amp; event : m_enqueuedEvents) {
</span><del>-        bool removed = eventQueue.cancelEvent(*event);
</del><ins>+        bool removed = eventQueue.cancelEvent(event);
</ins><span class="cx">         ASSERT_UNUSED(removed, removed);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -341,25 +341,25 @@
</span><span class="cx">     enqueueEvent(LegacyVersionChangeEvent::create(oldVersion, newVersion, eventNames().versionchangeEvent));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void LegacyDatabase::enqueueEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+void LegacyDatabase::enqueueEvent(Ref&lt;Event&gt;&amp;&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!m_contextStopped);
</span><span class="cx">     ASSERT(!m_isClosed);
</span><span class="cx">     ASSERT(scriptExecutionContext());
</span><span class="cx">     event-&gt;setTarget(this);
</span><del>-    scriptExecutionContext()-&gt;eventQueue().enqueueEvent(event.get());
-    m_enqueuedEvents.append(event);
</del><ins>+    scriptExecutionContext()-&gt;eventQueue().enqueueEvent(event.copyRef());
+    m_enqueuedEvents.append(WTF::move(event));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool LegacyDatabase::dispatchEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+bool LegacyDatabase::dispatchEvent(Event&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     LOG(StorageAPI, &quot;LegacyDatabase::dispatchEvent&quot;);
</span><del>-    ASSERT(event-&gt;type() == eventNames().versionchangeEvent);
</del><ins>+    ASSERT(event.type() == eventNames().versionchangeEvent);
</ins><span class="cx">     for (size_t i = 0; i &lt; m_enqueuedEvents.size(); ++i) {
</span><del>-        if (m_enqueuedEvents[i].get() == event.get())
</del><ins>+        if (m_enqueuedEvents[i].ptr() == &amp;event)
</ins><span class="cx">             m_enqueuedEvents.remove(i);
</span><span class="cx">     }
</span><del>-    return EventTarget::dispatchEvent(event.get());
</del><ins>+    return EventTarget::dispatchEvent(event);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> int64_t LegacyDatabase::findObjectStoreId(const String&amp; name) const
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddblegacyLegacyDatabaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyDatabase.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyDatabase.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyDatabase.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -84,10 +84,10 @@
</span><span class="cx">     bool isClosePending() const { return m_closePending; }
</span><span class="cx">     void forceClose();
</span><span class="cx">     const IDBDatabaseMetadata metadata() const { return m_metadata; }
</span><del>-    void enqueueEvent(PassRefPtr&lt;Event&gt;);
</del><ins>+    void enqueueEvent(Ref&lt;Event&gt;&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     using EventTarget::dispatchEvent;
</span><del>-    virtual bool dispatchEvent(PassRefPtr&lt;Event&gt;) override;
</del><ins>+    virtual bool dispatchEvent(Event&amp;) override;
</ins><span class="cx"> 
</span><span class="cx">     int64_t findObjectStoreId(const String&amp; name) const;
</span><span class="cx">     bool containsObjectStore(const String&amp; name) const
</span><span class="lines">@@ -130,7 +130,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Keep track of the versionchange events waiting to be fired on this
</span><span class="cx">     // database so that we can cancel them if the database closes.
</span><del>-    Vector&lt;RefPtr&lt;Event&gt;&gt; m_enqueuedEvents;
</del><ins>+    Vector&lt;Ref&lt;Event&gt;&gt; m_enqueuedEvents;
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;IDBDatabaseCallbacks&gt; m_databaseCallbacks;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddblegacyLegacyOpenDBRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyOpenDBRequest.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyOpenDBRequest.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyOpenDBRequest.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -138,11 +138,11 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool LegacyOpenDBRequest::dispatchEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+bool LegacyOpenDBRequest::dispatchEvent(Event&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     // If the connection closed between onUpgradeNeeded and the delivery of the &quot;success&quot; event,
</span><span class="cx">     // an &quot;error&quot; event should be fired instead.
</span><del>-    if (event-&gt;type() == eventNames().successEvent &amp;&amp; m_result-&gt;type() == IDBAny::Type::IDBDatabase &amp;&amp; m_result-&gt;legacyDatabase()-&gt;isClosePending()) {
</del><ins>+    if (event.type() == eventNames().successEvent &amp;&amp; m_result-&gt;type() == IDBAny::Type::IDBDatabase &amp;&amp; m_result-&gt;legacyDatabase()-&gt;isClosePending()) {
</ins><span class="cx">         m_result = nullptr;
</span><span class="cx">         onError(IDBDatabaseError::create(IDBDatabaseException::AbortError, &quot;The connection was closed.&quot;));
</span><span class="cx">         return false;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddblegacyLegacyOpenDBRequesth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyOpenDBRequest.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyOpenDBRequest.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyOpenDBRequest.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx"> 
</span><span class="cx">     // EventTarget
</span><span class="cx">     virtual EventTargetInterface eventTargetInterface() const override final;
</span><del>-    virtual bool dispatchEvent(PassRefPtr&lt;Event&gt;) override final;
</del><ins>+    virtual bool dispatchEvent(Event&amp;) override final;
</ins><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="cx">     virtual bool shouldEnqueueEvent() const override;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddblegacyLegacyRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyRequest.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyRequest.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyRequest.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -166,7 +166,7 @@
</span><span class="cx"> 
</span><span class="cx">     EventQueue&amp; eventQueue = scriptExecutionContext()-&gt;eventQueue();
</span><span class="cx">     for (auto&amp; event : m_enqueuedEvents) {
</span><del>-        bool removed = eventQueue.cancelEvent(*event);
</del><ins>+        bool removed = eventQueue.cancelEvent(event);
</ins><span class="cx">         ASSERT_UNUSED(removed, removed);
</span><span class="cx">     }
</span><span class="cx">     m_enqueuedEvents.clear();
</span><span class="lines">@@ -262,7 +262,7 @@
</span><span class="cx">     enqueueEvent(Event::create(eventNames().errorEvent, true, true));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static PassRefPtr&lt;Event&gt; createSuccessEvent()
</del><ins>+static Ref&lt;Event&gt; createSuccessEvent()
</ins><span class="cx"> {
</span><span class="cx">     return Event::create(eventNames().successEvent, false, false);
</span><span class="cx"> }
</span><span class="lines">@@ -466,7 +466,7 @@
</span><span class="cx">     return IDBRequestEventTargetInterfaceType;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool LegacyRequest::dispatchEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+bool LegacyRequest::dispatchEvent(Event&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     LOG(StorageAPI, &quot;LegacyRequest::dispatchEvent&quot;);
</span><span class="cx">     ASSERT(m_readyState == IDBRequestReadyState::Pending);
</span><span class="lines">@@ -474,16 +474,16 @@
</span><span class="cx">     ASSERT(m_hasPendingActivity);
</span><span class="cx">     ASSERT(m_enqueuedEvents.size());
</span><span class="cx">     ASSERT(scriptExecutionContext());
</span><del>-    ASSERT(event-&gt;target() == this);
-    ASSERT_WITH_MESSAGE(m_readyState &lt; IDBRequestReadyState::Done, &quot;When dispatching event %s, m_readyState &lt; DONE(%d), was %d&quot;, event-&gt;type().string().utf8().data(), static_cast&lt;int&gt;(IDBRequestReadyState::Done), static_cast&lt;int&gt;(m_readyState));
</del><ins>+    ASSERT(event.target() == this);
+    ASSERT_WITH_MESSAGE(m_readyState &lt; IDBRequestReadyState::Done, &quot;When dispatching event %s, m_readyState &lt; DONE(%d), was %d&quot;, event.type().string().utf8().data(), static_cast&lt;int&gt;(IDBRequestReadyState::Done), static_cast&lt;int&gt;(m_readyState));
</ins><span class="cx"> 
</span><span class="cx">     DOMRequestState::Scope scope(m_requestState);
</span><span class="cx"> 
</span><del>-    if (event-&gt;type() != eventNames().blockedEvent)
</del><ins>+    if (event.type() != eventNames().blockedEvent)
</ins><span class="cx">         m_readyState = IDBRequestReadyState::Done;
</span><span class="cx"> 
</span><span class="cx">     for (size_t i = 0; i &lt; m_enqueuedEvents.size(); ++i) {
</span><del>-        if (m_enqueuedEvents[i].get() == event.get())
</del><ins>+        if (m_enqueuedEvents[i].ptr() == &amp;event)
</ins><span class="cx">             m_enqueuedEvents.remove(i);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -500,7 +500,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Cursor properties should not updated until the success event is being dispatched.
</span><span class="cx">     RefPtr&lt;LegacyCursor&gt; cursorToNotify;
</span><del>-    if (event-&gt;type() == eventNames().successEvent) {
</del><ins>+    if (event.type() == eventNames().successEvent) {
</ins><span class="cx">         cursorToNotify = getResultCursor();
</span><span class="cx">         if (cursorToNotify) {
</span><span class="cx">             cursorToNotify-&gt;setValueReady(requestState(), m_cursorKey.release(), m_cursorPrimaryKey.release(), m_cursorValue);
</span><span class="lines">@@ -508,19 +508,19 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (event-&gt;type() == eventNames().upgradeneededEvent) {
</del><ins>+    if (event.type() == eventNames().upgradeneededEvent) {
</ins><span class="cx">         ASSERT(!m_didFireUpgradeNeededEvent);
</span><span class="cx">         m_didFireUpgradeNeededEvent = true;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // FIXME: When we allow custom event dispatching, this will probably need to change.
</span><del>-    ASSERT_WITH_MESSAGE(event-&gt;type() == eventNames().successEvent || event-&gt;type() == eventNames().errorEvent || event-&gt;type() == eventNames().blockedEvent || event-&gt;type() == eventNames().upgradeneededEvent, &quot;event type was %s&quot;, event-&gt;type().string().utf8().data());
-    const bool setTransactionActive = m_transaction &amp;&amp; (event-&gt;type() == eventNames().successEvent || event-&gt;type() == eventNames().upgradeneededEvent || (event-&gt;type() == eventNames().errorEvent &amp;&amp; m_errorCode != IDBDatabaseException::AbortError));
</del><ins>+    ASSERT_WITH_MESSAGE(event.type() == eventNames().successEvent || event.type() == eventNames().errorEvent || event.type() == eventNames().blockedEvent || event.type() == eventNames().upgradeneededEvent, &quot;event type was %s&quot;, event.type().string().utf8().data());
+    const bool setTransactionActive = m_transaction &amp;&amp; (event.type() == eventNames().successEvent || event.type() == eventNames().upgradeneededEvent || (event.type() == eventNames().errorEvent &amp;&amp; m_errorCode != IDBDatabaseException::AbortError));
</ins><span class="cx"> 
</span><span class="cx">     if (setTransactionActive)
</span><span class="cx">         m_transaction-&gt;setActive(true);
</span><span class="cx"> 
</span><del>-    bool dontPreventDefault = IDBEventDispatcher::dispatch(event.get(), targets);
</del><ins>+    bool dontPreventDefault = IDBEventDispatcher::dispatch(event, targets);
</ins><span class="cx"> 
</span><span class="cx">     if (m_transaction) {
</span><span class="cx">         if (m_readyState == IDBRequestReadyState::Done)
</span><span class="lines">@@ -528,7 +528,7 @@
</span><span class="cx"> 
</span><span class="cx">         // Possibly abort the transaction. This must occur after unregistering (so this request
</span><span class="cx">         // doesn't receive a second error) and before deactivating (which might trigger commit).
</span><del>-        if (event-&gt;type() == eventNames().errorEvent &amp;&amp; dontPreventDefault &amp;&amp; !m_requestAborted) {
</del><ins>+        if (event.type() == eventNames().errorEvent &amp;&amp; dontPreventDefault &amp;&amp; !m_requestAborted) {
</ins><span class="cx">             m_transaction-&gt;setError(m_error, m_errorMessage);
</span><span class="cx">             m_transaction-&gt;abort(IGNORE_EXCEPTION);
</span><span class="cx">         }
</span><span class="lines">@@ -541,7 +541,7 @@
</span><span class="cx">     if (cursorToNotify)
</span><span class="cx">         cursorToNotify-&gt;postSuccessHandlerCallback();
</span><span class="cx"> 
</span><del>-    if (m_readyState == IDBRequestReadyState::Done &amp;&amp; (!cursorToNotify || m_cursorFinished) &amp;&amp; event-&gt;type() != eventNames().upgradeneededEvent)
</del><ins>+    if (m_readyState == IDBRequestReadyState::Done &amp;&amp; (!cursorToNotify || m_cursorFinished) &amp;&amp; event.type() != eventNames().upgradeneededEvent)
</ins><span class="cx">         m_hasPendingActivity = false;
</span><span class="cx"> 
</span><span class="cx">     return dontPreventDefault;
</span><span class="lines">@@ -565,7 +565,7 @@
</span><span class="cx">     m_readyState = IDBRequestReadyState::Pending;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void LegacyRequest::enqueueEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+void LegacyRequest::enqueueEvent(Ref&lt;Event&gt;&amp;&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(m_readyState == IDBRequestReadyState::Pending || m_readyState == IDBRequestReadyState::Done);
</span><span class="cx"> 
</span><span class="lines">@@ -576,8 +576,8 @@
</span><span class="cx"> 
</span><span class="cx">     event-&gt;setTarget(this);
</span><span class="cx"> 
</span><del>-    if (scriptExecutionContext()-&gt;eventQueue().enqueueEvent(event.get()))
-        m_enqueuedEvents.append(event);
</del><ins>+    if (scriptExecutionContext()-&gt;eventQueue().enqueueEvent(event.copyRef()))
+        m_enqueuedEvents.append(WTF::move(event));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddblegacyLegacyRequesth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyRequest.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyRequest.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyRequest.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx">     virtual void uncaughtExceptionInEventHandler() override final;
</span><span class="cx"> 
</span><span class="cx">     using EventTarget::dispatchEvent;
</span><del>-    virtual bool dispatchEvent(PassRefPtr&lt;Event&gt;) override;
</del><ins>+    virtual bool dispatchEvent(Event&amp;) override;
</ins><span class="cx"> 
</span><span class="cx">     void transactionDidFinishAndDispatch();
</span><span class="cx"> 
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="cx">     LegacyRequest(ScriptExecutionContext*, PassRefPtr&lt;LegacyAny&gt; source, IDBDatabaseBackend::TaskType, LegacyTransaction*);
</span><del>-    void enqueueEvent(PassRefPtr&lt;Event&gt;);
</del><ins>+    void enqueueEvent(Ref&lt;Event&gt;&amp;&amp;);
</ins><span class="cx">     virtual bool shouldEnqueueEvent() const;
</span><span class="cx">     void onSuccessInternal(PassRefPtr&lt;SerializedScriptValue&gt;);
</span><span class="cx">     void onSuccessInternal(const Deprecated::ScriptValue&amp;);
</span><span class="lines">@@ -139,7 +139,7 @@
</span><span class="cx">     const IDBDatabaseBackend::TaskType m_taskType;
</span><span class="cx"> 
</span><span class="cx">     bool m_hasPendingActivity;
</span><del>-    Vector&lt;RefPtr&lt;Event&gt;&gt; m_enqueuedEvents;
</del><ins>+    Vector&lt;Ref&lt;Event&gt;&gt; m_enqueuedEvents;
</ins><span class="cx"> 
</span><span class="cx">     // Only used if the result type will be a cursor.
</span><span class="cx">     IndexedDB::CursorType m_cursorType;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddblegacyLegacyTransactioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyTransaction.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyTransaction.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyTransaction.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -306,13 +306,13 @@
</span><span class="cx">     return m_hasPendingActivity &amp;&amp; !m_contextStopped;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool LegacyTransaction::dispatchEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+bool LegacyTransaction::dispatchEvent(Event&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     LOG(StorageAPI, &quot;LegacyTransaction::dispatchEvent&quot;);
</span><span class="cx">     ASSERT(m_state != Finished);
</span><span class="cx">     ASSERT(m_hasPendingActivity);
</span><span class="cx">     ASSERT(scriptExecutionContext());
</span><del>-    ASSERT(event-&gt;target() == this);
</del><ins>+    ASSERT(event.target() == this);
</ins><span class="cx">     m_state = Finished;
</span><span class="cx"> 
</span><span class="cx">     // Break reference cycles.
</span><span class="lines">@@ -328,8 +328,8 @@
</span><span class="cx">     targets.append(db());
</span><span class="cx"> 
</span><span class="cx">     // FIXME: When we allow custom event dispatching, this will probably need to change.
</span><del>-    ASSERT(event-&gt;type() == eventNames().completeEvent || event-&gt;type() == eventNames().abortEvent);
-    bool returnValue = IDBEventDispatcher::dispatch(event.get(), targets);
</del><ins>+    ASSERT(event.type() == eventNames().completeEvent || event.type() == eventNames().abortEvent);
+    bool returnValue = IDBEventDispatcher::dispatch(event, targets);
</ins><span class="cx">     // FIXME: Try to construct a test where |this| outlives openDBRequest and we
</span><span class="cx">     // get a crash.
</span><span class="cx">     if (m_openDBRequest) {
</span><span class="lines">@@ -359,14 +359,14 @@
</span><span class="cx">     return &quot;LegacyTransaction&quot;;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void LegacyTransaction::enqueueEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+void LegacyTransaction::enqueueEvent(Ref&lt;Event&gt;&amp;&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT_WITH_MESSAGE(m_state != Finished, &quot;A finished transaction tried to enqueue an event of type %s.&quot;, event-&gt;type().string().utf8().data());
</span><span class="cx">     if (m_contextStopped || !scriptExecutionContext())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     event-&gt;setTarget(this);
</span><del>-    scriptExecutionContext()-&gt;eventQueue().enqueueEvent(event);
</del><ins>+    scriptExecutionContext()-&gt;eventQueue().enqueueEvent(WTF::move(event));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> IDBDatabaseBackend* LegacyTransaction::backendDB() const
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddblegacyLegacyTransactionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyTransaction.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyTransaction.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyTransaction.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -96,7 +96,7 @@
</span><span class="cx">     virtual ScriptExecutionContext* scriptExecutionContext() const override final { return ActiveDOMObject::scriptExecutionContext(); }
</span><span class="cx"> 
</span><span class="cx">     using EventTarget::dispatchEvent;
</span><del>-    virtual bool dispatchEvent(PassRefPtr&lt;Event&gt;) override final;
</del><ins>+    virtual bool dispatchEvent(Event&amp;) override final;
</ins><span class="cx"> 
</span><span class="cx">     // ActiveDOMObject
</span><span class="cx">     virtual bool hasPendingActivity() const override final;
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx"> private:
</span><span class="cx">     LegacyTransaction(ScriptExecutionContext*, int64_t, const Vector&lt;String&gt;&amp;, IndexedDB::TransactionMode, LegacyDatabase*, LegacyOpenDBRequest*, const IDBDatabaseMetadata&amp;);
</span><span class="cx"> 
</span><del>-    void enqueueEvent(PassRefPtr&lt;Event&gt;);
</del><ins>+    void enqueueEvent(Ref&lt;Event&gt;&amp;&amp;);
</ins><span class="cx">     void closeOpenCursors();
</span><span class="cx"> 
</span><span class="cx">     void registerOpenCursor(LegacyCursor*);
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaStreamcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -299,13 +299,11 @@
</span><span class="cx"> 
</span><span class="cx"> void MediaStream::activityEventTimerFired()
</span><span class="cx"> {
</span><del>-    Vector&lt;RefPtr&lt;Event&gt;&gt; events;
</del><ins>+    Vector&lt;Ref&lt;Event&gt;&gt; events;
</ins><span class="cx">     events.swap(m_scheduledActivityEvents);
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; event : events)
</span><del>-        dispatchEvent(event.release());
-
-    events.clear();
</del><ins>+        dispatchEvent(event);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> URLRegistry&amp; MediaStream::registry() const
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaStreamh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaStream.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaStream.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStream.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -128,7 +128,7 @@
</span><span class="cx">     HashMap&lt;String, RefPtr&lt;MediaStreamTrack&gt;&gt; m_trackSet;
</span><span class="cx"> 
</span><span class="cx">     Timer m_activityEventTimer;
</span><del>-    Vector&lt;RefPtr&lt;Event&gt;&gt; m_scheduledActivityEvents;
</del><ins>+    Vector&lt;Ref&lt;Event&gt;&gt; m_scheduledActivityEvents;
</ins><span class="cx"> 
</span><span class="cx">     Vector&lt;Observer*&gt; m_observers;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCDTMFSendercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -145,9 +145,9 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RTCDTMFSender::scheduleDispatchEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+void RTCDTMFSender::scheduleDispatchEvent(Ref&lt;Event&gt;&amp;&amp; event)
</ins><span class="cx"> {
</span><del>-    m_scheduledEvents.append(event);
</del><ins>+    m_scheduledEvents.append(WTF::move(event));
</ins><span class="cx"> 
</span><span class="cx">     if (!m_scheduledEventTimer.isActive())
</span><span class="cx">         m_scheduledEventTimer.startOneShot(0);
</span><span class="lines">@@ -158,11 +158,11 @@
</span><span class="cx">     if (m_stopped)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    Vector&lt;RefPtr&lt;Event&gt;&gt; events;
</del><ins>+    Vector&lt;Ref&lt;Event&gt;&gt; events;
</ins><span class="cx">     events.swap(m_scheduledEvents);
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; event : events)
</span><del>-        dispatchEvent(event.release());
</del><ins>+        dispatchEvent(event);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCDTMFSenderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx">     const char* activeDOMObjectName() const override;
</span><span class="cx">     bool canSuspendForPageCache() const override;
</span><span class="cx"> 
</span><del>-    void scheduleDispatchEvent(PassRefPtr&lt;Event&gt;);
</del><ins>+    void scheduleDispatchEvent(Ref&lt;Event&gt;&amp;&amp;);
</ins><span class="cx">     void scheduledEventTimerFired();
</span><span class="cx"> 
</span><span class="cx">     // EventTarget
</span><span class="lines">@@ -90,7 +90,7 @@
</span><span class="cx">     bool m_stopped;
</span><span class="cx"> 
</span><span class="cx">     Timer m_scheduledEventTimer;
</span><del>-    Vector&lt;RefPtr&lt;Event&gt;&gt; m_scheduledEvents;
</del><ins>+    Vector&lt;Ref&lt;Event&gt;&gt; m_scheduledEvents;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCDataChannelcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -304,9 +304,9 @@
</span><span class="cx">     m_scriptExecutionContext = nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RTCDataChannel::scheduleDispatchEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+void RTCDataChannel::scheduleDispatchEvent(Ref&lt;Event&gt;&amp;&amp; event)
</ins><span class="cx"> {
</span><del>-    m_scheduledEvents.append(event);
</del><ins>+    m_scheduledEvents.append(WTF::move(event));
</ins><span class="cx"> 
</span><span class="cx">     if (!m_scheduledEventTimer.isActive())
</span><span class="cx">         m_scheduledEventTimer.startOneShot(0);
</span><span class="lines">@@ -317,11 +317,11 @@
</span><span class="cx">     if (m_stopped)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    Vector&lt;RefPtr&lt;Event&gt;&gt; events;
</del><ins>+    Vector&lt;Ref&lt;Event&gt;&gt; events;
</ins><span class="cx">     events.swap(m_scheduledEvents);
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; event : events)
</span><del>-        dispatchEvent(event.release());
</del><ins>+        dispatchEvent(event);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCDataChannelh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx"> private:
</span><span class="cx">     RTCDataChannel(ScriptExecutionContext*, std::unique_ptr&lt;RTCDataChannelHandler&gt;);
</span><span class="cx"> 
</span><del>-    void scheduleDispatchEvent(PassRefPtr&lt;Event&gt;);
</del><ins>+    void scheduleDispatchEvent(Ref&lt;Event&gt;&amp;&amp;);
</ins><span class="cx">     void scheduledEventTimerFired();
</span><span class="cx"> 
</span><span class="cx">     // EventTarget
</span><span class="lines">@@ -110,7 +110,7 @@
</span><span class="cx">     BinaryType m_binaryType;
</span><span class="cx"> 
</span><span class="cx">     Timer m_scheduledEventTimer;
</span><del>-    Vector&lt;RefPtr&lt;Event&gt;&gt; m_scheduledEvents;
</del><ins>+    Vector&lt;Ref&lt;Event&gt;&gt; m_scheduledEvents;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCPeerConnectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -725,9 +725,9 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RTCPeerConnection::scheduleDispatchEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+void RTCPeerConnection::scheduleDispatchEvent(Ref&lt;Event&gt;&amp;&amp; event)
</ins><span class="cx"> {
</span><del>-    m_scheduledEvents.append(event);
</del><ins>+    m_scheduledEvents.append(WTF::move(event));
</ins><span class="cx"> 
</span><span class="cx">     if (!m_scheduledEventTimer.isActive())
</span><span class="cx">         m_scheduledEventTimer.startOneShot(0);
</span><span class="lines">@@ -738,11 +738,11 @@
</span><span class="cx">     if (m_stopped)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    Vector&lt;RefPtr&lt;Event&gt;&gt; events;
</del><ins>+    Vector&lt;Ref&lt;Event&gt;&gt; events;
</ins><span class="cx">     events.swap(m_scheduledEvents);
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; event : events)
</span><del>-        dispatchEvent(event.release());
</del><ins>+        dispatchEvent(event);
</ins><span class="cx"> 
</span><span class="cx">     events.clear();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCPeerConnectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -127,7 +127,7 @@
</span><span class="cx">     RTCPeerConnection(ScriptExecutionContext&amp;, PassRefPtr&lt;RTCConfiguration&gt;, ExceptionCode&amp;);
</span><span class="cx"> 
</span><span class="cx">     static RefPtr&lt;RTCConfiguration&gt; parseConfiguration(const Dictionary&amp; configuration, ExceptionCode&amp;);
</span><del>-    void scheduleDispatchEvent(PassRefPtr&lt;Event&gt;);
</del><ins>+    void scheduleDispatchEvent(Ref&lt;Event&gt;&amp;&amp;);
</ins><span class="cx">     void scheduledEventTimerFired();
</span><span class="cx">     bool hasLocalStreamWithTrackId(const String&amp; trackId);
</span><span class="cx"> 
</span><span class="lines">@@ -159,7 +159,7 @@
</span><span class="cx">     std::unique_ptr&lt;RTCPeerConnectionHandler&gt; m_peerHandler;
</span><span class="cx"> 
</span><span class="cx">     Timer m_scheduledEventTimer;
</span><del>-    Vector&lt;RefPtr&lt;Event&gt;&gt; m_scheduledEvents;
</del><ins>+    Vector&lt;Ref&lt;Event&gt;&gt; m_scheduledEvents;
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;RTCConfiguration&gt; m_configuration;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulespluginsQuickTimePluginReplacementmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.mm (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.mm        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.mm        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -243,8 +243,8 @@
</span><span class="cx"> void QuickTimePluginReplacement::postEvent(const String&amp; eventName)
</span><span class="cx"> {
</span><span class="cx">     Ref&lt;HTMLPlugInElement&gt; protect(*m_parentElement);
</span><del>-    RefPtr&lt;Event&gt; event = Event::create(eventName, false, true);
-    m_parentElement-&gt;dispatchEvent(event.get());
</del><ins>+    Ref&lt;Event&gt; event = Event::create(eventName, false, true);
+    m_parentElement-&gt;dispatchEvent(event);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesproximityDeviceProximityControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/proximity/DeviceProximityController.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/proximity/DeviceProximityController.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/proximity/DeviceProximityController.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx">     return deviceProximityClient()-&gt;hasLastData();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;Event&gt; DeviceProximityController::getLastEvent()
</del><ins>+RefPtr&lt;Event&gt; DeviceProximityController::getLastEvent()
</ins><span class="cx"> {
</span><span class="cx">     return DeviceProximityEvent::create(eventNames().webkitdeviceproximityEvent, deviceProximityClient()-&gt;value(), deviceProximityClient()-&gt;min(), deviceProximityClient()-&gt;max());
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesproximityDeviceProximityControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/proximity/DeviceProximityController.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/proximity/DeviceProximityController.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/proximity/DeviceProximityController.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx">     DeviceProximityClient* deviceProximityClient();
</span><span class="cx"> 
</span><span class="cx">     virtual bool hasLastData();
</span><del>-    virtual PassRefPtr&lt;Event&gt; getLastEvent();
</del><ins>+    virtual RefPtr&lt;Event&gt; getLastEvent();
</ins><span class="cx"> 
</span><span class="cx">     static const char* supplementName();
</span><span class="cx">     static DeviceProximityController* from(Page*);
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebsocketsWebSocketcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/WebSocket.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/WebSocket.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/Modules/websockets/WebSocket.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -648,7 +648,7 @@
</span><span class="cx">     if (m_shouldDelayEventFiring)
</span><span class="cx">         m_pendingEvents.append(WTF::move(event));
</span><span class="cx">     else
</span><del>-        dispatchEvent(WTF::move(event));
</del><ins>+        dispatchEvent(event);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }  // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorecssFontLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/FontLoader.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/FontLoader.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/css/FontLoader.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -166,9 +166,9 @@
</span><span class="cx">     return !m_numLoadingFromCSS &amp;&amp; !m_numLoadingFromJS;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void FontLoader::scheduleEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+void FontLoader::scheduleEvent(Ref&lt;Event&gt;&amp;&amp; event)
</ins><span class="cx"> {
</span><del>-    m_pendingEvents.append(event);
</del><ins>+    m_pendingEvents.append(WTF::move(event));
</ins><span class="cx">     if (!m_pendingEventsTimer.isActive())
</span><span class="cx">         m_pendingEventsTimer.startOneShot(0);
</span><span class="cx"> }
</span><span class="lines">@@ -178,17 +178,17 @@
</span><span class="cx">     if (m_pendingEvents.isEmpty() &amp;&amp; !m_loadingDoneEvent &amp;&amp; !m_callbacks.isEmpty())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    Vector&lt;RefPtr&lt;Event&gt;&gt; pendingEvents;
</del><ins>+    Vector&lt;Ref&lt;Event&gt;&gt; pendingEvents;
</ins><span class="cx">     m_pendingEvents.swap(pendingEvents);
</span><span class="cx"> 
</span><span class="cx">     bool loadingDone = false;
</span><span class="cx">     if (m_loadingDoneEvent) {
</span><del>-        pendingEvents.append(m_loadingDoneEvent.release());
</del><ins>+        pendingEvents.append(m_loadingDoneEvent.releaseNonNull());
</ins><span class="cx">         loadingDone = true;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     for (size_t index = 0; index &lt; pendingEvents.size(); ++index)
</span><del>-        dispatchEvent(pendingEvents[index].release());
</del><ins>+        dispatchEvent(pendingEvents[index]);
</ins><span class="cx"> 
</span><span class="cx">     if (loadingDone &amp;&amp; !m_callbacks.isEmpty()) {
</span><span class="cx">         Vector&lt;RefPtr&lt;VoidCallback&gt;&gt; callbacks;
</span></span></pre></div>
<a id="trunkSourceWebCorecssFontLoaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/FontLoader.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/FontLoader.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/css/FontLoader.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -99,7 +99,7 @@
</span><span class="cx">     EventTargetData m_eventTargetData;
</span><span class="cx">     unsigned m_numLoadingFromCSS;
</span><span class="cx">     unsigned m_numLoadingFromJS;
</span><del>-    Vector&lt;RefPtr&lt;Event&gt;&gt; m_pendingEvents;
</del><ins>+    Vector&lt;Ref&lt;Event&gt;&gt; m_pendingEvents;
</ins><span class="cx">     Vector&lt;RefPtr&lt;VoidCallback&gt;&gt; m_callbacks;
</span><span class="cx">     RefPtr&lt;Event&gt; m_loadingDoneEvent;
</span><span class="cx">     Timer m_pendingEventsTimer;
</span></span></pre></div>
<a id="trunkSourceWebCoredomDeviceMotionControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DeviceMotionController.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DeviceMotionController.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/DeviceMotionController.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx">     return deviceMotionClient()-&gt;lastMotion();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;Event&gt; DeviceMotionController::getLastEvent()
</del><ins>+RefPtr&lt;Event&gt; DeviceMotionController::getLastEvent()
</ins><span class="cx"> {
</span><span class="cx">     return DeviceMotionEvent::create(eventNames().devicemotionEvent, deviceMotionClient()-&gt;lastMotion());
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomDeviceMotionControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DeviceMotionController.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DeviceMotionController.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/DeviceMotionController.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx">     DeviceMotionClient* deviceMotionClient();
</span><span class="cx"> 
</span><span class="cx">     virtual bool hasLastData() override;
</span><del>-    virtual PassRefPtr&lt;Event&gt; getLastEvent() override;
</del><ins>+    virtual RefPtr&lt;Event&gt; getLastEvent() override;
</ins><span class="cx"> 
</span><span class="cx">     static const char* supplementName();
</span><span class="cx">     static DeviceMotionController* from(Page*);
</span></span></pre></div>
<a id="trunkSourceWebCoredomDeviceOrientationControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DeviceOrientationController.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DeviceOrientationController.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/DeviceOrientationController.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx">     return deviceOrientationClient()-&gt;lastOrientation();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;Event&gt; DeviceOrientationController::getLastEvent()
</del><ins>+RefPtr&lt;Event&gt; DeviceOrientationController::getLastEvent()
</ins><span class="cx"> {
</span><span class="cx">     return DeviceOrientationEvent::create(eventNames().deviceorientationEvent, deviceOrientationClient()-&gt;lastOrientation());
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomDeviceOrientationControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DeviceOrientationController.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DeviceOrientationController.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/DeviceOrientationController.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx">     void resumeUpdates();
</span><span class="cx"> #else
</span><span class="cx">     virtual bool hasLastData() override;
</span><del>-    virtual PassRefPtr&lt;Event&gt; getLastEvent() override;
</del><ins>+    virtual RefPtr&lt;Event&gt; getLastEvent() override;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     static const char* supplementName();
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/Document.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -4050,7 +4050,7 @@
</span><span class="cx">     return m_domWindow-&gt;getAttributeEventListener(eventType);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Document::dispatchWindowEvent(PassRefPtr&lt;Event&gt; event,  PassRefPtr&lt;EventTarget&gt; target)
</del><ins>+void Document::dispatchWindowEvent(Event&amp; event, EventTarget* target)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT_WITH_SECURITY_IMPLICATION(!NoEventDispatchAssertion::isEventDispatchForbidden());
</span><span class="cx">     if (!m_domWindow)
</span><span class="lines">@@ -4068,21 +4068,21 @@
</span><span class="cx">     m_cachedResourceLoader-&gt;documentDidFinishLoadEvent();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Document::enqueueWindowEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+void Document::enqueueWindowEvent(Ref&lt;Event&gt;&amp;&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     event-&gt;setTarget(m_domWindow.get());
</span><del>-    m_eventQueue.enqueueEvent(event);
</del><ins>+    m_eventQueue.enqueueEvent(WTF::move(event));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Document::enqueueDocumentEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+void Document::enqueueDocumentEvent(Ref&lt;Event&gt;&amp;&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     event-&gt;setTarget(this);
</span><del>-    m_eventQueue.enqueueEvent(event);
</del><ins>+    m_eventQueue.enqueueEvent(WTF::move(event));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Document::enqueueOverflowEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+void Document::enqueueOverflowEvent(Ref&lt;Event&gt;&amp;&amp; event)
</ins><span class="cx"> {
</span><del>-    m_eventQueue.enqueueEvent(event);
</del><ins>+    m_eventQueue.enqueueEvent(WTF::move(event));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RefPtr&lt;Event&gt; Document::createEvent(const String&amp; eventType, ExceptionCode&amp; ec)
</span><span class="lines">@@ -5980,24 +5980,24 @@
</span><span class="cx">     // Bottom edge.
</span><span class="cx">     if (newPosition.y() &gt;= willRevealBottomNotificationPoint &amp;&amp; newPosition.y() &gt; oldPosition.y()
</span><span class="cx">         &amp;&amp; willRevealBottomNotificationPoint &gt;= oldPosition.y()) {
</span><del>-        RefPtr&lt;Event&gt; willRevealEvent = Event::create(eventNames().webkitwillrevealbottomEvent, false, false);
</del><ins>+        Ref&lt;Event&gt; willRevealEvent = Event::create(eventNames().webkitwillrevealbottomEvent, false, false);
</ins><span class="cx">         if (!target)
</span><del>-            enqueueWindowEvent(willRevealEvent.release());
</del><ins>+            enqueueWindowEvent(WTF::move(willRevealEvent));
</ins><span class="cx">         else {
</span><span class="cx">             willRevealEvent-&gt;setTarget(target);
</span><del>-            m_eventQueue.enqueueEvent(willRevealEvent.release());
</del><ins>+            m_eventQueue.enqueueEvent(WTF::move(willRevealEvent));
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Top edge.
</span><span class="cx">     if (newPosition.y() &lt;= willRevealTopNotificationPoint &amp;&amp; newPosition.y() &lt; oldPosition.y()
</span><span class="cx">         &amp;&amp; willRevealTopNotificationPoint &lt;= oldPosition.y()) {
</span><del>-        RefPtr&lt;Event&gt; willRevealEvent = Event::create(eventNames().webkitwillrevealtopEvent, false, false);
</del><ins>+        Ref&lt;Event&gt; willRevealEvent = Event::create(eventNames().webkitwillrevealtopEvent, false, false);
</ins><span class="cx">         if (!target)
</span><del>-            enqueueWindowEvent(willRevealEvent.release());
</del><ins>+            enqueueWindowEvent(WTF::move(willRevealEvent));
</ins><span class="cx">         else {
</span><span class="cx">             willRevealEvent-&gt;setTarget(target);
</span><del>-            m_eventQueue.enqueueEvent(willRevealEvent.release());
</del><ins>+            m_eventQueue.enqueueEvent(WTF::move(willRevealEvent));
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -6007,24 +6007,24 @@
</span><span class="cx">     // Right edge.
</span><span class="cx">     if (newPosition.x() &gt;= willRevealRightNotificationPoint &amp;&amp; newPosition.x() &gt; oldPosition.x()
</span><span class="cx">         &amp;&amp; willRevealRightNotificationPoint &gt;= oldPosition.x()) {
</span><del>-        RefPtr&lt;Event&gt; willRevealEvent = Event::create(eventNames().webkitwillrevealrightEvent, false, false);
</del><ins>+        Ref&lt;Event&gt; willRevealEvent = Event::create(eventNames().webkitwillrevealrightEvent, false, false);
</ins><span class="cx">         if (!target)
</span><del>-            enqueueWindowEvent(willRevealEvent.release());
</del><ins>+            enqueueWindowEvent(WTF::move(willRevealEvent));
</ins><span class="cx">         else {
</span><span class="cx">             willRevealEvent-&gt;setTarget(target);
</span><del>-            m_eventQueue.enqueueEvent(willRevealEvent.release());
</del><ins>+            m_eventQueue.enqueueEvent(WTF::move(willRevealEvent));
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Left edge.
</span><span class="cx">     if (newPosition.x() &lt;= willRevealLeftNotificationPoint &amp;&amp; newPosition.x() &lt; oldPosition.x()
</span><span class="cx">         &amp;&amp; willRevealLeftNotificationPoint &lt;= oldPosition.x()) {
</span><del>-        RefPtr&lt;Event&gt; willRevealEvent = Event::create(eventNames().webkitwillrevealleftEvent, false, false);
</del><ins>+        Ref&lt;Event&gt; willRevealEvent = Event::create(eventNames().webkitwillrevealleftEvent, false, false);
</ins><span class="cx">         if (!target)
</span><del>-            enqueueWindowEvent(willRevealEvent.release());
</del><ins>+            enqueueWindowEvent(WTF::move(willRevealEvent));
</ins><span class="cx">         else {
</span><span class="cx">             willRevealEvent-&gt;setTarget(target);
</span><del>-            m_eventQueue.enqueueEvent(willRevealEvent.release());
</del><ins>+            m_eventQueue.enqueueEvent(WTF::move(willRevealEvent));
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> #else
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/Document.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -788,7 +788,7 @@
</span><span class="cx">     void setWindowAttributeEventListener(const AtomicString&amp; eventType, const QualifiedName&amp; attributeName, const AtomicString&amp; value);
</span><span class="cx">     void setWindowAttributeEventListener(const AtomicString&amp; eventType, PassRefPtr&lt;EventListener&gt;);
</span><span class="cx">     EventListener* getWindowAttributeEventListener(const AtomicString&amp; eventType);
</span><del>-    WEBCORE_EXPORT void dispatchWindowEvent(PassRefPtr&lt;Event&gt;, PassRefPtr&lt;EventTarget&gt; = nullptr);
</del><ins>+    WEBCORE_EXPORT void dispatchWindowEvent(Event&amp;, EventTarget* = nullptr);
</ins><span class="cx">     void dispatchWindowLoadEvent();
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Event&gt; createEvent(const String&amp; eventType, ExceptionCode&amp;);
</span><span class="lines">@@ -1092,9 +1092,9 @@
</span><span class="cx">     virtual bool isContextThread() const override final;
</span><span class="cx">     virtual bool isJSExecutionForbidden() const override final { return false; }
</span><span class="cx"> 
</span><del>-    void enqueueWindowEvent(PassRefPtr&lt;Event&gt;);
-    void enqueueDocumentEvent(PassRefPtr&lt;Event&gt;);
-    void enqueueOverflowEvent(PassRefPtr&lt;Event&gt;);
</del><ins>+    void enqueueWindowEvent(Ref&lt;Event&gt;&amp;&amp;);
+    void enqueueDocumentEvent(Ref&lt;Event&gt;&amp;&amp;);
+    void enqueueOverflowEvent(Ref&lt;Event&gt;&amp;&amp;);
</ins><span class="cx">     void enqueuePageshowEvent(PageshowEventPersistence);
</span><span class="cx">     void enqueueHashchangeEvent(const String&amp; oldURL, const String&amp; newURL);
</span><span class="cx">     void enqueuePopstateEvent(PassRefPtr&lt;SerializedScriptValue&gt; stateObject);
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentEventQueuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DocumentEventQueue.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DocumentEventQueue.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/DocumentEventQueue.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -68,15 +68,15 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool DocumentEventQueue::enqueueEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+bool DocumentEventQueue::enqueueEvent(Ref&lt;Event&gt;&amp;&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(event-&gt;target());
</span><del>-    ASSERT(!m_queuedEvents.contains(event.get()));
</del><ins>+    ASSERT(!m_queuedEvents.contains(event.ptr()));
</ins><span class="cx"> 
</span><span class="cx">     if (m_isClosed)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    m_queuedEvents.add(event);
</del><ins>+    m_queuedEvents.add(event.ptr());
</ins><span class="cx">     if (!m_pendingEventTimer-&gt;isActive())
</span><span class="cx">         m_pendingEventTimer-&gt;startOneShot(0);
</span><span class="cx">     return true;
</span><span class="lines">@@ -99,9 +99,9 @@
</span><span class="cx">     bool bubbles = target.isDocumentNode();
</span><span class="cx">     bool cancelable = false;
</span><span class="cx"> 
</span><del>-    RefPtr&lt;Event&gt; scrollEvent = Event::create(eventNames().scrollEvent, bubbles, cancelable);
</del><ins>+    Ref&lt;Event&gt; scrollEvent = Event::create(eventNames().scrollEvent, bubbles, cancelable);
</ins><span class="cx">     scrollEvent-&gt;setTarget(&amp;target);
</span><del>-    enqueueEvent(scrollEvent.release());
</del><ins>+    enqueueEvent(WTF::move(scrollEvent));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool DocumentEventQueue::cancelEvent(Event&amp; event)
</span><span class="lines">@@ -146,9 +146,9 @@
</span><span class="cx">     // Why do we have this special case here instead of a virtual function on EventTarget?
</span><span class="cx">     EventTarget&amp; eventTarget = *event.target();
</span><span class="cx">     if (DOMWindow* window = eventTarget.toDOMWindow())
</span><del>-        window-&gt;dispatchEvent(&amp;event, 0);
</del><ins>+        window-&gt;dispatchEvent(event, nullptr);
</ins><span class="cx">     else
</span><del>-        eventTarget.dispatchEvent(&amp;event);
</del><ins>+        eventTarget.dispatchEvent(event);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentEventQueueh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DocumentEventQueue.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DocumentEventQueue.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/DocumentEventQueue.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx">     explicit DocumentEventQueue(Document&amp;);
</span><span class="cx">     virtual ~DocumentEventQueue();
</span><span class="cx"> 
</span><del>-    virtual bool enqueueEvent(PassRefPtr&lt;Event&gt;) override;
</del><ins>+    virtual bool enqueueEvent(Ref&lt;Event&gt;&amp;&amp;) override;
</ins><span class="cx">     virtual bool cancelEvent(Event&amp;) override;
</span><span class="cx">     virtual void close() override;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/Element.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -253,7 +253,7 @@
</span><span class="cx">     if (isForceEvent(platformEvent) &amp;&amp; !document().hasListenerTypeForEventType(platformEvent.type()))
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    RefPtr&lt;MouseEvent&gt; mouseEvent = MouseEvent::create(eventType, document().defaultView(), platformEvent, detail, relatedTarget);
</del><ins>+    Ref&lt;MouseEvent&gt; mouseEvent = MouseEvent::create(eventType, document().defaultView(), platformEvent, detail, relatedTarget);
</ins><span class="cx"> 
</span><span class="cx">     if (mouseEvent-&gt;type().isEmpty())
</span><span class="cx">         return true; // Shouldn't happen.
</span><span class="lines">@@ -265,7 +265,7 @@
</span><span class="cx">         // Special case: If it's a double click event, we also send the dblclick event. This is not part
</span><span class="cx">         // of the DOM specs, but is used for compatibility with the ondblclick=&quot;&quot; attribute. This is treated
</span><span class="cx">         // as a separate event in other DOM-compliant browsers like Firefox, and so we do the same.
</span><del>-        RefPtr&lt;MouseEvent&gt; doubleClickEvent = MouseEvent::create();
</del><ins>+        Ref&lt;MouseEvent&gt; doubleClickEvent = MouseEvent::create();
</ins><span class="cx">         doubleClickEvent-&gt;initMouseEvent(eventNames().dblclickEvent,
</span><span class="cx">             mouseEvent-&gt;bubbles(), mouseEvent-&gt;cancelable(), mouseEvent-&gt;view(), mouseEvent-&gt;detail(),
</span><span class="cx">             mouseEvent-&gt;screenX(), mouseEvent-&gt;screenY(), mouseEvent-&gt;clientX(), mouseEvent-&gt;clientY(),
</span><span class="lines">@@ -285,7 +285,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool Element::dispatchWheelEvent(const PlatformWheelEvent&amp; event)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;WheelEvent&gt; wheelEvent = WheelEvent::create(event, document().defaultView());
</del><ins>+    Ref&lt;WheelEvent&gt; wheelEvent = WheelEvent::create(event, document().defaultView());
</ins><span class="cx"> 
</span><span class="cx">     // Events with no deltas are important because they convey platform information about scroll gestures
</span><span class="cx">     // and momentum beginning or ending. However, those events should not be sent to the DOM since some
</span><span class="lines">@@ -300,9 +300,9 @@
</span><span class="cx"> 
</span><span class="cx"> bool Element::dispatchKeyEvent(const PlatformKeyboardEvent&amp; platformEvent)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;KeyboardEvent&gt; event = KeyboardEvent::create(platformEvent, document().defaultView());
</del><ins>+    Ref&lt;KeyboardEvent&gt; event = KeyboardEvent::create(platformEvent, document().defaultView());
</ins><span class="cx">     if (Frame* frame = document().frame()) {
</span><del>-        if (frame-&gt;eventHandler().accessibilityPreventsEventPropogation(event.get()))
</del><ins>+        if (frame-&gt;eventHandler().accessibilityPreventsEventPropogation(event))
</ins><span class="cx">             event-&gt;stopPropagation();
</span><span class="cx">     }
</span><span class="cx">     return EventDispatcher::dispatchEvent(this, event) &amp;&amp; !event-&gt;defaultHandled();
</span><span class="lines">@@ -2324,7 +2324,7 @@
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     PlatformMouseEvent platformMouseEvent(frame-&gt;eventHandler().lastKnownMousePosition(), frame-&gt;eventHandler().lastKnownMouseGlobalPosition(), NoButton, PlatformEvent::NoType, 1, false, false, false, false, WTF::currentTime(), ForceAtClick);
</span><del>-    RefPtr&lt;MouseEvent&gt; mouseForceWillBeginEvent =  MouseEvent::create(eventNames().webkitmouseforcewillbeginEvent, document().defaultView(), platformMouseEvent, 0, nullptr);
</del><ins>+    Ref&lt;MouseEvent&gt; mouseForceWillBeginEvent =  MouseEvent::create(eventNames().webkitmouseforcewillbeginEvent, document().defaultView(), platformMouseEvent, 0, nullptr);
</ins><span class="cx">     mouseForceWillBeginEvent-&gt;setTarget(this);
</span><span class="cx">     dispatchEvent(mouseForceWillBeginEvent);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomEventcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Event.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Event.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/Event.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -162,12 +162,12 @@
</span><span class="cx">     return Event::create(type(), bubbles(), cancelable());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Event::setTarget(PassRefPtr&lt;EventTarget&gt; target)
</del><ins>+void Event::setTarget(RefPtr&lt;EventTarget&gt;&amp;&amp; target)
</ins><span class="cx"> {
</span><span class="cx">     if (m_target == target)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_target = target;
</del><ins>+    m_target = WTF::move(target);
</ins><span class="cx">     if (m_target)
</span><span class="cx">         receivedTarget();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Event.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Event.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/Event.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -106,7 +106,7 @@
</span><span class="cx">     void setType(const AtomicString&amp; type) { m_type = type; }
</span><span class="cx">     
</span><span class="cx">     EventTarget* target() const { return m_target.get(); }
</span><del>-    void setTarget(PassRefPtr&lt;EventTarget&gt;);
</del><ins>+    void setTarget(RefPtr&lt;EventTarget&gt;&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     EventTarget* currentTarget() const { return m_currentTarget; }
</span><span class="cx">     void setCurrentTarget(EventTarget* currentTarget) { m_currentTarget = currentTarget; }
</span></span></pre></div>
<a id="trunkSourceWebCoredomEventDispatchercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/EventDispatcher.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/EventDispatcher.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/EventDispatcher.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -70,9 +70,9 @@
</span><span class="cx">     if (!m_window)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    event.setTarget(m_target.get());
</del><ins>+    event.setTarget(m_target.copyRef());
</ins><span class="cx">     event.setCurrentTarget(m_window.get());
</span><del>-    m_window-&gt;fireEventListeners(&amp;event);
</del><ins>+    m_window-&gt;fireEventListeners(event);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -201,10 +201,10 @@
</span><span class="cx">     return &amp;referenceNode;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void EventDispatcher::dispatchScopedEvent(Node&amp; node, PassRefPtr&lt;Event&gt; event)
</del><ins>+void EventDispatcher::dispatchScopedEvent(Node&amp; node, Event&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     // We need to set the target here because it can go away by the time we actually fire the event.
</span><del>-    event-&gt;setTarget(eventTargetRespectingTargetRules(node));
</del><ins>+    event.setTarget(eventTargetRespectingTargetRules(node));
</ins><span class="cx">     ScopedEventQueue::singleton().enqueueEvent(event);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -300,23 +300,19 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool EventDispatcher::dispatchEvent(Node* origin, PassRefPtr&lt;Event&gt; prpEvent)
</del><ins>+bool EventDispatcher::dispatchEvent(Node* origin, Event&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT_WITH_SECURITY_IMPLICATION(!NoEventDispatchAssertion::isEventDispatchForbidden());
</span><del>-    if (!prpEvent)
-        return true;
-
</del><span class="cx">     ASSERT(origin);
</span><span class="cx">     RefPtr&lt;Node&gt; node(origin);
</span><del>-    RefPtr&lt;Event&gt; event(prpEvent);
</del><span class="cx">     RefPtr&lt;FrameView&gt; view = node-&gt;document().view();
</span><del>-    EventPath eventPath(*node, *event);
</del><ins>+    EventPath eventPath(*node, event);
</ins><span class="cx"> 
</span><del>-    if (EventTarget* relatedTarget = event-&gt;relatedTarget())
</del><ins>+    if (EventTarget* relatedTarget = event.relatedTarget())
</ins><span class="cx">         eventPath.setRelatedTarget(*node, *relatedTarget);
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS) &amp;&amp; !PLATFORM(IOS)
</span><del>-    if (is&lt;TouchEvent&gt;(*event)) {
-        if (!eventPath.updateTouchLists(downcast&lt;TouchEvent&gt;(*event)))
</del><ins>+    if (is&lt;TouchEvent&gt;(event)) {
+        if (!eventPath.updateTouchLists(downcast&lt;TouchEvent&gt;(event)))
</ins><span class="cx">             return true;
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="lines">@@ -324,8 +320,8 @@
</span><span class="cx">     ChildNodesLazySnapshot::takeChildNodesLazySnapshot();
</span><span class="cx"> 
</span><span class="cx">     EventTarget* target = eventTargetRespectingTargetRules(*node);
</span><del>-    event-&gt;setTarget(target);
-    if (!event-&gt;target())
</del><ins>+    event.setTarget(target);
+    if (!event.target())
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     ASSERT_WITH_SECURITY_IMPLICATION(!NoEventDispatchAssertion::isEventDispatchForbidden());
</span><span class="lines">@@ -334,30 +330,30 @@
</span><span class="cx"> 
</span><span class="cx">     InputElementClickState clickHandlingState;
</span><span class="cx">     if (is&lt;HTMLInputElement&gt;(*node))
</span><del>-        downcast&lt;HTMLInputElement&gt;(*node).willDispatchEvent(*event, clickHandlingState);
</del><ins>+        downcast&lt;HTMLInputElement&gt;(*node).willDispatchEvent(event, clickHandlingState);
</ins><span class="cx"> 
</span><del>-    if (!event-&gt;propagationStopped() &amp;&amp; !eventPath.isEmpty())
-        dispatchEventInDOM(*event, eventPath, windowEventContext);
</del><ins>+    if (!event.propagationStopped() &amp;&amp; !eventPath.isEmpty())
+        dispatchEventInDOM(event, eventPath, windowEventContext);
</ins><span class="cx"> 
</span><del>-    event-&gt;setTarget(eventTargetRespectingTargetRules(*node));
-    event-&gt;setCurrentTarget(nullptr);
-    event-&gt;setEventPhase(0);
</del><ins>+    event.setTarget(eventTargetRespectingTargetRules(*node));
+    event.setCurrentTarget(nullptr);
+    event.setEventPhase(0);
</ins><span class="cx"> 
</span><span class="cx">     if (clickHandlingState.stateful)
</span><del>-        downcast&lt;HTMLInputElement&gt;(*node).didDispatchClickEvent(*event, clickHandlingState);
</del><ins>+        downcast&lt;HTMLInputElement&gt;(*node).didDispatchClickEvent(event, clickHandlingState);
</ins><span class="cx"> 
</span><span class="cx">     // Call default event handlers. While the DOM does have a concept of preventing
</span><span class="cx">     // default handling, the detail of which handlers are called is an internal
</span><span class="cx">     // implementation detail and not part of the DOM.
</span><del>-    if (!event-&gt;defaultPrevented() &amp;&amp; !event-&gt;defaultHandled())
-        callDefaultEventHandlersInTheBubblingOrder(*event, eventPath);
</del><ins>+    if (!event.defaultPrevented() &amp;&amp; !event.defaultHandled())
+        callDefaultEventHandlersInTheBubblingOrder(event, eventPath);
</ins><span class="cx"> 
</span><span class="cx">     // Ensure that after event dispatch, the event's target object is the
</span><span class="cx">     // outermost shadow DOM boundary.
</span><del>-    event-&gt;setTarget(windowEventContext.target());
-    event-&gt;setCurrentTarget(nullptr);
</del><ins>+    event.setTarget(windowEventContext.target());
+    event.setCurrentTarget(nullptr);
</ins><span class="cx"> 
</span><del>-    return !event-&gt;defaultPrevented();
</del><ins>+    return !event.defaultPrevented();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static inline bool shouldEventCrossShadowBoundary(Event&amp; event, ShadowRoot&amp; shadowRoot, EventTarget&amp; target)
</span></span></pre></div>
<a id="trunkSourceWebCoredomEventDispatcherh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/EventDispatcher.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/EventDispatcher.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/EventDispatcher.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -38,11 +38,11 @@
</span><span class="cx"> 
</span><span class="cx"> namespace EventDispatcher {
</span><span class="cx"> 
</span><del>-bool dispatchEvent(Node*, PassRefPtr&lt;Event&gt;);
-void dispatchScopedEvent(Node&amp;, PassRefPtr&lt;Event&gt;);
</del><ins>+bool dispatchEvent(Node*, Event&amp;);
+void dispatchScopedEvent(Node&amp;, Event&amp;);
</ins><span class="cx"> void dispatchSimulatedClick(Element*, Event* underlyingEvent, SimulatedClickMouseEventOptions, SimulatedClickVisualOptions);
</span><span class="cx"> 
</span><del>-};
</del><ins>+}
</ins><span class="cx"> 
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomEventQueueh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/EventQueue.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/EventQueue.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/EventQueue.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx"> class EventQueue {
</span><span class="cx"> public:
</span><span class="cx">     virtual ~EventQueue() { }
</span><del>-    virtual bool enqueueEvent(PassRefPtr&lt;Event&gt;) = 0;
</del><ins>+    virtual bool enqueueEvent(Ref&lt;Event&gt;&amp;&amp;) = 0;
</ins><span class="cx">     virtual bool cancelEvent(Event&amp;) = 0;
</span><span class="cx">     virtual void close() = 0; // Discard accumulated events and all future events. No events will be dispatched after this.
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoredomEventTargetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/EventTarget.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/EventTarget.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/EventTarget.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -134,7 +134,7 @@
</span><span class="cx">     return removeEventListener(eventType, listener, false);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool EventTarget::dispatchEvent(PassRefPtr&lt;Event&gt; event, ExceptionCode&amp; ec)
</del><ins>+bool EventTarget::dispatchEvent(Event* event, ExceptionCode&amp; ec)
</ins><span class="cx"> {
</span><span class="cx">     if (!event) {
</span><span class="cx">         ec = TypeError;
</span><span class="lines">@@ -149,16 +149,19 @@
</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><del>-bool EventTarget::dispatchEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+bool EventTarget::dispatchEvent(Event&amp; event)
</ins><span class="cx"> {
</span><del>-    event-&gt;setTarget(this);
-    event-&gt;setCurrentTarget(this);
-    event-&gt;setEventPhase(Event::AT_TARGET);
-    bool defaultPrevented = fireEventListeners(event.get());
-    event-&gt;setEventPhase(0);
</del><ins>+    ASSERT(event.isInitialized());
+    ASSERT(!event.isBeingDispatched());
+
+    event.setTarget(this);
+    event.setCurrentTarget(this);
+    event.setEventPhase(Event::AT_TARGET);
+    bool defaultPrevented = fireEventListeners(event);
+    event.setEventPhase(0);
</ins><span class="cx">     return defaultPrevented;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -166,30 +169,30 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static const AtomicString&amp; legacyType(const Event* event)
</del><ins>+static const AtomicString&amp; legacyType(const Event&amp; event)
</ins><span class="cx"> {
</span><del>-    if (event-&gt;type() == eventNames().animationendEvent)
</del><ins>+    if (event.type() == eventNames().animationendEvent)
</ins><span class="cx">         return eventNames().webkitAnimationEndEvent;
</span><span class="cx"> 
</span><del>-    if (event-&gt;type() == eventNames().animationstartEvent)
</del><ins>+    if (event.type() == eventNames().animationstartEvent)
</ins><span class="cx">         return eventNames().webkitAnimationStartEvent;
</span><span class="cx"> 
</span><del>-    if (event-&gt;type() == eventNames().animationiterationEvent)
</del><ins>+    if (event.type() == eventNames().animationiterationEvent)
</ins><span class="cx">         return eventNames().webkitAnimationIterationEvent;
</span><span class="cx"> 
</span><del>-    if (event-&gt;type() == eventNames().transitionendEvent)
</del><ins>+    if (event.type() == eventNames().transitionendEvent)
</ins><span class="cx">         return eventNames().webkitTransitionEndEvent;
</span><span class="cx"> 
</span><del>-    if (event-&gt;type() == eventNames().wheelEvent)
</del><ins>+    if (event.type() == eventNames().wheelEvent)
</ins><span class="cx">         return eventNames().mousewheelEvent;
</span><span class="cx"> 
</span><span class="cx">     return emptyAtom;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool EventTarget::fireEventListeners(Event* event)
</del><ins>+bool EventTarget::fireEventListeners(Event&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT_WITH_SECURITY_IMPLICATION(!NoEventDispatchAssertion::isEventDispatchForbidden());
</span><del>-    ASSERT(event &amp;&amp; event-&gt;isInitialized());
</del><ins>+    ASSERT(event.isInitialized());
</ins><span class="cx"> 
</span><span class="cx">     EventTargetData* d = eventTargetData();
</span><span class="cx">     if (!d)
</span><span class="lines">@@ -200,21 +203,21 @@
</span><span class="cx">     if (!legacyTypeName.isEmpty())
</span><span class="cx">         legacyListenersVector = d-&gt;eventListenerMap.find(legacyTypeName);
</span><span class="cx"> 
</span><del>-    EventListenerVector* listenersVector = d-&gt;eventListenerMap.find(event-&gt;type());
</del><ins>+    EventListenerVector* listenersVector = d-&gt;eventListenerMap.find(event.type());
</ins><span class="cx"> 
</span><span class="cx">     if (listenersVector)
</span><span class="cx">         fireEventListeners(event, d, *listenersVector);
</span><span class="cx">     else if (legacyListenersVector) {
</span><del>-        AtomicString typeName = event-&gt;type();
-        event-&gt;setType(legacyTypeName);
</del><ins>+        AtomicString typeName = event.type();
+        event.setType(legacyTypeName);
</ins><span class="cx">         fireEventListeners(event, d, *legacyListenersVector);
</span><del>-        event-&gt;setType(typeName);
</del><ins>+        event.setType(typeName);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return !event-&gt;defaultPrevented();
</del><ins>+    return !event.defaultPrevented();
</ins><span class="cx"> }
</span><span class="cx">         
</span><del>-void EventTarget::fireEventListeners(Event* event, EventTargetData* d, EventListenerVector&amp; entry)
</del><ins>+void EventTarget::fireEventListeners(Event&amp; event, EventTargetData* d, EventListenerVector&amp; entry)
</ins><span class="cx"> {
</span><span class="cx">     Ref&lt;EventTarget&gt; protect(*this);
</span><span class="cx"> 
</span><span class="lines">@@ -226,32 +229,32 @@
</span><span class="cx">     size_t size = entry.size();
</span><span class="cx">     if (!d-&gt;firingEventIterators)
</span><span class="cx">         d-&gt;firingEventIterators = std::make_unique&lt;FiringEventIteratorVector&gt;();
</span><del>-    d-&gt;firingEventIterators-&gt;append(FiringEventIterator(event-&gt;type(), i, size));
</del><ins>+    d-&gt;firingEventIterators-&gt;append(FiringEventIterator(event.type(), i, size));
</ins><span class="cx"> 
</span><span class="cx">     ScriptExecutionContext* context = scriptExecutionContext();
</span><span class="cx">     Document* document = nullptr;
</span><span class="cx">     InspectorInstrumentationCookie willDispatchEventCookie;
</span><span class="cx">     if (is&lt;Document&gt;(context)) {
</span><span class="cx">         document = downcast&lt;Document&gt;(context);
</span><del>-        willDispatchEventCookie = InspectorInstrumentation::willDispatchEvent(*document, *event, size &gt; 0);
</del><ins>+        willDispatchEventCookie = InspectorInstrumentation::willDispatchEvent(*document, event, size &gt; 0);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     for (; i &lt; size; ++i) {
</span><span class="cx">         RegisteredEventListener&amp; registeredListener = entry[i];
</span><del>-        if (event-&gt;eventPhase() == Event::CAPTURING_PHASE &amp;&amp; !registeredListener.useCapture)
</del><ins>+        if (event.eventPhase() == Event::CAPTURING_PHASE &amp;&amp; !registeredListener.useCapture)
</ins><span class="cx">             continue;
</span><del>-        if (event-&gt;eventPhase() == Event::BUBBLING_PHASE &amp;&amp; registeredListener.useCapture)
</del><ins>+        if (event.eventPhase() == Event::BUBBLING_PHASE &amp;&amp; registeredListener.useCapture)
</ins><span class="cx">             continue;
</span><span class="cx"> 
</span><span class="cx">         // If stopImmediatePropagation has been called, we just break out immediately, without
</span><span class="cx">         // handling any more events on this target.
</span><del>-        if (event-&gt;immediatePropagationStopped())
</del><ins>+        if (event.immediatePropagationStopped())
</ins><span class="cx">             break;
</span><span class="cx"> 
</span><del>-        InspectorInstrumentationCookie cookie = InspectorInstrumentation::willHandleEvent(context, *event);
</del><ins>+        InspectorInstrumentationCookie cookie = InspectorInstrumentation::willHandleEvent(context, event);
</ins><span class="cx">         // To match Mozilla, the AT_TARGET phase fires both capturing and bubbling
</span><span class="cx">         // event listeners, even though that violates some versions of the DOM spec.
</span><del>-        registeredListener.listener-&gt;handleEvent(context, event);
</del><ins>+        registeredListener.listener-&gt;handleEvent(context, &amp;event);
</ins><span class="cx">         InspectorInstrumentation::didHandleEvent(cookie);
</span><span class="cx">     }
</span><span class="cx">     d-&gt;firingEventIterators-&gt;removeLast();
</span></span></pre></div>
<a id="trunkSourceWebCoredomEventTargeth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/EventTarget.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/EventTarget.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/EventTarget.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -123,8 +123,8 @@
</span><span class="cx">     virtual bool addEventListener(const AtomicString&amp; eventType, RefPtr&lt;EventListener&gt;&amp;&amp;, bool useCapture);
</span><span class="cx">     virtual bool removeEventListener(const AtomicString&amp; eventType, EventListener*, bool useCapture);
</span><span class="cx">     virtual void removeAllEventListeners();
</span><del>-    virtual bool dispatchEvent(PassRefPtr&lt;Event&gt;);
-    bool dispatchEvent(PassRefPtr&lt;Event&gt;, ExceptionCode&amp;); // DOM API
</del><ins>+    virtual bool dispatchEvent(Event&amp;);
+    bool dispatchEvent(Event*, 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 class="lines">@@ -137,7 +137,7 @@
</span><span class="cx">     bool hasCapturingEventListeners(const AtomicString&amp; eventType);
</span><span class="cx">     const EventListenerVector&amp; getEventListeners(const AtomicString&amp; eventType);
</span><span class="cx"> 
</span><del>-    bool fireEventListeners(Event*);
</del><ins>+    bool fireEventListeners(Event&amp;);
</ins><span class="cx">     bool isFiringEventListeners();
</span><span class="cx"> 
</span><span class="cx">     void visitJSEventListeners(JSC::SlotVisitor&amp;);
</span><span class="lines">@@ -153,7 +153,7 @@
</span><span class="cx">     virtual void refEventTarget() = 0;
</span><span class="cx">     virtual void derefEventTarget() = 0;
</span><span class="cx">     
</span><del>-    void fireEventListeners(Event*, EventTargetData*, EventListenerVector&amp;);
</del><ins>+    void fireEventListeners(Event&amp;, EventTargetData*, EventListenerVector&amp;);
</ins><span class="cx"> 
</span><span class="cx">     friend class EventListenerIterator;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoredomGenericEventQueuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/GenericEventQueue.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/GenericEventQueue.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/GenericEventQueue.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -100,7 +100,7 @@
</span><span class="cx">     Ref&lt;EventTarget&gt; protect(m_owner);
</span><span class="cx">     RefPtr&lt;Event&gt; event = m_pendingEvents.takeFirst();
</span><span class="cx">     EventTarget&amp; target = event-&gt;target() ? *event-&gt;target() : m_owner;
</span><del>-    target.dispatchEvent(event.release());
</del><ins>+    target.dispatchEvent(*event);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void GenericEventQueue::close()
</span></span></pre></div>
<a id="trunkSourceWebCoredomMessagePortcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MessagePort.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MessagePort.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/MessagePort.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -160,9 +160,8 @@
</span><span class="cx">             return;
</span><span class="cx"> 
</span><span class="cx">         std::unique_ptr&lt;MessagePortArray&gt; ports = MessagePort::entanglePorts(*m_scriptExecutionContext, WTF::move(channels));
</span><del>-        RefPtr&lt;Event&gt; evt = MessageEvent::create(WTF::move(ports), message.release());
-
-        dispatchEvent(evt.release(), ASSERT_NO_EXCEPTION);
</del><ins>+        Ref&lt;Event&gt; event = MessageEvent::create(WTF::move(ports), message.release());
+        dispatchEvent(event);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/Node.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -2090,19 +2090,19 @@
</span><span class="cx">     if (is&lt;Element&gt;(*this) &amp;&amp; downcast&lt;Element&gt;(*this).isDisabledFormControl() &amp;&amp; event.isMouseEvent())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    fireEventListeners(&amp;event);
</del><ins>+    fireEventListeners(event);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Node::dispatchScopedEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+void Node::dispatchScopedEvent(Event&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     EventDispatcher::dispatchScopedEvent(*this, event);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Node::dispatchEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+bool Node::dispatchEvent(Event&amp; event)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS) &amp;&amp; !PLATFORM(IOS)
</span><del>-    if (is&lt;TouchEvent&gt;(*event))
-        return dispatchTouchEvent(adoptRef(downcast&lt;TouchEvent&gt;(event.leakRef())));
</del><ins>+    if (is&lt;TouchEvent&gt;(event))
+        return dispatchTouchEvent(downcast&lt;TouchEvent&gt;(event));
</ins><span class="cx"> #endif
</span><span class="cx">     return EventDispatcher::dispatchEvent(this, event);
</span><span class="cx"> }
</span><span class="lines">@@ -2126,24 +2126,24 @@
</span><span class="cx"> bool Node::dispatchDOMActivateEvent(int detail, PassRefPtr&lt;Event&gt; underlyingEvent)
</span><span class="cx"> {
</span><span class="cx">     ASSERT_WITH_SECURITY_IMPLICATION(!NoEventDispatchAssertion::isEventDispatchForbidden());
</span><del>-    RefPtr&lt;UIEvent&gt; event = UIEvent::create(eventNames().DOMActivateEvent, true, true, document().defaultView(), detail);
</del><ins>+    Ref&lt;UIEvent&gt; event = UIEvent::create(eventNames().DOMActivateEvent, true, true, document().defaultView(), detail);
</ins><span class="cx">     event-&gt;setUnderlyingEvent(underlyingEvent);
</span><span class="cx">     dispatchScopedEvent(event);
</span><span class="cx">     return event-&gt;defaultHandled();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS) &amp;&amp; !PLATFORM(IOS)
</span><del>-bool Node::dispatchTouchEvent(PassRefPtr&lt;TouchEvent&gt; event)
</del><ins>+bool Node::dispatchTouchEvent(TouchEvent&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     return EventDispatcher::dispatchEvent(this, event);
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INDIE_UI)
</span><del>-bool Node::dispatchUIRequestEvent(PassRefPtr&lt;UIRequestEvent&gt; event)
</del><ins>+bool Node::dispatchUIRequestEvent(UIRequestEvent&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     EventDispatcher::dispatchEvent(this, event);
</span><del>-    return event-&gt;defaultHandled() || event-&gt;defaultPrevented();
</del><ins>+    return event.defaultHandled() || event.defaultPrevented();
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx">     
</span><span class="lines">@@ -2153,8 +2153,8 @@
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     Ref&lt;Node&gt; protect(*this);
</span><del>-    RefPtr&lt;BeforeLoadEvent&gt; beforeLoadEvent = BeforeLoadEvent::create(sourceURL);
-    dispatchEvent(beforeLoadEvent.get());
</del><ins>+    Ref&lt;BeforeLoadEvent&gt; beforeLoadEvent = BeforeLoadEvent::create(sourceURL);
+    dispatchEvent(beforeLoadEvent);
</ins><span class="cx">     return !beforeLoadEvent-&gt;defaultPrevented();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/Node.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -519,9 +519,9 @@
</span><span class="cx">     virtual bool removeEventListener(const AtomicString&amp; eventType, EventListener*, bool useCapture) override;
</span><span class="cx"> 
</span><span class="cx">     using EventTarget::dispatchEvent;
</span><del>-    virtual bool dispatchEvent(PassRefPtr&lt;Event&gt;) override;
</del><ins>+    virtual bool dispatchEvent(Event&amp;) override;
</ins><span class="cx"> 
</span><del>-    void dispatchScopedEvent(PassRefPtr&lt;Event&gt;);
</del><ins>+    void dispatchScopedEvent(Event&amp;);
</ins><span class="cx"> 
</span><span class="cx">     virtual void handleLocalEvents(Event&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -533,10 +533,10 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS) &amp;&amp; !PLATFORM(IOS)
</span><del>-    bool dispatchTouchEvent(PassRefPtr&lt;TouchEvent&gt;);
</del><ins>+    bool dispatchTouchEvent(TouchEvent&amp;);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(INDIE_UI)
</span><del>-    bool dispatchUIRequestEvent(PassRefPtr&lt;UIRequestEvent&gt;);
</del><ins>+    bool dispatchUIRequestEvent(UIRequestEvent&amp;);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     bool dispatchBeforeLoadEvent(const String&amp; sourceURL);
</span></span></pre></div>
<a id="trunkSourceWebCoredomScopedEventQueuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ScopedEventQueue.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ScopedEventQueue.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/ScopedEventQueue.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -43,27 +43,27 @@
</span><span class="cx">     return scopedEventQueue;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ScopedEventQueue::enqueueEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+void ScopedEventQueue::enqueueEvent(Ref&lt;Event&gt;&amp;&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     if (m_scopingLevel)
</span><del>-        m_queuedEvents.append(event);
</del><ins>+        m_queuedEvents.append(WTF::move(event));
</ins><span class="cx">     else
</span><span class="cx">         dispatchEvent(event);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ScopedEventQueue::dispatchEvent(PassRefPtr&lt;Event&gt; event) const
</del><ins>+void ScopedEventQueue::dispatchEvent(Event&amp; event) const
</ins><span class="cx"> {
</span><del>-    ASSERT(event-&gt;target());
</del><ins>+    ASSERT(event.target());
</ins><span class="cx">     // Store the target in a local variable to avoid possibly dereferencing a nullified PassRefPtr after it's passed on.
</span><del>-    Node* node = event-&gt;target()-&gt;toNode();
</del><ins>+    Node* node = event.target()-&gt;toNode();
</ins><span class="cx">     EventDispatcher::dispatchEvent(node, event);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ScopedEventQueue::dispatchAllEvents()
</span><span class="cx"> {
</span><del>-    Vector&lt;RefPtr&lt;Event&gt;&gt; queuedEvents = WTF::move(m_queuedEvents);
</del><ins>+    Vector&lt;Ref&lt;Event&gt;&gt; queuedEvents = WTF::move(m_queuedEvents);
</ins><span class="cx">     for (auto&amp; queuedEvent : queuedEvents)
</span><del>-        dispatchEvent(queuedEvent.release());
</del><ins>+        dispatchEvent(queuedEvent);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ScopedEventQueue::incrementScopingLevel()
</span></span></pre></div>
<a id="trunkSourceWebCoredomScopedEventQueueh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ScopedEventQueue.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ScopedEventQueue.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/ScopedEventQueue.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -46,18 +46,18 @@
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(ScopedEventQueue); WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><span class="cx">     static ScopedEventQueue&amp; singleton();
</span><del>-    void enqueueEvent(PassRefPtr&lt;Event&gt;);
</del><ins>+    void enqueueEvent(Ref&lt;Event&gt;&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     ScopedEventQueue() = default;
</span><span class="cx">     ~ScopedEventQueue() = delete;
</span><span class="cx"> 
</span><del>-    void dispatchEvent(PassRefPtr&lt;Event&gt;) const;
</del><ins>+    void dispatchEvent(Event&amp;) const;
</ins><span class="cx">     void dispatchAllEvents();
</span><span class="cx">     void incrementScopingLevel();
</span><span class="cx">     void decrementScopingLevel();
</span><span class="cx"> 
</span><del>-    Vector&lt;RefPtr&lt;Event&gt;&gt; m_queuedEvents;
</del><ins>+    Vector&lt;Ref&lt;Event&gt;&gt; m_queuedEvents;
</ins><span class="cx">     unsigned m_scopingLevel { 0 };
</span><span class="cx"> 
</span><span class="cx">     friend class WTF::NeverDestroyed&lt;WebCore::ScopedEventQueue&gt;;
</span></span></pre></div>
<a id="trunkSourceWebCoredomScriptExecutionContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ScriptExecutionContext.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ScriptExecutionContext.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/dom/ScriptExecutionContext.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -404,7 +404,7 @@
</span><span class="cx"> 
</span><span class="cx">     ASSERT(!m_inDispatchErrorEvent);
</span><span class="cx">     m_inDispatchErrorEvent = true;
</span><del>-    RefPtr&lt;ErrorEvent&gt; errorEvent = ErrorEvent::create(message, sourceName, line, column);
</del><ins>+    Ref&lt;ErrorEvent&gt; errorEvent = ErrorEvent::create(message, sourceName, line, column);
</ins><span class="cx">     target-&gt;dispatchEvent(errorEvent);
</span><span class="cx">     m_inDispatchErrorEvent = false;
</span><span class="cx">     return errorEvent-&gt;defaultPrevented();
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingAlternativeTextControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/AlternativeTextController.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/AlternativeTextController.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/editing/AlternativeTextController.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -682,10 +682,10 @@
</span><span class="cx">     if (FrameView* view = m_frame.view())
</span><span class="cx">         view-&gt;disableLayerFlushThrottlingTemporarilyForInteraction();
</span><span class="cx"> 
</span><del>-    RefPtr&lt;TextEvent&gt; event = TextEvent::createForDictation(m_frame.document()-&gt;domWindow(), text, dictationAlternatives);
</del><ins>+    Ref&lt;TextEvent&gt; event = TextEvent::createForDictation(m_frame.document()-&gt;domWindow(), text, dictationAlternatives);
</ins><span class="cx">     event-&gt;setUnderlyingEvent(triggeringEvent);
</span><span class="cx"> 
</span><del>-    target-&gt;dispatchEvent(event, IGNORE_EXCEPTION);
</del><ins>+    target-&gt;dispatchEvent(event);
</ins><span class="cx">     return event-&gt;defaultHandled();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingEditorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/Editor.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/Editor.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/editing/Editor.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -461,7 +461,7 @@
</span><span class="cx">     Node* target = findEventTargetFromSelection();
</span><span class="cx">     if (!target)
</span><span class="cx">         return;
</span><del>-    target-&gt;dispatchEvent(TextEvent::createForPlainTextPaste(document().domWindow(), pastingText, smartReplace), IGNORE_EXCEPTION);
</del><ins>+    target-&gt;dispatchEvent(TextEvent::createForPlainTextPaste(document().domWindow(), pastingText, smartReplace));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Editor::pasteAsFragment(PassRefPtr&lt;DocumentFragment&gt; pastingFragment, bool smartReplace, bool matchStyle, MailBlockquoteHandling respectsMailBlockquote)
</span><span class="lines">@@ -469,7 +469,7 @@
</span><span class="cx">     Node* target = findEventTargetFromSelection();
</span><span class="cx">     if (!target)
</span><span class="cx">         return;
</span><del>-    target-&gt;dispatchEvent(TextEvent::createForFragmentPaste(document().domWindow(), pastingFragment, smartReplace, matchStyle, respectsMailBlockquote), IGNORE_EXCEPTION);
</del><ins>+    target-&gt;dispatchEvent(TextEvent::createForFragmentPaste(document().domWindow(), pastingFragment, smartReplace, matchStyle, respectsMailBlockquote));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Editor::pasteAsPlainTextBypassingDHTML()
</span><span class="lines">@@ -851,8 +851,8 @@
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;DataTransfer&gt; dataTransfer = DataTransfer::createForCopyAndPaste(policy);
</span><span class="cx"> 
</span><del>-    RefPtr&lt;Event&gt; event = ClipboardEvent::create(eventType, true, true, dataTransfer);
-    target-&gt;dispatchEvent(event, IGNORE_EXCEPTION);
</del><ins>+    Ref&lt;Event&gt; event = ClipboardEvent::create(eventType, true, true, dataTransfer);
+    target-&gt;dispatchEvent(event);
</ins><span class="cx">     bool noDefaultProcessing = event-&gt;defaultPrevented();
</span><span class="cx">     if (noDefaultProcessing &amp;&amp; policy == DataTransferAccessPolicy::Writable) {
</span><span class="cx">         auto pasteboard = Pasteboard::createForCopyAndPaste();
</span><span class="lines">@@ -1012,9 +1012,9 @@
</span><span class="cx">     RefPtr&lt;Element&gt; startRoot = prpStartRoot;
</span><span class="cx">     RefPtr&lt;Element&gt; endRoot = prpEndRoot;
</span><span class="cx">     if (startRoot)
</span><del>-        startRoot-&gt;dispatchEvent(Event::create(eventNames().webkitEditableContentChangedEvent, false, false), IGNORE_EXCEPTION);
</del><ins>+        startRoot-&gt;dispatchEvent(Event::create(eventNames().webkitEditableContentChangedEvent, false, false));
</ins><span class="cx">     if (endRoot &amp;&amp; endRoot != startRoot)
</span><del>-        endRoot-&gt;dispatchEvent(Event::create(eventNames().webkitEditableContentChangedEvent, false, false), IGNORE_EXCEPTION);
</del><ins>+        endRoot-&gt;dispatchEvent(Event::create(eventNames().webkitEditableContentChangedEvent, false, false));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Editor::appliedEditing(PassRefPtr&lt;CompositeEditCommand&gt; cmd)
</span><span class="lines">@@ -1720,8 +1720,8 @@
</span><span class="cx">     // We should send this event before sending a TextEvent as written in Section 6.2.2 and 6.2.3 of
</span><span class="cx">     // the DOM Event specification.
</span><span class="cx">     if (Element* target = document().focusedElement()) {
</span><del>-        RefPtr&lt;CompositionEvent&gt; event = CompositionEvent::create(eventNames().compositionendEvent, document().domWindow(), text);
-        target-&gt;dispatchEvent(event.release(), IGNORE_EXCEPTION);
</del><ins>+        Ref&lt;CompositionEvent&gt; event = CompositionEvent::create(eventNames().compositionendEvent, document().domWindow(), text);
+        target-&gt;dispatchEvent(event);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // If text is empty, then delete the old composition here.  If text is non-empty, InsertTextCommand::input
</span><span class="lines">@@ -1795,8 +1795,8 @@
</span><span class="cx">             else
</span><span class="cx">                 event = CompositionEvent::create(eventNames().compositionendEvent, document().domWindow(), text);
</span><span class="cx">         }
</span><del>-        if (event.get())
-            target-&gt;dispatchEvent(event, IGNORE_EXCEPTION);
</del><ins>+        if (event)
+            target-&gt;dispatchEvent(*event);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // If text is empty, then delete the old composition here.  If text is non-empty, InsertTextCommand::input
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingReplaceSelectionCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -182,16 +182,16 @@
</span><span class="cx">     restoreAndRemoveTestRenderingNodesToFragment(holder.get());
</span><span class="cx"> 
</span><span class="cx">     // Give the root a chance to change the text.
</span><del>-    RefPtr&lt;BeforeTextInsertedEvent&gt; evt = BeforeTextInsertedEvent::create(text);
-    editableRoot-&gt;dispatchEvent(evt, ASSERT_NO_EXCEPTION);
-    if (text != evt-&gt;text() || !editableRoot-&gt;hasRichlyEditableStyle()) {
</del><ins>+    Ref&lt;BeforeTextInsertedEvent&gt; event = BeforeTextInsertedEvent::create(text);
+    editableRoot-&gt;dispatchEvent(event);
+    if (text != event-&gt;text() || !editableRoot-&gt;hasRichlyEditableStyle()) {
</ins><span class="cx">         restoreAndRemoveTestRenderingNodesToFragment(holder.get());
</span><span class="cx"> 
</span><span class="cx">         RefPtr&lt;Range&gt; range = selection.toNormalizedRange();
</span><span class="cx">         if (!range)
</span><span class="cx">             return;
</span><span class="cx"> 
</span><del>-        m_fragment = createFragmentFromText(*range, evt-&gt;text());
</del><ins>+        m_fragment = createFragmentFromText(*range, event-&gt;text());
</ins><span class="cx">         if (!m_fragment-&gt;firstChild())
</span><span class="cx">             return;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingTextInsertionBaseCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/TextInsertionBaseCommand.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/TextInsertionBaseCommand.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/editing/TextInsertionBaseCommand.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -63,9 +63,9 @@
</span><span class="cx">     if (Node* startNode = selectionForInsertion.start().containerNode()) {
</span><span class="cx">         if (startNode-&gt;rootEditableElement()) {
</span><span class="cx">             // Send BeforeTextInsertedEvent. The event handler will update text if necessary.
</span><del>-            RefPtr&lt;BeforeTextInsertedEvent&gt; evt = BeforeTextInsertedEvent::create(text);
-            startNode-&gt;rootEditableElement()-&gt;dispatchEvent(evt, IGNORE_EXCEPTION);
-            newText = evt-&gt;text();
</del><ins>+            Ref&lt;BeforeTextInsertedEvent&gt; event = BeforeTextInsertedEvent::create(text);
+            startNode-&gt;rootEditableElement()-&gt;dispatchEvent(event);
+            newText = event-&gt;text();
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     return newText;
</span><span class="lines">@@ -77,8 +77,8 @@
</span><span class="cx">     if (!node)
</span><span class="cx">         return false;
</span><span class="cx">     
</span><del>-    RefPtr&lt;BeforeTextInsertedEvent&gt; event = BeforeTextInsertedEvent::create(String(&quot;\n&quot;));
-    node-&gt;dispatchEvent(event, IGNORE_EXCEPTION);
</del><ins>+    Ref&lt;BeforeTextInsertedEvent&gt; event = BeforeTextInsertedEvent::create(String(&quot;\n&quot;));
+    node-&gt;dispatchEvent(event);
</ins><span class="cx">     return event-&gt;text().length();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -5120,10 +5120,9 @@
</span><span class="cx">     updateMediaState(UpdateMediaState::Asynchronously);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool HTMLMediaElement::dispatchEvent(PassRefPtr&lt;Event&gt; prpEvent)
</del><ins>+bool HTMLMediaElement::dispatchEvent(Event&amp; event)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;Event&gt; event = prpEvent;
-    if (event-&gt;type() == eventNames().webkitcurrentplaybacktargetiswirelesschangedEvent)
</del><ins>+    if (event.type() == eventNames().webkitcurrentplaybacktargetiswirelesschangedEvent)
</ins><span class="cx">         scheduleDelayedAction(CheckPlaybackTargetCompatablity);
</span><span class="cx">     return HTMLElement::dispatchEvent(event);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/html/HTMLMediaElement.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -564,7 +564,7 @@
</span><span class="cx">     void enqueuePlaybackTargetAvailabilityChangedEvent();
</span><span class="cx"> 
</span><span class="cx">     using EventTarget::dispatchEvent;
</span><del>-    virtual bool dispatchEvent(PassRefPtr&lt;Event&gt;) override;
</del><ins>+    virtual bool dispatchEvent(Event&amp;) override;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(MEDIA_SESSION)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTrackElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTrackElement.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTrackElement.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/html/HTMLTrackElement.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -260,7 +260,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (status == Failure) {
</span><span class="cx">         setReadyState(HTMLTrackElement::TRACK_ERROR);
</span><del>-        dispatchEvent(Event::create(eventNames().errorEvent, false, false), IGNORE_EXCEPTION);
</del><ins>+        dispatchEvent(Event::create(eventNames().errorEvent, false, false));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -271,7 +271,7 @@
</span><span class="cx"> 
</span><span class="cx">     //     2. If the file was successfully processed, fire a simple event named load at the 
</span><span class="cx">     //        track element.
</span><del>-    dispatchEvent(Event::create(eventNames().loadEvent, false, false), IGNORE_EXCEPTION);
</del><ins>+    dispatchEvent(Event::create(eventNames().loadEvent, false, false));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // NOTE: The values in the TextTrack::ReadinessState enum must stay in sync with those in HTMLTrackElement::ReadyState.
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlMediaControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/MediaController.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/MediaController.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/html/MediaController.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -544,11 +544,11 @@
</span><span class="cx"> 
</span><span class="cx"> void MediaController::asyncEventTimerFired()
</span><span class="cx"> {
</span><del>-    Vector&lt;RefPtr&lt;Event&gt;&gt; pendingEvents;
</del><ins>+    Vector&lt;Ref&lt;Event&gt;&gt; pendingEvents;
</ins><span class="cx"> 
</span><span class="cx">     m_pendingEvents.swap(pendingEvents);
</span><span class="cx">     for (auto&amp; pendingEvent : pendingEvents)
</span><del>-        dispatchEvent(pendingEvent.release(), IGNORE_EXCEPTION);
</del><ins>+        dispatchEvent(pendingEvent);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void MediaController::clearPositionTimerFired()
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlMediaControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/MediaController.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/MediaController.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/html/MediaController.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -145,7 +145,7 @@
</span><span class="cx">     bool m_muted;
</span><span class="cx">     ReadyState m_readyState;
</span><span class="cx">     PlaybackState m_playbackState;
</span><del>-    Vector&lt;RefPtr&lt;Event&gt;&gt; m_pendingEvents;
</del><ins>+    Vector&lt;Ref&lt;Event&gt;&gt; m_pendingEvents;
</ins><span class="cx">     Timer m_asyncEventTimer;
</span><span class="cx">     mutable Timer m_clearPositionTimer;
</span><span class="cx">     String m_mediaGroup;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLRenderingContextBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -4766,7 +4766,7 @@
</span><span class="cx"> 
</span><span class="cx"> void WebGLRenderingContextBase::dispatchContextLostEvent()
</span><span class="cx"> {
</span><del>-    RefPtr&lt;WebGLContextEvent&gt; event = WebGLContextEvent::create(eventNames().webglcontextlostEvent, false, true, &quot;&quot;);
</del><ins>+    Ref&lt;WebGLContextEvent&gt; event = WebGLContextEvent::create(eventNames().webglcontextlostEvent, false, true, &quot;&quot;);
</ins><span class="cx">     canvas()-&gt;dispatchEvent(event);
</span><span class="cx">     m_restoreAllowed = event-&gt;defaultPrevented();
</span><span class="cx">     if (m_contextLostMode == RealLostContext &amp;&amp; m_restoreAllowed)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLScriptRunnercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLScriptRunner.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLScriptRunner.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/html/parser/HTMLScriptRunner.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -81,7 +81,7 @@
</span><span class="cx">     return document-&gt;frame()-&gt;document()-&gt;url();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline PassRefPtr&lt;Event&gt; createScriptLoadEvent()
</del><ins>+inline Ref&lt;Event&gt; createScriptLoadEvent()
</ins><span class="cx"> {
</span><span class="cx">     return Event::create(eventNames().loadEvent, false, false);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackTextTrackCuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/TextTrackCue.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/TextTrackCue.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/html/track/TextTrackCue.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -190,7 +190,7 @@
</span><span class="cx">     m_cueIndex = invalidCueIndex;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool TextTrackCue::dispatchEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+bool TextTrackCue::dispatchEvent(Event&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     // When a TextTrack's mode is disabled: no cues are active, no events fired.
</span><span class="cx">     if (!track() || track()-&gt;mode() == TextTrack::disabledKeyword())
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackTextTrackCueh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/TextTrackCue.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/TextTrackCue.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/html/track/TextTrackCue.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx">     void invalidateCueIndex();
</span><span class="cx"> 
</span><span class="cx">     using EventTarget::dispatchEvent;
</span><del>-    virtual bool dispatchEvent(PassRefPtr&lt;Event&gt;) override;
</del><ins>+    virtual bool dispatchEvent(Event&amp;) override;
</ins><span class="cx"> 
</span><span class="cx">     bool isActive();
</span><span class="cx">     virtual void setIsActive(bool);
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFrameLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FrameLoader.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -2859,7 +2859,7 @@
</span><span class="cx">             // https://bugs.webkit.org/show_bug.cgi?id=116770
</span><span class="cx"> 
</span><span class="cx">             if (!m_frame.document()-&gt;inPageCache()) {
</span><del>-                RefPtr&lt;Event&gt; unloadEvent(Event::create(eventNames().unloadEvent, false, false));
</del><ins>+                Ref&lt;Event&gt; unloadEvent(Event::create(eventNames().unloadEvent, false, false));
</ins><span class="cx">                 // The DocumentLoader (and thus its DocumentLoadTiming) might get destroyed
</span><span class="cx">                 // while dispatching the event, so protect it to prevent writing the end
</span><span class="cx">                 // time into freed memory.
</span><span class="lines">@@ -2905,18 +2905,18 @@
</span><span class="cx">     if (!document-&gt;bodyOrFrameset())
</span><span class="cx">         return true;
</span><span class="cx">     
</span><del>-    RefPtr&lt;BeforeUnloadEvent&gt; beforeUnloadEvent = BeforeUnloadEvent::create();
</del><ins>+    Ref&lt;BeforeUnloadEvent&gt; beforeUnloadEvent = BeforeUnloadEvent::create();
</ins><span class="cx">     m_pageDismissalEventBeingDispatched = PageDismissalType::BeforeUnload;
</span><span class="cx"> 
</span><span class="cx">     {
</span><span class="cx">         ForbidPromptsScope forbidPrompts(m_frame.page());
</span><del>-        domWindow-&gt;dispatchEvent(beforeUnloadEvent.get(), domWindow-&gt;document());
</del><ins>+        domWindow-&gt;dispatchEvent(beforeUnloadEvent, domWindow-&gt;document());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     m_pageDismissalEventBeingDispatched = PageDismissalType::None;
</span><span class="cx"> 
</span><span class="cx">     if (!beforeUnloadEvent-&gt;defaultPrevented())
</span><del>-        document-&gt;defaultEventHandler(beforeUnloadEvent.get());
</del><ins>+        document-&gt;defaultEventHandler(beforeUnloadEvent.ptr());
</ins><span class="cx">     if (beforeUnloadEvent-&gt;returnValue().isNull())
</span><span class="cx">         return true;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderappcacheApplicationCacheHostcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/appcache/ApplicationCacheHost.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/appcache/ApplicationCacheHost.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/loader/appcache/ApplicationCacheHost.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -350,7 +350,7 @@
</span><span class="cx">             event = ProgressEvent::create(eventType, true, done, total);
</span><span class="cx">         else
</span><span class="cx">             event = Event::create(eventType, false, false);
</span><del>-        m_domApplicationCache-&gt;dispatchEvent(event, ASSERT_NO_EXCEPTION);
</del><ins>+        m_domApplicationCache-&gt;dispatchEvent(*event);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageDOMWindowcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DOMWindow.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DOMWindow.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/page/DOMWindow.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -156,7 +156,7 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    PassRefPtr&lt;MessageEvent&gt; event(ScriptExecutionContext* context)
</del><ins>+    Ref&lt;MessageEvent&gt; event(ScriptExecutionContext* context)
</ins><span class="cx">     {
</span><span class="cx">         std::unique_ptr&lt;MessagePortArray&gt; messagePorts = MessagePort::entanglePorts(*context, WTF::move(m_channels));
</span><span class="cx">         return MessageEvent::create(WTF::move(messagePorts), m_message, m_origin, String(), m_source);
</span><span class="lines">@@ -928,7 +928,7 @@
</span><span class="cx">     dispatchMessageEventWithOriginCheck(timer.targetOrigin(), timer.event(document()), timer.stackTrace());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void DOMWindow::dispatchMessageEventWithOriginCheck(SecurityOrigin* intendedTargetOrigin, PassRefPtr&lt;Event&gt; event, PassRefPtr&lt;ScriptCallStack&gt; stackTrace)
</del><ins>+void DOMWindow::dispatchMessageEventWithOriginCheck(SecurityOrigin* intendedTargetOrigin, Event&amp; event, PassRefPtr&lt;ScriptCallStack&gt; stackTrace)
</ins><span class="cx"> {
</span><span class="cx">     if (intendedTargetOrigin) {
</span><span class="cx">         // Check target origin now since the target document may have changed since the timer was scheduled.
</span><span class="lines">@@ -1870,7 +1870,7 @@
</span><span class="cx"> 
</span><span class="cx"> void DOMWindow::dispatchLoadEvent()
</span><span class="cx"> {
</span><del>-    RefPtr&lt;Event&gt; loadEvent(Event::create(eventNames().loadEvent, false, false));
</del><ins>+    Ref&lt;Event&gt; loadEvent = Event::create(eventNames().loadEvent, false, false);
</ins><span class="cx">     if (m_frame &amp;&amp; m_frame-&gt;loader().documentLoader() &amp;&amp; !m_frame-&gt;loader().documentLoader()-&gt;timing().loadEventStart()) {
</span><span class="cx">         // The DocumentLoader (and thus its DocumentLoadTiming) might get destroyed while dispatching
</span><span class="cx">         // the event, so protect it to prevent writing the end time into freed memory.
</span><span class="lines">@@ -1892,34 +1892,33 @@
</span><span class="cx">     InspectorInstrumentation::loadEventFired(frame());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool DOMWindow::dispatchEvent(PassRefPtr&lt;Event&gt; prpEvent, PassRefPtr&lt;EventTarget&gt; prpTarget)
</del><ins>+bool DOMWindow::dispatchEvent(Event&amp; event, EventTarget* target)
</ins><span class="cx"> {
</span><span class="cx">     Ref&lt;EventTarget&gt; protect(*this);
</span><del>-    RefPtr&lt;Event&gt; event = prpEvent;
</del><span class="cx"> 
</span><span class="cx">     // Pausing a page may trigger pagehide and pageshow events. WebCore also implicitly fires these
</span><span class="cx">     // events when closing a WebView. Here we keep track of the state of the page to prevent duplicate,
</span><span class="cx">     // unbalanced events per the definition of the pageshow event:
</span><span class="cx">     // &lt;http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#event-pageshow&gt;.
</span><del>-    if (event-&gt;eventInterface() == PageTransitionEventInterfaceType) {
-        if (event-&gt;type() == eventNames().pageshowEvent) {
</del><ins>+    if (event.eventInterface() == PageTransitionEventInterfaceType) {
+        if (event.type() == eventNames().pageshowEvent) {
</ins><span class="cx">             if (m_lastPageStatus == PageStatusShown)
</span><span class="cx">                 return true; // Event was previously dispatched; do not fire a duplicate event.
</span><span class="cx">             m_lastPageStatus = PageStatusShown;
</span><del>-        } else if (event-&gt;type() == eventNames().pagehideEvent) {
</del><ins>+        } else if (event.type() == eventNames().pagehideEvent) {
</ins><span class="cx">             if (m_lastPageStatus == PageStatusHidden)
</span><span class="cx">                 return true; // Event was previously dispatched; do not fire a duplicate event.
</span><span class="cx">             m_lastPageStatus = PageStatusHidden;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    event-&gt;setTarget(prpTarget ? prpTarget : this);
-    event-&gt;setCurrentTarget(this);
-    event-&gt;setEventPhase(Event::AT_TARGET);
</del><ins>+    event.setTarget(target ? target : this);
+    event.setCurrentTarget(this);
+    event.setEventPhase(Event::AT_TARGET);
</ins><span class="cx"> 
</span><del>-    InspectorInstrumentationCookie cookie = InspectorInstrumentation::willDispatchEventOnWindow(frame(), *event, *this);
</del><ins>+    InspectorInstrumentationCookie cookie = InspectorInstrumentation::willDispatchEventOnWindow(frame(), event, *this);
</ins><span class="cx"> 
</span><del>-    bool result = fireEventListeners(event.get());
</del><ins>+    bool result = fireEventListeners(event);
</ins><span class="cx"> 
</span><span class="cx">     InspectorInstrumentation::didDispatchEventOnWindow(cookie);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageDOMWindowh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DOMWindow.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DOMWindow.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/page/DOMWindow.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -244,7 +244,7 @@
</span><span class="cx">         // Needed for Objective-C bindings (see bug 28774).
</span><span class="cx">         void postMessage(PassRefPtr&lt;SerializedScriptValue&gt; message, MessagePort*, const String&amp; targetOrigin, DOMWindow&amp; source, ExceptionCode&amp;);
</span><span class="cx">         void postMessageTimerFired(PostMessageTimer&amp;);
</span><del>-        void dispatchMessageEventWithOriginCheck(SecurityOrigin* intendedTargetOrigin, PassRefPtr&lt;Event&gt;, PassRefPtr&lt;Inspector::ScriptCallStack&gt;);
</del><ins>+        void dispatchMessageEventWithOriginCheck(SecurityOrigin* intendedTargetOrigin, Event&amp;, PassRefPtr&lt;Inspector::ScriptCallStack&gt;);
</ins><span class="cx"> 
</span><span class="cx">         void scrollBy(int x, int y) const;
</span><span class="cx">         void scrollTo(int x, int y) const;
</span><span class="lines">@@ -278,7 +278,7 @@
</span><span class="cx">         virtual void removeAllEventListeners() override;
</span><span class="cx"> 
</span><span class="cx">         using EventTarget::dispatchEvent;
</span><del>-        bool dispatchEvent(PassRefPtr&lt;Event&gt; prpEvent, PassRefPtr&lt;EventTarget&gt; prpTarget);
</del><ins>+        bool dispatchEvent(Event&amp;, EventTarget*);
</ins><span class="cx"> 
</span><span class="cx">         void dispatchLoadEvent();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageDeviceControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DeviceController.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DeviceController.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/page/DeviceController.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -71,9 +71,8 @@
</span><span class="cx">         m_client-&gt;stopUpdating();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void DeviceController::dispatchDeviceEvent(PassRefPtr&lt;Event&gt; prpEvent)
</del><ins>+void DeviceController::dispatchDeviceEvent(Event&amp; event)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;Event&gt; event = prpEvent;
</del><span class="cx">     Vector&lt;RefPtr&lt;DOMWindow&gt;&gt; listenerVector;
</span><span class="cx">     copyToVector(m_listeners, listenerVector);
</span><span class="cx">     for (auto&amp; listener : listenerVector) {
</span><span class="lines">@@ -93,8 +92,10 @@
</span><span class="cx">     m_lastEventListeners.clear();
</span><span class="cx">     for (auto&amp; listener : listenerVector) {
</span><span class="cx">         auto document = listener-&gt;document();
</span><del>-        if (document &amp;&amp; !document-&gt;activeDOMObjectsAreSuspended() &amp;&amp; !document-&gt;activeDOMObjectsAreStopped())
-            listener-&gt;dispatchEvent(getLastEvent());
</del><ins>+        if (document &amp;&amp; !document-&gt;activeDOMObjectsAreSuspended() &amp;&amp; !document-&gt;activeDOMObjectsAreStopped()) {
+            if (auto lastEvent = getLastEvent())
+                listener-&gt;dispatchEvent(*lastEvent);
+        }
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageDeviceControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DeviceController.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DeviceController.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/page/DeviceController.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -48,12 +48,12 @@
</span><span class="cx">     void removeDeviceEventListener(DOMWindow*);
</span><span class="cx">     void removeAllDeviceEventListeners(DOMWindow*);
</span><span class="cx"> 
</span><del>-    void dispatchDeviceEvent(PassRefPtr&lt;Event&gt;);
</del><ins>+    void dispatchDeviceEvent(Event&amp;);
</ins><span class="cx">     bool isActive() { return !m_listeners.isEmpty(); }
</span><span class="cx">     DeviceClient* client() { return m_client; }
</span><span class="cx"> 
</span><span class="cx">     virtual bool hasLastData() { return false; }
</span><del>-    virtual PassRefPtr&lt;Event&gt; getLastEvent() { return 0; }
</del><ins>+    virtual RefPtr&lt;Event&gt; getLastEvent() { return nullptr; }
</ins><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="cx">     void fireDeviceEvent();
</span></span></pre></div>
<a id="trunkSourceWebCorepageDragControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DragController.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DragController.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/page/DragController.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -446,7 +446,7 @@
</span><span class="cx">     ASSERT(m_page.dragCaretController().hasCaret());
</span><span class="cx">     String text = m_page.dragCaretController().isContentRichlyEditable() ? emptyString() : dragData.asPlainText();
</span><span class="cx">     Node* target = innerFrame-&gt;editor().findEventTargetFrom(m_page.dragCaretController().caretPosition());
</span><del>-    return target-&gt;dispatchEvent(TextEvent::createForDrop(innerFrame-&gt;document()-&gt;domWindow(), text), IGNORE_EXCEPTION);
</del><ins>+    return target-&gt;dispatchEvent(TextEvent::createForDrop(innerFrame-&gt;document()-&gt;domWindow(), text));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool DragController::concludeEditDrag(DragData&amp; dragData)
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventHandlercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventHandler.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventHandler.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/page/EventHandler.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -3012,13 +3012,13 @@
</span><span class="cx">     PlatformKeyboardEvent keyDownEvent = initialKeyEvent;    
</span><span class="cx">     if (keyDownEvent.type() != PlatformEvent::RawKeyDown)
</span><span class="cx">         keyDownEvent.disambiguateKeyDownEvent(PlatformEvent::RawKeyDown, backwardCompatibilityMode);
</span><del>-    RefPtr&lt;KeyboardEvent&gt; keydown = KeyboardEvent::create(keyDownEvent, m_frame.document()-&gt;defaultView());
</del><ins>+    Ref&lt;KeyboardEvent&gt; keydown = KeyboardEvent::create(keyDownEvent, m_frame.document()-&gt;defaultView());
</ins><span class="cx">     if (matchedAnAccessKey)
</span><span class="cx">         keydown-&gt;setDefaultPrevented(true);
</span><span class="cx">     keydown-&gt;setTarget(element);
</span><span class="cx"> 
</span><span class="cx">     if (initialKeyEvent.type() == PlatformEvent::RawKeyDown) {
</span><del>-        element-&gt;dispatchEvent(keydown, IGNORE_EXCEPTION);
</del><ins>+        element-&gt;dispatchEvent(keydown);
</ins><span class="cx">         // If frame changed as a result of keydown dispatch, then return true to avoid sending a subsequent keypress message to the new frame.
</span><span class="cx">         bool changedFocusedFrame = m_frame.page() &amp;&amp; &amp;m_frame != &amp;m_frame.page()-&gt;focusController().focusedOrMainFrame();
</span><span class="cx">         return keydown-&gt;defaultHandled() || keydown-&gt;defaultPrevented() || changedFocusedFrame;
</span><span class="lines">@@ -3029,7 +3029,7 @@
</span><span class="cx">     // in order to match IE:
</span><span class="cx">     // 1. preventing default handling of keydown and keypress events has no effect on IM input;
</span><span class="cx">     // 2. if an input method handles the event, its keyCode is set to 229 in keydown event.
</span><del>-    m_frame.editor().handleInputMethodKeydown(keydown.get());
</del><ins>+    m_frame.editor().handleInputMethodKeydown(keydown.ptr());
</ins><span class="cx">     
</span><span class="cx">     bool handledByInputMethod = keydown-&gt;defaultHandled();
</span><span class="cx">     
</span><span class="lines">@@ -3040,10 +3040,10 @@
</span><span class="cx">         keydown-&gt;setDefaultHandled();
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    if (accessibilityPreventsEventPropogation(keydown.get()))
</del><ins>+    if (accessibilityPreventsEventPropogation(keydown))
</ins><span class="cx">         keydown-&gt;stopPropagation();
</span><span class="cx"> 
</span><del>-    element-&gt;dispatchEvent(keydown, IGNORE_EXCEPTION);
</del><ins>+    element-&gt;dispatchEvent(keydown);
</ins><span class="cx">     // If frame changed as a result of keydown dispatch, then return early to avoid sending a subsequent keypress message to the new frame.
</span><span class="cx">     bool changedFocusedFrame = m_frame.page() &amp;&amp; &amp;m_frame != &amp;m_frame.page()-&gt;focusController().focusedOrMainFrame();
</span><span class="cx">     bool keydownResult = keydown-&gt;defaultHandled() || keydown-&gt;defaultPrevented() || changedFocusedFrame;
</span><span class="lines">@@ -3062,14 +3062,14 @@
</span><span class="cx">     keyPressEvent.disambiguateKeyDownEvent(PlatformEvent::Char, backwardCompatibilityMode);
</span><span class="cx">     if (keyPressEvent.text().isEmpty())
</span><span class="cx">         return keydownResult;
</span><del>-    RefPtr&lt;KeyboardEvent&gt; keypress = KeyboardEvent::create(keyPressEvent, m_frame.document()-&gt;defaultView());
</del><ins>+    Ref&lt;KeyboardEvent&gt; keypress = KeyboardEvent::create(keyPressEvent, m_frame.document()-&gt;defaultView());
</ins><span class="cx">     keypress-&gt;setTarget(element);
</span><span class="cx">     if (keydownResult)
</span><span class="cx">         keypress-&gt;setDefaultPrevented(true);
</span><span class="cx"> #if PLATFORM(COCOA)
</span><span class="cx">     keypress-&gt;keypressCommands() = keydown-&gt;keypressCommands();
</span><span class="cx"> #endif
</span><del>-    element-&gt;dispatchEvent(keypress, IGNORE_EXCEPTION);
</del><ins>+    element-&gt;dispatchEvent(keypress);
</ins><span class="cx"> 
</span><span class="cx">     return keydownResult || keypress-&gt;defaultPrevented() || keypress-&gt;defaultHandled();
</span><span class="cx"> }
</span><span class="lines">@@ -3186,7 +3186,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool EventHandler::accessibilityPreventsEventPropogation(KeyboardEvent* event)
</del><ins>+bool EventHandler::accessibilityPreventsEventPropogation(KeyboardEvent&amp; event)
</ins><span class="cx"> {
</span><span class="cx"> #if PLATFORM(COCOA)
</span><span class="cx">     if (!AXObjectCache::accessibilityEnhancedUserInterfaceEnabled())
</span><span class="lines">@@ -3196,9 +3196,9 @@
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     // Check for key events that are relevant to accessibility: tab and arrows keys that change focus
</span><del>-    if (event-&gt;keyIdentifier() == &quot;U+0009&quot;)
</del><ins>+    if (event.keyIdentifier() == &quot;U+0009&quot;)
</ins><span class="cx">         return true;
</span><del>-    FocusDirection direction = focusDirectionForKey(event-&gt;keyIdentifier());
</del><ins>+    FocusDirection direction = focusDirectionForKey(event.keyIdentifier());
</ins><span class="cx">     if (direction != FocusDirectionNone)
</span><span class="cx">         return true;
</span><span class="cx"> #else
</span><span class="lines">@@ -3494,10 +3494,10 @@
</span><span class="cx">     if (FrameView* view = m_frame.view())
</span><span class="cx">         view-&gt;disableLayerFlushThrottlingTemporarilyForInteraction();
</span><span class="cx"> 
</span><del>-    RefPtr&lt;TextEvent&gt; event = TextEvent::create(m_frame.document()-&gt;domWindow(), text, inputType);
</del><ins>+    Ref&lt;TextEvent&gt; event = TextEvent::create(m_frame.document()-&gt;domWindow(), text, inputType);
</ins><span class="cx">     event-&gt;setUnderlyingEvent(underlyingEvent);
</span><span class="cx"> 
</span><del>-    target-&gt;dispatchEvent(event, IGNORE_EXCEPTION);
</del><ins>+    target-&gt;dispatchEvent(event);
</ins><span class="cx">     return event-&gt;defaultHandled();
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="lines">@@ -3899,11 +3899,11 @@
</span><span class="cx">             RefPtr&lt;TouchList&gt; targetTouches(isTouchCancelEvent ? emptyList : touchesByTarget.get(touchEventTarget));
</span><span class="cx">             ASSERT(targetTouches);
</span><span class="cx"> 
</span><del>-            RefPtr&lt;TouchEvent&gt; touchEvent =
</del><ins>+            Ref&lt;TouchEvent&gt; touchEvent =
</ins><span class="cx">                 TouchEvent::create(effectiveTouches.get(), targetTouches.get(), changedTouches[state].m_touches.get(),
</span><span class="cx">                     stateName, touchEventTarget-&gt;toNode()-&gt;document().defaultView(),
</span><span class="cx">                     0, 0, 0, 0, event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey());
</span><del>-            touchEventTarget-&gt;toNode()-&gt;dispatchTouchEvent(touchEvent.get());
</del><ins>+            touchEventTarget-&gt;toNode()-&gt;dispatchTouchEvent(touchEvent);
</ins><span class="cx">             swallowedEvent = swallowedEvent || touchEvent-&gt;defaultPrevented() || touchEvent-&gt;defaultHandled();
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventHandlerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventHandler.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventHandler.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/page/EventHandler.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -247,7 +247,7 @@
</span><span class="cx">     WEBCORE_EXPORT bool keyEvent(const PlatformKeyboardEvent&amp;);
</span><span class="cx">     void defaultKeyboardEventHandler(KeyboardEvent*);
</span><span class="cx"> 
</span><del>-    bool accessibilityPreventsEventPropogation(KeyboardEvent*);
</del><ins>+    bool accessibilityPreventsEventPropogation(KeyboardEvent&amp;);
</ins><span class="cx">     WEBCORE_EXPORT void handleKeyboardSelectionMovementForAccessibility(KeyboardEvent*);
</span><span class="cx"> 
</span><span class="cx">     bool handleTextInputEvent(const String&amp; text, Event* underlyingEvent = nullptr, TextEventInputType = TextEventInputKeyboard);
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventSourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventSource.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventSource.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/page/EventSource.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -410,11 +410,11 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;MessageEvent&gt; EventSource::createMessageEvent()
</del><ins>+Ref&lt;MessageEvent&gt; EventSource::createMessageEvent()
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;MessageEvent&gt; event = MessageEvent::create();
</del><ins>+    Ref&lt;MessageEvent&gt; event = MessageEvent::create();
</ins><span class="cx">     event-&gt;initMessageEvent(m_eventName.isEmpty() ? eventNames().messageEvent : AtomicString(m_eventName), false, false, SerializedScriptValue::create(String::adopt(m_data)), m_eventStreamOrigin, m_lastEventId, 0, 0);
</span><del>-    return event.release();
</del><ins>+    return event;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventSource.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventSource.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/page/EventSource.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -99,7 +99,7 @@
</span><span class="cx">     void abortConnectionAttempt();
</span><span class="cx">     void parseEventStream();
</span><span class="cx">     void parseEventStreamLine(unsigned pos, int fieldLength, int lineLength);
</span><del>-    PassRefPtr&lt;MessageEvent&gt; createMessageEvent();
</del><ins>+    Ref&lt;MessageEvent&gt; createMessageEvent();
</ins><span class="cx"> 
</span><span class="cx">     URL m_url;
</span><span class="cx">     bool m_withCredentials;
</span></span></pre></div>
<a id="trunkSourceWebCorepageFrameViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FrameView.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FrameView.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/page/FrameView.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -3184,14 +3184,14 @@
</span><span class="cx">     bool isMainFrame = frame().isMainFrame();
</span><span class="cx">     bool canSendResizeEventSynchronously = isMainFrame &amp;&amp; !m_shouldAutoSize;
</span><span class="cx"> 
</span><del>-    RefPtr&lt;Event&gt; resizeEvent = Event::create(eventNames().resizeEvent, false, false);
</del><ins>+    Ref&lt;Event&gt; resizeEvent = Event::create(eventNames().resizeEvent, false, false);
</ins><span class="cx">     if (canSendResizeEventSynchronously)
</span><del>-        frame().document()-&gt;dispatchWindowEvent(resizeEvent.release());
</del><ins>+        frame().document()-&gt;dispatchWindowEvent(resizeEvent);
</ins><span class="cx">     else {
</span><span class="cx">         // FIXME: Queueing this event for an unpredictable time in the future seems
</span><span class="cx">         // intrinsically racy. By the time this resize event fires, the frame might
</span><span class="cx">         // be resized again, so we could end up with two resize events for the same size.
</span><del>-        frame().document()-&gt;enqueueWindowEvent(resizeEvent.release());
</del><ins>+        frame().document()-&gt;enqueueWindowEvent(WTF::move(resizeEvent));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (InspectorInstrumentation::hasFrontends() &amp;&amp; isMainFrame) {
</span><span class="lines">@@ -3377,11 +3377,11 @@
</span><span class="cx">         m_horizontalOverflow = horizontalOverflow;
</span><span class="cx">         m_verticalOverflow = verticalOverflow;
</span><span class="cx"> 
</span><del>-        RefPtr&lt;OverflowEvent&gt; overflowEvent = OverflowEvent::create(horizontalOverflowChanged, horizontalOverflow,
</del><ins>+        Ref&lt;OverflowEvent&gt; overflowEvent = OverflowEvent::create(horizontalOverflowChanged, horizontalOverflow,
</ins><span class="cx">             verticalOverflowChanged, verticalOverflow);
</span><span class="cx">         overflowEvent-&gt;setTarget(viewportRenderer-&gt;element());
</span><span class="cx"> 
</span><del>-        frame().document()-&gt;enqueueOverflowEvent(overflowEvent.release());
</del><ins>+        frame().document()-&gt;enqueueOverflowEvent(WTF::move(overflowEvent));
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlock.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -169,9 +169,9 @@
</span><span class="cx">         if (!horizontalLayoutOverflowChanged &amp;&amp; !verticalLayoutOverflowChanged)
</span><span class="cx">             return;
</span><span class="cx"> 
</span><del>-        RefPtr&lt;OverflowEvent&gt; overflowEvent = OverflowEvent::create(horizontalLayoutOverflowChanged, hasHorizontalLayoutOverflow, verticalLayoutOverflowChanged, hasVerticalLayoutOverflow);
</del><ins>+        Ref&lt;OverflowEvent&gt; overflowEvent = OverflowEvent::create(horizontalLayoutOverflowChanged, hasHorizontalLayoutOverflow, verticalLayoutOverflowChanged, hasVerticalLayoutOverflow);
</ins><span class="cx">         overflowEvent-&gt;setTarget(m_block-&gt;element());
</span><del>-        m_block-&gt;document().enqueueOverflowEvent(overflowEvent.release());
</del><ins>+        m_block-&gt;document().enqueueOverflowEvent(WTF::move(overflowEvent));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerEventQueuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/WorkerEventQueue.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/WorkerEventQueue.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/workers/WorkerEventQueue.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -49,8 +49,8 @@
</span><span class="cx"> class WorkerEventQueue::EventDispatcher
</span><span class="cx"> {
</span><span class="cx"> public:
</span><del>-    EventDispatcher(PassRefPtr&lt;Event&gt; event, WorkerEventQueue&amp; eventQueue)
-        : m_event(event)
</del><ins>+    EventDispatcher(RefPtr&lt;Event&gt;&amp;&amp; event, WorkerEventQueue&amp; eventQueue)
+        : m_event(WTF::move(event))
</ins><span class="cx">         , m_eventQueue(eventQueue)
</span><span class="cx">         , m_isCancelled(false)
</span><span class="cx">     {
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx">         if (m_isCancelled)
</span><span class="cx">             return;
</span><span class="cx">         m_eventQueue.m_eventDispatcherMap.remove(m_event.get());
</span><del>-        m_event-&gt;target()-&gt;dispatchEvent(m_event);
</del><ins>+        m_event-&gt;target()-&gt;dispatchEvent(*m_event);
</ins><span class="cx">         m_event = nullptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -83,13 +83,13 @@
</span><span class="cx">     bool m_isCancelled;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-bool WorkerEventQueue::enqueueEvent(PassRefPtr&lt;Event&gt; event)
</del><ins>+bool WorkerEventQueue::enqueueEvent(Ref&lt;Event&gt;&amp;&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     if (m_isClosed)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    EventDispatcher* eventDispatcherPtr = new EventDispatcher(event.get(), *this);
-    m_eventDispatcherMap.add(event, eventDispatcherPtr);
</del><ins>+    EventDispatcher* eventDispatcherPtr = new EventDispatcher(event.copyRef(), *this);
+    m_eventDispatcherMap.add(event.ptr(), eventDispatcherPtr);
</ins><span class="cx">     m_scriptExecutionContext.postTask([eventDispatcherPtr] (ScriptExecutionContext&amp;) {
</span><span class="cx">         std::unique_ptr&lt;EventDispatcher&gt; eventDispatcher(eventDispatcherPtr);
</span><span class="cx">         eventDispatcher-&gt;dispatch();
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerEventQueueh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/WorkerEventQueue.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/WorkerEventQueue.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/workers/WorkerEventQueue.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx">     explicit WorkerEventQueue(ScriptExecutionContext&amp;);
</span><span class="cx">     virtual ~WorkerEventQueue();
</span><span class="cx"> 
</span><del>-    virtual bool enqueueEvent(PassRefPtr&lt;Event&gt;) override;
</del><ins>+    virtual bool enqueueEvent(Ref&lt;Event&gt;&amp;&amp;) override;
</ins><span class="cx">     virtual bool cancelEvent(Event&amp;) override;
</span><span class="cx">     virtual void close() override;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorexmlXMLHttpRequestProgressEventThrottlecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/XMLHttpRequestProgressEventThrottle.cpp (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/XMLHttpRequestProgressEventThrottle.cpp        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/xml/XMLHttpRequestProgressEventThrottle.cpp        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -81,25 +81,24 @@
</span><span class="cx">     m_hasThrottledProgressEvent = true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void XMLHttpRequestProgressEventThrottle::dispatchReadyStateChangeEvent(RefPtr&lt;Event&gt;&amp;&amp; event, ProgressEventAction progressEventAction)
</del><ins>+void XMLHttpRequestProgressEventThrottle::dispatchReadyStateChangeEvent(Event&amp; event, ProgressEventAction progressEventAction)
</ins><span class="cx"> {
</span><span class="cx">     if (progressEventAction == FlushProgressEvent)
</span><span class="cx">         flushProgressEvent();
</span><span class="cx"> 
</span><del>-    dispatchEvent(WTF::move(event));
</del><ins>+    dispatchEvent(event);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void XMLHttpRequestProgressEventThrottle::dispatchEvent(RefPtr&lt;Event&gt;&amp;&amp; event)
</del><ins>+void XMLHttpRequestProgressEventThrottle::dispatchEvent(Event&amp; event)
</ins><span class="cx"> {
</span><del>-    ASSERT(event);
</del><span class="cx">     if (m_deferEvents) {
</span><del>-        if (m_deferredEvents.size() &gt; 1 &amp;&amp; event-&gt;type() == eventNames().readystatechangeEvent &amp;&amp; event-&gt;type() == m_deferredEvents.last()-&gt;type()) {
</del><ins>+        if (m_deferredEvents.size() &gt; 1 &amp;&amp; event.type() == eventNames().readystatechangeEvent &amp;&amp; event.type() == m_deferredEvents.last()-&gt;type()) {
</ins><span class="cx">             // Readystatechange events are state-less so avoid repeating two identical events in a row on resume.
</span><span class="cx">             return;
</span><span class="cx">         }
</span><del>-        m_deferredEvents.append(WTF::move(event));
</del><ins>+        m_deferredEvents.append(event);
</ins><span class="cx">     } else
</span><del>-        m_target-&gt;dispatchEvent(WTF::move(event));
</del><ins>+        m_target-&gt;dispatchEvent(event);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void XMLHttpRequestProgressEventThrottle::dispatchProgressEvent(const AtomicString&amp; type)
</span><span class="lines">@@ -120,8 +119,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (m_deferEvents &amp;&amp; m_deferredProgressEvent) {
</span><span class="cx">         // Move the progress event to the queue, to get it in the right order on resume.
</span><del>-        m_deferredEvents.append(m_deferredProgressEvent);
-        m_deferredProgressEvent = nullptr;
</del><ins>+        m_deferredEvents.append(m_deferredProgressEvent.releaseNonNull());
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -144,16 +142,15 @@
</span><span class="cx">     // Take over the deferred events before dispatching them which can potentially add more.
</span><span class="cx">     auto deferredEvents = WTF::move(m_deferredEvents);
</span><span class="cx"> 
</span><del>-    RefPtr&lt;Event&gt; deferredProgressEvent = m_deferredProgressEvent;
-    m_deferredProgressEvent = nullptr;
</del><ins>+    RefPtr&lt;Event&gt; deferredProgressEvent = WTF::move(m_deferredProgressEvent);
</ins><span class="cx"> 
</span><span class="cx">     for (auto&amp; deferredEvent : deferredEvents)
</span><del>-        dispatchEvent(deferredEvent.release());
</del><ins>+        dispatchEvent(deferredEvent);
</ins><span class="cx"> 
</span><span class="cx">     // The progress event will be in the m_deferredEvents vector if the load was finished while suspended.
</span><span class="cx">     // If not, just send the most up-to-date progress on resume.
</span><span class="cx">     if (deferredProgressEvent)
</span><del>-        dispatchEvent(WTF::move(deferredProgressEvent));
</del><ins>+        dispatchEvent(*deferredProgressEvent);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void XMLHttpRequestProgressEventThrottle::fired()
</span></span></pre></div>
<a id="trunkSourceWebCorexmlXMLHttpRequestProgressEventThrottleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/XMLHttpRequestProgressEventThrottle.h (192353 => 192354)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/XMLHttpRequestProgressEventThrottle.h        2015-11-12 07:17:09 UTC (rev 192353)
+++ trunk/Source/WebCore/xml/XMLHttpRequestProgressEventThrottle.h        2015-11-12 07:28:57 UTC (rev 192354)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx">     virtual ~XMLHttpRequestProgressEventThrottle();
</span><span class="cx"> 
</span><span class="cx">     void dispatchThrottledProgressEvent(bool lengthComputable, unsigned long long loaded, unsigned long long total);
</span><del>-    void dispatchReadyStateChangeEvent(RefPtr&lt;Event&gt;&amp;&amp;, ProgressEventAction = DoNotFlushProgressEvent);
</del><ins>+    void dispatchReadyStateChangeEvent(Event&amp;, ProgressEventAction = DoNotFlushProgressEvent);
</ins><span class="cx">     void dispatchProgressEvent(const AtomicString&amp;);
</span><span class="cx"> 
</span><span class="cx">     void suspend();
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx">     virtual void fired();
</span><span class="cx">     void dispatchDeferredEvents();
</span><span class="cx">     void flushProgressEvent();
</span><del>-    void dispatchEvent(RefPtr&lt;Event&gt;&amp;&amp;);
</del><ins>+    void dispatchEvent(Event&amp;);
</ins><span class="cx"> 
</span><span class="cx">     bool hasEventToDispatch() const;
</span><span class="cx"> 
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool m_deferEvents;
</span><span class="cx">     RefPtr&lt;Event&gt; m_deferredProgressEvent;
</span><del>-    Vector&lt;RefPtr&lt;Event&gt;&gt; m_deferredEvents;
</del><ins>+    Vector&lt;Ref&lt;Event&gt;&gt; m_deferredEvents;
</ins><span class="cx">     Timer m_dispatchDeferredEventsTimer;
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>