Diff
Modified: trunk/Source/WebKit2/ChangeLog (193663 => 193664)
--- trunk/Source/WebKit2/ChangeLog 2015-12-08 00:08:56 UTC (rev 193663)
+++ trunk/Source/WebKit2/ChangeLog 2015-12-08 00:22:16 UTC (rev 193664)
@@ -1,3 +1,17 @@
+2015-12-07 Commit Queue <commit-qu...@webkit.org>
+
+ Unreviewed, rolling out r193655.
+ https://bugs.webkit.org/show_bug.cgi?id=151970
+
+ This change broke existing LayoutTests on mac-wk2 (Requested
+ by ryanhaddad on #webkit).
+
+ Reverted changeset:
+
+ "UIProcess should determine AppNap state for WebPage"
+ https://bugs.webkit.org/show_bug.cgi?id=151964
+ http://trac.webkit.org/changeset/193655
+
2015-12-05 Gavin Barraclough <barraclo...@apple.com>
UIProcess should determine AppNap state for WebPage
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (193663 => 193664)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2015-12-08 00:08:56 UTC (rev 193663)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2015-12-08 00:22:16 UTC (rev 193664)
@@ -338,8 +338,6 @@
, m_notificationPermissionRequestManager(*this)
, m_userMediaPermissionRequestManager(*this)
, m_viewState(ViewState::NoFlags)
- , m_activityState(PageActivityState::NoFlags)
- , m_userActivityStarted(false)
, m_viewWasEverInWindow(false)
#if PLATFORM(IOS)
, m_alwaysRunsAtForegroundPriority(m_configuration->alwaysRunsAtForegroundPriority())
@@ -1450,15 +1448,6 @@
m_viewWasEverInWindow |= isNowInWindow;
}
-void WebPageProxy::setPageActivityState(PageActivityState::Flags activityState)
-{
- if (m_activityState == activityState)
- return;
-
- m_activityState = activityState;
- updateActivityToken();
-}
-
void WebPageProxy::updateActivityToken()
{
if (m_viewState & ViewState::IsVisuallyIdle)
@@ -1466,14 +1455,6 @@
else if (!m_pageIsUserObservableCount)
m_pageIsUserObservableCount = m_process->processPool().userObservablePageCount();
- // Start the activity to prevent AppNap if the page activity is in progress,
- // the page is visible and non-idle, or process suppression is disabled.
- bool shouldHoldUserActivity = m_activityState || !(m_viewState & ViewState::IsVisuallyIdle) || !m_preferences->pageVisibilityBasedProcessSuppressionEnabled();
- if (m_userActivityStarted != shouldHoldUserActivity) {
- m_process->send(Messages::WebPage::SetUserActivityStarted(shouldHoldUserActivity), m_pageID);
- m_userActivityStarted = shouldHoldUserActivity;
- }
-
#if PLATFORM(IOS)
if (!isViewVisible() && !m_alwaysRunsAtForegroundPriority)
m_activityToken = nullptr;
@@ -2751,7 +2732,6 @@
#endif
updateProccessSuppressionState();
- updateActivityToken();
m_pageClient.preferencesDidChange();
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (193663 => 193664)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2015-12-08 00:08:56 UTC (rev 193663)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2015-12-08 00:22:16 UTC (rev 193664)
@@ -420,7 +420,6 @@
bool isInWindow() const { return m_viewState & WebCore::ViewState::IsInWindow; }
void waitForDidUpdateViewState();
void didUpdateViewState() { m_waitingForDidUpdateViewState = false; }
- void setPageActivityState(WebCore::PageActivityState::Flags);
void layerHostingModeDidChange();
@@ -1557,8 +1556,6 @@
UserMediaPermissionRequestManagerProxy m_userMediaPermissionRequestManager;
WebCore::ViewState::Flags m_viewState;
- WebCore::PageActivityState::Flags m_activityState;
- bool m_userActivityStarted;
bool m_viewWasEverInWindow;
#if PLATFORM(IOS)
bool m_allowsMediaDocumentInlinePlayback { false };
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in (193663 => 193664)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in 2015-12-08 00:08:56 UTC (rev 193663)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in 2015-12-08 00:22:16 UTC (rev 193664)
@@ -447,6 +447,4 @@
#endif
DidRestoreScrollPosition()
-
- SetPageActivityState(unsigned activityState)
}
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (193663 => 193664)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2015-12-08 00:08:56 UTC (rev 193663)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2015-12-08 00:22:16 UTC (rev 193664)
@@ -341,7 +341,7 @@
, m_scrollPinningBehavior(DoNotPin)
, m_useAsyncScrolling(false)
, m_viewState(parameters.viewState)
- , m_activityState(PageActivityState::NoFlags)
+ , m_processSuppressionEnabled(true)
, m_userActivity("Process suppression disabled for page.")
, m_pendingNavigationID(0)
#if ENABLE(WEBGL)
@@ -448,6 +448,7 @@
m_page->setViewState(m_viewState);
if (!isVisible())
m_page->setIsPrerender();
+ updateUserActivity();
updateIsInWindow(true);
@@ -533,16 +534,18 @@
void WebPage::setPageActivityState(PageActivityState::Flags activityState)
{
- if (m_activityState == activityState)
- return;
+ PageActivityState::Flags changed = m_activityState ^ activityState;
+ m_activityState = activityState;
- m_activityState = activityState;
- send(Messages::WebPageProxy::SetPageActivityState(activityState));
+ if (changed)
+ updateUserActivity();
}
-void WebPage::setUserActivityStarted(bool started)
+void WebPage::updateUserActivity()
{
- if (started)
+ // Start the activity to prevent AppNap if the page activity is in progress,
+ // the page is visible and non-idle, or process suppression is disabled.
+ if (m_activityState || !(m_viewState & ViewState::IsVisuallyIdle) || !m_processSuppressionEnabled)
m_userActivity.start();
else
m_userActivity.stop();
@@ -2368,6 +2371,9 @@
ViewState::Flags changed = m_viewState ^ viewState;
m_viewState = viewState;
+ if (changed)
+ updateUserActivity();
+
m_page->setViewState(viewState);
for (auto* pluginView : m_pluginViews)
pluginView->viewStateDidChange(changed);
@@ -2925,6 +2931,12 @@
settings.setServiceControlsEnabled(store.getBoolValueForKey(WebPreferencesKey::serviceControlsEnabledKey()));
#endif
+ bool processSuppressionEnabled = store.getBoolValueForKey(WebPreferencesKey::pageVisibilityBasedProcessSuppressionEnabledKey());
+ if (m_processSuppressionEnabled != processSuppressionEnabled) {
+ m_processSuppressionEnabled = processSuppressionEnabled;
+ updateUserActivity();
+ }
+
platformPreferencesDidChange(store);
if (m_drawingArea)
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (193663 => 193664)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h 2015-12-08 00:08:56 UTC (rev 193663)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h 2015-12-08 00:22:16 UTC (rev 193664)
@@ -991,7 +991,7 @@
void executeEditCommand(const String&, const String&);
void setEditable(bool);
- void setUserActivityStarted(bool);
+ void updateUserActivity();
void mouseEvent(const WebMouseEvent&);
void keyEvent(const WebKeyboardEvent&);
@@ -1394,6 +1394,7 @@
WebCore::ViewState::Flags m_viewState;
WebCore::PageActivityState::Flags m_activityState;
+ bool m_processSuppressionEnabled;
UserActivity m_userActivity;
uint64_t m_pendingNavigationID;
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in (193663 => 193664)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in 2015-12-08 00:08:56 UTC (rev 193663)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in 2015-12-08 00:22:16 UTC (rev 193664)
@@ -23,7 +23,6 @@
messages -> WebPage LegacyReceiver {
SetInitialFocus(bool forward, bool isKeyboardEventValid, WebKit::WebKeyboardEvent event, uint64_t callbackID)
SetViewState(unsigned viewState, bool wantsDidUpdateViewState, Vector<uint64_t> callbackIDs)
- SetUserActivityStarted(bool started)
SetLayerHostingMode(unsigned layerHostingMode)
SetSessionID(WebCore::SessionID sessionID)