<!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>[180801] trunk/Source</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/180801">180801</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2015-02-27 17:05:21 -0800 (Fri, 27 Feb 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>Make ActiveDOMObject::canSuspend() pure virtual
https://bugs.webkit.org/show_bug.cgi?id=142096
<rdar://problem/19923085>
Reviewed by Andreas Kling.
Make ActiveDOMObject::canSuspend() pure virtual so that people at least
try to provide an implementation for it. The default implementation was
returning false unconditionally and thus was preventing pages from
entering the PageCache.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</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="#trunkSourceWebCoreModulesencryptedmediaMediaKeySessioncpp">trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesencryptedmediaMediaKeySessionh">trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySession.h</a></li>
<li><a href="#trunkSourceWebCoreModulesgeolocationGeolocationcpp">trunk/Source/WebCore/Modules/geolocation/Geolocation.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesgeolocationGeolocationh">trunk/Source/WebCore/Modules/geolocation/Geolocation.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBDatabasecpp">trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBDatabaseh">trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBRequestcpp">trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBRequesth">trunk/Source/WebCore/Modules/indexeddb/IDBRequest.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBTransactioncpp">trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBTransactionh">trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediasourceMediaSourcecpp">trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediasourceMediaSourceh">trunk/Source/WebCore/Modules/mediasource/MediaSource.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediasourceSourceBuffercpp">trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediasourceSourceBufferh">trunk/Source/WebCore/Modules/mediasource/SourceBuffer.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaStreamTrackcpp">trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaStreamTrackh">trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.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="#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="#trunkSourceWebCoreModulesmediastreamRTCSessionDescriptionRequestImplcpp">trunk/Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCSessionDescriptionRequestImplh">trunk/Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCStatsRequestImplcpp">trunk/Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCStatsRequestImplh">trunk/Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCVoidRequestImplcpp">trunk/Source/WebCore/Modules/mediastream/RTCVoidRequestImpl.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCVoidRequestImplh">trunk/Source/WebCore/Modules/mediastream/RTCVoidRequestImpl.h</a></li>
<li><a href="#trunkSourceWebCoreModulesnotificationsNotificationcpp">trunk/Source/WebCore/Modules/notifications/Notification.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesnotificationsNotificationh">trunk/Source/WebCore/Modules/notifications/Notification.h</a></li>
<li><a href="#trunkSourceWebCoreModulesnotificationsNotificationCentercpp">trunk/Source/WebCore/Modules/notifications/NotificationCenter.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesnotificationsNotificationCenterh">trunk/Source/WebCore/Modules/notifications/NotificationCenter.h</a></li>
<li><a href="#trunkSourceWebCoreModulesstreamsReadableStreamcpp">trunk/Source/WebCore/Modules/streams/ReadableStream.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesstreamsReadableStreamh">trunk/Source/WebCore/Modules/streams/ReadableStream.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioAudioContextcpp">trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioAudioContexth">trunk/Source/WebCore/Modules/webaudio/AudioContext.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsWebSocketcpp">trunk/Source/WebCore/Modules/websockets/WebSocket.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsWebSocketh">trunk/Source/WebCore/Modules/websockets/WebSocket.h</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="#trunkSourceWebCoredomActiveDOMObjecth">trunk/Source/WebCore/dom/ActiveDOMObject.h</a></li>
<li><a href="#trunkSourceWebCoredomDocumentEventQueuecpp">trunk/Source/WebCore/dom/DocumentEventQueue.cpp</a></li>
<li><a href="#trunkSourceWebCorefileapiFileReadercpp">trunk/Source/WebCore/fileapi/FileReader.cpp</a></li>
<li><a href="#trunkSourceWebCorefileapiFileReaderh">trunk/Source/WebCore/fileapi/FileReader.h</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="#trunkSourceWebCorehtmlPublicURLManagercpp">trunk/Source/WebCore/html/PublicURLManager.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlPublicURLManagerh">trunk/Source/WebCore/html/PublicURLManager.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLRenderingContextBasecpp">trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLRenderingContextBaseh">trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h</a></li>
<li><a href="#trunkSourceWebCorepageDOMTimercpp">trunk/Source/WebCore/page/DOMTimer.cpp</a></li>
<li><a href="#trunkSourceWebCorepageDOMTimerh">trunk/Source/WebCore/page/DOMTimer.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="#trunkSourceWebCorepageSuspendableTimerh">trunk/Source/WebCore/page/SuspendableTimer.h</a></li>
<li><a href="#trunkSourceWebCoreworkersAbstractWorkercpp">trunk/Source/WebCore/workers/AbstractWorker.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersAbstractWorkerh">trunk/Source/WebCore/workers/AbstractWorker.h</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkercpp">trunk/Source/WebCore/workers/Worker.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerh">trunk/Source/WebCore/workers/Worker.h</a></li>
<li><a href="#trunkSourceWebCorexmlXMLHttpRequestcpp">trunk/Source/WebCore/xml/XMLHttpRequest.cpp</a></li>
<li><a href="#trunkSourceWebCorexmlXMLHttpRequesth">trunk/Source/WebCore/xml/XMLHttpRequest.h</a></li>
<li><a href="#trunkSourceWebKitwinWebViewcpp">trunk/Source/WebKit/win/WebView.cpp</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/ChangeLog        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2015-02-27 Chris Dumez <cdumez@apple.com>
+
+ Make ActiveDOMObject::canSuspend() pure virtual
+ https://bugs.webkit.org/show_bug.cgi?id=142096
+ <rdar://problem/19923085>
+
+ Reviewed by Andreas Kling.
+
+ Make ActiveDOMObject::canSuspend() pure virtual so that people at least
+ try to provide an implementation for it. The default implementation was
+ returning false unconditionally and thus was preventing pages from
+ entering the PageCache.
+
</ins><span class="cx"> 2015-02-27 Commit Queue <commit-queue@webkit.org>
</span><span class="cx">
</span><span class="cx"> Unreviewed, rolling out r180203 and r180210.
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesbatteryBatteryManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/battery/BatteryManager.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/battery/BatteryManager.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/battery/BatteryManager.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -88,6 +88,11 @@
</span><span class="cx"> m_batteryStatus = batteryStatus;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+bool BatteryManager::canSuspend() const
+{
+ return true;
+}
+
</ins><span class="cx"> void BatteryManager::suspend(ReasonForSuspension)
</span><span class="cx"> {
</span><span class="cx"> if (m_batteryController)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesbatteryBatteryManagerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/battery/BatteryManager.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/battery/BatteryManager.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/battery/BatteryManager.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -58,12 +58,6 @@
</span><span class="cx"> using RefCounted<BatteryManager>::ref;
</span><span class="cx"> using RefCounted<BatteryManager>::deref;
</span><span class="cx">
</span><del>- // ActiveDOMObject implementation.
- virtual bool canSuspend() const override { return true; }
- virtual void suspend(ReasonForSuspension) override;
- virtual void resume() override;
- virtual void stop() override;
-
</del><span class="cx"> protected:
</span><span class="cx"> virtual EventTargetData* eventTargetData() override { return &m_eventTargetData; }
</span><span class="cx"> virtual EventTargetData& ensureEventTargetData() override { return m_eventTargetData; }
</span><span class="lines">@@ -71,6 +65,12 @@
</span><span class="cx"> private:
</span><span class="cx"> explicit BatteryManager(Navigator*);
</span><span class="cx">
</span><ins>+ // ActiveDOMObject API.
+ bool canSuspend() const override;
+ void suspend(ReasonForSuspension) override;
+ void resume() override;
+ void stop() override;
+
</ins><span class="cx"> // EventTarget implementation.
</span><span class="cx"> virtual void refEventTarget() override { ref(); }
</span><span class="cx"> virtual void derefEventTarget() override { deref(); }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesencryptedmediaMediaKeySessioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -250,6 +250,27 @@
</span><span class="cx"> return pathByAppendingComponent(storageDirectory, origin->databaseIdentifier());
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+bool MediaKeySession::hasPendingActivity() const
+{
+ return (m_keys && !isClosed()) || m_asyncEventQueue.hasPendingEvents();
</ins><span class="cx"> }
</span><span class="cx">
</span><ins>+void MediaKeySession::stop()
+{
+ close();
+}
+
+const char* MediaKeySession::activeDOMObjectName() const
+{
+ return "MediaKeySession";
+}
+
+bool MediaKeySession::canSuspend() const
+{
+ // FIXME: We should try and do better here.
+ return false;
+}
+
+}
+
</ins><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesencryptedmediaMediaKeySessionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySession.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySession.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySession.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -73,10 +73,6 @@
</span><span class="cx">
</span><span class="cx"> void enqueueEvent(PassRefPtr<Event>);
</span><span class="cx">
</span><del>- // ActiveDOMObject
- virtual bool hasPendingActivity() const override { return (m_keys && !isClosed()) || m_asyncEventQueue.hasPendingEvents(); }
- virtual void stop() override { close(); }
-
</del><span class="cx"> DEFINE_ATTRIBUTE_EVENT_LISTENER(webkitkeyadded);
</span><span class="cx"> DEFINE_ATTRIBUTE_EVENT_LISTENER(webkitkeyerror);
</span><span class="cx"> DEFINE_ATTRIBUTE_EVENT_LISTENER(webkitkeymessage);
</span><span class="lines">@@ -84,6 +80,9 @@
</span><span class="cx"> virtual EventTargetInterface eventTargetInterface() const override { return MediaKeySessionEventTargetInterfaceType; }
</span><span class="cx"> virtual ScriptExecutionContext* scriptExecutionContext() const override { return ActiveDOMObject::scriptExecutionContext(); }
</span><span class="cx">
</span><ins>+ // ActiveDOMObject API.
+ bool hasPendingActivity() const override;
+
</ins><span class="cx"> protected:
</span><span class="cx"> MediaKeySession(ScriptExecutionContext*, MediaKeys*, const String& keySystem);
</span><span class="cx"> void keyRequestTimerFired();
</span><span class="lines">@@ -116,7 +115,10 @@
</span><span class="cx"> virtual void refEventTarget() override { ref(); }
</span><span class="cx"> virtual void derefEventTarget() override { deref(); }
</span><span class="cx">
</span><del>- virtual const char* activeDOMObjectName() const override { return "MediaKeySession"; }
</del><ins>+ // ActiveDOMObject API.
+ void stop() override;
+ bool canSuspend() const override;
+ const char* activeDOMObjectName() const override;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesgeolocationGeolocationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/geolocation/Geolocation.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/geolocation/Geolocation.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/geolocation/Geolocation.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -293,6 +293,11 @@
</span><span class="cx"> m_pendingForPermissionNotifiers.clear();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* Geolocation::activeDOMObjectName() const
+{
+ return "Geolocation";
+}
+
</ins><span class="cx"> Geoposition* Geolocation::lastPosition()
</span><span class="cx"> {
</span><span class="cx"> Page* page = this->page();
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesgeolocationGeolocationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/geolocation/Geolocation.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/geolocation/Geolocation.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/geolocation/Geolocation.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -57,9 +57,6 @@
</span><span class="cx"> static Ref<Geolocation> create(ScriptExecutionContext*);
</span><span class="cx"> WEBCORE_EXPORT ~Geolocation();
</span><span class="cx">
</span><del>- virtual bool canSuspend() const override;
- virtual void suspend(ReasonForSuspension) override;
- virtual void resume() override;
</del><span class="cx"> WEBCORE_EXPORT void resetAllGeolocationPermission();
</span><span class="cx"> Document* document() const;
</span><span class="cx"> WEBCORE_EXPORT Frame* frame() const;
</span><span class="lines">@@ -80,7 +77,11 @@
</span><span class="cx"> Geoposition* lastPosition();
</span><span class="cx">
</span><span class="cx"> // ActiveDOMObject
</span><del>- virtual void stop() override;
</del><ins>+ void stop() override;
+ bool canSuspend() const override;
+ void suspend(ReasonForSuspension) override;
+ void resume() override;
+ const char* activeDOMObjectName() const override;
</ins><span class="cx">
</span><span class="cx"> bool isDenied() const { return m_allowGeolocation == No; }
</span><span class="cx">
</span><span class="lines">@@ -140,8 +141,6 @@
</span><span class="cx"> bool haveSuitableCachedPosition(PositionOptions*);
</span><span class="cx"> void makeCachedPositionCallbacks();
</span><span class="cx">
</span><del>- virtual const char* activeDOMObjectName() const override { return "Geolocation"; }
-
</del><span class="cx"> GeoNotifierSet m_oneShots;
</span><span class="cx"> Watchers m_watchers;
</span><span class="cx"> GeoNotifierSet m_pendingForPermissionNotifiers;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBDatabasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -361,6 +361,11 @@
</span><span class="cx"> m_contextStopped = true;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* IDBDatabase::activeDOMObjectName() const
+{
+ return "IDBDatabase";
+}
+
</ins><span class="cx"> bool IDBDatabase::canSuspend() const
</span><span class="cx"> {
</span><span class="cx"> return m_isClosed;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBDatabaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -80,9 +80,6 @@
</span><span class="cx"> virtual void onAbort(int64_t, PassRefPtr<IDBDatabaseError>);
</span><span class="cx"> virtual void onComplete(int64_t);
</span><span class="cx">
</span><del>- // ActiveDOMObject
- virtual bool hasPendingActivity() const override;
-
</del><span class="cx"> // EventTarget
</span><span class="cx"> virtual EventTargetInterface eventTargetInterface() const override final { return IDBDatabaseEventTargetInterfaceType; }
</span><span class="cx"> virtual ScriptExecutionContext* scriptExecutionContext() const override final { return ActiveDOMObject::scriptExecutionContext(); }
</span><span class="lines">@@ -108,12 +105,15 @@
</span><span class="cx"> using RefCounted<IDBDatabase>::ref;
</span><span class="cx"> using RefCounted<IDBDatabase>::deref;
</span><span class="cx">
</span><ins>+ // ActiveDOMObject API.
+ bool hasPendingActivity() const override;
+
</ins><span class="cx"> private:
</span><span class="cx"> IDBDatabase(ScriptExecutionContext*, PassRefPtr<IDBDatabaseBackend>, PassRefPtr<IDBDatabaseCallbacks>);
</span><span class="cx">
</span><del>- // ActiveDOMObject
</del><ins>+ // ActiveDOMObject API.
</ins><span class="cx"> void stop() override;
</span><del>- const char* activeDOMObjectName() const override { return "IDBDatabase"; }
</del><ins>+ const char* activeDOMObjectName() const override;
</ins><span class="cx"> bool canSuspend() const override;
</span><span class="cx">
</span><span class="cx"> // EventTarget
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -448,6 +448,11 @@
</span><span class="cx"> return !m_hasPendingActivity;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* IDBRequest::activeDOMObjectName() const
+{
+ return "IDBRequest";
+}
+
</ins><span class="cx"> EventTargetInterface IDBRequest::eventTargetInterface() const
</span><span class="cx"> {
</span><span class="cx"> return IDBRequestEventTargetInterfaceType;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBRequesth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBRequest.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBRequest.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBRequest.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -93,9 +93,6 @@
</span><span class="cx"> virtual void onSuccess();
</span><span class="cx"> virtual void onSuccess(PassRefPtr<IDBKey>, PassRefPtr<IDBKey> primaryKey, PassRefPtr<SharedBuffer>);
</span><span class="cx">
</span><del>- // ActiveDOMObject
- virtual bool hasPendingActivity() const override;
-
</del><span class="cx"> // EventTarget
</span><span class="cx"> virtual EventTargetInterface eventTargetInterface() const override;
</span><span class="cx"> virtual ScriptExecutionContext* scriptExecutionContext() const override final { return ActiveDOMObject::scriptExecutionContext(); }
</span><span class="lines">@@ -113,6 +110,9 @@
</span><span class="cx">
</span><span class="cx"> DOMRequestState* requestState() { return &m_requestState; }
</span><span class="cx">
</span><ins>+ // ActiveDOMObject API.
+ bool hasPendingActivity() const override;
+
</ins><span class="cx"> protected:
</span><span class="cx"> IDBRequest(ScriptExecutionContext*, PassRefPtr<IDBAny> source, IDBDatabaseBackend::TaskType, IDBTransaction*);
</span><span class="cx"> void enqueueEvent(PassRefPtr<Event>);
</span><span class="lines">@@ -130,12 +130,12 @@
</span><span class="cx"> bool m_requestAborted; // May be aborted by transaction then receive async onsuccess; ignore vs. assert.
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- // ActiveDOMObject
</del><ins>+ // ActiveDOMObject API.
</ins><span class="cx"> void stop() override;
</span><del>- const char* activeDOMObjectName() const override { return "IDBRequest"; }
</del><ins>+ const char* activeDOMObjectName() const override;
</ins><span class="cx"> bool canSuspend() const override;
</span><span class="cx">
</span><del>- // EventTarget
</del><ins>+ // EventTarget API.
</ins><span class="cx"> virtual void refEventTarget() override final { ref(); }
</span><span class="cx"> virtual void derefEventTarget() override final { deref(); }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBTransactioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -408,6 +408,11 @@
</span><span class="cx"> abort(IGNORE_EXCEPTION);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* IDBTransaction::activeDOMObjectName() const
+{
+ return "IDBTransaction";
+}
+
</ins><span class="cx"> void IDBTransaction::enqueueEvent(PassRefPtr<Event> event)
</span><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></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBTransactionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -111,7 +111,7 @@
</span><span class="cx"> virtual bool dispatchEvent(PassRefPtr<Event>) override;
</span><span class="cx">
</span><span class="cx"> // ActiveDOMObject
</span><del>- virtual bool hasPendingActivity() const override;
</del><ins>+ bool hasPendingActivity() const override;
</ins><span class="cx">
</span><span class="cx"> using RefCounted<IDBTransaction>::ref;
</span><span class="cx"> using RefCounted<IDBTransaction>::deref;
</span><span class="lines">@@ -125,12 +125,12 @@
</span><span class="cx"> void registerOpenCursor(IDBCursor*);
</span><span class="cx"> void unregisterOpenCursor(IDBCursor*);
</span><span class="cx">
</span><del>- // ActiveDOMObject
- virtual bool canSuspend() const override;
- virtual void stop() override;
- virtual const char* activeDOMObjectName() const override { return "IDBTransaction"; }
</del><ins>+ // ActiveDOMObject API.
+ bool canSuspend() const override;
+ void stop() override;
+ const char* activeDOMObjectName() const override;
</ins><span class="cx">
</span><del>- // EventTarget
</del><ins>+ // EventTarget API.
</ins><span class="cx"> virtual void refEventTarget() override { ref(); }
</span><span class="cx"> virtual void derefEventTarget() override { deref(); }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediasourceMediaSourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -814,6 +814,11 @@
</span><span class="cx"> return isClosed() && !m_asyncEventQueue.hasPendingEvents();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* MediaSource::activeDOMObjectName() const
+{
+ return "MediaSource";
+}
+
</ins><span class="cx"> void MediaSource::onReadyStateChange(const AtomicString& oldState, const AtomicString& newState)
</span><span class="cx"> {
</span><span class="cx"> if (isOpen()) {
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediasourceMediaSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediasource/MediaSource.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediasource/MediaSource.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/mediasource/MediaSource.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -99,11 +99,6 @@
</span><span class="cx"> void removeSourceBuffer(SourceBuffer*, ExceptionCode&);
</span><span class="cx"> static bool isTypeSupported(const String& type);
</span><span class="cx">
</span><del>- // ActiveDOMObject interface
- bool hasPendingActivity() const override;
- void stop() override;
- bool canSuspend() const override;
-
</del><span class="cx"> // EventTarget interface
</span><span class="cx"> virtual ScriptExecutionContext* scriptExecutionContext() const override final;
</span><span class="cx"> virtual void refEventTarget() override final { ref(); }
</span><span class="lines">@@ -116,10 +111,16 @@
</span><span class="cx"> using RefCounted<MediaSourcePrivateClient>::ref;
</span><span class="cx"> using RefCounted<MediaSourcePrivateClient>::deref;
</span><span class="cx">
</span><ins>+ // ActiveDOMObject API.
+ bool hasPendingActivity() const override;
+
</ins><span class="cx"> protected:
</span><span class="cx"> explicit MediaSource(ScriptExecutionContext&);
</span><span class="cx">
</span><del>- virtual const char* activeDOMObjectName() const override { return "MediaSource"; }
</del><ins>+ // ActiveDOMObject API.
+ void stop() override;
+ bool canSuspend() const override;
+ const char* activeDOMObjectName() const override;
</ins><span class="cx">
</span><span class="cx"> void onReadyStateChange(const AtomicString& oldState, const AtomicString& newState);
</span><span class="cx"> Vector<PlatformTimeRanges> activeRanges() const;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediasourceSourceBuffercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -515,6 +515,11 @@
</span><span class="cx"> return !hasPendingActivity();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* SourceBuffer::activeDOMObjectName() const
+{
+ return "SourceBuffer";
+}
+
</ins><span class="cx"> bool SourceBuffer::isRemoved() const
</span><span class="cx"> {
</span><span class="cx"> return !m_source;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediasourceSourceBufferh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediasource/SourceBuffer.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediasource/SourceBuffer.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/mediasource/SourceBuffer.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -106,11 +106,6 @@
</span><span class="cx">
</span><span class="cx"> bool active() const { return m_active; }
</span><span class="cx">
</span><del>- // ActiveDOMObject interface
- virtual bool hasPendingActivity() const override;
- virtual void stop() override;
- bool canSuspend() const override;
-
</del><span class="cx"> // EventTarget interface
</span><span class="cx"> virtual ScriptExecutionContext* scriptExecutionContext() const override { return ActiveDOMObject::scriptExecutionContext(); }
</span><span class="cx"> virtual EventTargetInterface eventTargetInterface() const override { return SourceBufferEventTargetInterfaceType; }
</span><span class="lines">@@ -129,6 +124,10 @@
</span><span class="cx"> void setShouldGenerateTimestamps(bool flag) { m_shouldGenerateTimestamps = flag; }
</span><span class="cx">
</span><span class="cx"> void rangeRemoval(const MediaTime&, const MediaTime&);
</span><ins>+
+ // ActiveDOMObject API.
+ bool hasPendingActivity() const override;
+
</ins><span class="cx"> protected:
</span><span class="cx"> // EventTarget interface
</span><span class="cx"> virtual void refEventTarget() override { ref(); }
</span><span class="lines">@@ -137,7 +136,10 @@
</span><span class="cx"> private:
</span><span class="cx"> SourceBuffer(Ref<SourceBufferPrivate>&&, MediaSource*);
</span><span class="cx">
</span><del>- virtual const char* activeDOMObjectName() const override { return "SourceBuffer"; }
</del><ins>+ // ActiveDOMObject API.
+ void stop() override;
+ const char* activeDOMObjectName() const override;
+ bool canSuspend() const override;
</ins><span class="cx">
</span><span class="cx"> // SourceBufferPrivateClient
</span><span class="cx"> virtual void sourceBufferPrivateDidEndStream(SourceBufferPrivate*, const WTF::AtomicString&) override;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaStreamTrackcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -288,6 +288,17 @@
</span><span class="cx"> m_privateTrack->stop(MediaStreamTrackPrivate::StopTrackOnly);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* MediaStreamTrack::activeDOMObjectName() const
+{
+ return "MediaStreamTrack";
+}
+
+bool MediaStreamTrack::canSuspend() const
+{
+ // FIXME: We should try and do better here.
+ return false;
+}
+
</ins><span class="cx"> void MediaStreamTrack::scheduleEventDispatch(PassRefPtr<Event> event)
</span><span class="cx"> {
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaStreamTrackh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -112,14 +112,14 @@
</span><span class="cx"> void setSource(PassRefPtr<MediaStreamSource>);
</span><span class="cx">
</span><span class="cx"> private:
</span><del>-
</del><span class="cx"> void configureTrackRendering();
</span><span class="cx"> void trackDidEnd();
</span><span class="cx"> void scheduleEventDispatch(PassRefPtr<Event>);
</span><span class="cx">
</span><del>- // ActiveDOMObject
- virtual void stop() override final;
- virtual const char* activeDOMObjectName() const override { return "MediaStreamTrack"; }
</del><ins>+ // ActiveDOMObject API.
+ void stop() override final;
+ const char* activeDOMObjectName() const override final;
+ bool canSuspend() const override final;
</ins><span class="cx">
</span><span class="cx"> // EventTarget
</span><span class="cx"> virtual void refEventTarget() override final { ref(); }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCDTMFSendercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -131,9 +131,20 @@
</span><span class="cx"> void RTCDTMFSender::stop()
</span><span class="cx"> {
</span><span class="cx"> m_stopped = true;
</span><del>- m_handler->setClient(0);
</del><ins>+ m_handler->setClient(nullptr);
</ins><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* RTCDTMFSender::activeDOMObjectName() const
+{
+ return "RTCDTMFSender";
+}
+
+bool RTCDTMFSender::canSuspend() const
+{
+ // FIXME: We should try and do better here.
+ return false;
+}
+
</ins><span class="cx"> void RTCDTMFSender::scheduleDispatchEvent(PassRefPtr<Event> event)
</span><span class="cx"> {
</span><span class="cx"> m_scheduledEvents.append(event);
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCDTMFSenderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -62,16 +62,16 @@
</span><span class="cx"> virtual EventTargetInterface eventTargetInterface() const override { return RTCDTMFSenderEventTargetInterfaceType; }
</span><span class="cx"> virtual ScriptExecutionContext* scriptExecutionContext() const override { return ActiveDOMObject::scriptExecutionContext(); }
</span><span class="cx">
</span><del>- // ActiveDOMObject
- virtual void stop() override;
-
</del><span class="cx"> using RefCounted<RTCDTMFSender>::ref;
</span><span class="cx"> using RefCounted<RTCDTMFSender>::deref;
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> RTCDTMFSender(ScriptExecutionContext*, PassRefPtr<MediaStreamTrack>, std::unique_ptr<RTCDTMFSenderHandler>);
</span><span class="cx">
</span><del>- virtual const char* activeDOMObjectName() const override { return "RTCDTMFSender"; }
</del><ins>+ // ActiveDOMObject
+ void stop() override;
+ const char* activeDOMObjectName() const override;
+ bool canSuspend() const override;
</ins><span class="cx">
</span><span class="cx"> void scheduleDispatchEvent(PassRefPtr<Event>);
</span><span class="cx"> void scheduledEventTimerFired();
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCPeerConnectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -690,6 +690,17 @@
</span><span class="cx"> (*i)->stop();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* RTCPeerConnection::activeDOMObjectName() const
+{
+ return "RTCPeerConnection";
+}
+
+bool RTCPeerConnection::canSuspend() const
+{
+ // FIXME: We should try and do better here.
+ return false;
+}
+
</ins><span class="cx"> void RTCPeerConnection::didAddOrRemoveTrack()
</span><span class="cx"> {
</span><span class="cx"> negotiationNeeded();
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCPeerConnectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -125,9 +125,6 @@
</span><span class="cx"> virtual EventTargetInterface eventTargetInterface() const override { return RTCPeerConnectionEventTargetInterfaceType; }
</span><span class="cx"> virtual ScriptExecutionContext* scriptExecutionContext() const override { return ActiveDOMObject::scriptExecutionContext(); }
</span><span class="cx">
</span><del>- // ActiveDOMObject
- virtual void stop() override;
-
</del><span class="cx"> // MediaStream::Observer
</span><span class="cx"> virtual void didAddOrRemoveTrack() override;
</span><span class="cx">
</span><span class="lines">@@ -146,7 +143,10 @@
</span><span class="cx"> virtual void refEventTarget() override { ref(); }
</span><span class="cx"> virtual void derefEventTarget() override { deref(); }
</span><span class="cx">
</span><del>- virtual const char* activeDOMObjectName() const override { return "RTCPeerConnection"; }
</del><ins>+ // ActiveDOMObject
+ void stop() override;
+ const char* activeDOMObjectName() const override;
+ bool canSuspend() const override;
</ins><span class="cx">
</span><span class="cx"> void changeSignalingState(SignalingState);
</span><span class="cx"> void changeIceGatheringState(IceGatheringState);
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCSessionDescriptionRequestImplcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -84,6 +84,17 @@
</span><span class="cx"> clear();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* RTCSessionDescriptionRequestImpl::activeDOMObjectName() const
+{
+ return "RTCSessionDescriptionRequestImpl";
+}
+
+bool RTCSessionDescriptionRequestImpl::canSuspend() const
+{
+ // FIXME: We should try and do better here.
+ return false;
+}
+
</ins><span class="cx"> void RTCSessionDescriptionRequestImpl::clear()
</span><span class="cx"> {
</span><span class="cx"> m_successCallback.clear();
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCSessionDescriptionRequestImplh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -51,13 +51,13 @@
</span><span class="cx"> virtual void requestSucceeded(PassRefPtr<RTCSessionDescriptionDescriptor>) override;
</span><span class="cx"> virtual void requestFailed(const String& error) override;
</span><span class="cx">
</span><del>- // ActiveDOMObject
- virtual void stop() override;
-
</del><span class="cx"> private:
</span><span class="cx"> RTCSessionDescriptionRequestImpl(ScriptExecutionContext*, PassRefPtr<RTCSessionDescriptionCallback>, PassRefPtr<RTCPeerConnectionErrorCallback>);
</span><span class="cx">
</span><del>- virtual const char* activeDOMObjectName() const override { return "RTCSessionDescriptionRequestImpl"; }
</del><ins>+ // ActiveDOMObject API.
+ void stop() override;
+ const char* activeDOMObjectName() const override;
+ bool canSuspend() const override;
</ins><span class="cx">
</span><span class="cx"> void clear();
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCStatsRequestImplcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -91,6 +91,17 @@
</span><span class="cx"> clear();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* RTCStatsRequestImpl::activeDOMObjectName() const
+{
+ return "RTCStatsRequestImpl";
+}
+
+bool RTCStatsRequestImpl::canSuspend() const
+{
+ // FIXME: We should try and do better here.
+ return false;
+}
+
</ins><span class="cx"> void RTCStatsRequestImpl::clear()
</span><span class="cx"> {
</span><span class="cx"> m_successCallback.clear();
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCStatsRequestImplh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -51,13 +51,13 @@
</span><span class="cx"> virtual void requestSucceeded(PassRefPtr<RTCStatsResponseBase>) override;
</span><span class="cx"> virtual void requestFailed(const String&) override;
</span><span class="cx">
</span><del>- // ActiveDOMObject
- virtual void stop() override;
-
</del><span class="cx"> private:
</span><span class="cx"> RTCStatsRequestImpl(ScriptExecutionContext*, PassRefPtr<RTCStatsCallback>, PassRefPtr<RTCPeerConnectionErrorCallback>, PassRefPtr<MediaStreamTrackPrivate>);
</span><span class="cx">
</span><del>- virtual const char* activeDOMObjectName() const override { return "RTCStatsRequestImpl"; }
</del><ins>+ // ActiveDOMObject API.
+ void stop() override;
+ const char* activeDOMObjectName() const override;
+ bool canSuspend() const override;
</ins><span class="cx">
</span><span class="cx"> void clear();
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCVoidRequestImplcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCVoidRequestImpl.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCVoidRequestImpl.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/mediastream/RTCVoidRequestImpl.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -81,6 +81,17 @@
</span><span class="cx"> clear();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* RTCVoidRequestImpl::activeDOMObjectName() const
+{
+ return "RTCVoidRequestImpl";
+}
+
+bool RTCVoidRequestImpl::canSuspend() const
+{
+ // FIXME: We should try and do better here.
+ return false;
+}
+
</ins><span class="cx"> void RTCVoidRequestImpl::clear()
</span><span class="cx"> {
</span><span class="cx"> m_successCallback.clear();
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCVoidRequestImplh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCVoidRequestImpl.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCVoidRequestImpl.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/mediastream/RTCVoidRequestImpl.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -50,16 +50,16 @@
</span><span class="cx"> virtual void requestSucceeded();
</span><span class="cx"> virtual void requestFailed(const String& error);
</span><span class="cx">
</span><del>- // ActiveDOMObject
- virtual void stop() override;
-
</del><span class="cx"> private:
</span><span class="cx"> RTCVoidRequestImpl(ScriptExecutionContext*, PassRefPtr<VoidCallback>, PassRefPtr<RTCPeerConnectionErrorCallback>);
</span><span class="cx">
</span><del>- virtual const char* activeDOMObjectName() const override { return "RTCVoidRequestImpl"; }
-
</del><span class="cx"> void clear();
</span><span class="cx">
</span><ins>+ // ActiveDOMObject
+ void stop() override;
+ const char* activeDOMObjectName() const override;
+ bool canSuspend() const override;
+
</ins><span class="cx"> RefPtr<VoidCallback> m_successCallback;
</span><span class="cx"> RefPtr<RTCPeerConnectionErrorCallback> m_errorCallback;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesnotificationsNotificationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/notifications/Notification.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/notifications/Notification.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/notifications/Notification.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -170,6 +170,17 @@
</span><span class="cx"> m_notificationCenter->client()->notificationObjectDestroyed(this);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* Notification::activeDOMObjectName() const
+{
+ return "Notification";
+}
+
+bool Notification::canSuspend() const
+{
+ // FIXME: We should try and do better here.
+ return false;
+}
+
</ins><span class="cx"> void Notification::finalize()
</span><span class="cx"> {
</span><span class="cx"> if (m_state == Closed)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesnotificationsNotificationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/notifications/Notification.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/notifications/Notification.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/notifications/Notification.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -146,15 +146,15 @@
</span><span class="cx">
</span><span class="cx"> void setBody(const String& body) { m_body = body; }
</span><span class="cx">
</span><del>- // ActiveDOMObject interface
- virtual void contextDestroyed() override;
</del><ins>+ // ActiveDOMObject API.
+ void contextDestroyed() override;
+ const char* activeDOMObjectName() const override;
+ bool canSuspend() const override;
</ins><span class="cx">
</span><del>- // EventTarget interface
</del><ins>+ // EventTarget API.
</ins><span class="cx"> virtual void refEventTarget() override { ref(); }
</span><span class="cx"> virtual void derefEventTarget() override { deref(); }
</span><span class="cx">
</span><del>- virtual const char* activeDOMObjectName() const override { return "Notification"; }
-
</del><span class="cx"> void startLoadingIcon();
</span><span class="cx"> void finishLoadingIcon();
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesnotificationsNotificationCentercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/notifications/NotificationCenter.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/notifications/NotificationCenter.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/notifications/NotificationCenter.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -102,9 +102,20 @@
</span><span class="cx"> return;
</span><span class="cx"> m_client->cancelRequestsForPermission(scriptExecutionContext());
</span><span class="cx"> m_client->clearNotifications(scriptExecutionContext());
</span><del>- m_client = 0;
</del><ins>+ m_client = nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* NotificationCenter::activeDOMObjectName() const
+{
+ return "NotificationCenter";
+}
+
+bool NotificationCenter::canSuspend() const
+{
+ // FIXME: We should try and do better here.
+ return false;
+}
+
</ins><span class="cx"> void NotificationCenter::requestTimedOut(NotificationCenter::NotificationRequestCallback* request)
</span><span class="cx"> {
</span><span class="cx"> m_callbacks.remove(request);
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesnotificationsNotificationCenterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/notifications/NotificationCenter.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/notifications/NotificationCenter.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/notifications/NotificationCenter.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -73,9 +73,10 @@
</span><span class="cx"> private:
</span><span class="cx"> NotificationCenter(ScriptExecutionContext*, NotificationClient*);
</span><span class="cx">
</span><del>- // ActiveDOMObject
- virtual void stop() override;
- virtual const char* activeDOMObjectName() const override { return "NotificationCenter"; }
</del><ins>+ // ActiveDOMObject API.
+ void stop() override;
+ const char* activeDOMObjectName() const override;
+ bool canSuspend() const override;
</ins><span class="cx">
</span><span class="cx"> class NotificationRequestCallback : public RefCounted<NotificationRequestCallback> {
</span><span class="cx"> public:
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesstreamsReadableStreamcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/streams/ReadableStream.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/streams/ReadableStream.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/streams/ReadableStream.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -90,6 +90,17 @@
</span><span class="cx"> notImplemented();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* ReadableStream::activeDOMObjectName() const
+{
+ return "ReadableStream";
</ins><span class="cx"> }
</span><span class="cx">
</span><ins>+bool ReadableStream::canSuspend() const
+{
+ // FIXME: We should try and do better here.
+ return false;
+}
+
+}
+
</ins><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesstreamsReadableStreamh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/streams/ReadableStream.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/streams/ReadableStream.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/streams/ReadableStream.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -58,8 +58,6 @@
</span><span class="cx"> static Ref<ReadableStream> create(ScriptExecutionContext&, Ref<ReadableStreamSource>&&);
</span><span class="cx"> virtual ~ReadableStream();
</span><span class="cx">
</span><del>- virtual const char* activeDOMObjectName() const override { return "ReadableStream"; }
-
</del><span class="cx"> // JS API implementation.
</span><span class="cx"> String state() const;
</span><span class="cx">
</span><span class="lines">@@ -70,6 +68,10 @@
</span><span class="cx"> private:
</span><span class="cx"> ReadableStream(ScriptExecutionContext&, Ref<ReadableStreamSource>&&);
</span><span class="cx">
</span><ins>+ // ActiveDOMObject API.
+ const char* activeDOMObjectName() const override;
+ bool canSuspend() const override;
+
</ins><span class="cx"> State m_state;
</span><span class="cx"> Ref<ReadableStreamSource> m_source;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioAudioContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -313,6 +313,17 @@
</span><span class="cx"> callOnMainThread(stopDispatch, this);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+bool AudioContext::canSuspend() const
+{
+ // FIXME: We should try and do better here.
+ return false;
+}
+
+const char* AudioContext::activeDOMObjectName() const
+{
+ return "AudioContext";
+}
+
</ins><span class="cx"> Document* AudioContext::document() const
</span><span class="cx"> {
</span><span class="cx"> ASSERT(m_scriptExecutionContext);
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioAudioContexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/AudioContext.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/AudioContext.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/webaudio/AudioContext.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -85,9 +85,6 @@
</span><span class="cx">
</span><span class="cx"> bool isOfflineContext() { return m_isOfflineContext; }
</span><span class="cx">
</span><del>- // Document notification
- virtual void stop() override;
-
</del><span class="cx"> Document* document() const; // ASSERTs if document no longer exists.
</span><span class="cx">
</span><span class="cx"> AudioDestinationNode* destination() { return m_destinationNode.get(); }
</span><span class="lines">@@ -264,8 +261,6 @@
</span><span class="cx"> static bool isSampleRateRangeGood(float sampleRate);
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- virtual const char* activeDOMObjectName() const override { return "AudioContext"; }
-
</del><span class="cx"> void constructCommon();
</span><span class="cx">
</span><span class="cx"> void lazyInitialize();
</span><span class="lines">@@ -296,6 +291,11 @@
</span><span class="cx"> void refNode(AudioNode*);
</span><span class="cx"> void derefNode(AudioNode*);
</span><span class="cx">
</span><ins>+ // ActiveDOMObject API.
+ void stop() override;
+ bool canSuspend() const override;
+ const char* activeDOMObjectName() const override;
+
</ins><span class="cx"> // When the context goes away, there might still be some sources which haven't finished playing.
</span><span class="cx"> // Make sure to dereference them here.
</span><span class="cx"> void derefUnfinishedSourceNodes();
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebsocketsWebSocketcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/WebSocket.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/WebSocket.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/websockets/WebSocket.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -489,6 +489,11 @@
</span><span class="cx"> ActiveDOMObject::unsetPendingActivity(this);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* WebSocket::activeDOMObjectName() const
+{
+ return "WebSocket";
+}
+
</ins><span class="cx"> void WebSocket::didConnect()
</span><span class="cx"> {
</span><span class="cx"> LOG(Network, "WebSocket %p didConnect()", this);
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebsocketsWebSocketh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/WebSocket.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/WebSocket.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/Modules/websockets/WebSocket.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -113,13 +113,13 @@
</span><span class="cx"> private:
</span><span class="cx"> explicit WebSocket(ScriptExecutionContext&);
</span><span class="cx">
</span><del>- // ActiveDOMObject functions.
- virtual void contextDestroyed() override;
- virtual bool canSuspend() const override;
- virtual void suspend(ReasonForSuspension) override;
- virtual void resume() override;
- virtual void stop() override;
- virtual const char* activeDOMObjectName() const override { return "WebSocket"; }
</del><ins>+ // ActiveDOMObject API.
+ void contextDestroyed() override;
+ bool canSuspend() const override;
+ void suspend(ReasonForSuspension) override;
+ void resume() override;
+ void stop() override;
+ const char* activeDOMObjectName() const override;
</ins><span class="cx">
</span><span class="cx"> virtual void refEventTarget() override { ref(); }
</span><span class="cx"> virtual void derefEventTarget() override { deref(); }
</span></span></pre></div>
<a id="trunkSourceWebCorecssFontLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/FontLoader.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/FontLoader.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/css/FontLoader.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -156,6 +156,16 @@
</span><span class="cx"> loadingDone();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* FontLoader::activeDOMObjectName() const
+{
+ return "FontLoader";
+}
+
+bool FontLoader::canSuspend() const
+{
+ return !m_numLoadingFromCSS && !m_numLoadingFromJS;
+}
+
</ins><span class="cx"> void FontLoader::scheduleEvent(PassRefPtr<Event> event)
</span><span class="cx"> {
</span><span class="cx"> m_pendingEvents.append(event);
</span></span></pre></div>
<a id="trunkSourceWebCorecssFontLoaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/FontLoader.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/FontLoader.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/css/FontLoader.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -85,8 +85,6 @@
</span><span class="cx"> void loadError(CSSFontFaceRule*, CSSFontFaceSource*);
</span><span class="cx"> void loadingDone();
</span><span class="cx">
</span><del>- virtual bool canSuspend() const override { return !m_numLoadingFromCSS && !m_numLoadingFromJS; }
-
</del><span class="cx"> private:
</span><span class="cx"> FontLoader(Document*);
</span><span class="cx">
</span><span class="lines">@@ -95,7 +93,9 @@
</span><span class="cx"> virtual EventTargetData* eventTargetData() override;
</span><span class="cx"> virtual EventTargetData& ensureEventTargetData() override;
</span><span class="cx">
</span><del>- virtual const char* activeDOMObjectName() const override { return "FontLoader"; }
</del><ins>+ // ActiveDOMObject API.
+ const char* activeDOMObjectName() const override;
+ bool canSuspend() const override;
</ins><span class="cx">
</span><span class="cx"> void pendingEventsTimerFired() { firePendingEvents(); }
</span><span class="cx"> void scheduleEvent(PassRefPtr<Event>);
</span></span></pre></div>
<a id="trunkSourceWebCoredomActiveDOMObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ActiveDOMObject.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ActiveDOMObject.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/dom/ActiveDOMObject.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx">
</span><span class="cx"> // These three functions must not have a side effect of creating or destroying
</span><span class="cx"> // any ActiveDOMObject. That means they must not result in calls to arbitrary JavaScript.
</span><del>- virtual bool canSuspend() const;
</del><ins>+ virtual bool canSuspend() const = 0; // Returning false in canSuspend() will prevent the page from entering the PageCache.
</ins><span class="cx"> virtual void suspend(ReasonForSuspension);
</span><span class="cx"> virtual void resume();
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentEventQueuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DocumentEventQueue.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DocumentEventQueue.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/dom/DocumentEventQueue.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -51,6 +51,8 @@
</span><span class="cx"> m_eventQueue.pendingEventTimerFired();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+ const char* activeDOMObjectName() const override { return "DocumentEventQueueTimer"; }
+
</ins><span class="cx"> DocumentEventQueue& m_eventQueue;
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorefileapiFileReadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/fileapi/FileReader.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/fileapi/FileReader.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/fileapi/FileReader.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -71,6 +71,11 @@
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* FileReader::activeDOMObjectName() const
+{
+ return "FileReader";
+}
+
</ins><span class="cx"> void FileReader::stop()
</span><span class="cx"> {
</span><span class="cx"> terminate();
</span></span></pre></div>
<a id="trunkSourceWebCorefileapiFileReaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/fileapi/FileReader.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/fileapi/FileReader.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/fileapi/FileReader.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -102,10 +102,10 @@
</span><span class="cx"> private:
</span><span class="cx"> explicit FileReader(ScriptExecutionContext&);
</span><span class="cx">
</span><del>- // ActiveDOMObject
- virtual const char* activeDOMObjectName() const override { return "FileReader"; }
- virtual bool canSuspend() const override;
- virtual void stop() override;
</del><ins>+ // ActiveDOMObject API.
+ const char* activeDOMObjectName() const override;
+ bool canSuspend() const override;
+ void stop() override;
</ins><span class="cx">
</span><span class="cx"> // EventTarget
</span><span class="cx"> virtual void refEventTarget() override { ref(); }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -4713,6 +4713,11 @@
</span><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* HTMLMediaElement::activeDOMObjectName() const
+{
+ return "HTMLMediaElement";
+}
+
</ins><span class="cx"> void HTMLMediaElement::stop()
</span><span class="cx"> {
</span><span class="cx"> LOG(Media, "HTMLMediaElement::stop(%p)", this);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/html/HTMLMediaElement.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -521,12 +521,12 @@
</span><span class="cx"> virtual void didBecomeFullscreenElement() override;
</span><span class="cx"> virtual void willStopBeingFullscreenElement() override;
</span><span class="cx">
</span><del>- // ActiveDOMObject functions.
- virtual const char* activeDOMObjectName() const override { return "HTMLMediaElement"; }
- virtual bool canSuspend() const override;
- virtual void suspend(ReasonForSuspension) override;
- virtual void resume() override;
- virtual void stop() override;
</del><ins>+ // ActiveDOMObject API.
+ const char* activeDOMObjectName() const override;
+ bool canSuspend() const override;
+ void suspend(ReasonForSuspension) override;
+ void resume() override;
+ void stop() override;
</ins><span class="cx">
</span><span class="cx"> virtual void mediaVolumeDidChange() override;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlPublicURLManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/PublicURLManager.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/PublicURLManager.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/html/PublicURLManager.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -86,4 +86,9 @@
</span><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* PublicURLManager::activeDOMObjectName() const
+{
+ return "PublicURLManager";
+}
+
</ins><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlPublicURLManagerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/PublicURLManager.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/PublicURLManager.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/html/PublicURLManager.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -50,12 +50,11 @@
</span><span class="cx"> void registerURL(SecurityOrigin*, const URL&, URLRegistrable*);
</span><span class="cx"> void revoke(const URL&);
</span><span class="cx">
</span><del>- // ActiveDOMObject interface.
- virtual void stop() override;
- virtual bool canSuspend() const override;
-
</del><span class="cx"> private:
</span><del>- virtual const char* activeDOMObjectName() const override { return "PublicURLManager"; }
</del><ins>+ // ActiveDOMObject API.
+ void stop() override;
+ bool canSuspend() const override;
+ const char* activeDOMObjectName() const override;
</ins><span class="cx">
</span><span class="cx"> typedef HashSet<String> URLSet;
</span><span class="cx"> typedef HashMap<URLRegistry*, URLSet > RegistryURLMap;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLRenderingContextBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -3934,6 +3934,17 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* WebGLRenderingContextBase::activeDOMObjectName() const
+{
+ return "WebGLRenderingContext";
+}
+
+bool WebGLRenderingContextBase::canSuspend() const
+{
+ // FIXME: We should try and do better here.
+ return false;
+}
+
</ins><span class="cx"> WebGLGetInfo WebGLRenderingContextBase::getBooleanParameter(GC3Denum pname)
</span><span class="cx"> {
</span><span class="cx"> GC3Dboolean value = 0;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLRenderingContextBaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -404,7 +404,8 @@
</span><span class="cx"> // ActiveDOMObject
</span><span class="cx"> virtual bool hasPendingActivity() const override;
</span><span class="cx"> virtual void stop() override;
</span><del>- virtual const char* activeDOMObjectName() const override { return "WebGLRenderingContext"; }
</del><ins>+ virtual const char* activeDOMObjectName() const override;
+ bool canSuspend() const override;
</ins><span class="cx">
</span><span class="cx"> void addSharedObject(WebGLSharedObject*);
</span><span class="cx"> void addContextObject(WebGLContextObject*);
</span></span></pre></div>
<a id="trunkSourceWebCorepageDOMTimercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DOMTimer.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DOMTimer.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/page/DOMTimer.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -520,4 +520,9 @@
</span><span class="cx"> return fireTime;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* DOMTimer::activeDOMObjectName() const
+{
+ return "DOMTimer";
+}
+
</ins><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorepageDOMTimerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DOMTimer.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DOMTimer.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/page/DOMTimer.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -79,6 +79,9 @@
</span><span class="cx"> virtual void didStop() override;
</span><span class="cx"> virtual double alignedFireTime(double) const override;
</span><span class="cx">
</span><ins>+ // ActiveDOMObject API.
+ const char* activeDOMObjectName() const override;
+
</ins><span class="cx"> enum TimerThrottleState {
</span><span class="cx"> Undetermined,
</span><span class="cx"> ShouldThrottle,
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventSourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventSource.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventSource.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/page/EventSource.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -416,6 +416,17 @@
</span><span class="cx"> close();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* EventSource::activeDOMObjectName() const
+{
+ return "EventSource";
+}
+
+bool EventSource::canSuspend() const
+{
+ // FIXME: We should try and do better here.
+ return false;
+}
+
</ins><span class="cx"> PassRefPtr<MessageEvent> EventSource::createMessageEvent()
</span><span class="cx"> {
</span><span class="cx"> RefPtr<MessageEvent> event = MessageEvent::create();
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventSource.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventSource.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/page/EventSource.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -91,8 +91,10 @@
</span><span class="cx"> virtual void didFailAccessControlCheck(const ResourceError&) override;
</span><span class="cx"> virtual void didFailRedirectCheck() override;
</span><span class="cx">
</span><del>- virtual void stop() override;
- virtual const char* activeDOMObjectName() const override { return "EventSource"; }
</del><ins>+ // ActiveDOMObject API.
+ void stop() override;
+ const char* activeDOMObjectName() const override;
+ bool canSuspend() const override;
</ins><span class="cx">
</span><span class="cx"> void connect();
</span><span class="cx"> void networkRequestEnded();
</span></span></pre></div>
<a id="trunkSourceWebCorepageSuspendableTimerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/SuspendableTimer.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/SuspendableTimer.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/page/SuspendableTimer.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -57,13 +57,12 @@
</span><span class="cx"> private:
</span><span class="cx"> virtual void fired() override = 0;
</span><span class="cx">
</span><del>- // ActiveDOMObject
- virtual bool hasPendingActivity() const final override;
- virtual void stop() final override;
- virtual bool canSuspend() const final override;
- virtual void suspend(ReasonForSuspension) final override;
- virtual void resume() final override;
- virtual const char* activeDOMObjectName() const override { return "SuspendableTimer"; }
</del><ins>+ // ActiveDOMObject API.
+ bool hasPendingActivity() const override final;
+ void stop() override final;
+ bool canSuspend() const override final;
+ void suspend(ReasonForSuspension) override final;
+ void resume() override final;
</ins><span class="cx">
</span><span class="cx"> bool m_suspended;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersAbstractWorkercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/AbstractWorker.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/AbstractWorker.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/workers/AbstractWorker.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -44,11 +44,6 @@
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><del>-AbstractWorker::AbstractWorker(ScriptExecutionContext& context)
- : ActiveDOMObject(&context)
-{
-}
-
</del><span class="cx"> AbstractWorker::~AbstractWorker()
</span><span class="cx"> {
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersAbstractWorkerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/AbstractWorker.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/AbstractWorker.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/workers/AbstractWorker.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -43,11 +43,8 @@
</span><span class="cx">
</span><span class="cx"> class URL;
</span><span class="cx">
</span><del>- class AbstractWorker : public RefCounted<AbstractWorker>, public ActiveDOMObject, public EventTargetWithInlineData {
</del><ins>+ class AbstractWorker : public RefCounted<AbstractWorker>, public EventTargetWithInlineData {
</ins><span class="cx"> public:
</span><del>- // EventTarget APIs
- virtual ScriptExecutionContext* scriptExecutionContext() const override final { return ActiveDOMObject::scriptExecutionContext(); }
-
</del><span class="cx"> DEFINE_ATTRIBUTE_EVENT_LISTENER(error);
</span><span class="cx">
</span><span class="cx"> using RefCounted<AbstractWorker>::ref;
</span><span class="lines">@@ -56,7 +53,7 @@
</span><span class="cx"> virtual ~AbstractWorker();
</span><span class="cx">
</span><span class="cx"> protected:
</span><del>- explicit AbstractWorker(ScriptExecutionContext&);
</del><ins>+ AbstractWorker() = default;
</ins><span class="cx">
</span><span class="cx"> // Helper function that converts a URL to an absolute URL and checks the result for validity.
</span><span class="cx"> URL resolveURL(const String& url, ExceptionCode& ec);
</span><span class="lines">@@ -65,8 +62,6 @@
</span><span class="cx"> private:
</span><span class="cx"> virtual void refEventTarget() override final { ref(); }
</span><span class="cx"> virtual void derefEventTarget() override final { deref(); }
</span><del>-
- virtual const char* activeDOMObjectName() const override { return "AbstractWorker"; }
</del><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/Worker.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/Worker.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/workers/Worker.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -60,7 +60,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> inline Worker::Worker(ScriptExecutionContext& context)
</span><del>- : AbstractWorker(context)
</del><ins>+ : ActiveDOMObject(&context)
</ins><span class="cx"> , m_contextProxy(WorkerGlobalScopeProxy::create(this))
</span><span class="cx"> {
</span><span class="cx"> if (!allWorkers) {
</span><span class="lines">@@ -132,6 +132,11 @@
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* Worker::activeDOMObjectName() const
+{
+ return "Worker";
+}
+
</ins><span class="cx"> void Worker::stop()
</span><span class="cx"> {
</span><span class="cx"> terminate();
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/Worker.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/Worker.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/workers/Worker.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx">
</span><span class="cx"> typedef int ExceptionCode;
</span><span class="cx">
</span><del>- class Worker final : public AbstractWorker, private WorkerScriptLoaderClient {
</del><ins>+ class Worker final : public AbstractWorker, public ActiveDOMObject, private WorkerScriptLoaderClient {
</ins><span class="cx"> public:
</span><span class="cx"> static PassRefPtr<Worker> create(ScriptExecutionContext&, const String& url, ExceptionCode&);
</span><span class="cx"> virtual ~Worker();
</span><span class="lines">@@ -58,13 +58,15 @@
</span><span class="cx"> void postMessage(PassRefPtr<SerializedScriptValue> message, MessagePort*, ExceptionCode&);
</span><span class="cx">
</span><span class="cx"> void terminate();
</span><del>-
- virtual bool canSuspend() const override;
- virtual void stop() override;
- virtual bool hasPendingActivity() const override;
</del><span class="cx">
</span><span class="cx"> DEFINE_ATTRIBUTE_EVENT_LISTENER(message);
</span><span class="cx">
</span><ins>+ // EventTarget API.
+ virtual ScriptExecutionContext* scriptExecutionContext() const override final { return ActiveDOMObject::scriptExecutionContext(); }
+
+ // ActiveDOMObject API.
+ bool hasPendingActivity() const override;
+
</ins><span class="cx"> private:
</span><span class="cx"> explicit Worker(ScriptExecutionContext&);
</span><span class="cx">
</span><span class="lines">@@ -74,6 +76,11 @@
</span><span class="cx"> virtual void didReceiveResponse(unsigned long identifier, const ResourceResponse&) override;
</span><span class="cx"> virtual void notifyFinished() override;
</span><span class="cx">
</span><ins>+ // ActiveDOMObject API.
+ bool canSuspend() const override;
+ void stop() override;
+ const char* activeDOMObjectName() const override;
+
</ins><span class="cx"> friend void networkStateChanged(bool isOnLine);
</span><span class="cx">
</span><span class="cx"> RefPtr<WorkerScriptLoader> m_scriptLoader;
</span></span></pre></div>
<a id="trunkSourceWebCorexmlXMLHttpRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/XMLHttpRequest.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/XMLHttpRequest.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/xml/XMLHttpRequest.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -1256,6 +1256,11 @@
</span><span class="cx"> return !m_loader;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const char* XMLHttpRequest::activeDOMObjectName() const
+{
+ return "XMLHttpRequest";
+}
+
</ins><span class="cx"> void XMLHttpRequest::suspend(ReasonForSuspension)
</span><span class="cx"> {
</span><span class="cx"> m_progressEventThrottle.suspend();
</span></span></pre></div>
<a id="trunkSourceWebCorexmlXMLHttpRequesth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/XMLHttpRequest.h (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/XMLHttpRequest.h        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebCore/xml/XMLHttpRequest.h        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -162,12 +162,12 @@
</span><span class="cx"> explicit XMLHttpRequest(ScriptExecutionContext&);
</span><span class="cx">
</span><span class="cx"> // ActiveDOMObject
</span><del>- virtual void contextDestroyed() override;
- virtual bool canSuspend() const override;
- virtual void suspend(ReasonForSuspension) override;
- virtual void resume() override;
- virtual void stop() override;
- virtual const char* activeDOMObjectName() const override { return "XMLHttpRequest"; }
</del><ins>+ void contextDestroyed() override;
+ bool canSuspend() const override;
+ void suspend(ReasonForSuspension) override;
+ void resume() override;
+ void stop() override;
+ const char* activeDOMObjectName() const override;
</ins><span class="cx">
</span><span class="cx"> virtual void refEventTarget() override { ref(); }
</span><span class="cx"> virtual void derefEventTarget() override { deref(); }
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebView.cpp (180800 => 180801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebView.cpp        2015-02-28 00:48:02 UTC (rev 180800)
+++ trunk/Source/WebKit/win/WebView.cpp        2015-02-28 01:05:21 UTC (rev 180801)
</span><span class="lines">@@ -1264,15 +1264,20 @@
</span><span class="cx"> ::GetWindowRect(m_viewWindow, rect);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-class WindowCloseTimer : public WebCore::SuspendableTimer {
</del><ins>+class WindowCloseTimer final : public WebCore::SuspendableTimer {
</ins><span class="cx"> public:
</span><span class="cx"> static WindowCloseTimer* create(WebView*);
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> WindowCloseTimer(ScriptExecutionContext&, WebView*);
</span><del>- virtual void contextDestroyed();
- virtual void fired();
</del><span class="cx">
</span><ins>+ // ActiveDOMObject API.
+ void contextDestroyed() override;
+ const char* activeDOMObjectName() const override { return "WindowCloseTimer"; }
+
+ // SuspendableTimer API.
+ void fired() override;
+
</ins><span class="cx"> WebView* m_webView;
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre>
</div>
</div>
</body>
</html>