Title: [172645] trunk/Source/WebKit2
- Revision
- 172645
- Author
- barraclo...@apple.com
- Date
- 2014-08-15 13:32:14 -0700 (Fri, 15 Aug 2014)
Log Message
Fix plugin visibility check.
https://bugs.webkit.org/show_bug.cgi?id=135991
Reviewed by Andreas Kling.
We should only take a UserActivity if the plugin is in a visible window,
and also is itself visible.
* PluginProcess/PluginControllerProxy.cpp:
(WebKit::PluginControllerProxy::PluginControllerProxy):
- initialize member state.
(WebKit::PluginControllerProxy::visibilityDidChange):
(WebKit::PluginControllerProxy::windowVisibilityChanged):
- update member state & call updateVisiblityActivity.
(WebKit::PluginControllerProxy::updateVisiblityActivity):
- enable the UserActivity only if both visibilities are true.
* PluginProcess/PluginControllerProxy.h:
- added m_isVisible, m_isWindowVisible, updateVisibilityActivity.
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (172644 => 172645)
--- trunk/Source/WebKit2/ChangeLog 2014-08-15 20:12:32 UTC (rev 172644)
+++ trunk/Source/WebKit2/ChangeLog 2014-08-15 20:32:14 UTC (rev 172645)
@@ -1,3 +1,24 @@
+2014-08-15 Gavin Barraclough <barraclo...@apple.com>
+
+ Fix plugin visibility check.
+ https://bugs.webkit.org/show_bug.cgi?id=135991
+
+ Reviewed by Andreas Kling.
+
+ We should only take a UserActivity if the plugin is in a visible window,
+ and also is itself visible.
+
+ * PluginProcess/PluginControllerProxy.cpp:
+ (WebKit::PluginControllerProxy::PluginControllerProxy):
+ - initialize member state.
+ (WebKit::PluginControllerProxy::visibilityDidChange):
+ (WebKit::PluginControllerProxy::windowVisibilityChanged):
+ - update member state & call updateVisiblityActivity.
+ (WebKit::PluginControllerProxy::updateVisiblityActivity):
+ - enable the UserActivity only if both visibilities are true.
+ * PluginProcess/PluginControllerProxy.h:
+ - added m_isVisible, m_isWindowVisible, updateVisibilityActivity.
+
2014-08-15 Enrica Casucci <enr...@apple.com>
[Services with UI] Selections are incorrect when selecting three lines.
Modified: trunk/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp (172644 => 172645)
--- trunk/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp 2014-08-15 20:12:32 UTC (rev 172644)
+++ trunk/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp 2014-08-15 20:32:14 UTC (rev 172645)
@@ -61,6 +61,8 @@
, m_isPrivateBrowsingEnabled(creationParameters.isPrivateBrowsingEnabled)
, m_isAcceleratedCompositingEnabled(creationParameters.isAcceleratedCompositingEnabled)
, m_isInitializing(false)
+ , m_isVisibile(false)
+ , m_isWindowVisibile(false)
, m_paintTimer(RunLoop::main(), this, &PluginControllerProxy::paint)
, m_pluginDestructionProtectCount(0)
, m_pluginDestroyTimer(RunLoop::main(), this, &PluginControllerProxy::destroy)
@@ -430,8 +432,12 @@
void PluginControllerProxy::visibilityDidChange(bool isVisible)
{
+ m_isVisibile = isVisible;
+
ASSERT(m_plugin);
m_plugin->visibilityDidChange(isVisible);
+
+ updateVisiblityActivity();
}
void PluginControllerProxy::windowFocusChanged(bool hasFocus)
@@ -442,10 +448,17 @@
void PluginControllerProxy::windowVisibilityChanged(bool isVisible)
{
+ m_isWindowVisibile = isVisible;
+
ASSERT(m_plugin);
m_plugin->windowVisibilityChanged(isVisible);
- if (isVisible)
+ updateVisiblityActivity();
+}
+
+void PluginControllerProxy::updateVisiblityActivity()
+{
+ if (m_isVisibile && m_isWindowVisibile)
m_visiblityActivity.start();
else
m_visiblityActivity.stop();
Modified: trunk/Source/WebKit2/PluginProcess/PluginControllerProxy.h (172644 => 172645)
--- trunk/Source/WebKit2/PluginProcess/PluginControllerProxy.h 2014-08-15 20:12:32 UTC (rev 172644)
+++ trunk/Source/WebKit2/PluginProcess/PluginControllerProxy.h 2014-08-15 20:32:14 UTC (rev 172645)
@@ -151,6 +151,7 @@
void windowFocusChanged(bool);
void windowVisibilityChanged(bool);
+ void updateVisiblityActivity();
#if PLATFORM(COCOA)
void windowAndViewFramesChanged(const WebCore::IntRect& windowFrameInScreenCoordinates, const WebCore::IntRect& viewFrameInWindowCoordinates);
@@ -176,6 +177,8 @@
bool m_isPrivateBrowsingEnabled;
bool m_isAcceleratedCompositingEnabled;
bool m_isInitializing;
+ bool m_isVisibile;
+ bool m_isWindowVisibile;
RefPtr<Messages::WebProcessConnection::CreatePlugin::DelayedReply> m_initializationReply;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes