Title: [175101] branches/safari-600.3-branch/Source/WebKit2

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)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to