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;