Stop including PluginView.h from cross platform WebCore code
authorandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 6 Jan 2015 01:23:42 +0000 (01:23 +0000)
committerandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 6 Jan 2015 01:23:42 +0000 (01:23 +0000)
https://bugs.webkit.org/show_bug.cgi?id=140105

Reviewed by Andreas Kling.

Instead, include PluginViewBase.h. This will allow us to move the old plug-in implementation to WebKit.

* bindings/js/ScriptController.cpp:
* bridge/NP_jsobject.cpp:
(_NPN_Evaluate):
* inspector/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::setJavaScriptPaused):
* loader/FrameLoaderClient.h:
* page/Page.cpp:
* plugins/PluginViewBase.h:
(WebCore::PluginViewBase::setJavaScriptPaused):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@177941 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/bindings/js/ScriptController.cpp
Source/WebCore/bridge/NP_jsobject.cpp
Source/WebCore/inspector/PageScriptDebugServer.cpp
Source/WebCore/loader/FrameLoaderClient.h
Source/WebCore/page/Page.cpp
Source/WebCore/plugins/PluginViewBase.h

index d9755ee..1ca4513 100644 (file)
@@ -1,5 +1,24 @@
 2015-01-05  Anders Carlsson  <andersca@apple.com>
 
+        Stop including PluginView.h from cross platform WebCore code
+        https://bugs.webkit.org/show_bug.cgi?id=140105
+
+        Reviewed by Andreas Kling.
+
+        Instead, include PluginViewBase.h. This will allow us to move the old plug-in implementation to WebKit.
+
+        * bindings/js/ScriptController.cpp:
+        * bridge/NP_jsobject.cpp:
+        (_NPN_Evaluate):
+        * inspector/PageScriptDebugServer.cpp:
+        (WebCore::PageScriptDebugServer::setJavaScriptPaused):
+        * loader/FrameLoaderClient.h:
+        * page/Page.cpp:
+        * plugins/PluginViewBase.h:
+        (WebCore::PluginViewBase::setJavaScriptPaused):
+
+2015-01-05  Anders Carlsson  <andersca@apple.com>
+
         Introduce a per-page database provider class
         https://bugs.webkit.org/show_bug.cgi?id=140102
 
index 0474336..2d4fe10 100644 (file)
@@ -39,7 +39,6 @@
 #include "Page.h"
 #include "PageConsoleClient.h"
 #include "PageGroup.h"
-#include "PluginView.h"
 #include "ScriptSourceCode.h"
 #include "ScriptableDocumentParser.h"
 #include "Settings.h"
@@ -408,10 +407,7 @@ NPObject* ScriptController::createScriptObjectForPluginElement(HTMLPlugInElement
 #if !PLATFORM(COCOA)
 PassRefPtr<JSC::Bindings::Instance> ScriptController::createScriptInstanceForWidget(Widget* widget)
 {
-    if (!widget->isPluginView())
-        return 0;
-
-    return toPluginView(widget)->bindingInstance();
+    return nullptr;
 }
 #endif
 
index ca2e62d..9001013 100644 (file)
@@ -29,7 +29,6 @@
 
 #include "NP_jsobject.h"
 
-#include "PluginView.h"
 #include "c_utility.h"
 #include "c_instance.h"
 #include "IdentifierRep.h"
@@ -252,7 +251,7 @@ bool _NPN_Invoke(NPP npp, NPObject* o, NPIdentifier methodName, const NPVariant*
     return true;
 }
 
-bool _NPN_Evaluate(NPP instance, NPObject* o, NPString* s, NPVariant* variant)
+bool _NPN_Evaluate(NPP, NPObject* o, NPString* s, NPVariant* variant)
 {
     if (o->_class == NPScriptObjectClass) {
         JavaScriptObject* obj = reinterpret_cast<JavaScriptObject*>(o); 
@@ -261,10 +260,6 @@ bool _NPN_Evaluate(NPP instance, NPObject* o, NPString* s, NPVariant* variant)
         if (!rootObject || !rootObject->isValid())
             return false;
 
-        // There is a crash in Flash when evaluating a script that destroys the
-        // PluginView, so we destroy it asynchronously.
-        PluginView::keepAlive(instance);
-
         ExecState* exec = rootObject->globalObject()->globalExec();
         JSLockHolder lock(exec);
         String scriptString = convertNPStringToUTF16(s);
index e589a4d..1d57030 100644 (file)
 #include "MainFrame.h"
 #include "Page.h"
 #include "PageGroup.h"
-#include "PluginView.h"
+#include "PluginViewBase.h"
 #include "ScriptController.h"
 #include "Timer.h"
-#include "Widget.h"
 #include <runtime/JSLock.h>
 #include <wtf/MainThread.h>
 #include <wtf/StdLibExtras.h>
@@ -192,11 +191,11 @@ void PageScriptDebugServer::setJavaScriptPaused(FrameView* view, bool paused)
     if (!view)
         return;
 
-    for (auto it = view->children().begin(), end = view->children().end(); it != end; ++it) {
-        Widget* widget = (*it).get();
-        if (!widget->isPluginView())
+    for (auto& child : view->children()) {
+        if (!is<PluginViewBase>(*child))
             continue;
-        toPluginView(widget)->setJavaScriptPaused(paused);
+
+        downcast<PluginViewBase>(*child).setJavaScriptPaused(paused);
     }
 }
 
index fb25473..5406ef1 100644 (file)
@@ -79,7 +79,7 @@ namespace WebCore {
     class NavigationAction;
     class Page;
     class ProtectionSpace;
-    class PluginView;
+    class PluginViewBase;
     class PolicyChecker;
     class ResourceError;
     class ResourceHandle;
@@ -272,7 +272,7 @@ namespace WebCore {
 
         virtual PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const URL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues) = 0;
 
-        virtual void dispatchDidFailToStartPlugin(const PluginView*) const { }
+        virtual void dispatchDidFailToStartPlugin(const PluginViewBase*) const { }
 
         virtual ObjectContentType objectContentType(const URL&, const String& mimeType, bool shouldPreferPlugInsForImages) = 0;
         virtual String overrideMediaType() const = 0;
index 33c60cb..4513169 100644 (file)
@@ -66,7 +66,7 @@
 #include "PageThrottler.h"
 #include "PlugInClient.h"
 #include "PluginData.h"
-#include "PluginView.h"
+#include "PluginViewBase.h"
 #include "PointerLockController.h"
 #include "ProgressTracker.h"
 #include "RenderLayerCompositor.h"
index 2483caa..be6ce30 100644 (file)
@@ -77,6 +77,8 @@ public:
 
     virtual AudioHardwareActivityType audioHardwareActivity() const { return AudioHardwareActivityType::Unknown; }
 
+    virtual void setJavaScriptPaused(bool) { }
+
 protected:
     explicit PluginViewBase(PlatformWidget widget = 0) : Widget(widget) { }
 };