<!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>[208329] 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/208329">208329</a></dd>
<dt>Author</dt> <dd>barraclough@apple.com</dd>
<dt>Date</dt> <dd>2016-11-03 09:34:33 -0700 (Thu, 03 Nov 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>Remove PageThrottler & all related code
https://bugs.webkit.org/show_bug.cgi?id=164302
Reviewed by Ryosuke Niwa.
All relevant information now available from the ActivityState.
Source/WebCore:
* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setMuted):
(WebCore::HTMLMediaElement::updateVolume):
(WebCore::HTMLMediaElement::updatePlayState):
(WebCore::HTMLMediaElement::updateAudioAssertionState): Deleted.
* html/HTMLMediaElement.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::completed):
(WebCore::FrameLoader::started):
* loader/FrameLoader.h:
* page/ChromeClient.h:
* page/Page.cpp:
(WebCore::Page::Page):
* page/Page.h:
(WebCore::Page::pageActivityStateChanged): Deleted.
(WebCore::Page::pageThrottler): Deleted.
* page/PageThrottler.cpp: Removed.
* page/PageThrottler.h: Removed.
Source/WebKit2:
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::PluginProcess):
(WebKit::PluginProcess::createWebProcessConnection):
(WebKit::PluginProcess::audioHardwareDidBecomeActive): Deleted.
(WebKit::PluginProcess::audioHardwareDidBecomeInactive): Deleted.
* PluginProcess/PluginProcess.h:
(): Deleted.
* PluginProcess/WebProcessConnection.cpp:
(WebKit::WebProcessConnection::audioHardwareDidBecomeActive): Deleted.
(WebKit::WebProcessConnection::audioHardwareDidBecomeInactive): Deleted.
* PluginProcess/WebProcessConnection.h:
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
(WebKit::NPRuntimeObjectMap::evaluate):
* WebProcess/Plugins/Plugin.h:
(WebKit::Plugin::audioHardwareActivity): Deleted.
* WebProcess/Plugins/PluginProcessConnection.cpp:
(WebKit::PluginProcessConnection::PluginProcessConnection):
(WebKit::PluginProcessConnection::didReceiveMessage):
(WebKit::PluginProcessConnection::audioHardwareDidBecomeActive): Deleted.
(WebKit::PluginProcessConnection::audioHardwareDidBecomeInactive): Deleted.
* WebProcess/Plugins/PluginProcessConnection.h:
(WebKit::PluginProcessConnection::supportsAsynchronousPluginInitialization):
(WebKit::PluginProcessConnection::audioHardwareActivity): Deleted.
* WebProcess/Plugins/PluginProcessConnection.messages.in:
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::audioHardwareActivity): Deleted.
* WebProcess/Plugins/PluginProxy.h:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::audioHardwareActivity): Deleted.
* WebProcess/Plugins/PluginView.h:
* WebProcess/WebPage/WebPage.cpp:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</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="#trunkSourceWebCoreloaderFrameLoadercpp">trunk/Source/WebCore/loader/FrameLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderFrameLoaderh">trunk/Source/WebCore/loader/FrameLoader.h</a></li>
<li><a href="#trunkSourceWebCorepageChromeClienth">trunk/Source/WebCore/page/ChromeClient.h</a></li>
<li><a href="#trunkSourceWebCorepagePagecpp">trunk/Source/WebCore/page/Page.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePageh">trunk/Source/WebCore/page/Page.h</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2PluginProcessPluginProcesscpp">trunk/Source/WebKit2/PluginProcess/PluginProcess.cpp</a></li>
<li><a href="#trunkSourceWebKit2PluginProcessPluginProcessh">trunk/Source/WebKit2/PluginProcess/PluginProcess.h</a></li>
<li><a href="#trunkSourceWebKit2PluginProcessWebProcessConnectioncpp">trunk/Source/WebKit2/PluginProcess/WebProcessConnection.cpp</a></li>
<li><a href="#trunkSourceWebKit2PluginProcessWebProcessConnectionh">trunk/Source/WebKit2/PluginProcess/WebProcessConnection.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsNetscapeNPRuntimeObjectMapcpp">trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPluginh">trunk/Source/WebKit2/WebProcess/Plugins/Plugin.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPluginProcessConnectioncpp">trunk/Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPluginProcessConnectionh">trunk/Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPluginProcessConnectionmessagesin">trunk/Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.messages.in</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPluginProxycpp">trunk/Source/WebKit2/WebProcess/Plugins/PluginProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPluginProxyh">trunk/Source/WebKit2/WebProcess/Plugins/PluginProxy.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPluginViewcpp">trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPluginViewh">trunk/Source/WebKit2/WebProcess/Plugins/PluginView.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPagecpp">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebCorepagePageThrottlercpp">trunk/Source/WebCore/page/PageThrottler.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePageThrottlerh">trunk/Source/WebCore/page/PageThrottler.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebCore/CMakeLists.txt        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -2049,7 +2049,6 @@
</span><span class="cx"> page/PageOverlay.cpp
</span><span class="cx"> page/PageOverlayController.cpp
</span><span class="cx"> page/PageSerializer.cpp
</span><del>- page/PageThrottler.cpp
</del><span class="cx"> page/PageVisibilityState.cpp
</span><span class="cx"> page/Performance.cpp
</span><span class="cx"> page/PerformanceEntry.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebCore/ChangeLog        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -1,3 +1,33 @@
</span><ins>+2016-11-01 Gavin Barraclough <barraclough@apple.com>
+
+ Remove PageThrottler & all related code
+ https://bugs.webkit.org/show_bug.cgi?id=164302
+
+ Reviewed by Ryosuke Niwa.
+
+ All relevant information now available from the ActivityState.
+
+ * CMakeLists.txt:
+ * WebCore.xcodeproj/project.pbxproj:
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::setMuted):
+ (WebCore::HTMLMediaElement::updateVolume):
+ (WebCore::HTMLMediaElement::updatePlayState):
+ (WebCore::HTMLMediaElement::updateAudioAssertionState): Deleted.
+ * html/HTMLMediaElement.h:
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::completed):
+ (WebCore::FrameLoader::started):
+ * loader/FrameLoader.h:
+ * page/ChromeClient.h:
+ * page/Page.cpp:
+ (WebCore::Page::Page):
+ * page/Page.h:
+ (WebCore::Page::pageActivityStateChanged): Deleted.
+ (WebCore::Page::pageThrottler): Deleted.
+ * page/PageThrottler.cpp: Removed.
+ * page/PageThrottler.h: Removed.
+
</ins><span class="cx"> 2016-11-03 Dan Bernstein <mitz@apple.com>
</span><span class="cx">
</span><span class="cx"> REGRESSION (r206247): Painting milestones can be delayed until the next layer flush
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -3957,8 +3957,6 @@
</span><span class="cx">                 A715E653134BBBEC00D8E713 /* ProgressShadowElement.h in Headers */ = {isa = PBXBuildFile; fileRef = A715E651134BBBEC00D8E713 /* ProgressShadowElement.h */; };
</span><span class="cx">                 A718760E0B2A120100A16ECE /* DragActions.h in Headers */ = {isa = PBXBuildFile; fileRef = A718760D0B2A120100A16ECE /* DragActions.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A71878900B2D04AC00A16ECE /* DragControllerMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = A718788F0B2D04AC00A16ECE /* DragControllerMac.mm */; };
</span><del>-                A7197F24175689C4007B9442 /* PageThrottler.h in Headers */ = {isa = PBXBuildFile; fileRef = A7197F23175689C4007B9442 /* PageThrottler.h */; settings = {ATTRIBUTES = (Private, ); }; };
-                A7197F2617568AE5007B9442 /* PageThrottler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7197F2517568AE5007B9442 /* PageThrottler.cpp */; };
</del><span class="cx">                 A723F77B1484CA4C008C6DBE /* PlatformExportMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = A723F77A1484CA4C008C6DBE /* PlatformExportMacros.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A72763BF16689BFB002FCACB /* UserActionElementSet.h in Headers */ = {isa = PBXBuildFile; fileRef = A72763BE16689BFB002FCACB /* UserActionElementSet.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A73F95FE12C97BFE0031AAF9 /* RoundedRect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A73F95FC12C97BFE0031AAF9 /* RoundedRect.cpp */; };
</span><span class="lines">@@ -11486,8 +11484,6 @@
</span><span class="cx">                 A715E651134BBBEC00D8E713 /* ProgressShadowElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProgressShadowElement.h; sourceTree = "<group>"; };
</span><span class="cx">                 A718760D0B2A120100A16ECE /* DragActions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DragActions.h; sourceTree = "<group>"; };
</span><span class="cx">                 A718788F0B2D04AC00A16ECE /* DragControllerMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DragControllerMac.mm; sourceTree = "<group>"; };
</span><del>-                A7197F23175689C4007B9442 /* PageThrottler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PageThrottler.h; sourceTree = "<group>"; };
-                A7197F2517568AE5007B9442 /* PageThrottler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PageThrottler.cpp; sourceTree = "<group>"; };
</del><span class="cx">                 A71A70C911AFB02000989D6D /* HTMLMeterElement.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = HTMLMeterElement.idl; sourceTree = "<group>"; };
</span><span class="cx">                 A723F77A1484CA4C008C6DBE /* PlatformExportMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformExportMacros.h; sourceTree = "<group>"; };
</span><span class="cx">                 A72763BE16689BFB002FCACB /* UserActionElementSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserActionElementSet.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -17743,8 +17739,6 @@
</span><span class="cx">                                 2D5C9CFE19C7B52E00B3C5C1 /* PageOverlayController.h */,
</span><span class="cx">                                 371E65CD13661EED00BEEDB0 /* PageSerializer.cpp */,
</span><span class="cx">                                 371E65CB13661EDC00BEEDB0 /* PageSerializer.h */,
</span><del>-                                A7197F2517568AE5007B9442 /* PageThrottler.cpp */,
-                                A7197F23175689C4007B9442 /* PageThrottler.h */,
</del><span class="cx">                                 FFD5B977135CC97800D5E92A /* PageVisibilityState.cpp */,
</span><span class="cx">                                 FFD5B978135CC97800D5E92A /* PageVisibilityState.h */,
</span><span class="cx">                                 E526AF3E1727F8F200E41781 /* Performance.cpp */,
</span><span class="lines">@@ -26638,7 +26632,6 @@
</span><span class="cx">                                 F3820895147D35F90010BC06 /* PageRuntimeAgent.h in Headers */,
</span><span class="cx">                                 A5F36D3B18F758720054C024 /* PageScriptDebugServer.h in Headers */,
</span><span class="cx">                                 371E65CC13661EDC00BEEDB0 /* PageSerializer.h in Headers */,
</span><del>-                                A7197F24175689C4007B9442 /* PageThrottler.h in Headers */,
</del><span class="cx">                                 E1284AE110447D4500EAEB52 /* PageTransitionEvent.h in Headers */,
</span><span class="cx">                                 51E1ECC30C91C90400DC255B /* PageURLRecord.h in Headers */,
</span><span class="cx">                                 FFD5B97B135CC97800D5E92A /* PageVisibilityState.h in Headers */,
</span><span class="lines">@@ -30363,7 +30356,6 @@
</span><span class="cx">                                 F3820894147D35F90010BC06 /* PageRuntimeAgent.cpp in Sources */,
</span><span class="cx">                                 A5F36D3A18F758720054C024 /* PageScriptDebugServer.cpp in Sources */,
</span><span class="cx">                                 371E65CE13661EED00BEEDB0 /* PageSerializer.cpp in Sources */,
</span><del>-                                A7197F2617568AE5007B9442 /* PageThrottler.cpp in Sources */,
</del><span class="cx">                                 E1284AEA10447DEE00EAEB52 /* PageTransitionEvent.cpp in Sources */,
</span><span class="cx">                                 51E1ECC20C91C90400DC255B /* PageURLRecord.cpp in Sources */,
</span><span class="cx">                                 FFD5B97A135CC97800D5E92A /* PageVisibilityState.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.cpp        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -74,7 +74,6 @@
</span><span class="cx"> #include "NoEventDispatchAssertion.h"
</span><span class="cx"> #include "Page.h"
</span><span class="cx"> #include "PageGroup.h"
</span><del>-#include "PageThrottler.h"
</del><span class="cx"> #include "PlatformMediaSessionManager.h"
</span><span class="cx"> #include "ProgressTracker.h"
</span><span class="cx"> #include "RenderLayerCompositor.h"
</span><span class="lines">@@ -3276,7 +3275,6 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> scheduleUpdatePlaybackControlsManager();
</span><del>- updateAudioAssertionState();
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLMediaElement::togglePlayState()
</span><span class="lines">@@ -4791,8 +4789,6 @@
</span><span class="cx"> if (hasMediaControls())
</span><span class="cx"> mediaControls()->changedVolume();
</span><span class="cx"> #endif
</span><del>-
- updateAudioAssertionState();
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLMediaElement::updatePlayState(UpdateState updateState)
</span><span class="lines">@@ -4812,7 +4808,6 @@
</span><span class="cx"> m_playbackProgressTimer.stop();
</span><span class="cx"> if (hasMediaControls())
</span><span class="cx"> mediaControls()->playbackStopped();
</span><del>- updateAudioAssertionState();
</del><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -4878,8 +4873,6 @@
</span><span class="cx">
</span><span class="cx"> m_hasEverHadAudio |= hasAudio();
</span><span class="cx"> m_hasEverHadVideo |= hasVideo();
</span><del>-
- updateAudioAssertionState();
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLMediaElement::setPlaying(bool playing)
</span><span class="lines">@@ -6947,42 +6940,6 @@
</span><span class="cx"> return muted() || (document().page() && document().page()->isAudioMuted());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void HTMLMediaElement::updateAudioAssertionState()
-{
- auto* page = document().page();
- if (!page) {
- m_audioActivityToken = nullptr;
- return;
- }
-
-#define RELEASE_AUDIO_TOKEN(REASON) \
- RELEASE_LOG_IF(page->isAlwaysOnLoggingAllowed() && m_audioActivityToken, Media, "%p - HTMLMediaElement releases audio activity token, reason: " REASON, this); \
- m_audioActivityToken = nullptr
-
- if (!hasAudio()) {
- RELEASE_AUDIO_TOKEN("No audio");
- return;
- }
- if (!isPlaying()) {
- RELEASE_AUDIO_TOKEN("Not playing");
- return;
- }
- if (effectiveMuted()) {
- RELEASE_AUDIO_TOKEN("Audio is muted");
- return;
- }
- if (!volume()) {
- RELEASE_AUDIO_TOKEN("Volume is 0");
- return;
- }
- if (!m_audioActivityToken) {
- RELEASE_LOG_IF(page->isAlwaysOnLoggingAllowed(), Media, "%p - HTMLMediaElement takes audio activity token because there is audible audio", this);
- m_audioActivityToken = page->pageThrottler().mediaActivityToken();
- }
-
-#undef RELEASE_AUDIO_TOKEN
-}
-
</del><span class="cx"> bool HTMLMediaElement::doesHaveAttribute(const AtomicString& attribute, AtomicString* value) const
</span><span class="cx"> {
</span><span class="cx"> QualifiedName attributeName(nullAtom, attribute, nullAtom);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.h (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.h        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebCore/html/HTMLMediaElement.h        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -37,7 +37,6 @@
</span><span class="cx"> #include "MediaControllerInterface.h"
</span><span class="cx"> #include "MediaElementSession.h"
</span><span class="cx"> #include "MediaProducer.h"
</span><del>-#include "PageThrottler.h"
</del><span class="cx"> #include "UserInterfaceLayoutDirection.h"
</span><span class="cx">
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><span class="lines">@@ -771,8 +770,6 @@
</span><span class="cx">
</span><span class="cx"> bool effectiveMuted() const;
</span><span class="cx">
</span><del>- void updateAudioAssertionState();
-
</del><span class="cx"> void registerWithDocument(Document&);
</span><span class="cx"> void unregisterWithDocument(Document&);
</span><span class="cx">
</span><span class="lines">@@ -1007,7 +1004,6 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> std::unique_ptr<MediaElementSession> m_mediaSession;
</span><del>- PageActivityAssertionToken m_audioActivityToken;
</del><span class="cx"> size_t m_reportedExtraMemoryCost { 0 };
</span><span class="cx">
</span><span class="cx"> #if ENABLE(MEDIA_CONTROLS_SCRIPT)
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFrameLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FrameLoader.cpp        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -87,7 +87,6 @@
</span><span class="cx"> #include "MemoryCache.h"
</span><span class="cx"> #include "Page.h"
</span><span class="cx"> #include "PageCache.h"
</span><del>-#include "PageThrottler.h"
</del><span class="cx"> #include "PageTransitionEvent.h"
</span><span class="cx"> #include "PlatformStrategies.h"
</span><span class="cx"> #include "PluginData.h"
</span><span class="lines">@@ -1078,13 +1077,10 @@
</span><span class="cx">
</span><span class="cx"> if (m_frame.view())
</span><span class="cx"> m_frame.view()->maintainScrollPositionAtAnchor(nullptr);
</span><del>- m_activityAssertion = nullptr;
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void FrameLoader::started()
</span><span class="cx"> {
</span><del>- if (m_frame.page())
- m_activityAssertion = m_frame.page()->pageThrottler().pageLoadActivityToken();
</del><span class="cx"> for (Frame* frame = &m_frame; frame; frame = frame->tree().parent())
</span><span class="cx"> frame->loader().m_isComplete = false;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFrameLoaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FrameLoader.h (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FrameLoader.h        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebCore/loader/FrameLoader.h        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -36,7 +36,6 @@
</span><span class="cx"> #include "FrameLoaderTypes.h"
</span><span class="cx"> #include "LayoutMilestones.h"
</span><span class="cx"> #include "MixedContentChecker.h"
</span><del>-#include "PageThrottler.h"
</del><span class="cx"> #include "ResourceHandleTypes.h"
</span><span class="cx"> #include "ResourceLoadNotifier.h"
</span><span class="cx"> #include "ResourceLoaderOptions.h"
</span><span class="lines">@@ -459,7 +458,6 @@
</span><span class="cx">
</span><span class="cx"> URL m_previousURL;
</span><span class="cx"> RefPtr<HistoryItem> m_requestedHistoryItem;
</span><del>- PageActivityAssertionToken m_activityAssertion;
</del><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> // This function is called by createWindow() in JSDOMWindowBase.cpp, for example, for
</span></span></pre></div>
<a id="trunkSourceWebCorepageChromeClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ChromeClient.h (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ChromeClient.h        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebCore/page/ChromeClient.h        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -32,7 +32,6 @@
</span><span class="cx"> #include "HostWindow.h"
</span><span class="cx"> #include "LayerFlushThrottleState.h"
</span><span class="cx"> #include "MediaProducer.h"
</span><del>-#include "PageThrottler.h"
</del><span class="cx"> #include "PopupMenu.h"
</span><span class="cx"> #include "PopupMenuClient.h"
</span><span class="cx"> #include "RenderEmbeddedObject.h"
</span></span></pre></div>
<a id="trunkSourceWebCorepagePagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Page.cpp (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Page.cpp        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebCore/page/Page.cpp        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -67,7 +67,6 @@
</span><span class="cx"> #include "PageDebuggable.h"
</span><span class="cx"> #include "PageGroup.h"
</span><span class="cx"> #include "PageOverlayController.h"
</span><del>-#include "PageThrottler.h"
</del><span class="cx"> #include "PlatformMediaSessionManager.h"
</span><span class="cx"> #include "PlugInClient.h"
</span><span class="cx"> #include "PluginData.h"
</span><span class="lines">@@ -224,7 +223,6 @@
</span><span class="cx"> #endif
</span><span class="cx"> , m_alternativeTextClient(pageConfiguration.alternativeTextClient)
</span><span class="cx"> , m_scriptedAnimationsSuspended(false)
</span><del>- , m_pageThrottler(*this)
</del><span class="cx"> , m_consoleClient(std::make_unique<PageConsoleClient>(*this))
</span><span class="cx"> #if ENABLE(REMOTE_INSPECTOR)
</span><span class="cx"> , m_inspectorDebuggable(std::make_unique<PageDebuggable>(*this))
</span></span></pre></div>
<a id="trunkSourceWebCorepagePageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Page.h (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Page.h        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebCore/page/Page.h        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> #include "LayoutMilestones.h"
</span><span class="cx"> #include "LayoutRect.h"
</span><span class="cx"> #include "MediaProducer.h"
</span><del>-#include "PageThrottler.h"
</del><span class="cx"> #include "PageVisibilityState.h"
</span><span class="cx"> #include "Pagination.h"
</span><span class="cx"> #include "PlatformScreen.h"
</span><span class="lines">@@ -34,6 +33,7 @@
</span><span class="cx"> #include "ScrollTypes.h"
</span><span class="cx"> #include "SessionID.h"
</span><span class="cx"> #include "Supplementable.h"
</span><ins>+#include "Timer.h"
</ins><span class="cx"> #include "UserInterfaceLayoutDirection.h"
</span><span class="cx"> #include "ViewportArguments.h"
</span><span class="cx"> #include "WheelEventTestTrigger.h"
</span><span class="lines">@@ -104,7 +104,6 @@
</span><span class="cx"> class PageConsoleClient;
</span><span class="cx"> class PageDebuggable;
</span><span class="cx"> class PageGroup;
</span><del>-class PageThrottler;
</del><span class="cx"> class PlugInClient;
</span><span class="cx"> class PluginData;
</span><span class="cx"> class PluginInfoProvider;
</span><span class="lines">@@ -137,7 +136,6 @@
</span><span class="cx"> WTF_MAKE_NONCOPYABLE(Page);
</span><span class="cx"> WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> friend class Settings;
</span><del>- friend class PageThrottler;
</del><span class="cx">
</span><span class="cx"> public:
</span><span class="cx"> WEBCORE_EXPORT static void updateStyleForAllPagesAfterGlobalChangeInEnvironment();
</span><span class="lines">@@ -336,7 +334,6 @@
</span><span class="cx"> // Notifications when the Page starts and stops being presented via a native window.
</span><span class="cx"> WEBCORE_EXPORT void setActivityState(ActivityState::Flags);
</span><span class="cx"> bool isVisibleAndActive() const;
</span><del>- void pageActivityStateChanged() { }
</del><span class="cx"> WEBCORE_EXPORT void setIsVisible(bool);
</span><span class="cx"> WEBCORE_EXPORT void setIsPrerender();
</span><span class="cx"> bool isVisible() const { return m_activityState & ActivityState::IsVisible; }
</span><span class="lines">@@ -437,8 +434,6 @@
</span><span class="cx"> void sawMediaEngine(const String& engineName);
</span><span class="cx"> void resetSeenMediaEngines();
</span><span class="cx">
</span><del>- PageThrottler& pageThrottler() { return m_pageThrottler; }
-
</del><span class="cx"> PageConsoleClient& console() { return *m_consoleClient; }
</span><span class="cx">
</span><span class="cx"> #if ENABLE(REMOTE_INSPECTOR)
</span><span class="lines">@@ -667,7 +662,6 @@
</span><span class="cx"> bool m_isEditable;
</span><span class="cx"> bool m_isPrerender;
</span><span class="cx"> ActivityState::Flags m_activityState;
</span><del>- PageActivityState::Flags m_pageActivityState;
</del><span class="cx">
</span><span class="cx"> LayoutMilestones m_requestedLayoutMilestones;
</span><span class="cx">
</span><span class="lines">@@ -685,7 +679,6 @@
</span><span class="cx"> AlternativeTextClient* m_alternativeTextClient;
</span><span class="cx">
</span><span class="cx"> bool m_scriptedAnimationsSuspended;
</span><del>- PageThrottler m_pageThrottler;
</del><span class="cx"> const std::unique_ptr<PageConsoleClient> m_consoleClient;
</span><span class="cx">
</span><span class="cx"> #if ENABLE(REMOTE_INSPECTOR)
</span></span></pre></div>
<a id="trunkSourceWebCorepagePageThrottlercpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/page/PageThrottler.cpp (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PageThrottler.cpp        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebCore/page/PageThrottler.cpp        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -1,85 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "PageThrottler.h"
-
-#include "Page.h"
-
-namespace WebCore {
-
-static const double PageLoadHysteresisSeconds = 10;
-
-PageThrottler::PageThrottler(Page& page)
- : m_page(page)
- , m_mediaActivityHysteresis([this](HysteresisState state) { setActivityFlag(PageActivityState::MediaActivity, state == HysteresisState::Started); })
- , m_pageLoadActivityHysteresis([this](HysteresisState state) { setActivityFlag(PageActivityState::PageLoadActivity, state == HysteresisState::Started); }, PageLoadHysteresisSeconds)
- , m_mediaActivityCounter([this](RefCounterEvent) { mediaActivityCounterChanged(); })
- , m_pageLoadActivityCounter([this](RefCounterEvent) { pageLoadActivityCounterChanged(); })
-{
-}
-
-PageActivityAssertionToken PageThrottler::mediaActivityToken()
-{
- return m_mediaActivityCounter.count();
-}
-
-PageActivityAssertionToken PageThrottler::pageLoadActivityToken()
-{
- return m_pageLoadActivityCounter.count();
-}
-
-void PageThrottler::mediaActivityCounterChanged()
-{
- if (m_mediaActivityCounter.value())
- m_mediaActivityHysteresis.start();
- else
- m_mediaActivityHysteresis.stop();
-}
-
-void PageThrottler::pageLoadActivityCounterChanged()
-{
- if (m_pageLoadActivityCounter.value())
- m_pageLoadActivityHysteresis.start();
- else
- m_pageLoadActivityHysteresis.stop();
-}
-
-void PageThrottler::setActivityFlag(PageActivityState::Flags flag, bool value)
-{
- PageActivityState::Flags activityState = m_activityState;
- if (value)
- activityState |= flag;
- else
- activityState &= ~flag;
-
- if (m_activityState == activityState)
- return;
- m_activityState = activityState;
-
- m_page.pageActivityStateChanged();
-}
-
-}
</del></span></pre></div>
<a id="trunkSourceWebCorepagePageThrottlerh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/page/PageThrottler.h (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PageThrottler.h        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebCore/page/PageThrottler.h        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -1,76 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#include "ActivityState.h"
-#include "Timer.h"
-#include "UserActivity.h"
-#include <wtf/RefCounter.h>
-
-namespace WebCore {
-
-class Page;
-
-enum PageActivityCounterType { };
-typedef RefCounter<PageActivityCounterType> PageActivityCounter;
-typedef PageActivityCounter::Token PageActivityAssertionToken;
-
-struct PageActivityState {
- enum {
- MediaActivity = 1 << 0,
- PageLoadActivity = 1 << 1,
- };
-
- typedef unsigned Flags;
-
- static const Flags NoFlags = 0;
- static const Flags AllFlags = MediaActivity | PageLoadActivity;
-};
-
-class PageThrottler {
- WTF_MAKE_FAST_ALLOCATED;
-public:
- PageThrottler(Page&);
-
- PageActivityState::Flags activityState() { return m_activityState; }
- void pluginDidEvaluateWhileAudioIsPlaying() { m_mediaActivityHysteresis.impulse(); }
- PageActivityAssertionToken mediaActivityToken();
- PageActivityAssertionToken pageLoadActivityToken();
-
-private:
- void mediaActivityCounterChanged();
- void pageLoadActivityCounterChanged();
- void setActivityFlag(PageActivityState::Flags, bool);
-
- Page& m_page;
- PageActivityState::Flags m_activityState { PageActivityState::NoFlags };
- HysteresisActivity m_mediaActivityHysteresis;
- HysteresisActivity m_pageLoadActivityHysteresis;
- PageActivityCounter m_mediaActivityCounter;
- PageActivityCounter m_pageLoadActivityCounter;
-};
-
-} // namespace WebCore
</del></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebKit2/ChangeLog        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -1,3 +1,44 @@
</span><ins>+2016-11-01 Gavin Barraclough <barraclough@apple.com>
+
+ Remove PageThrottler & all related code
+ https://bugs.webkit.org/show_bug.cgi?id=164302
+
+ Reviewed by Ryosuke Niwa.
+
+ All relevant information now available from the ActivityState.
+
+ * PluginProcess/PluginProcess.cpp:
+ (WebKit::PluginProcess::PluginProcess):
+ (WebKit::PluginProcess::createWebProcessConnection):
+ (WebKit::PluginProcess::audioHardwareDidBecomeActive): Deleted.
+ (WebKit::PluginProcess::audioHardwareDidBecomeInactive): Deleted.
+ * PluginProcess/PluginProcess.h:
+ (): Deleted.
+ * PluginProcess/WebProcessConnection.cpp:
+ (WebKit::WebProcessConnection::audioHardwareDidBecomeActive): Deleted.
+ (WebKit::WebProcessConnection::audioHardwareDidBecomeInactive): Deleted.
+ * PluginProcess/WebProcessConnection.h:
+ * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+ (WebKit::NPRuntimeObjectMap::evaluate):
+ * WebProcess/Plugins/Plugin.h:
+ (WebKit::Plugin::audioHardwareActivity): Deleted.
+ * WebProcess/Plugins/PluginProcessConnection.cpp:
+ (WebKit::PluginProcessConnection::PluginProcessConnection):
+ (WebKit::PluginProcessConnection::didReceiveMessage):
+ (WebKit::PluginProcessConnection::audioHardwareDidBecomeActive): Deleted.
+ (WebKit::PluginProcessConnection::audioHardwareDidBecomeInactive): Deleted.
+ * WebProcess/Plugins/PluginProcessConnection.h:
+ (WebKit::PluginProcessConnection::supportsAsynchronousPluginInitialization):
+ (WebKit::PluginProcessConnection::audioHardwareActivity): Deleted.
+ * WebProcess/Plugins/PluginProcessConnection.messages.in:
+ * WebProcess/Plugins/PluginProxy.cpp:
+ (WebKit::PluginProxy::audioHardwareActivity): Deleted.
+ * WebProcess/Plugins/PluginProxy.h:
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::audioHardwareActivity): Deleted.
+ * WebProcess/Plugins/PluginView.h:
+ * WebProcess/WebPage/WebPage.cpp:
+
</ins><span class="cx"> 2016-11-03 Dan Bernstein <mitz@apple.com>
</span><span class="cx">
</span><span class="cx"> REGRESSION (r206247): Painting milestones can be delayed until the next layer flush
</span></span></pre></div>
<a id="trunkSourceWebKit2PluginProcessPluginProcesscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/PluginProcess/PluginProcess.cpp (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/PluginProcess/PluginProcess.cpp        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebKit2/PluginProcess/PluginProcess.cpp        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -60,7 +60,6 @@
</span><span class="cx"> , m_connectionActivity("PluginProcess connection activity.")
</span><span class="cx"> {
</span><span class="cx"> NetscapePlugin::setSetExceptionFunction(WebProcessConnection::setGlobalException);
</span><del>- m_audioHardwareListener = AudioHardwareListener::create(*this);
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> PluginProcess::~PluginProcess()
</span><span class="lines">@@ -168,13 +167,6 @@
</span><span class="cx"> // Create a listening connection.
</span><span class="cx"> auto connection = WebProcessConnection::create(IPC::Connection::Identifier(listeningPort));
</span><span class="cx">
</span><del>- if (m_audioHardwareListener) {
- if (m_audioHardwareListener->hardwareActivity() == WebCore::AudioHardwareActivityType::IsActive)
- connection->audioHardwareDidBecomeActive();
- else if (m_audioHardwareListener->hardwareActivity() == WebCore::AudioHardwareActivityType::IsInactive)
- connection->audioHardwareDidBecomeInactive();
- }
-
</del><span class="cx"> m_webProcessConnections.append(WTFMove(connection));
</span><span class="cx">
</span><span class="cx"> IPC::Attachment clientPort(listeningPort, MACH_MSG_TYPE_MAKE_SEND);
</span><span class="lines">@@ -253,18 +245,6 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>-void PluginProcess::audioHardwareDidBecomeActive()
-{
- for (auto& connection : m_webProcessConnections)
- connection->audioHardwareDidBecomeActive();
-}
-
-void PluginProcess::audioHardwareDidBecomeInactive()
-{
- for (auto& connection : m_webProcessConnections)
- connection->audioHardwareDidBecomeInactive();
-}
-
</del><span class="cx"> } // namespace WebKit
</span><span class="cx">
</span><span class="cx"> #endif // ENABLE(NETSCAPE_PLUGIN_API)
</span></span></pre></div>
<a id="trunkSourceWebKit2PluginProcessPluginProcessh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/PluginProcess/PluginProcess.h (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/PluginProcess/PluginProcess.h        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebKit2/PluginProcess/PluginProcess.h        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -30,7 +30,6 @@
</span><span class="cx">
</span><span class="cx"> #include "ChildProcess.h"
</span><span class="cx"> #include <WebCore/CountedUserActivity.h>
</span><del>-#include <WebCore/AudioHardwareListener.h>
</del><span class="cx"> #include <wtf/Forward.h>
</span><span class="cx"> #include <wtf/NeverDestroyed.h>
</span><span class="cx"> #include <wtf/text/WTFString.h>
</span><span class="lines">@@ -45,7 +44,7 @@
</span><span class="cx"> class WebProcessConnection;
</span><span class="cx"> struct PluginProcessCreationParameters;
</span><span class="cx">
</span><del>-class PluginProcess : public ChildProcess, private WebCore::AudioHardwareListener::Client
</del><ins>+class PluginProcess : public ChildProcess
</ins><span class="cx"> {
</span><span class="cx"> WTF_MAKE_NONCOPYABLE(PluginProcess);
</span><span class="cx"> friend class NeverDestroyed<PluginProcess>;
</span><span class="lines">@@ -101,11 +100,6 @@
</span><span class="cx"> void deleteWebsiteData(std::chrono::system_clock::time_point modifiedSince, uint64_t callbackID);
</span><span class="cx"> void deleteWebsiteDataForHostNames(const Vector<String>& hostNames, uint64_t callbackID);
</span><span class="cx">
</span><del>- // AudioHardwareListenerClient
- void audioHardwareDidBecomeActive() override;
- void audioHardwareDidBecomeInactive() override;
- void audioOutputDeviceChanged() override { }
-
</del><span class="cx"> void platformInitializePluginProcess(PluginProcessCreationParameters&&);
</span><span class="cx">
</span><span class="cx"> void setMinimumLifetime(double);
</span><span class="lines">@@ -135,8 +129,6 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> CountedUserActivity m_connectionActivity;
</span><del>-
- RefPtr<WebCore::AudioHardwareListener> m_audioHardwareListener;
</del><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2PluginProcessWebProcessConnectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/PluginProcess/WebProcessConnection.cpp (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/PluginProcess/WebProcessConnection.cpp        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebKit2/PluginProcess/WebProcessConnection.cpp        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -322,16 +322,6 @@
</span><span class="cx"> m_connection->sendSync(Messages::PluginProxy::DidCreatePlugin(wantsWheelEvents, remoteLayerClientID), Messages::PluginProxy::DidCreatePlugin::Reply(), creationParameters.pluginInstanceID);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void WebProcessConnection::audioHardwareDidBecomeActive()
-{
- m_connection->send(Messages::PluginProcessConnection::AudioHardwareDidBecomeActive(), 0);
-}
-
-void WebProcessConnection::audioHardwareDidBecomeInactive()
-{
- m_connection->send(Messages::PluginProcessConnection::AudioHardwareDidBecomeInactive(), 0);
-}
-
</del><span class="cx"> } // namespace WebKit
</span><span class="cx">
</span><span class="cx"> #endif // ENABLE(NETSCAPE_PLUGIN_API)
</span></span></pre></div>
<a id="trunkSourceWebKit2PluginProcessWebProcessConnectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/PluginProcess/WebProcessConnection.h (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/PluginProcess/WebProcessConnection.h        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebKit2/PluginProcess/WebProcessConnection.h        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -54,9 +54,6 @@
</span><span class="cx">
</span><span class="cx"> static void setGlobalException(const String&);
</span><span class="cx">
</span><del>- void audioHardwareDidBecomeActive();
- void audioHardwareDidBecomeInactive();
-
</del><span class="cx"> private:
</span><span class="cx"> WebProcessConnection(IPC::Connection::Identifier);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsNetscapeNPRuntimeObjectMapcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -42,7 +42,6 @@
</span><span class="cx"> #include <WebCore/DOMWrapperWorld.h>
</span><span class="cx"> #include <WebCore/Frame.h>
</span><span class="cx"> #include <WebCore/Page.h>
</span><del>-#include <WebCore/PageThrottler.h>
</del><span class="cx"> #include <WebCore/ScriptController.h>
</span><span class="cx"> #include <wtf/NeverDestroyed.h>
</span><span class="cx">
</span><span class="lines">@@ -189,15 +188,6 @@
</span><span class="cx"> if (!globalObject)
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>-#if PLATFORM(COCOA)
- if (m_pluginView && !m_pluginView->isBeingDestroyed()) {
- if (Page* page = m_pluginView->frame()->page()) {
- if (m_pluginView->audioHardwareActivity() != WebCore::AudioHardwareActivityType::IsInactive)
- page->pageThrottler().pluginDidEvaluateWhileAudioIsPlaying();
- }
- }
-#endif
-
</del><span class="cx"> ExecState* exec = globalObject->globalExec();
</span><span class="cx">
</span><span class="cx"> JSLockHolder lock(exec);
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPluginh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/Plugin.h (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/Plugin.h        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Plugin.h        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> #ifndef Plugin_h
</span><span class="cx"> #define Plugin_h
</span><span class="cx">
</span><del>-#include <WebCore/AudioHardwareListener.h>
</del><span class="cx"> #include <WebCore/FindOptions.h>
</span><span class="cx"> #include <WebCore/GraphicsLayer.h>
</span><span class="cx"> #include <WebCore/URL.h>
</span><span class="lines">@@ -293,8 +292,6 @@
</span><span class="cx"> virtual String getSelectionForWordAtPoint(const WebCore::FloatPoint&) const = 0;
</span><span class="cx"> virtual bool existingSelectionContainsPoint(const WebCore::FloatPoint&) const = 0;
</span><span class="cx">
</span><del>- virtual WebCore::AudioHardwareActivityType audioHardwareActivity() const { return WebCore::AudioHardwareActivityType::Unknown; }
-
</del><span class="cx"> virtual void mutedStateChanged(bool) { }
</span><span class="cx">
</span><span class="cx"> virtual bool canCreateTransientPaintingSnapshot() const { return true; }
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPluginProcessConnectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.cpp (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.cpp        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.cpp        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -46,7 +46,6 @@
</span><span class="cx"> : m_pluginProcessConnectionManager(pluginProcessConnectionManager)
</span><span class="cx"> , m_pluginProcessToken(pluginProcessToken)
</span><span class="cx"> , m_supportsAsynchronousPluginInitialization(supportsAsynchronousPluginInitialization)
</span><del>- , m_audioHardwareActivity(WebCore::AudioHardwareActivityType::Unknown)
</del><span class="cx"> {
</span><span class="cx"> m_connection = IPC::Connection::createClientConnection(connectionIdentifier, *this);
</span><span class="cx">
</span><span class="lines">@@ -91,11 +90,6 @@
</span><span class="cx">
</span><span class="cx"> void PluginProcessConnection::didReceiveMessage(IPC::Connection& connection, IPC::Decoder& decoder)
</span><span class="cx"> {
</span><del>- if (!decoder.destinationID()) {
- didReceivePluginProcessConnectionMessage(connection, decoder);
- return;
- }
-
</del><span class="cx"> ASSERT(decoder.destinationID());
</span><span class="cx">
</span><span class="cx"> PluginProxy* pluginProxy = m_plugins.get(decoder.destinationID());
</span><span class="lines">@@ -145,16 +139,6 @@
</span><span class="cx"> NPRuntimeObjectMap::setGlobalException(exceptionString);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void PluginProcessConnection::audioHardwareDidBecomeActive()
-{
- m_audioHardwareActivity = WebCore::AudioHardwareActivityType::IsActive;
-}
-
-void PluginProcessConnection::audioHardwareDidBecomeInactive()
-{
- m_audioHardwareActivity = WebCore::AudioHardwareActivityType::IsInactive;
-}
-
</del><span class="cx"> } // namespace WebKit
</span><span class="cx">
</span><span class="cx"> #endif // ENABLE(NETSCAPE_PLUGIN_API)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPluginProcessConnectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.h (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.h        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.h        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -58,7 +58,6 @@
</span><span class="cx"> NPRemoteObjectMap* npRemoteObjectMap() const { return m_npRemoteObjectMap.get(); }
</span><span class="cx">
</span><span class="cx"> bool supportsAsynchronousPluginInitialization() const { return m_supportsAsynchronousPluginInitialization; }
</span><del>- WebCore::AudioHardwareActivityType audioHardwareActivity() const { return m_audioHardwareActivity; }
</del><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> PluginProcessConnection(PluginProcessConnectionManager*, uint64_t pluginProcessToken, IPC::Connection::Identifier connectionIdentifier, bool supportsAsynchronousInitialization);
</span><span class="lines">@@ -70,11 +69,8 @@
</span><span class="cx"> void didReceiveInvalidMessage(IPC::Connection&, IPC::StringReference messageReceiverName, IPC::StringReference messageName) override;
</span><span class="cx">
</span><span class="cx"> // Message handlers.
</span><del>- void didReceivePluginProcessConnectionMessage(IPC::Connection&, IPC::Decoder&);
</del><span class="cx"> void didReceiveSyncPluginProcessConnectionMessage(IPC::Connection&, IPC::Decoder&, std::unique_ptr<IPC::Encoder>&);
</span><span class="cx"> void setException(const String&);
</span><del>- void audioHardwareDidBecomeActive();
- void audioHardwareDidBecomeInactive();
</del><span class="cx">
</span><span class="cx"> PluginProcessConnectionManager* m_pluginProcessConnectionManager;
</span><span class="cx"> uint64_t m_pluginProcessToken;
</span><span class="lines">@@ -88,7 +84,6 @@
</span><span class="cx"> RefPtr<NPRemoteObjectMap> m_npRemoteObjectMap;
</span><span class="cx">
</span><span class="cx"> bool m_supportsAsynchronousPluginInitialization;
</span><del>- WebCore::AudioHardwareActivityType m_audioHardwareActivity;
</del><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPluginProcessConnectionmessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.messages.in (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.messages.in        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.messages.in        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -25,10 +25,6 @@
</span><span class="cx"> messages -> PluginProcessConnection LegacyReceiver {
</span><span class="cx"> # Set a global JavaScript exception.
</span><span class="cx"> SetException(String exceptionString) -> ()
</span><del>-
- # Plugin process audio hardware state changed
- AudioHardwareDidBecomeActive()
- AudioHardwareDidBecomeInactive()
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPluginProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginProxy.cpp (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PluginProxy.cpp        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginProxy.cpp        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -740,13 +740,6 @@
</span><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-#if PLATFORM(COCOA)
-WebCore::AudioHardwareActivityType PluginProxy::audioHardwareActivity() const
-{
- return m_connection->audioHardwareActivity();
-}
-#endif
-
</del><span class="cx"> } // namespace WebKit
</span><span class="cx">
</span><span class="cx"> #endif // ENABLE(NETSCAPE_PLUGIN_API)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPluginProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginProxy.h (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PluginProxy.h        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginProxy.h        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -147,10 +147,6 @@
</span><span class="cx"> String getSelectionForWordAtPoint(const WebCore::FloatPoint&) const override { return String(); }
</span><span class="cx"> bool existingSelectionContainsPoint(const WebCore::FloatPoint&) const override { return false; }
</span><span class="cx">
</span><del>-#if PLATFORM(COCOA)
- WebCore::AudioHardwareActivityType audioHardwareActivity() const override;
-#endif
-
</del><span class="cx"> float contentsScaleFactor();
</span><span class="cx"> bool needsBackingStore() const;
</span><span class="cx"> bool updateBackingStore();
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPluginViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -59,7 +59,6 @@
</span><span class="cx"> #include <WebCore/NetscapePlugInStreamLoader.h>
</span><span class="cx"> #include <WebCore/NetworkingContext.h>
</span><span class="cx"> #include <WebCore/Page.h>
</span><del>-#include <WebCore/PageThrottler.h>
</del><span class="cx"> #include <WebCore/PlatformMouseEvent.h>
</span><span class="cx"> #include <WebCore/ProtectionSpace.h>
</span><span class="cx"> #include <WebCore/ProxyServer.h>
</span><span class="lines">@@ -546,19 +545,7 @@
</span><span class="cx"> m_plugin->windowFocusChanged(m_webPage->windowIsFocused());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-WebCore::AudioHardwareActivityType PluginView::audioHardwareActivity() const
-{
- if (!m_isInitialized || !m_plugin)
- return AudioHardwareActivityType::IsInactive;
-
</del><span class="cx"> #if PLATFORM(COCOA)
</span><del>- return m_plugin->audioHardwareActivity();
-#else
- return AudioHardwareActivityType::Unknown;
-#endif
-}
-
-#if PLATFORM(COCOA)
</del><span class="cx"> void PluginView::setDeviceScaleFactor(float scaleFactor)
</span><span class="cx"> {
</span><span class="cx"> if (!m_isInitialized || !m_plugin)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPluginViewh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginView.h (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PluginView.h        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginView.h        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -116,7 +116,6 @@
</span><span class="cx"> bool performDictionaryLookupAtLocation(const WebCore::FloatPoint&);
</span><span class="cx"> String getSelectionForWordAtPoint(const WebCore::FloatPoint&) const;
</span><span class="cx"> bool existingSelectionContainsPoint(const WebCore::FloatPoint&) const;
</span><del>- WebCore::AudioHardwareActivityType audioHardwareActivity() const override;
</del><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> PluginView(PassRefPtr<WebCore::HTMLPlugInElement>, PassRefPtr<Plugin>, const Plugin::Parameters& parameters);
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (208328 => 208329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2016-11-03 16:19:48 UTC (rev 208328)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2016-11-03 16:34:33 UTC (rev 208329)
</span><span class="lines">@@ -149,7 +149,6 @@
</span><span class="cx"> #include <WebCore/MouseEvent.h>
</span><span class="cx"> #include <WebCore/Page.h>
</span><span class="cx"> #include <WebCore/PageConfiguration.h>
</span><del>-#include <WebCore/PageThrottler.h>
</del><span class="cx"> #include <WebCore/PlatformKeyboardEvent.h>
</span><span class="cx"> #include <WebCore/PluginDocument.h>
</span><span class="cx"> #include <WebCore/PointerLockController.h>
</span></span></pre>
</div>
</div>
</body>
</html>