Diff
Modified: branches/safari-600.3-branch/Source/WebKit2/ChangeLog (175100 => 175101)
--- branches/safari-600.3-branch/Source/WebKit2/ChangeLog 2014-10-23 09:02:00 UTC (rev 175100)
+++ branches/safari-600.3-branch/Source/WebKit2/ChangeLog 2014-10-23 09:17:39 UTC (rev 175101)
@@ -1,3 +1,36 @@
+2014-10-23 Babak Shafiei <[email protected]>
+
+ Merge r172629.
+
+ 2014-08-15 Gavin Barraclough <[email protected]>
+
+ Simplify visibility activity accounting for plugins
+ https://bugs.webkit.org/show_bug.cgi?id=135981
+
+ Reviewed by Dan Bernstein.
+
+ Just take one per connection, rather than implementing a counting mechanism.
+
+ * PluginProcess/PluginControllerProxy.cpp:
+ (WebKit::PluginControllerProxy::PluginControllerProxy):
+ * PluginProcess/PluginControllerProxy.h:
+ - added m_visiblityActivity.
+ * PluginProcess/PluginProcess.cpp:
+ (WebKit::PluginProcess::PluginProcess):
+ (WebKit::PluginProcess::pluginsForWebProcessDidBecomeVisible): Deleted.
+ (WebKit::PluginProcess::pluginsForWebProcessDidBecomeHidden): Deleted.
+ * PluginProcess/PluginProcess.h:
+ - removed pluginsForWebProcessDidBecomeVisible/Hidden.
+ * PluginProcess/WebProcessConnection.cpp:
+ (WebKit::WebProcessConnection::removePluginControllerProxy):
+ (WebKit::WebProcessConnection::pluginDidBecomeVisible): Deleted.
+ (WebKit::WebProcessConnection::pluginDidBecomeHidden): Deleted.
+ * PluginProcess/WebProcessConnection.h:
+ - removed pluginDidBecomeVisible/Hidden.
+ * PluginProcess/mac/PluginControllerProxyMac.mm:
+ (WebKit::PluginControllerProxy::windowVisibilityChanged):
+ - windowVisibilityChanged uses m_visiblityActivity, rather than calling to PluginControllerProxy.
+
2014-10-21 Dana Burkart <[email protected]>
Merge r174708
Modified: branches/safari-600.3-branch/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp (175100 => 175101)
--- branches/safari-600.3-branch/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp 2014-10-23 09:02:00 UTC (rev 175100)
+++ branches/safari-600.3-branch/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp 2014-10-23 09:17:39 UTC (rev 175101)
@@ -72,6 +72,7 @@
, m_contentsScaleFactor(creationParameters.contentsScaleFactor)
, m_windowNPObject(0)
, m_pluginElementNPObject(0)
+ , m_visiblityActivity("Plugin is visible.")
{
}
Modified: branches/safari-600.3-branch/Source/WebKit2/PluginProcess/PluginControllerProxy.h (175100 => 175101)
--- branches/safari-600.3-branch/Source/WebKit2/PluginProcess/PluginControllerProxy.h 2014-10-23 09:02:00 UTC (rev 175100)
+++ branches/safari-600.3-branch/Source/WebKit2/PluginProcess/PluginControllerProxy.h 2014-10-23 09:17:39 UTC (rev 175101)
@@ -35,6 +35,7 @@
#include "ShareableBitmap.h"
#include "WebProcessConnectionMessages.h"
#include <WebCore/SecurityOrigin.h>
+#include <WebCore/UserActivity.h>
#include <wtf/Noncopyable.h>
#include <wtf/RunLoop.h>
@@ -220,6 +221,9 @@
// The plug-in element NPObject.
NPObject* m_pluginElementNPObject;
+
+ // Hold an activity when the plugin is visible to prevent throttling.
+ UserActivity m_visiblityActivity;
};
} // namespace WebKit
Modified: branches/safari-600.3-branch/Source/WebKit2/PluginProcess/PluginProcess.cpp (175100 => 175101)
--- branches/safari-600.3-branch/Source/WebKit2/PluginProcess/PluginProcess.cpp 2014-10-23 09:02:00 UTC (rev 175100)
+++ branches/safari-600.3-branch/Source/WebKit2/PluginProcess/PluginProcess.cpp 2014-10-23 09:17:39 UTC (rev 175101)
@@ -61,7 +61,6 @@
, m_compositingRenderServerPort(MACH_PORT_NULL)
#endif
, m_connectionActivity("PluginProcess connection activity.")
- , m_visiblePluginsActivity("Visible plugins from PluginProcess activity.")
{
NetscapePlugin::setSetExceptionFunction(WebProcessConnection::setGlobalException);
m_audioHardwareListener = AudioHardwareListener::create(*this);
@@ -246,16 +245,6 @@
}
#endif
-void PluginProcess::pluginsForWebProcessDidBecomeVisible()
-{
- m_visiblePluginsActivity.increment();
-}
-
-void PluginProcess::pluginsForWebProcessDidBecomeHidden()
-{
- m_visiblePluginsActivity.decrement();
-}
-
void PluginProcess::audioHardwareDidBecomeActive()
{
for (auto& connection : m_webProcessConnections)
Modified: branches/safari-600.3-branch/Source/WebKit2/PluginProcess/PluginProcess.h (175100 => 175101)
--- branches/safari-600.3-branch/Source/WebKit2/PluginProcess/PluginProcess.h 2014-10-23 09:02:00 UTC (rev 175100)
+++ branches/safari-600.3-branch/Source/WebKit2/PluginProcess/PluginProcess.h 2014-10-23 09:17:39 UTC (rev 175101)
@@ -68,9 +68,6 @@
CountedUserActivity& connectionActivity() { return m_connectionActivity; }
- void pluginsForWebProcessDidBecomeHidden();
- void pluginsForWebProcessDidBecomeVisible();
-
private:
PluginProcess();
~PluginProcess();
@@ -133,8 +130,7 @@
static void lowMemoryHandler(bool critical);
CountedUserActivity m_connectionActivity;
- CountedUserActivity m_visiblePluginsActivity;
-
+
RefPtr<WebCore::AudioHardwareListener> m_audioHardwareListener;
};
Modified: branches/safari-600.3-branch/Source/WebKit2/PluginProcess/WebProcessConnection.cpp (175100 => 175101)
--- branches/safari-600.3-branch/Source/WebKit2/PluginProcess/WebProcessConnection.cpp 2014-10-23 09:02:00 UTC (rev 175100)
+++ branches/safari-600.3-branch/Source/WebKit2/PluginProcess/WebProcessConnection.cpp 2014-10-23 09:17:39 UTC (rev 175101)
@@ -93,8 +93,6 @@
ASSERT(pluginControllerUniquePtr.get() == pluginController);
}
- pluginDidBecomeHidden(pluginInstanceID);
-
// Invalidate all objects related to this plug-in.
if (plugin)
m_npRemoteObjectMap->pluginDestroyed(plugin);
@@ -325,28 +323,6 @@
m_connection->sendSync(Messages::PluginProxy::DidCreatePlugin(wantsWheelEvents, remoteLayerClientID), Messages::PluginProxy::DidCreatePlugin::Reply(), creationParameters.pluginInstanceID);
}
-void WebProcessConnection::pluginDidBecomeVisible(unsigned pluginInstanceID)
-{
- bool oldState = m_visiblePluginInstanceIDs.isEmpty();
-
- m_visiblePluginInstanceIDs.add(pluginInstanceID);
-
- ASSERT(m_visiblePluginInstanceIDs.size() <= m_pluginControllers.size());
-
- if (oldState != m_visiblePluginInstanceIDs.isEmpty())
- PluginProcess::shared().pluginsForWebProcessDidBecomeVisible();
-}
-
-void WebProcessConnection::pluginDidBecomeHidden(unsigned pluginInstanceID)
-{
- bool oldState = m_visiblePluginInstanceIDs.isEmpty();
-
- m_visiblePluginInstanceIDs.remove(pluginInstanceID);
-
- if (oldState != m_visiblePluginInstanceIDs.isEmpty())
- PluginProcess::shared().pluginsForWebProcessDidBecomeHidden();
-}
-
void WebProcessConnection::audioHardwareDidBecomeActive()
{
m_connection->send(Messages::PluginProcessConnection::AudioHardwareDidBecomeActive(), 0);
Modified: branches/safari-600.3-branch/Source/WebKit2/PluginProcess/WebProcessConnection.h (175100 => 175101)
--- branches/safari-600.3-branch/Source/WebKit2/PluginProcess/WebProcessConnection.h 2014-10-23 09:02:00 UTC (rev 175100)
+++ branches/safari-600.3-branch/Source/WebKit2/PluginProcess/WebProcessConnection.h 2014-10-23 09:17:39 UTC (rev 175101)
@@ -54,9 +54,6 @@
static void setGlobalException(const String&);
- void pluginDidBecomeVisible(unsigned pluginInstanceID);
- void pluginDidBecomeHidden(unsigned pluginInstanceID);
-
void audioHardwareDidBecomeActive();
void audioHardwareDidBecomeInactive();
@@ -87,7 +84,6 @@
HashMap<uint64_t, std::unique_ptr<PluginControllerProxy>> m_pluginControllers;
RefPtr<NPRemoteObjectMap> m_npRemoteObjectMap;
HashSet<uint64_t> m_asynchronousInstanceIDsToIgnore;
- HashSet<uint64_t> m_visiblePluginInstanceIDs;
};
} // namespace WebKit
Modified: branches/safari-600.3-branch/Source/WebKit2/PluginProcess/mac/PluginControllerProxyMac.mm (175100 => 175101)
--- branches/safari-600.3-branch/Source/WebKit2/PluginProcess/mac/PluginControllerProxyMac.mm 2014-10-23 09:02:00 UTC (rev 175100)
+++ branches/safari-600.3-branch/Source/WebKit2/PluginProcess/mac/PluginControllerProxyMac.mm 2014-10-23 09:17:39 UTC (rev 175101)
@@ -108,9 +108,9 @@
{
m_plugin->windowVisibilityChanged(isVisible);
if (isVisible)
- m_connection->pluginDidBecomeVisible(m_pluginInstanceID);
+ m_visiblityActivity.start();
else
- m_connection->pluginDidBecomeHidden(m_pluginInstanceID);
+ m_visiblityActivity.stop();
}
void PluginControllerProxy::sendComplexTextInput(const String& textInput)