Out-of-process plug-ins should support asynchronous initialization
[WebKit-https.git] / Source / WebKit2 / WebProcess / Plugins / PluginController.h
index 42c2959..6682ba0 100644 (file)
@@ -138,6 +138,15 @@ public:
 
     // Returns whether private browsing is enabled.
     virtual bool isPrivateBrowsingEnabled() = 0;
+    
+    // Returns whether or not asynchronous plugin initialization is enabled.
+    virtual bool asynchronousPluginInitializationEnabled() const { return false; }
+    
+    // Returns whether or not asynchronous plugin initialization should be attempted for all plugins.
+    virtual bool asynchronousPluginInitializationEnabledForAllPlugins() const { return false; }
+    
+    // Returns the articifical plugin delay to use for testing of asynchronous plugin initialization.
+    virtual bool artificialPluginInitializationDelayEnabled() const { return false; }
 
     // Increments a counter that prevents the plug-in from being destroyed.
     virtual void protectPluginFromDestruction() = 0;
@@ -151,6 +160,12 @@ public:
     virtual void windowedPluginGeometryDidChange(const WebCore::IntRect& frameRect, const WebCore::IntRect& clipRect, uint64_t windowID) = 0;
 #endif
 
+    // Called when the a plug-in instance is successfully initialized, either synchronously or asynchronously.
+    virtual void didInitializePlugin() = 0;
+    
+    // Called when the a plug-in instance fails to initialized, either synchronously or asynchronously.
+    virtual void didFailToInitializePlugin() = 0;
+
     // Helper class for delaying destruction of a plug-in.
     class PluginDestructionProtector {
     public: