summaryrefslogtreecommitdiff
path: root/Source/WebKit2/PluginProcess/PluginControllerProxy.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/PluginProcess/PluginControllerProxy.h')
-rw-r--r--Source/WebKit2/PluginProcess/PluginControllerProxy.h92
1 files changed, 52 insertions, 40 deletions
diff --git a/Source/WebKit2/PluginProcess/PluginControllerProxy.h b/Source/WebKit2/PluginProcess/PluginControllerProxy.h
index d048d03aa..764d097dd 100644
--- a/Source/WebKit2/PluginProcess/PluginControllerProxy.h
+++ b/Source/WebKit2/PluginProcess/PluginControllerProxy.h
@@ -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>
@@ -61,12 +62,12 @@ public:
bool initialize(const PluginCreationParameters&);
void destroy();
- void didReceivePluginControllerProxyMessage(IPC::Connection*, IPC::MessageDecoder&);
- void didReceiveSyncPluginControllerProxyMessage(IPC::Connection*, IPC::MessageDecoder&, std::unique_ptr<IPC::MessageEncoder>&);
+ void didReceivePluginControllerProxyMessage(IPC::Connection&, IPC::Decoder&);
+ void didReceiveSyncPluginControllerProxyMessage(IPC::Connection&, IPC::Decoder&, std::unique_ptr<IPC::Encoder>&);
bool wantsWheelEvents() const;
-#if PLATFORM(MAC)
+#if PLATFORM(COCOA)
uint32_t remoteLayerClientID() const;
#endif
@@ -75,48 +76,48 @@ public:
bool isInitializing() const { return m_isInitializing; }
void setInitializationReply(PassRefPtr<Messages::WebProcessConnection::CreatePlugin::DelayedReply>);
- PassRefPtr<Messages::WebProcessConnection::CreatePlugin::DelayedReply> takeInitializationReply();
+ RefPtr<Messages::WebProcessConnection::CreatePlugin::DelayedReply> takeInitializationReply();
private:
void startPaintTimer();
void paint();
// PluginController
- virtual bool isPluginVisible();
- virtual void invalidate(const WebCore::IntRect&);
- virtual String userAgent();
- virtual void loadURL(uint64_t requestID, const String& method, const String& urlString, const String& target, const WebCore::HTTPHeaderMap& headerFields, const Vector<uint8_t>& httpBody, bool allowPopups);
- virtual void cancelStreamLoad(uint64_t streamID);
- virtual void cancelManualStreamLoad();
- virtual NPObject* windowScriptNPObject();
- virtual NPObject* pluginElementNPObject();
- virtual bool evaluate(NPObject*, const String& scriptString, NPVariant* result, bool allowPopups);
- virtual void setStatusbarText(const String&);
- virtual bool isAcceleratedCompositingEnabled();
- virtual void pluginProcessCrashed();
- virtual void willSendEventToPlugin();
- virtual void didInitializePlugin() override;
- virtual void didFailToInitializePlugin() override;
-
-#if PLATFORM(MAC)
- virtual void pluginFocusOrWindowFocusChanged(bool) override;
- virtual void setComplexTextInputState(PluginComplexTextInputState) override;
- virtual mach_port_t compositingRenderServerPort() override;
- virtual void openPluginPreferencePane() override;
+ void invalidate(const WebCore::IntRect&) override;
+ String userAgent() override;
+ void loadURL(uint64_t requestID, const String& method, const String& urlString, const String& target, const WebCore::HTTPHeaderMap& headerFields, const Vector<uint8_t>& httpBody, bool allowPopups) override;
+ void continueStreamLoad(uint64_t streamID) override;
+ void cancelStreamLoad(uint64_t streamID) override;
+ void cancelManualStreamLoad() override;
+ NPObject* windowScriptNPObject() override;
+ NPObject* pluginElementNPObject() override;
+ bool evaluate(NPObject*, const String& scriptString, NPVariant* result, bool allowPopups) override;
+ void setPluginIsPlayingAudio(bool) override;
+ void setStatusbarText(const String&) override;
+ bool isAcceleratedCompositingEnabled() override;
+ void pluginProcessCrashed() override;
+ void didInitializePlugin() override;
+ void didFailToInitializePlugin() override;
+
+#if PLATFORM(COCOA)
+ void pluginFocusOrWindowFocusChanged(bool) override;
+ void setComplexTextInputState(PluginComplexTextInputState) override;
+ const WebCore::MachSendRight& compositingRenderServerPort() override;
#endif
- virtual float contentsScaleFactor();
- virtual String proxiesForURL(const String&);
- virtual String cookiesForURL(const String&);
- virtual void setCookiesForURL(const String& urlString, const String& cookieString);
- virtual bool isPrivateBrowsingEnabled();
- virtual bool getAuthenticationInfo(const WebCore::ProtectionSpace&, String& username, String& password);
- virtual void protectPluginFromDestruction();
- virtual void unprotectPluginFromDestruction();
+ float contentsScaleFactor() override;
+ String proxiesForURL(const String&) override;
+ String cookiesForURL(const String&) override;
+ void setCookiesForURL(const String& urlString, const String& cookieString) override;
+ bool isPrivateBrowsingEnabled() override;
+ bool isMuted() const override { return m_isMuted; }
+ bool getAuthenticationInfo(const WebCore::ProtectionSpace&, String& username, String& password) override;
+ void protectPluginFromDestruction() override;
+ void unprotectPluginFromDestruction() override;
#if PLUGIN_ARCHITECTURE(X11)
- virtual uint64_t createPluginContainer();
- virtual void windowedPluginGeometryDidChange(const WebCore::IntRect& frameRect, const WebCore::IntRect& clipRect, uint64_t windowID);
- virtual void windowedPluginVisibilityDidChange(bool isVisible, uint64_t windowID);
+ uint64_t createPluginContainer() override;
+ void windowedPluginGeometryDidChange(const WebCore::IntRect& frameRect, const WebCore::IntRect& clipRect, uint64_t windowID) override;
+ void windowedPluginVisibilityDidChange(bool isVisible, uint64_t windowID) override;
#endif
// Message handlers.
@@ -125,6 +126,7 @@ private:
void geometryDidChange(const WebCore::IntSize& pluginSize, const WebCore::IntRect& clipRect, const WebCore::AffineTransform& pluginToRootViewTransform, float contentsScaleFactor, const ShareableBitmap::Handle& backingStoreHandle);
void visibilityDidChange(bool isVisible);
void didEvaluateJavaScript(uint64_t requestID, const String& result);
+ void streamWillSendRequest(uint64_t streamID, const String& requestURLString, const String& redirectResponseURLString, uint32_t redirectResponseStatusCode);
void streamDidReceiveResponse(uint64_t streamID, const String& responseURLString, uint32_t streamLength, uint32_t lastModifiedTime, const String& mimeType, const String& headers);
void streamDidReceiveData(uint64_t streamID, const IPC::DataReference& data);
void streamDidFinishLoading(uint64_t streamID);
@@ -133,7 +135,7 @@ private:
void manualStreamDidReceiveData(const IPC::DataReference& data);
void manualStreamDidFinishLoading();
void manualStreamDidFail(bool wasCancelled);
- void handleMouseEvent(const WebMouseEvent&, PassRefPtr<Messages::PluginControllerProxy::HandleMouseEvent::DelayedReply>);
+ void handleMouseEvent(const WebMouseEvent&);
void handleWheelEvent(const WebWheelEvent&, bool& handled);
void handleMouseEnterEvent(const WebMouseEvent&, bool& handled);
void handleMouseLeaveEvent(const WebMouseEvent&, bool& handled);
@@ -141,6 +143,7 @@ private:
void handleEditingCommand(const String&, const String&, bool&);
void isEditingCommandEnabled(const String&, bool&);
void handlesPageScaleFactor(bool&);
+ void requiresUnifiedScaleFactor(bool&);
void paintEntirePlugin();
void supportsSnapshotting(bool&);
void snapshot(ShareableBitmap::Handle& backingStoreHandle);
@@ -148,10 +151,12 @@ private:
void didUpdate();
void getPluginScriptableNPObject(uint64_t& pluginScriptableNPObjectID);
-#if PLATFORM(MAC)
void windowFocusChanged(bool);
- void windowAndViewFramesChanged(const WebCore::IntRect& windowFrameInScreenCoordinates, const WebCore::IntRect& viewFrameInWindowCoordinates);
void windowVisibilityChanged(bool);
+ void updateVisibilityActivity();
+
+#if PLATFORM(COCOA)
+ void windowAndViewFramesChanged(const WebCore::IntRect& windowFrameInScreenCoordinates, const WebCore::IntRect& viewFrameInWindowCoordinates);
void sendComplexTextInput(const String& textInput);
void setLayerHostingMode(uint32_t);
@@ -160,6 +165,7 @@ private:
void storageBlockingStateChanged(bool);
void privateBrowsingStateChanged(bool);
+ void mutedStateChanged(bool);
void getFormValue(bool& returnValue, String& formValue);
void platformInitialize(const PluginCreationParameters&);
@@ -172,8 +178,11 @@ private:
String m_userAgent;
bool m_storageBlockingEnabled;
bool m_isPrivateBrowsingEnabled;
+ bool m_isMuted;
bool m_isAcceleratedCompositingEnabled;
bool m_isInitializing;
+ bool m_isVisible;
+ bool m_isWindowVisible;
RefPtr<Messages::WebProcessConnection::CreatePlugin::DelayedReply> m_initializationReply;
@@ -201,7 +210,7 @@ private:
// Whether the plug-in has canceled the manual stream load.
bool m_pluginCanceledManualStreamLoad;
-#if PLATFORM(MAC)
+#if PLATFORM(COCOA)
// Whether complex text input is enabled for this plug-in.
bool m_isComplexTextInputEnabled;
@@ -220,6 +229,9 @@ private:
// The plug-in element NPObject.
NPObject* m_pluginElementNPObject;
+
+ // Hold an activity when the plugin is visible to prevent throttling.
+ UserActivity m_visiblityActivity;
};
} // namespace WebKit