Title: [163591] trunk/Source
Revision
163591
Author
[email protected]
Date
2014-02-06 17:57:37 -0800 (Thu, 06 Feb 2014)

Log Message

Remove ChildProcess::m_activeTasks
https://bugs.webkit.org/show_bug.cgi?id=128342

Reviewed by Anders Carlson.

Currently we funnel a number of different user activities
to a single UserActivity object, which requires a call down
from WebCore to WebKit2. Split these out so we can track
them separately.

Source/WebCore: 

* page/ChromeClient.h:
    - removed [inc|dec]rementActivePageCount
* page/PageThrottler.cpp:
(WebCore::PageThrottler::PageThrottler):
    - incrementActivePageCount -> beginActivity
(WebCore::PageThrottler::~PageThrottler):
    - decrementActivePageCount -> endActivity
(WebCore::PageThrottler::throttlePage):
    - decrementActivePageCount -> endActivity
(WebCore::PageThrottler::unthrottlePage):
    - incrementActivePageCount -> beginActivity
* page/PageThrottler.h:
    - Added m_pageActivity.

Source/WebKit2: 

* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::PluginProcess):
    - added m_connectionActivity.
* PluginProcess/PluginProcess.h:
(WebKit::PluginProcess::connectionActivity):
    - added m_connectionActivity.
* PluginProcess/WebProcessConnection.cpp:
(WebKit::WebProcessConnection::didReceiveSyncMessage):
(WebKit::WebProcessConnection::destroyPlugin):
(WebKit::WebProcessConnection::createPlugin):
    - use connectionActivity
* PluginProcess/mac/PluginProcessMac.mm:
(WebKit::PluginProcess::platformInitializeProcess):
    - use a separate UserActivity for Java.
* Shared/ActivityAssertion.cpp:
(WebKit::ActivityAssertion::ActivityAssertion):
(WebKit::ActivityAssertion::~ActivityAssertion):
* Shared/ActivityAssertion.h:
    - ChildProcess -> UserActivity
* Shared/ChildProcess.cpp:
(WebKit::ChildProcess::ChildProcess):
* Shared/ChildProcess.h:
    - remove m_activeTasks.
(WebKit::ChildProcess::processSuppressionEnabled):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
* WebProcess/WebCoreSupport/WebChromeClient.h:
    - removed [inc|dec]rementActivePageCount

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (163590 => 163591)


--- trunk/Source/WebCore/ChangeLog	2014-02-07 01:56:45 UTC (rev 163590)
+++ trunk/Source/WebCore/ChangeLog	2014-02-07 01:57:37 UTC (rev 163591)
@@ -1,3 +1,29 @@
+2014-02-06  Gavin Barraclough  <[email protected]>
+
+        Remove ChildProcess::m_activeTasks
+        https://bugs.webkit.org/show_bug.cgi?id=128342
+
+        Reviewed by Anders Carlson.
+
+        Currently we funnel a number of different user activities
+        to a single UserActivity object, which requires a call down
+        from WebCore to WebKit2. Split these out so we can track
+        them separately.
+
+        * page/ChromeClient.h:
+            - removed [inc|dec]rementActivePageCount
+        * page/PageThrottler.cpp:
+        (WebCore::PageThrottler::PageThrottler):
+            - incrementActivePageCount -> beginActivity
+        (WebCore::PageThrottler::~PageThrottler):
+            - decrementActivePageCount -> endActivity
+        (WebCore::PageThrottler::throttlePage):
+            - decrementActivePageCount -> endActivity
+        (WebCore::PageThrottler::unthrottlePage):
+            - incrementActivePageCount -> beginActivity
+        * page/PageThrottler.h:
+            - Added m_pageActivity.
+
 2014-02-06  Commit Queue  <[email protected]>
 
         Unreviewed, rolling out r163558.

Modified: trunk/Source/WebCore/page/ChromeClient.h (163590 => 163591)


--- trunk/Source/WebCore/page/ChromeClient.h	2014-02-07 01:56:45 UTC (rev 163590)
+++ trunk/Source/WebCore/page/ChromeClient.h	2014-02-07 01:57:37 UTC (rev 163591)
@@ -411,12 +411,6 @@
 
     virtual bool shouldUseTiledBackingForFrameView(const FrameView*) const { return false; }
 
-    // These methods are used to report pages that are performing
-    // some task that we consider to be "active", and so the user
-    // would likely want the page to remain running uninterrupted.
-    virtual void incrementActivePageCount() { }
-    virtual void decrementActivePageCount() { }
-
 protected:
     virtual ~ChromeClient() { }
 };

Modified: trunk/Source/WebCore/page/PageThrottler.cpp (163590 => 163591)


--- trunk/Source/WebCore/page/PageThrottler.cpp	2014-02-07 01:56:45 UTC (rev 163590)
+++ trunk/Source/WebCore/page/PageThrottler.cpp	2014-02-07 01:57:37 UTC (rev 163591)
@@ -42,8 +42,9 @@
     , m_throttleState(PageNotThrottledState)
     , m_throttleHysteresisTimer(this, &PageThrottler::throttleHysteresisTimerFired)
     , m_visuallyNonIdle("Page is not visually idle.")
+    , m_pageActivity("Page is active.")
 {
-    m_page.chrome().client().incrementActivePageCount();
+    m_pageActivity.beginActivity();
 }
 
 PageThrottler::~PageThrottler()
@@ -54,7 +55,7 @@
         (*it)->invalidate();
 
     if (m_throttleState != PageThrottledState)
-        m_page.chrome().client().decrementActivePageCount();
+        m_pageActivity.endActivity();
 }
 
 std::unique_ptr<PageActivityAssertionToken> PageThrottler::createActivityToken()
@@ -66,7 +67,7 @@
 {
     m_throttleState = PageThrottledState;
 
-    m_page.chrome().client().decrementActivePageCount();
+    m_pageActivity.endActivity();
 
     for (Frame* frame = &m_page.mainFrame(); frame; frame = frame->tree().traverseNext()) {
         if (frame->document())
@@ -85,7 +86,7 @@
         return;
 
     if (oldState == PageThrottledState)
-        m_page.chrome().client().incrementActivePageCount();
+        m_pageActivity.beginActivity();
     
     for (Frame* frame = &m_page.mainFrame(); frame; frame = frame->tree().traverseNext()) {
         if (frame->document())

Modified: trunk/Source/WebCore/page/PageThrottler.h (163590 => 163591)


--- trunk/Source/WebCore/page/PageThrottler.h	2014-02-07 01:56:45 UTC (rev 163590)
+++ trunk/Source/WebCore/page/PageThrottler.h	2014-02-07 01:57:37 UTC (rev 163591)
@@ -75,6 +75,7 @@
     Timer<PageThrottler> m_throttleHysteresisTimer;
     HashSet<PageActivityAssertionToken*> m_activityTokens;
     UserActivity m_visuallyNonIdle;
+    UserActivity m_pageActivity;
 };
 
 }

Modified: trunk/Source/WebKit2/ChangeLog (163590 => 163591)


--- trunk/Source/WebKit2/ChangeLog	2014-02-07 01:56:45 UTC (rev 163590)
+++ trunk/Source/WebKit2/ChangeLog	2014-02-07 01:57:37 UTC (rev 163591)
@@ -1,3 +1,43 @@
+2014-02-06  Gavin Barraclough  <[email protected]>
+
+        Remove ChildProcess::m_activeTasks
+        https://bugs.webkit.org/show_bug.cgi?id=128342
+
+        Reviewed by Anders Carlson.
+
+        Currently we funnel a number of different user activities
+        to a single UserActivity object, which requires a call down
+        from WebCore to WebKit2. Split these out so we can track
+        them separately.
+
+        * PluginProcess/PluginProcess.cpp:
+        (WebKit::PluginProcess::PluginProcess):
+            - added m_connectionActivity.
+        * PluginProcess/PluginProcess.h:
+        (WebKit::PluginProcess::connectionActivity):
+            - added m_connectionActivity.
+        * PluginProcess/WebProcessConnection.cpp:
+        (WebKit::WebProcessConnection::didReceiveSyncMessage):
+        (WebKit::WebProcessConnection::destroyPlugin):
+        (WebKit::WebProcessConnection::createPlugin):
+            - use connectionActivity
+        * PluginProcess/mac/PluginProcessMac.mm:
+        (WebKit::PluginProcess::platformInitializeProcess):
+            - use a separate UserActivity for Java.
+        * Shared/ActivityAssertion.cpp:
+        (WebKit::ActivityAssertion::ActivityAssertion):
+        (WebKit::ActivityAssertion::~ActivityAssertion):
+        * Shared/ActivityAssertion.h:
+            - ChildProcess -> UserActivity
+        * Shared/ChildProcess.cpp:
+        (WebKit::ChildProcess::ChildProcess):
+        * Shared/ChildProcess.h:
+            - remove m_activeTasks.
+        (WebKit::ChildProcess::processSuppressionEnabled):
+        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+        * WebProcess/WebCoreSupport/WebChromeClient.h:
+            - removed [inc|dec]rementActivePageCount
+
 2014-02-06  Pratik Solanki  <[email protected]>
 
         [iOS] WebKit2 can't access the GPU

Modified: trunk/Source/WebKit2/PluginProcess/PluginProcess.cpp (163590 => 163591)


--- trunk/Source/WebKit2/PluginProcess/PluginProcess.cpp	2014-02-07 01:56:45 UTC (rev 163590)
+++ trunk/Source/WebKit2/PluginProcess/PluginProcess.cpp	2014-02-07 01:57:37 UTC (rev 163591)
@@ -60,6 +60,7 @@
 #if PLATFORM(MAC)
     , m_compositingRenderServerPort(MACH_PORT_NULL)
 #endif
+    , m_connectionActivity("PluginProcess connection activity.")
 {
     NetscapePlugin::setSetExceptionFunction(WebProcessConnection::setGlobalException);
 }

Modified: trunk/Source/WebKit2/PluginProcess/PluginProcess.h (163590 => 163591)


--- trunk/Source/WebKit2/PluginProcess/PluginProcess.h	2014-02-07 01:56:45 UTC (rev 163590)
+++ trunk/Source/WebKit2/PluginProcess/PluginProcess.h	2014-02-07 01:57:37 UTC (rev 163591)
@@ -63,6 +63,8 @@
     bool openFile(const String& urlString);
 #endif
 
+    UserActivity& connectionActivity() { return m_connectionActivity; }
+
 private:
     PluginProcess();
     ~PluginProcess();
@@ -117,6 +119,7 @@
 #endif
 
     static void lowMemoryHandler(bool critical);
+    UserActivity m_connectionActivity;
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/PluginProcess/WebProcessConnection.cpp (163590 => 163591)


--- trunk/Source/WebKit2/PluginProcess/WebProcessConnection.cpp	2014-02-07 01:56:45 UTC (rev 163590)
+++ trunk/Source/WebKit2/PluginProcess/WebProcessConnection.cpp	2014-02-07 01:57:37 UTC (rev 163591)
@@ -142,7 +142,7 @@
 void WebProcessConnection::didReceiveSyncMessage(IPC::Connection* connection, IPC::MessageDecoder& decoder, std::unique_ptr<IPC::MessageEncoder>& replyEncoder)
 {
     // Force all timers to run at full speed when processing a synchronous message
-    ActivityAssertion activityAssertion(PluginProcess::shared());
+    ActivityAssertion activityAssertion(PluginProcess::shared().connectionActivity());
 
     ConnectionStack::CurrentConnectionPusher currentConnection(ConnectionStack::shared(), connection);
 
@@ -181,7 +181,7 @@
 void WebProcessConnection::destroyPlugin(uint64_t pluginInstanceID, bool asynchronousCreationIncomplete)
 {
     // Ensure we don't clamp any timers during destruction
-    ActivityAssertion activityAssertion(PluginProcess::shared());
+    ActivityAssertion activityAssertion(PluginProcess::shared().connectionActivity());
 
     PluginControllerProxy* pluginControllerProxy = m_pluginControllers.get(pluginInstanceID);
     
@@ -230,7 +230,7 @@
 void WebProcessConnection::createPlugin(const PluginCreationParameters& creationParameters, PassRefPtr<Messages::WebProcessConnection::CreatePlugin::DelayedReply> reply)
 {
     // Ensure we don't clamp any timers during initialization
-    ActivityAssertion activityAssertion(PluginProcess::shared());
+    ActivityAssertion activityAssertion(PluginProcess::shared().connectionActivity());
 
     PluginControllerProxy* pluginControllerProxy = m_pluginControllers.get(creationParameters.pluginInstanceID);
 

Modified: trunk/Source/WebKit2/PluginProcess/mac/PluginProcessMac.mm (163590 => 163591)


--- trunk/Source/WebKit2/PluginProcess/mac/PluginProcessMac.mm	2014-02-07 01:56:45 UTC (rev 163590)
+++ trunk/Source/WebKit2/PluginProcess/mac/PluginProcessMac.mm	2014-02-07 01:57:37 UTC (rev 163591)
@@ -438,7 +438,7 @@
 
     // FIXME: Workaround for Java not liking its plugin process to be supressed - <rdar://problem/14267843>
     if (m_pluginBundleIdentifier == "com.oracle.java.JavaAppletPlugin")
-        incrementActiveTaskCount();
+        (new UserActivity("com.oracle.java.JavaAppletPlugin"))->beginActivity();
 }
 
 void PluginProcess::initializeProcessName(const ChildProcessInitializationParameters& parameters)

Modified: trunk/Source/WebKit2/Shared/ActivityAssertion.cpp (163590 => 163591)


--- trunk/Source/WebKit2/Shared/ActivityAssertion.cpp	2014-02-07 01:56:45 UTC (rev 163590)
+++ trunk/Source/WebKit2/Shared/ActivityAssertion.cpp	2014-02-07 01:57:37 UTC (rev 163591)
@@ -26,19 +26,17 @@
 #include "config.h"
 #include "ActivityAssertion.h"
 
-#include "ChildProcess.h"
-
 namespace WebKit {
 
-ActivityAssertion::ActivityAssertion(ChildProcess& process)
-    : m_process(process)
+ActivityAssertion::ActivityAssertion(UserActivity& activity)
+    : m_activity(activity)
 {
-    m_process.incrementActiveTaskCount();
+    m_activity.beginActivity();
 }
 
 ActivityAssertion::~ActivityAssertion()
 {
-    m_process.decrementActiveTaskCount();
+    m_activity.endActivity();
 }
 
 }

Modified: trunk/Source/WebKit2/Shared/ActivityAssertion.h (163590 => 163591)


--- trunk/Source/WebKit2/Shared/ActivityAssertion.h	2014-02-07 01:56:45 UTC (rev 163590)
+++ trunk/Source/WebKit2/Shared/ActivityAssertion.h	2014-02-07 01:57:37 UTC (rev 163591)
@@ -26,20 +26,19 @@
 #ifndef ActivityAssertion_h
 #define ActivityAssertion_h
 
+#include <WebCore/UserActivity.h>
 #include <wtf/Noncopyable.h>
 
 namespace WebKit {
 
-class ChildProcess;
-
 class ActivityAssertion {
     WTF_MAKE_NONCOPYABLE(ActivityAssertion);
 public:
-    ActivityAssertion(ChildProcess&);
+    explicit ActivityAssertion(UserActivity&);
     ~ActivityAssertion();
 
 private:
-    ChildProcess& m_process;
+    UserActivity& m_activity;
 };
 
 }

Modified: trunk/Source/WebKit2/Shared/ChildProcess.cpp (163590 => 163591)


--- trunk/Source/WebKit2/Shared/ChildProcess.cpp	2014-02-07 01:56:45 UTC (rev 163590)
+++ trunk/Source/WebKit2/Shared/ChildProcess.cpp	2014-02-07 01:57:37 UTC (rev 163591)
@@ -36,7 +36,6 @@
     , m_terminationCounter(0)
     , m_terminationTimer(RunLoop::main(), this, &ChildProcess::terminationTimerFired)
     , m_processSuppressionDisabled("Process Suppression Disabled by UIProcess")
-    , m_activeTasks("Process Suppression Disabled by WebProcess")
 {
 }
 
@@ -85,16 +84,6 @@
         m_processSuppressionDisabled.beginActivity();
 }
 
-void ChildProcess::incrementActiveTaskCount()
-{
-    m_activeTasks.beginActivity();
-}
-
-void ChildProcess::decrementActiveTaskCount()
-{
-    m_activeTasks.endActivity();
-}
-
 void ChildProcess::initializeProcess(const ChildProcessInitializationParameters&)
 {
 }

Modified: trunk/Source/WebKit2/Shared/ChildProcess.h (163590 => 163591)


--- trunk/Source/WebKit2/Shared/ChildProcess.h	2014-02-07 01:56:45 UTC (rev 163590)
+++ trunk/Source/WebKit2/Shared/ChildProcess.h	2014-02-07 01:57:37 UTC (rev 163591)
@@ -64,8 +64,6 @@
 
     void setProcessSuppressionEnabled(bool);
     bool processSuppressionEnabled() const { return !m_processSuppressionDisabled.isActive(); }
-    void incrementActiveTaskCount();
-    void decrementActiveTaskCount();
 
 #if PLATFORM(MAC)
     void setApplicationIsDaemon();
@@ -119,7 +117,6 @@
     IPC::MessageReceiverMap m_messageReceiverMap;
 
     UserActivity m_processSuppressionDisabled;
-    UserActivity m_activeTasks;
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp (163590 => 163591)


--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp	2014-02-07 01:56:45 UTC (rev 163590)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp	2014-02-07 01:57:37 UTC (rev 163591)
@@ -935,14 +935,4 @@
     return m_page->drawingArea()->shouldUseTiledBackingForFrameView(frameView);
 }
 
-void WebChromeClient::incrementActivePageCount()
-{
-    WebProcess::shared().incrementActiveTaskCount();
-}
-
-void WebChromeClient::decrementActivePageCount()
-{
-    WebProcess::shared().decrementActiveTaskCount();
-}
-
 } // namespace WebKit

Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h (163590 => 163591)


--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h	2014-02-07 01:56:45 UTC (rev 163590)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h	2014-02-07 01:57:37 UTC (rev 163591)
@@ -272,9 +272,6 @@
 
     virtual bool shouldUseTiledBackingForFrameView(const WebCore::FrameView*) const override;
 
-    virtual void incrementActivePageCount() override;
-    virtual void decrementActivePageCount() override;
-
     String m_cachedToolTip;
     mutable RefPtr<WebFrame> m_cachedFrameSetLargestFrame;
     mutable bool m_cachedMainFrameHasHorizontalScrollbar;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to