diff options
Diffstat (limited to 'Source/WebKit2/PluginProcess/PluginControllerProxy.h')
-rw-r--r-- | Source/WebKit2/PluginProcess/PluginControllerProxy.h | 92 |
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 |