<!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 <cdumez@apple.com>
</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 <cdumez@apple.com>
+
</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& eventType, PassRefPtr<BatteryStatus> batteryStatus)
</span><span class="cx"> {
</span><del>- RefPtr<Event> event = Event::create(eventType, false, false);
</del><ins>+ Ref<Event> event = Event::create(eventType, false, false);
</ins><span class="cx"> RefPtr<BatteryStatus> battery = batteryStatus;
</span><span class="cx"> for (auto& listener : m_listeners)
</span><span class="cx"> listener->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->level() : 1;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void BatteryManager::didChangeBatteryStatus(PassRefPtr<Event> event, PassRefPtr<BatteryStatus> batteryStatus)
</del><ins>+void BatteryManager::didChangeBatteryStatus(Event& event, PassRefPtr<BatteryStatus> 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<Event>, PassRefPtr<BatteryStatus>);
</del><ins>+ void didChangeBatteryStatus(Event&, PassRefPtr<BatteryStatus>);
</ins><span class="cx"> void updateBatteryStatus(PassRefPtr<BatteryStatus>);
</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<RefPtr<EventTarget>>& eventTargets)
</del><ins>+bool IDBEventDispatcher::dispatch(Event& event, Vector<RefPtr<EventTarget>>& 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->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->setCurrentTarget(eventTargets[i].get());
</del><ins>+ event.setCurrentTarget(eventTargets[i].get());
</ins><span class="cx"> eventTargets[i]->fireEventListeners(event);
</span><del>- if (event->propagationStopped())
</del><ins>+ if (event.propagationStopped())
</ins><span class="cx"> goto doneDispatching;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- event->setEventPhase(Event::AT_TARGET);
- event->setCurrentTarget(eventTargets[0].get());
</del><ins>+ event.setEventPhase(Event::AT_TARGET);
+ event.setCurrentTarget(eventTargets[0].get());
</ins><span class="cx"> eventTargets[0]->fireEventListeners(event);
</span><del>- if (event->propagationStopped() || !event->bubbles() || event->cancelBubble())
</del><ins>+ if (event.propagationStopped() || !event.bubbles() || event.cancelBubble())
</ins><span class="cx"> goto doneDispatching;
</span><span class="cx">
</span><del>- event->setEventPhase(Event::BUBBLING_PHASE);
</del><ins>+ event.setEventPhase(Event::BUBBLING_PHASE);
</ins><span class="cx"> for (size_t i = 1; i < size; ++i) { // Don't do the first element.
</span><del>- event->setCurrentTarget(eventTargets[i].get());
</del><ins>+ event.setCurrentTarget(eventTargets[i].get());
</ins><span class="cx"> eventTargets[i]->fireEventListeners(event);
</span><del>- if (event->propagationStopped() || event->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)." -- Jonas Sicking
</span><span class="cx">
</span><span class="cx"> doneDispatching:
</span><del>- event->setCurrentTarget(nullptr);
- event->setEventPhase(0);
- return !event->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<RefPtr<EventTarget>>&); // The target first and then its ancestors in order of how the event bubbles.
</del><ins>+ static bool dispatch(Event&, Vector<RefPtr<EventTarget>>&); // 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<Event> event = IDBVersionChangeEvent::create(currentVersion, requestedVersion, eventNames().versionchangeEvent);
</span><span class="cx"> event->setTarget(this);
</span><del>- scriptExecutionContext()->eventQueue().enqueueEvent(adoptRef(&event.leakRef()));
</del><ins>+ scriptExecutionContext()->eventQueue().enqueueEvent(WTF::move(event));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void IDBDatabase::didCreateIndexInfo(const IDBIndexInfo& 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->setTarget(this);
</span><del>- scriptExecutionContext()->eventQueue().enqueueEvent(&event.get());
</del><ins>+ scriptExecutionContext()->eventQueue().enqueueEvent(WTF::move(event));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool IDBRequest::dispatchEvent(PassRefPtr<Event> prpEvent)
</del><ins>+bool IDBRequest::dispatchEvent(Event& event)
</ins><span class="cx"> {
</span><del>- LOG(IndexedDB, "IDBRequest::dispatchEvent - %s", prpEvent->type().characters8());
</del><ins>+ LOG(IndexedDB, "IDBRequest::dispatchEvent - %s", event.type().characters8());
</ins><span class="cx">
</span><del>- RefPtr<Event> event = prpEvent;
-
- if (event->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<RefPtr<EventTarget>> 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<IDBRequest>::deref;
</span><span class="cx">
</span><span class="cx"> void enqueueEvent(Ref<Event>&&);
</span><del>- virtual bool dispatchEvent(PassRefPtr<Event>) override final;
</del><ins>+ virtual bool dispatchEvent(Event&) override final;
</ins><span class="cx">
</span><span class="cx"> IDBConnectionToServer& 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<Event> event)
</del><ins>+void IDBTransaction::enqueueEvent(Ref<Event>&& 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->setTarget(this);
</span><del>- scriptExecutionContext()->eventQueue().enqueueEvent(&event.get());
</del><ins>+ scriptExecutionContext()->eventQueue().enqueueEvent(WTF::move(event));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool IDBTransaction::dispatchEvent(PassRefPtr<Event> event)
</del><ins>+bool IDBTransaction::dispatchEvent(Event& event)
</ins><span class="cx"> {
</span><span class="cx"> LOG(IndexedDB, "IDBTransaction::dispatchEvent");
</span><span class="cx">
</span><span class="cx"> ASSERT(scriptExecutionContext());
</span><del>- ASSERT(event->target() == this);
- ASSERT(event->type() == eventNames().completeEvent || event->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<RefPtr<EventTarget>> 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<IDBObjectStore> IDBTransaction::createObjectStore(const IDBObjectStoreInfo& 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<Event>) override final;
</del><ins>+ virtual bool dispatchEvent(Event&) 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<Event>);
</del><ins>+ void enqueueEvent(Ref<Event>&&);
</ins><span class="cx">
</span><span class="cx"> Ref<IDBRequest> requestIndexRecord(ScriptExecutionContext&, IDBIndex&, IndexedDB::IndexRecordType, const IDBKeyRangeData&);
</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& event : m_enqueuedEvents)
</span><del>- context->eventQueue().cancelEvent(*event);
</del><ins>+ context->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& 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<Event> event)
</del><ins>+void LegacyDatabase::enqueueEvent(Ref<Event>&& 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->setTarget(this);
</span><del>- scriptExecutionContext()->eventQueue().enqueueEvent(event.get());
- m_enqueuedEvents.append(event);
</del><ins>+ scriptExecutionContext()->eventQueue().enqueueEvent(event.copyRef());
+ m_enqueuedEvents.append(WTF::move(event));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool LegacyDatabase::dispatchEvent(PassRefPtr<Event> event)
</del><ins>+bool LegacyDatabase::dispatchEvent(Event& event)
</ins><span class="cx"> {
</span><span class="cx"> LOG(StorageAPI, "LegacyDatabase::dispatchEvent");
</span><del>- ASSERT(event->type() == eventNames().versionchangeEvent);
</del><ins>+ ASSERT(event.type() == eventNames().versionchangeEvent);
</ins><span class="cx"> for (size_t i = 0; i < m_enqueuedEvents.size(); ++i) {
</span><del>- if (m_enqueuedEvents[i].get() == event.get())
</del><ins>+ if (m_enqueuedEvents[i].ptr() == &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& 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<Event>);
</del><ins>+ void enqueueEvent(Ref<Event>&&);
</ins><span class="cx">
</span><span class="cx"> using EventTarget::dispatchEvent;
</span><del>- virtual bool dispatchEvent(PassRefPtr<Event>) override;
</del><ins>+ virtual bool dispatchEvent(Event&) override;
</ins><span class="cx">
</span><span class="cx"> int64_t findObjectStoreId(const String& name) const;
</span><span class="cx"> bool containsObjectStore(const String& 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<RefPtr<Event>> m_enqueuedEvents;
</del><ins>+ Vector<Ref<Event>> m_enqueuedEvents;
</ins><span class="cx">
</span><span class="cx"> RefPtr<IDBDatabaseCallbacks> 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<Event> event)
</del><ins>+bool LegacyOpenDBRequest::dispatchEvent(Event& event)
</ins><span class="cx"> {
</span><span class="cx"> // If the connection closed between onUpgradeNeeded and the delivery of the "success" event,
</span><span class="cx"> // an "error" event should be fired instead.
</span><del>- if (event->type() == eventNames().successEvent && m_result->type() == IDBAny::Type::IDBDatabase && m_result->legacyDatabase()->isClosePending()) {
</del><ins>+ if (event.type() == eventNames().successEvent && m_result->type() == IDBAny::Type::IDBDatabase && m_result->legacyDatabase()->isClosePending()) {
</ins><span class="cx"> m_result = nullptr;
</span><span class="cx"> onError(IDBDatabaseError::create(IDBDatabaseException::AbortError, "The connection was closed."));
</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<Event>) override final;
</del><ins>+ virtual bool dispatchEvent(Event&) 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& eventQueue = scriptExecutionContext()->eventQueue();
</span><span class="cx"> for (auto& 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<Event> createSuccessEvent()
</del><ins>+static Ref<Event> 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<Event> event)
</del><ins>+bool LegacyRequest::dispatchEvent(Event& event)
</ins><span class="cx"> {
</span><span class="cx"> LOG(StorageAPI, "LegacyRequest::dispatchEvent");
</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->target() == this);
- ASSERT_WITH_MESSAGE(m_readyState < IDBRequestReadyState::Done, "When dispatching event %s, m_readyState < DONE(%d), was %d", event->type().string().utf8().data(), static_cast<int>(IDBRequestReadyState::Done), static_cast<int>(m_readyState));
</del><ins>+ ASSERT(event.target() == this);
+ ASSERT_WITH_MESSAGE(m_readyState < IDBRequestReadyState::Done, "When dispatching event %s, m_readyState < DONE(%d), was %d", event.type().string().utf8().data(), static_cast<int>(IDBRequestReadyState::Done), static_cast<int>(m_readyState));
</ins><span class="cx">
</span><span class="cx"> DOMRequestState::Scope scope(m_requestState);
</span><span class="cx">
</span><del>- if (event->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 < m_enqueuedEvents.size(); ++i) {
</span><del>- if (m_enqueuedEvents[i].get() == event.get())
</del><ins>+ if (m_enqueuedEvents[i].ptr() == &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<LegacyCursor> cursorToNotify;
</span><del>- if (event->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->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->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->type() == eventNames().successEvent || event->type() == eventNames().errorEvent || event->type() == eventNames().blockedEvent || event->type() == eventNames().upgradeneededEvent, "event type was %s", event->type().string().utf8().data());
- const bool setTransactionActive = m_transaction && (event->type() == eventNames().successEvent || event->type() == eventNames().upgradeneededEvent || (event->type() == eventNames().errorEvent && 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, "event type was %s", event.type().string().utf8().data());
+ const bool setTransactionActive = m_transaction && (event.type() == eventNames().successEvent || event.type() == eventNames().upgradeneededEvent || (event.type() == eventNames().errorEvent && m_errorCode != IDBDatabaseException::AbortError));
</ins><span class="cx">
</span><span class="cx"> if (setTransactionActive)
</span><span class="cx"> m_transaction->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->type() == eventNames().errorEvent && dontPreventDefault && !m_requestAborted) {
</del><ins>+ if (event.type() == eventNames().errorEvent && dontPreventDefault && !m_requestAborted) {
</ins><span class="cx"> m_transaction->setError(m_error, m_errorMessage);
</span><span class="cx"> m_transaction->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->postSuccessHandlerCallback();
</span><span class="cx">
</span><del>- if (m_readyState == IDBRequestReadyState::Done && (!cursorToNotify || m_cursorFinished) && event->type() != eventNames().upgradeneededEvent)
</del><ins>+ if (m_readyState == IDBRequestReadyState::Done && (!cursorToNotify || m_cursorFinished) && 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<Event> event)
</del><ins>+void LegacyRequest::enqueueEvent(Ref<Event>&& 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->setTarget(this);
</span><span class="cx">
</span><del>- if (scriptExecutionContext()->eventQueue().enqueueEvent(event.get()))
- m_enqueuedEvents.append(event);
</del><ins>+ if (scriptExecutionContext()->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<Event>) override;
</del><ins>+ virtual bool dispatchEvent(Event&) 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<LegacyAny> source, IDBDatabaseBackend::TaskType, LegacyTransaction*);
</span><del>- void enqueueEvent(PassRefPtr<Event>);
</del><ins>+ void enqueueEvent(Ref<Event>&&);
</ins><span class="cx"> virtual bool shouldEnqueueEvent() const;
</span><span class="cx"> void onSuccessInternal(PassRefPtr<SerializedScriptValue>);
</span><span class="cx"> void onSuccessInternal(const Deprecated::ScriptValue&);
</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<RefPtr<Event>> m_enqueuedEvents;
</del><ins>+ Vector<Ref<Event>> 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 && !m_contextStopped;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool LegacyTransaction::dispatchEvent(PassRefPtr<Event> event)
</del><ins>+bool LegacyTransaction::dispatchEvent(Event& event)
</ins><span class="cx"> {
</span><span class="cx"> LOG(StorageAPI, "LegacyTransaction::dispatchEvent");
</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->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->type() == eventNames().completeEvent || event->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 "LegacyTransaction";
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void LegacyTransaction::enqueueEvent(PassRefPtr<Event> event)
</del><ins>+void LegacyTransaction::enqueueEvent(Ref<Event>&& event)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT_WITH_MESSAGE(m_state != Finished, "A finished transaction tried to enqueue an event of type %s.", event->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->setTarget(this);
</span><del>- scriptExecutionContext()->eventQueue().enqueueEvent(event);
</del><ins>+ scriptExecutionContext()->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<Event>) override final;
</del><ins>+ virtual bool dispatchEvent(Event&) 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<String>&, IndexedDB::TransactionMode, LegacyDatabase*, LegacyOpenDBRequest*, const IDBDatabaseMetadata&);
</span><span class="cx">
</span><del>- void enqueueEvent(PassRefPtr<Event>);
</del><ins>+ void enqueueEvent(Ref<Event>&&);
</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<RefPtr<Event>> events;
</del><ins>+ Vector<Ref<Event>> events;
</ins><span class="cx"> events.swap(m_scheduledActivityEvents);
</span><span class="cx">
</span><span class="cx"> for (auto& 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& 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<String, RefPtr<MediaStreamTrack>> m_trackSet;
</span><span class="cx">
</span><span class="cx"> Timer m_activityEventTimer;
</span><del>- Vector<RefPtr<Event>> m_scheduledActivityEvents;
</del><ins>+ Vector<Ref<Event>> m_scheduledActivityEvents;
</ins><span class="cx">
</span><span class="cx"> Vector<Observer*> 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<Event> event)
</del><ins>+void RTCDTMFSender::scheduleDispatchEvent(Ref<Event>&& 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<RefPtr<Event>> events;
</del><ins>+ Vector<Ref<Event>> events;
</ins><span class="cx"> events.swap(m_scheduledEvents);
</span><span class="cx">
</span><span class="cx"> for (auto& 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<Event>);
</del><ins>+ void scheduleDispatchEvent(Ref<Event>&&);
</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<RefPtr<Event>> m_scheduledEvents;
</del><ins>+ Vector<Ref<Event>> 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<Event> event)
</del><ins>+void RTCDataChannel::scheduleDispatchEvent(Ref<Event>&& 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<RefPtr<Event>> events;
</del><ins>+ Vector<Ref<Event>> events;
</ins><span class="cx"> events.swap(m_scheduledEvents);
</span><span class="cx">
</span><span class="cx"> for (auto& 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<RTCDataChannelHandler>);
</span><span class="cx">
</span><del>- void scheduleDispatchEvent(PassRefPtr<Event>);
</del><ins>+ void scheduleDispatchEvent(Ref<Event>&&);
</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<RefPtr<Event>> m_scheduledEvents;
</del><ins>+ Vector<Ref<Event>> 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<Event> event)
</del><ins>+void RTCPeerConnection::scheduleDispatchEvent(Ref<Event>&& 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<RefPtr<Event>> events;
</del><ins>+ Vector<Ref<Event>> events;
</ins><span class="cx"> events.swap(m_scheduledEvents);
</span><span class="cx">
</span><span class="cx"> for (auto& 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&, PassRefPtr<RTCConfiguration>, ExceptionCode&);
</span><span class="cx">
</span><span class="cx"> static RefPtr<RTCConfiguration> parseConfiguration(const Dictionary& configuration, ExceptionCode&);
</span><del>- void scheduleDispatchEvent(PassRefPtr<Event>);
</del><ins>+ void scheduleDispatchEvent(Ref<Event>&&);
</ins><span class="cx"> void scheduledEventTimerFired();
</span><span class="cx"> bool hasLocalStreamWithTrackId(const String& trackId);
</span><span class="cx">
</span><span class="lines">@@ -159,7 +159,7 @@
</span><span class="cx"> std::unique_ptr<RTCPeerConnectionHandler> m_peerHandler;
</span><span class="cx">
</span><span class="cx"> Timer m_scheduledEventTimer;
</span><del>- Vector<RefPtr<Event>> m_scheduledEvents;
</del><ins>+ Vector<Ref<Event>> m_scheduledEvents;
</ins><span class="cx">
</span><span class="cx"> RefPtr<RTCConfiguration> 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& eventName)
</span><span class="cx"> {
</span><span class="cx"> Ref<HTMLPlugInElement> protect(*m_parentElement);
</span><del>- RefPtr<Event> event = Event::create(eventName, false, true);
- m_parentElement->dispatchEvent(event.get());
</del><ins>+ Ref<Event> event = Event::create(eventName, false, true);
+ m_parentElement->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()->hasLastData();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassRefPtr<Event> DeviceProximityController::getLastEvent()
</del><ins>+RefPtr<Event> DeviceProximityController::getLastEvent()
</ins><span class="cx"> {
</span><span class="cx"> return DeviceProximityEvent::create(eventNames().webkitdeviceproximityEvent, deviceProximityClient()->value(), deviceProximityClient()->min(), deviceProximityClient()->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<Event> getLastEvent();
</del><ins>+ virtual RefPtr<Event> 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 && !m_numLoadingFromJS;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void FontLoader::scheduleEvent(PassRefPtr<Event> event)
</del><ins>+void FontLoader::scheduleEvent(Ref<Event>&& 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() && !m_loadingDoneEvent && !m_callbacks.isEmpty())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- Vector<RefPtr<Event>> pendingEvents;
</del><ins>+ Vector<Ref<Event>> 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 < pendingEvents.size(); ++index)
</span><del>- dispatchEvent(pendingEvents[index].release());
</del><ins>+ dispatchEvent(pendingEvents[index]);
</ins><span class="cx">
</span><span class="cx"> if (loadingDone && !m_callbacks.isEmpty()) {
</span><span class="cx"> Vector<RefPtr<VoidCallback>> 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<RefPtr<Event>> m_pendingEvents;
</del><ins>+ Vector<Ref<Event>> m_pendingEvents;
</ins><span class="cx"> Vector<RefPtr<VoidCallback>> m_callbacks;
</span><span class="cx"> RefPtr<Event> 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()->lastMotion();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassRefPtr<Event> DeviceMotionController::getLastEvent()
</del><ins>+RefPtr<Event> DeviceMotionController::getLastEvent()
</ins><span class="cx"> {
</span><span class="cx"> return DeviceMotionEvent::create(eventNames().devicemotionEvent, deviceMotionClient()->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<Event> getLastEvent() override;
</del><ins>+ virtual RefPtr<Event> 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()->lastOrientation();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassRefPtr<Event> DeviceOrientationController::getLastEvent()
</del><ins>+RefPtr<Event> DeviceOrientationController::getLastEvent()
</ins><span class="cx"> {
</span><span class="cx"> return DeviceOrientationEvent::create(eventNames().deviceorientationEvent, deviceOrientationClient()->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<Event> getLastEvent() override;
</del><ins>+ virtual RefPtr<Event> 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->getAttributeEventListener(eventType);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void Document::dispatchWindowEvent(PassRefPtr<Event> event, PassRefPtr<EventTarget> target)
</del><ins>+void Document::dispatchWindowEvent(Event& 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->documentDidFinishLoadEvent();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void Document::enqueueWindowEvent(PassRefPtr<Event> event)
</del><ins>+void Document::enqueueWindowEvent(Ref<Event>&& event)
</ins><span class="cx"> {
</span><span class="cx"> event->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<Event> event)
</del><ins>+void Document::enqueueDocumentEvent(Ref<Event>&& event)
</ins><span class="cx"> {
</span><span class="cx"> event->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<Event> event)
</del><ins>+void Document::enqueueOverflowEvent(Ref<Event>&& 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<Event> Document::createEvent(const String& eventType, ExceptionCode& ec)
</span><span class="lines">@@ -5980,24 +5980,24 @@
</span><span class="cx"> // Bottom edge.
</span><span class="cx"> if (newPosition.y() >= willRevealBottomNotificationPoint && newPosition.y() > oldPosition.y()
</span><span class="cx"> && willRevealBottomNotificationPoint >= oldPosition.y()) {
</span><del>- RefPtr<Event> willRevealEvent = Event::create(eventNames().webkitwillrevealbottomEvent, false, false);
</del><ins>+ Ref<Event> 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->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() <= willRevealTopNotificationPoint && newPosition.y() < oldPosition.y()
</span><span class="cx"> && willRevealTopNotificationPoint <= oldPosition.y()) {
</span><del>- RefPtr<Event> willRevealEvent = Event::create(eventNames().webkitwillrevealtopEvent, false, false);
</del><ins>+ Ref<Event> 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->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() >= willRevealRightNotificationPoint && newPosition.x() > oldPosition.x()
</span><span class="cx"> && willRevealRightNotificationPoint >= oldPosition.x()) {
</span><del>- RefPtr<Event> willRevealEvent = Event::create(eventNames().webkitwillrevealrightEvent, false, false);
</del><ins>+ Ref<Event> 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->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() <= willRevealLeftNotificationPoint && newPosition.x() < oldPosition.x()
</span><span class="cx"> && willRevealLeftNotificationPoint <= oldPosition.x()) {
</span><del>- RefPtr<Event> willRevealEvent = Event::create(eventNames().webkitwillrevealleftEvent, false, false);
</del><ins>+ Ref<Event> 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->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& eventType, const QualifiedName& attributeName, const AtomicString& value);
</span><span class="cx"> void setWindowAttributeEventListener(const AtomicString& eventType, PassRefPtr<EventListener>);
</span><span class="cx"> EventListener* getWindowAttributeEventListener(const AtomicString& eventType);
</span><del>- WEBCORE_EXPORT void dispatchWindowEvent(PassRefPtr<Event>, PassRefPtr<EventTarget> = nullptr);
</del><ins>+ WEBCORE_EXPORT void dispatchWindowEvent(Event&, EventTarget* = nullptr);
</ins><span class="cx"> void dispatchWindowLoadEvent();
</span><span class="cx">
</span><span class="cx"> RefPtr<Event> createEvent(const String& eventType, ExceptionCode&);
</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<Event>);
- void enqueueDocumentEvent(PassRefPtr<Event>);
- void enqueueOverflowEvent(PassRefPtr<Event>);
</del><ins>+ void enqueueWindowEvent(Ref<Event>&&);
+ void enqueueDocumentEvent(Ref<Event>&&);
+ void enqueueOverflowEvent(Ref<Event>&&);
</ins><span class="cx"> void enqueuePageshowEvent(PageshowEventPersistence);
</span><span class="cx"> void enqueueHashchangeEvent(const String& oldURL, const String& newURL);
</span><span class="cx"> void enqueuePopstateEvent(PassRefPtr<SerializedScriptValue> 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<Event> event)
</del><ins>+bool DocumentEventQueue::enqueueEvent(Ref<Event>&& event)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(event->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->isActive())
</span><span class="cx"> m_pendingEventTimer->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<Event> scrollEvent = Event::create(eventNames().scrollEvent, bubbles, cancelable);
</del><ins>+ Ref<Event> scrollEvent = Event::create(eventNames().scrollEvent, bubbles, cancelable);
</ins><span class="cx"> scrollEvent->setTarget(&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& 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& eventTarget = *event.target();
</span><span class="cx"> if (DOMWindow* window = eventTarget.toDOMWindow())
</span><del>- window->dispatchEvent(&event, 0);
</del><ins>+ window->dispatchEvent(event, nullptr);
</ins><span class="cx"> else
</span><del>- eventTarget.dispatchEvent(&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&);
</span><span class="cx"> virtual ~DocumentEventQueue();
</span><span class="cx">
</span><del>- virtual bool enqueueEvent(PassRefPtr<Event>) override;
</del><ins>+ virtual bool enqueueEvent(Ref<Event>&&) override;
</ins><span class="cx"> virtual bool cancelEvent(Event&) 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) && !document().hasListenerTypeForEventType(platformEvent.type()))
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>- RefPtr<MouseEvent> mouseEvent = MouseEvent::create(eventType, document().defaultView(), platformEvent, detail, relatedTarget);
</del><ins>+ Ref<MouseEvent> mouseEvent = MouseEvent::create(eventType, document().defaultView(), platformEvent, detail, relatedTarget);
</ins><span class="cx">
</span><span class="cx"> if (mouseEvent->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="" 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<MouseEvent> doubleClickEvent = MouseEvent::create();
</del><ins>+ Ref<MouseEvent> doubleClickEvent = MouseEvent::create();
</ins><span class="cx"> doubleClickEvent->initMouseEvent(eventNames().dblclickEvent,
</span><span class="cx"> mouseEvent->bubbles(), mouseEvent->cancelable(), mouseEvent->view(), mouseEvent->detail(),
</span><span class="cx"> mouseEvent->screenX(), mouseEvent->screenY(), mouseEvent->clientX(), mouseEvent->clientY(),
</span><span class="lines">@@ -285,7 +285,7 @@
</span><span class="cx">
</span><span class="cx"> bool Element::dispatchWheelEvent(const PlatformWheelEvent& event)
</span><span class="cx"> {
</span><del>- RefPtr<WheelEvent> wheelEvent = WheelEvent::create(event, document().defaultView());
</del><ins>+ Ref<WheelEvent> 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& platformEvent)
</span><span class="cx"> {
</span><del>- RefPtr<KeyboardEvent> event = KeyboardEvent::create(platformEvent, document().defaultView());
</del><ins>+ Ref<KeyboardEvent> event = KeyboardEvent::create(platformEvent, document().defaultView());
</ins><span class="cx"> if (Frame* frame = document().frame()) {
</span><del>- if (frame->eventHandler().accessibilityPreventsEventPropogation(event.get()))
</del><ins>+ if (frame->eventHandler().accessibilityPreventsEventPropogation(event))
</ins><span class="cx"> event->stopPropagation();
</span><span class="cx"> }
</span><span class="cx"> return EventDispatcher::dispatchEvent(this, event) && !event->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->eventHandler().lastKnownMousePosition(), frame->eventHandler().lastKnownMouseGlobalPosition(), NoButton, PlatformEvent::NoType, 1, false, false, false, false, WTF::currentTime(), ForceAtClick);
</span><del>- RefPtr<MouseEvent> mouseForceWillBeginEvent = MouseEvent::create(eventNames().webkitmouseforcewillbeginEvent, document().defaultView(), platformMouseEvent, 0, nullptr);
</del><ins>+ Ref<MouseEvent> mouseForceWillBeginEvent = MouseEvent::create(eventNames().webkitmouseforcewillbeginEvent, document().defaultView(), platformMouseEvent, 0, nullptr);
</ins><span class="cx"> mouseForceWillBeginEvent->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<EventTarget> target)
</del><ins>+void Event::setTarget(RefPtr<EventTarget>&& 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& type) { m_type = type; }
</span><span class="cx">
</span><span class="cx"> EventTarget* target() const { return m_target.get(); }
</span><del>- void setTarget(PassRefPtr<EventTarget>);
</del><ins>+ void setTarget(RefPtr<EventTarget>&&);
</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->fireEventListeners(&event);
</del><ins>+ m_window->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 &referenceNode;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void EventDispatcher::dispatchScopedEvent(Node& node, PassRefPtr<Event> event)
</del><ins>+void EventDispatcher::dispatchScopedEvent(Node& node, Event& 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->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<Event> prpEvent)
</del><ins>+bool EventDispatcher::dispatchEvent(Node* origin, Event& 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<Node> node(origin);
</span><del>- RefPtr<Event> event(prpEvent);
</del><span class="cx"> RefPtr<FrameView> view = node->document().view();
</span><del>- EventPath eventPath(*node, *event);
</del><ins>+ EventPath eventPath(*node, event);
</ins><span class="cx">
</span><del>- if (EventTarget* relatedTarget = event->relatedTarget())
</del><ins>+ if (EventTarget* relatedTarget = event.relatedTarget())
</ins><span class="cx"> eventPath.setRelatedTarget(*node, *relatedTarget);
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS) && !PLATFORM(IOS)
</span><del>- if (is<TouchEvent>(*event)) {
- if (!eventPath.updateTouchLists(downcast<TouchEvent>(*event)))
</del><ins>+ if (is<TouchEvent>(event)) {
+ if (!eventPath.updateTouchLists(downcast<TouchEvent>(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->setTarget(target);
- if (!event->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<HTMLInputElement>(*node))
</span><del>- downcast<HTMLInputElement>(*node).willDispatchEvent(*event, clickHandlingState);
</del><ins>+ downcast<HTMLInputElement>(*node).willDispatchEvent(event, clickHandlingState);
</ins><span class="cx">
</span><del>- if (!event->propagationStopped() && !eventPath.isEmpty())
- dispatchEventInDOM(*event, eventPath, windowEventContext);
</del><ins>+ if (!event.propagationStopped() && !eventPath.isEmpty())
+ dispatchEventInDOM(event, eventPath, windowEventContext);
</ins><span class="cx">
</span><del>- event->setTarget(eventTargetRespectingTargetRules(*node));
- event->setCurrentTarget(nullptr);
- event->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<HTMLInputElement>(*node).didDispatchClickEvent(*event, clickHandlingState);
</del><ins>+ downcast<HTMLInputElement>(*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->defaultPrevented() && !event->defaultHandled())
- callDefaultEventHandlersInTheBubblingOrder(*event, eventPath);
</del><ins>+ if (!event.defaultPrevented() && !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->setTarget(windowEventContext.target());
- event->setCurrentTarget(nullptr);
</del><ins>+ event.setTarget(windowEventContext.target());
+ event.setCurrentTarget(nullptr);
</ins><span class="cx">
</span><del>- return !event->defaultPrevented();
</del><ins>+ return !event.defaultPrevented();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static inline bool shouldEventCrossShadowBoundary(Event& event, ShadowRoot& shadowRoot, EventTarget& 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<Event>);
-void dispatchScopedEvent(Node&, PassRefPtr<Event>);
</del><ins>+bool dispatchEvent(Node*, Event&);
+void dispatchScopedEvent(Node&, Event&);
</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<Event>) = 0;
</del><ins>+ virtual bool enqueueEvent(Ref<Event>&&) = 0;
</ins><span class="cx"> virtual bool cancelEvent(Event&) = 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<Event> event, ExceptionCode& ec)
</del><ins>+bool EventTarget::dispatchEvent(Event* event, ExceptionCode& 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<Event> event)
</del><ins>+bool EventTarget::dispatchEvent(Event& event)
</ins><span class="cx"> {
</span><del>- event->setTarget(this);
- event->setCurrentTarget(this);
- event->setEventPhase(Event::AT_TARGET);
- bool defaultPrevented = fireEventListeners(event.get());
- event->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& legacyType(const Event* event)
</del><ins>+static const AtomicString& legacyType(const Event& event)
</ins><span class="cx"> {
</span><del>- if (event->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->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->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->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->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& event)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT_WITH_SECURITY_IMPLICATION(!NoEventDispatchAssertion::isEventDispatchForbidden());
</span><del>- ASSERT(event && event->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->eventListenerMap.find(legacyTypeName);
</span><span class="cx">
</span><del>- EventListenerVector* listenersVector = d->eventListenerMap.find(event->type());
</del><ins>+ EventListenerVector* listenersVector = d->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->type();
- event->setType(legacyTypeName);
</del><ins>+ AtomicString typeName = event.type();
+ event.setType(legacyTypeName);
</ins><span class="cx"> fireEventListeners(event, d, *legacyListenersVector);
</span><del>- event->setType(typeName);
</del><ins>+ event.setType(typeName);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- return !event->defaultPrevented();
</del><ins>+ return !event.defaultPrevented();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void EventTarget::fireEventListeners(Event* event, EventTargetData* d, EventListenerVector& entry)
</del><ins>+void EventTarget::fireEventListeners(Event& event, EventTargetData* d, EventListenerVector& entry)
</ins><span class="cx"> {
</span><span class="cx"> Ref<EventTarget> 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->firingEventIterators)
</span><span class="cx"> d->firingEventIterators = std::make_unique<FiringEventIteratorVector>();
</span><del>- d->firingEventIterators->append(FiringEventIterator(event->type(), i, size));
</del><ins>+ d->firingEventIterators->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<Document>(context)) {
</span><span class="cx"> document = downcast<Document>(context);
</span><del>- willDispatchEventCookie = InspectorInstrumentation::willDispatchEvent(*document, *event, size > 0);
</del><ins>+ willDispatchEventCookie = InspectorInstrumentation::willDispatchEvent(*document, event, size > 0);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> for (; i < size; ++i) {
</span><span class="cx"> RegisteredEventListener& registeredListener = entry[i];
</span><del>- if (event->eventPhase() == Event::CAPTURING_PHASE && !registeredListener.useCapture)
</del><ins>+ if (event.eventPhase() == Event::CAPTURING_PHASE && !registeredListener.useCapture)
</ins><span class="cx"> continue;
</span><del>- if (event->eventPhase() == Event::BUBBLING_PHASE && registeredListener.useCapture)
</del><ins>+ if (event.eventPhase() == Event::BUBBLING_PHASE && 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->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->handleEvent(context, event);
</del><ins>+ registeredListener.listener->handleEvent(context, &event);
</ins><span class="cx"> InspectorInstrumentation::didHandleEvent(cookie);
</span><span class="cx"> }
</span><span class="cx"> d->firingEventIterators->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& eventType, RefPtr<EventListener>&&, bool useCapture);
</span><span class="cx"> virtual bool removeEventListener(const AtomicString& eventType, EventListener*, bool useCapture);
</span><span class="cx"> virtual void removeAllEventListeners();
</span><del>- virtual bool dispatchEvent(PassRefPtr<Event>);
- bool dispatchEvent(PassRefPtr<Event>, ExceptionCode&); // DOM API
</del><ins>+ virtual bool dispatchEvent(Event&);
+ bool dispatchEvent(Event*, ExceptionCode&); // DOM API
</ins><span class="cx"> virtual void uncaughtExceptionInEventHandler();
</span><span class="cx">
</span><span class="cx"> // Used for legacy "onEvent" attribute APIs.
</span><span class="lines">@@ -137,7 +137,7 @@
</span><span class="cx"> bool hasCapturingEventListeners(const AtomicString& eventType);
</span><span class="cx"> const EventListenerVector& getEventListeners(const AtomicString& eventType);
</span><span class="cx">
</span><del>- bool fireEventListeners(Event*);
</del><ins>+ bool fireEventListeners(Event&);
</ins><span class="cx"> bool isFiringEventListeners();
</span><span class="cx">
</span><span class="cx"> void visitJSEventListeners(JSC::SlotVisitor&);
</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&);
</del><ins>+ void fireEventListeners(Event&, EventTargetData*, EventListenerVector&);
</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<EventTarget> protect(m_owner);
</span><span class="cx"> RefPtr<Event> event = m_pendingEvents.takeFirst();
</span><span class="cx"> EventTarget& target = event->target() ? *event->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<MessagePortArray> ports = MessagePort::entanglePorts(*m_scriptExecutionContext, WTF::move(channels));
</span><del>- RefPtr<Event> evt = MessageEvent::create(WTF::move(ports), message.release());
-
- dispatchEvent(evt.release(), ASSERT_NO_EXCEPTION);
</del><ins>+ Ref<Event> 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<Element>(*this) && downcast<Element>(*this).isDisabledFormControl() && event.isMouseEvent())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- fireEventListeners(&event);
</del><ins>+ fireEventListeners(event);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void Node::dispatchScopedEvent(PassRefPtr<Event> event)
</del><ins>+void Node::dispatchScopedEvent(Event& 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<Event> event)
</del><ins>+bool Node::dispatchEvent(Event& event)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS) && !PLATFORM(IOS)
</span><del>- if (is<TouchEvent>(*event))
- return dispatchTouchEvent(adoptRef(downcast<TouchEvent>(event.leakRef())));
</del><ins>+ if (is<TouchEvent>(event))
+ return dispatchTouchEvent(downcast<TouchEvent>(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<Event> underlyingEvent)
</span><span class="cx"> {
</span><span class="cx"> ASSERT_WITH_SECURITY_IMPLICATION(!NoEventDispatchAssertion::isEventDispatchForbidden());
</span><del>- RefPtr<UIEvent> event = UIEvent::create(eventNames().DOMActivateEvent, true, true, document().defaultView(), detail);
</del><ins>+ Ref<UIEvent> event = UIEvent::create(eventNames().DOMActivateEvent, true, true, document().defaultView(), detail);
</ins><span class="cx"> event->setUnderlyingEvent(underlyingEvent);
</span><span class="cx"> dispatchScopedEvent(event);
</span><span class="cx"> return event->defaultHandled();
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS) && !PLATFORM(IOS)
</span><del>-bool Node::dispatchTouchEvent(PassRefPtr<TouchEvent> event)
</del><ins>+bool Node::dispatchTouchEvent(TouchEvent& 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<UIRequestEvent> event)
</del><ins>+bool Node::dispatchUIRequestEvent(UIRequestEvent& event)
</ins><span class="cx"> {
</span><span class="cx"> EventDispatcher::dispatchEvent(this, event);
</span><del>- return event->defaultHandled() || event->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<Node> protect(*this);
</span><del>- RefPtr<BeforeLoadEvent> beforeLoadEvent = BeforeLoadEvent::create(sourceURL);
- dispatchEvent(beforeLoadEvent.get());
</del><ins>+ Ref<BeforeLoadEvent> beforeLoadEvent = BeforeLoadEvent::create(sourceURL);
+ dispatchEvent(beforeLoadEvent);
</ins><span class="cx"> return !beforeLoadEvent->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& eventType, EventListener*, bool useCapture) override;
</span><span class="cx">
</span><span class="cx"> using EventTarget::dispatchEvent;
</span><del>- virtual bool dispatchEvent(PassRefPtr<Event>) override;
</del><ins>+ virtual bool dispatchEvent(Event&) override;
</ins><span class="cx">
</span><del>- void dispatchScopedEvent(PassRefPtr<Event>);
</del><ins>+ void dispatchScopedEvent(Event&);
</ins><span class="cx">
</span><span class="cx"> virtual void handleLocalEvents(Event&);
</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) && !PLATFORM(IOS)
</span><del>- bool dispatchTouchEvent(PassRefPtr<TouchEvent>);
</del><ins>+ bool dispatchTouchEvent(TouchEvent&);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(INDIE_UI)
</span><del>- bool dispatchUIRequestEvent(PassRefPtr<UIRequestEvent>);
</del><ins>+ bool dispatchUIRequestEvent(UIRequestEvent&);
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> bool dispatchBeforeLoadEvent(const String& 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<Event> event)
</del><ins>+void ScopedEventQueue::enqueueEvent(Ref<Event>&& 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<Event> event) const
</del><ins>+void ScopedEventQueue::dispatchEvent(Event& event) const
</ins><span class="cx"> {
</span><del>- ASSERT(event->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->target()->toNode();
</del><ins>+ Node* node = event.target()->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<RefPtr<Event>> queuedEvents = WTF::move(m_queuedEvents);
</del><ins>+ Vector<Ref<Event>> queuedEvents = WTF::move(m_queuedEvents);
</ins><span class="cx"> for (auto& 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& singleton();
</span><del>- void enqueueEvent(PassRefPtr<Event>);
</del><ins>+ void enqueueEvent(Ref<Event>&&);
</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<Event>) const;
</del><ins>+ void dispatchEvent(Event&) 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<RefPtr<Event>> m_queuedEvents;
</del><ins>+ Vector<Ref<Event>> m_queuedEvents;
</ins><span class="cx"> unsigned m_scopingLevel { 0 };
</span><span class="cx">
</span><span class="cx"> friend class WTF::NeverDestroyed<WebCore::ScopedEventQueue>;
</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<ErrorEvent> errorEvent = ErrorEvent::create(message, sourceName, line, column);
</del><ins>+ Ref<ErrorEvent> errorEvent = ErrorEvent::create(message, sourceName, line, column);
</ins><span class="cx"> target->dispatchEvent(errorEvent);
</span><span class="cx"> m_inDispatchErrorEvent = false;
</span><span class="cx"> return errorEvent->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->disableLayerFlushThrottlingTemporarilyForInteraction();
</span><span class="cx">
</span><del>- RefPtr<TextEvent> event = TextEvent::createForDictation(m_frame.document()->domWindow(), text, dictationAlternatives);
</del><ins>+ Ref<TextEvent> event = TextEvent::createForDictation(m_frame.document()->domWindow(), text, dictationAlternatives);
</ins><span class="cx"> event->setUnderlyingEvent(triggeringEvent);
</span><span class="cx">
</span><del>- target->dispatchEvent(event, IGNORE_EXCEPTION);
</del><ins>+ target->dispatchEvent(event);
</ins><span class="cx"> return event->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->dispatchEvent(TextEvent::createForPlainTextPaste(document().domWindow(), pastingText, smartReplace), IGNORE_EXCEPTION);
</del><ins>+ target->dispatchEvent(TextEvent::createForPlainTextPaste(document().domWindow(), pastingText, smartReplace));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void Editor::pasteAsFragment(PassRefPtr<DocumentFragment> 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->dispatchEvent(TextEvent::createForFragmentPaste(document().domWindow(), pastingFragment, smartReplace, matchStyle, respectsMailBlockquote), IGNORE_EXCEPTION);
</del><ins>+ target->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<DataTransfer> dataTransfer = DataTransfer::createForCopyAndPaste(policy);
</span><span class="cx">
</span><del>- RefPtr<Event> event = ClipboardEvent::create(eventType, true, true, dataTransfer);
- target->dispatchEvent(event, IGNORE_EXCEPTION);
</del><ins>+ Ref<Event> event = ClipboardEvent::create(eventType, true, true, dataTransfer);
+ target->dispatchEvent(event);
</ins><span class="cx"> bool noDefaultProcessing = event->defaultPrevented();
</span><span class="cx"> if (noDefaultProcessing && policy == DataTransferAccessPolicy::Writable) {
</span><span class="cx"> auto pasteboard = Pasteboard::createForCopyAndPaste();
</span><span class="lines">@@ -1012,9 +1012,9 @@
</span><span class="cx"> RefPtr<Element> startRoot = prpStartRoot;
</span><span class="cx"> RefPtr<Element> endRoot = prpEndRoot;
</span><span class="cx"> if (startRoot)
</span><del>- startRoot->dispatchEvent(Event::create(eventNames().webkitEditableContentChangedEvent, false, false), IGNORE_EXCEPTION);
</del><ins>+ startRoot->dispatchEvent(Event::create(eventNames().webkitEditableContentChangedEvent, false, false));
</ins><span class="cx"> if (endRoot && endRoot != startRoot)
</span><del>- endRoot->dispatchEvent(Event::create(eventNames().webkitEditableContentChangedEvent, false, false), IGNORE_EXCEPTION);
</del><ins>+ endRoot->dispatchEvent(Event::create(eventNames().webkitEditableContentChangedEvent, false, false));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void Editor::appliedEditing(PassRefPtr<CompositeEditCommand> 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<CompositionEvent> event = CompositionEvent::create(eventNames().compositionendEvent, document().domWindow(), text);
- target->dispatchEvent(event.release(), IGNORE_EXCEPTION);
</del><ins>+ Ref<CompositionEvent> event = CompositionEvent::create(eventNames().compositionendEvent, document().domWindow(), text);
+ target->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->dispatchEvent(event, IGNORE_EXCEPTION);
</del><ins>+ if (event)
+ target->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<BeforeTextInsertedEvent> evt = BeforeTextInsertedEvent::create(text);
- editableRoot->dispatchEvent(evt, ASSERT_NO_EXCEPTION);
- if (text != evt->text() || !editableRoot->hasRichlyEditableStyle()) {
</del><ins>+ Ref<BeforeTextInsertedEvent> event = BeforeTextInsertedEvent::create(text);
+ editableRoot->dispatchEvent(event);
+ if (text != event->text() || !editableRoot->hasRichlyEditableStyle()) {
</ins><span class="cx"> restoreAndRemoveTestRenderingNodesToFragment(holder.get());
</span><span class="cx">
</span><span class="cx"> RefPtr<Range> 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->text());
</del><ins>+ m_fragment = createFragmentFromText(*range, event->text());
</ins><span class="cx"> if (!m_fragment->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->rootEditableElement()) {
</span><span class="cx"> // Send BeforeTextInsertedEvent. The event handler will update text if necessary.
</span><del>- RefPtr<BeforeTextInsertedEvent> evt = BeforeTextInsertedEvent::create(text);
- startNode->rootEditableElement()->dispatchEvent(evt, IGNORE_EXCEPTION);
- newText = evt->text();
</del><ins>+ Ref<BeforeTextInsertedEvent> event = BeforeTextInsertedEvent::create(text);
+ startNode->rootEditableElement()->dispatchEvent(event);
+ newText = event->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<BeforeTextInsertedEvent> event = BeforeTextInsertedEvent::create(String("\n"));
- node->dispatchEvent(event, IGNORE_EXCEPTION);
</del><ins>+ Ref<BeforeTextInsertedEvent> event = BeforeTextInsertedEvent::create(String("\n"));
+ node->dispatchEvent(event);
</ins><span class="cx"> return event->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<Event> prpEvent)
</del><ins>+bool HTMLMediaElement::dispatchEvent(Event& event)
</ins><span class="cx"> {
</span><del>- RefPtr<Event> event = prpEvent;
- if (event->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<Event>) override;
</del><ins>+ virtual bool dispatchEvent(Event&) 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<RefPtr<Event>> pendingEvents;
</del><ins>+ Vector<Ref<Event>> pendingEvents;
</ins><span class="cx">
</span><span class="cx"> m_pendingEvents.swap(pendingEvents);
</span><span class="cx"> for (auto& 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<RefPtr<Event>> m_pendingEvents;
</del><ins>+ Vector<Ref<Event>> 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<WebGLContextEvent> event = WebGLContextEvent::create(eventNames().webglcontextlostEvent, false, true, "");
</del><ins>+ Ref<WebGLContextEvent> event = WebGLContextEvent::create(eventNames().webglcontextlostEvent, false, true, "");
</ins><span class="cx"> canvas()->dispatchEvent(event);
</span><span class="cx"> m_restoreAllowed = event->defaultPrevented();
</span><span class="cx"> if (m_contextLostMode == RealLostContext && 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->frame()->document()->url();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-inline PassRefPtr<Event> createScriptLoadEvent()
</del><ins>+inline Ref<Event> 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<Event> event)
</del><ins>+bool TextTrackCue::dispatchEvent(Event& 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()->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<Event>) override;
</del><ins>+ virtual bool dispatchEvent(Event&) 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()->inPageCache()) {
</span><del>- RefPtr<Event> unloadEvent(Event::create(eventNames().unloadEvent, false, false));
</del><ins>+ Ref<Event> 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->bodyOrFrameset())
</span><span class="cx"> return true;
</span><span class="cx">
</span><del>- RefPtr<BeforeUnloadEvent> beforeUnloadEvent = BeforeUnloadEvent::create();
</del><ins>+ Ref<BeforeUnloadEvent> 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->dispatchEvent(beforeUnloadEvent.get(), domWindow->document());
</del><ins>+ domWindow->dispatchEvent(beforeUnloadEvent, domWindow->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->defaultPrevented())
</span><del>- document->defaultEventHandler(beforeUnloadEvent.get());
</del><ins>+ document->defaultEventHandler(beforeUnloadEvent.ptr());
</ins><span class="cx"> if (beforeUnloadEvent->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->dispatchEvent(event, ASSERT_NO_EXCEPTION);
</del><ins>+ m_domApplicationCache->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<MessageEvent> event(ScriptExecutionContext* context)
</del><ins>+ Ref<MessageEvent> event(ScriptExecutionContext* context)
</ins><span class="cx"> {
</span><span class="cx"> std::unique_ptr<MessagePortArray> 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<Event> event, PassRefPtr<ScriptCallStack> stackTrace)
</del><ins>+void DOMWindow::dispatchMessageEventWithOriginCheck(SecurityOrigin* intendedTargetOrigin, Event& event, PassRefPtr<ScriptCallStack> 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<Event> loadEvent(Event::create(eventNames().loadEvent, false, false));
</del><ins>+ Ref<Event> loadEvent = Event::create(eventNames().loadEvent, false, false);
</ins><span class="cx"> if (m_frame && m_frame->loader().documentLoader() && !m_frame->loader().documentLoader()->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<Event> prpEvent, PassRefPtr<EventTarget> prpTarget)
</del><ins>+bool DOMWindow::dispatchEvent(Event& event, EventTarget* target)
</ins><span class="cx"> {
</span><span class="cx"> Ref<EventTarget> protect(*this);
</span><del>- RefPtr<Event> 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"> // <http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#event-pageshow>.
</span><del>- if (event->eventInterface() == PageTransitionEventInterfaceType) {
- if (event->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->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->setTarget(prpTarget ? prpTarget : this);
- event->setCurrentTarget(this);
- event->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<SerializedScriptValue> message, MessagePort*, const String& targetOrigin, DOMWindow& source, ExceptionCode&);
</span><span class="cx"> void postMessageTimerFired(PostMessageTimer&);
</span><del>- void dispatchMessageEventWithOriginCheck(SecurityOrigin* intendedTargetOrigin, PassRefPtr<Event>, PassRefPtr<Inspector::ScriptCallStack>);
</del><ins>+ void dispatchMessageEventWithOriginCheck(SecurityOrigin* intendedTargetOrigin, Event&, PassRefPtr<Inspector::ScriptCallStack>);
</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<Event> prpEvent, PassRefPtr<EventTarget> prpTarget);
</del><ins>+ bool dispatchEvent(Event&, 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->stopUpdating();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void DeviceController::dispatchDeviceEvent(PassRefPtr<Event> prpEvent)
</del><ins>+void DeviceController::dispatchDeviceEvent(Event& event)
</ins><span class="cx"> {
</span><del>- RefPtr<Event> event = prpEvent;
</del><span class="cx"> Vector<RefPtr<DOMWindow>> listenerVector;
</span><span class="cx"> copyToVector(m_listeners, listenerVector);
</span><span class="cx"> for (auto& listener : listenerVector) {
</span><span class="lines">@@ -93,8 +92,10 @@
</span><span class="cx"> m_lastEventListeners.clear();
</span><span class="cx"> for (auto& listener : listenerVector) {
</span><span class="cx"> auto document = listener->document();
</span><del>- if (document && !document->activeDOMObjectsAreSuspended() && !document->activeDOMObjectsAreStopped())
- listener->dispatchEvent(getLastEvent());
</del><ins>+ if (document && !document->activeDOMObjectsAreSuspended() && !document->activeDOMObjectsAreStopped()) {
+ if (auto lastEvent = getLastEvent())
+ listener->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<Event>);
</del><ins>+ void dispatchDeviceEvent(Event&);
</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<Event> getLastEvent() { return 0; }
</del><ins>+ virtual RefPtr<Event> 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->editor().findEventTargetFrom(m_page.dragCaretController().caretPosition());
</span><del>- return target->dispatchEvent(TextEvent::createForDrop(innerFrame->document()->domWindow(), text), IGNORE_EXCEPTION);
</del><ins>+ return target->dispatchEvent(TextEvent::createForDrop(innerFrame->document()->domWindow(), text));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool DragController::concludeEditDrag(DragData& 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<KeyboardEvent> keydown = KeyboardEvent::create(keyDownEvent, m_frame.document()->defaultView());
</del><ins>+ Ref<KeyboardEvent> keydown = KeyboardEvent::create(keyDownEvent, m_frame.document()->defaultView());
</ins><span class="cx"> if (matchedAnAccessKey)
</span><span class="cx"> keydown->setDefaultPrevented(true);
</span><span class="cx"> keydown->setTarget(element);
</span><span class="cx">
</span><span class="cx"> if (initialKeyEvent.type() == PlatformEvent::RawKeyDown) {
</span><del>- element->dispatchEvent(keydown, IGNORE_EXCEPTION);
</del><ins>+ element->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() && &m_frame != &m_frame.page()->focusController().focusedOrMainFrame();
</span><span class="cx"> return keydown->defaultHandled() || keydown->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->defaultHandled();
</span><span class="cx">
</span><span class="lines">@@ -3040,10 +3040,10 @@
</span><span class="cx"> keydown->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->stopPropagation();
</span><span class="cx">
</span><del>- element->dispatchEvent(keydown, IGNORE_EXCEPTION);
</del><ins>+ element->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() && &m_frame != &m_frame.page()->focusController().focusedOrMainFrame();
</span><span class="cx"> bool keydownResult = keydown->defaultHandled() || keydown->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<KeyboardEvent> keypress = KeyboardEvent::create(keyPressEvent, m_frame.document()->defaultView());
</del><ins>+ Ref<KeyboardEvent> keypress = KeyboardEvent::create(keyPressEvent, m_frame.document()->defaultView());
</ins><span class="cx"> keypress->setTarget(element);
</span><span class="cx"> if (keydownResult)
</span><span class="cx"> keypress->setDefaultPrevented(true);
</span><span class="cx"> #if PLATFORM(COCOA)
</span><span class="cx"> keypress->keypressCommands() = keydown->keypressCommands();
</span><span class="cx"> #endif
</span><del>- element->dispatchEvent(keypress, IGNORE_EXCEPTION);
</del><ins>+ element->dispatchEvent(keypress);
</ins><span class="cx">
</span><span class="cx"> return keydownResult || keypress->defaultPrevented() || keypress->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& 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->keyIdentifier() == "U+0009")
</del><ins>+ if (event.keyIdentifier() == "U+0009")
</ins><span class="cx"> return true;
</span><del>- FocusDirection direction = focusDirectionForKey(event->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->disableLayerFlushThrottlingTemporarilyForInteraction();
</span><span class="cx">
</span><del>- RefPtr<TextEvent> event = TextEvent::create(m_frame.document()->domWindow(), text, inputType);
</del><ins>+ Ref<TextEvent> event = TextEvent::create(m_frame.document()->domWindow(), text, inputType);
</ins><span class="cx"> event->setUnderlyingEvent(underlyingEvent);
</span><span class="cx">
</span><del>- target->dispatchEvent(event, IGNORE_EXCEPTION);
</del><ins>+ target->dispatchEvent(event);
</ins><span class="cx"> return event->defaultHandled();
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -3899,11 +3899,11 @@
</span><span class="cx"> RefPtr<TouchList> targetTouches(isTouchCancelEvent ? emptyList : touchesByTarget.get(touchEventTarget));
</span><span class="cx"> ASSERT(targetTouches);
</span><span class="cx">
</span><del>- RefPtr<TouchEvent> touchEvent =
</del><ins>+ Ref<TouchEvent> touchEvent =
</ins><span class="cx"> TouchEvent::create(effectiveTouches.get(), targetTouches.get(), changedTouches[state].m_touches.get(),
</span><span class="cx"> stateName, touchEventTarget->toNode()->document().defaultView(),
</span><span class="cx"> 0, 0, 0, 0, event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey());
</span><del>- touchEventTarget->toNode()->dispatchTouchEvent(touchEvent.get());
</del><ins>+ touchEventTarget->toNode()->dispatchTouchEvent(touchEvent);
</ins><span class="cx"> swallowedEvent = swallowedEvent || touchEvent->defaultPrevented() || touchEvent->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&);
</span><span class="cx"> void defaultKeyboardEventHandler(KeyboardEvent*);
</span><span class="cx">
</span><del>- bool accessibilityPreventsEventPropogation(KeyboardEvent*);
</del><ins>+ bool accessibilityPreventsEventPropogation(KeyboardEvent&);
</ins><span class="cx"> WEBCORE_EXPORT void handleKeyboardSelectionMovementForAccessibility(KeyboardEvent*);
</span><span class="cx">
</span><span class="cx"> bool handleTextInputEvent(const String& 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<MessageEvent> EventSource::createMessageEvent()
</del><ins>+Ref<MessageEvent> EventSource::createMessageEvent()
</ins><span class="cx"> {
</span><del>- RefPtr<MessageEvent> event = MessageEvent::create();
</del><ins>+ Ref<MessageEvent> event = MessageEvent::create();
</ins><span class="cx"> event->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<MessageEvent> createMessageEvent();
</del><ins>+ Ref<MessageEvent> 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 && !m_shouldAutoSize;
</span><span class="cx">
</span><del>- RefPtr<Event> resizeEvent = Event::create(eventNames().resizeEvent, false, false);
</del><ins>+ Ref<Event> resizeEvent = Event::create(eventNames().resizeEvent, false, false);
</ins><span class="cx"> if (canSendResizeEventSynchronously)
</span><del>- frame().document()->dispatchWindowEvent(resizeEvent.release());
</del><ins>+ frame().document()->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()->enqueueWindowEvent(resizeEvent.release());
</del><ins>+ frame().document()->enqueueWindowEvent(WTF::move(resizeEvent));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (InspectorInstrumentation::hasFrontends() && 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<OverflowEvent> overflowEvent = OverflowEvent::create(horizontalOverflowChanged, horizontalOverflow,
</del><ins>+ Ref<OverflowEvent> overflowEvent = OverflowEvent::create(horizontalOverflowChanged, horizontalOverflow,
</ins><span class="cx"> verticalOverflowChanged, verticalOverflow);
</span><span class="cx"> overflowEvent->setTarget(viewportRenderer->element());
</span><span class="cx">
</span><del>- frame().document()->enqueueOverflowEvent(overflowEvent.release());
</del><ins>+ frame().document()->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 && !verticalLayoutOverflowChanged)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- RefPtr<OverflowEvent> overflowEvent = OverflowEvent::create(horizontalLayoutOverflowChanged, hasHorizontalLayoutOverflow, verticalLayoutOverflowChanged, hasVerticalLayoutOverflow);
</del><ins>+ Ref<OverflowEvent> overflowEvent = OverflowEvent::create(horizontalLayoutOverflowChanged, hasHorizontalLayoutOverflow, verticalLayoutOverflowChanged, hasVerticalLayoutOverflow);
</ins><span class="cx"> overflowEvent->setTarget(m_block->element());
</span><del>- m_block->document().enqueueOverflowEvent(overflowEvent.release());
</del><ins>+ m_block->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<Event> event, WorkerEventQueue& eventQueue)
- : m_event(event)
</del><ins>+ EventDispatcher(RefPtr<Event>&& event, WorkerEventQueue& 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->target()->dispatchEvent(m_event);
</del><ins>+ m_event->target()->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<Event> event)
</del><ins>+bool WorkerEventQueue::enqueueEvent(Ref<Event>&& 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&) {
</span><span class="cx"> std::unique_ptr<EventDispatcher> eventDispatcher(eventDispatcherPtr);
</span><span class="cx"> eventDispatcher->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&);
</span><span class="cx"> virtual ~WorkerEventQueue();
</span><span class="cx">
</span><del>- virtual bool enqueueEvent(PassRefPtr<Event>) override;
</del><ins>+ virtual bool enqueueEvent(Ref<Event>&&) override;
</ins><span class="cx"> virtual bool cancelEvent(Event&) 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<Event>&& event, ProgressEventAction progressEventAction)
</del><ins>+void XMLHttpRequestProgressEventThrottle::dispatchReadyStateChangeEvent(Event& 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<Event>&& event)
</del><ins>+void XMLHttpRequestProgressEventThrottle::dispatchEvent(Event& event)
</ins><span class="cx"> {
</span><del>- ASSERT(event);
</del><span class="cx"> if (m_deferEvents) {
</span><del>- if (m_deferredEvents.size() > 1 && event->type() == eventNames().readystatechangeEvent && event->type() == m_deferredEvents.last()->type()) {
</del><ins>+ if (m_deferredEvents.size() > 1 && event.type() == eventNames().readystatechangeEvent && event.type() == m_deferredEvents.last()->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->dispatchEvent(WTF::move(event));
</del><ins>+ m_target->dispatchEvent(event);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void XMLHttpRequestProgressEventThrottle::dispatchProgressEvent(const AtomicString& type)
</span><span class="lines">@@ -120,8 +119,7 @@
</span><span class="cx"> {
</span><span class="cx"> if (m_deferEvents && 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<Event> deferredProgressEvent = m_deferredProgressEvent;
- m_deferredProgressEvent = nullptr;
</del><ins>+ RefPtr<Event> deferredProgressEvent = WTF::move(m_deferredProgressEvent);
</ins><span class="cx">
</span><span class="cx"> for (auto& 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<Event>&&, ProgressEventAction = DoNotFlushProgressEvent);
</del><ins>+ void dispatchReadyStateChangeEvent(Event&, ProgressEventAction = DoNotFlushProgressEvent);
</ins><span class="cx"> void dispatchProgressEvent(const AtomicString&);
</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<Event>&&);
</del><ins>+ void dispatchEvent(Event&);
</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<Event> m_deferredProgressEvent;
</span><del>- Vector<RefPtr<Event>> m_deferredEvents;
</del><ins>+ Vector<Ref<Event>> m_deferredEvents;
</ins><span class="cx"> Timer m_dispatchDeferredEventsTimer;
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre>
</div>
</div>
</body>
</html>