2008-02-13 Rodney Dawes <dobey@wayofthemonkey.com>
authoraroben@apple.com <aroben@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 13 Feb 2008 17:28:37 +0000 (17:28 +0000)
committeraroben@apple.com <aroben@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 13 Feb 2008 17:28:37 +0000 (17:28 +0000)
Fix Bug 17220: Illogical dependency between PluginView and PluginDatabase

WebCore:

        Fix Bug 17220: Illogical dependency between PluginView and
        PluginDatabase

        <http://bugs.webkit.org/show_bug.cgi?id=17220>

        Reviewed by Adam and Darin.

        Rename PluginDatabase::createPluginView to PluginView::create, to make
        the illogical dependency between the two, logical
        Make PluginDatabase::findPlugin a public method
        Update the includes in PluginView and PluginDatabase for the change

        * plugins/PluginDatabase.h:
        * plugins/PluginView.h:
        * plugins/win/PluginDatabaseWin.cpp:
        * plugins/win/PluginViewWin.cpp:

WebKit/win:

        Fix Bug 17220: Illogical dependency between PluginView and
        PluginDatabase

        <http://bugs.webkit.org/show_bug.cgi?id=17220>

        Reviewed by Adam and Darin.

        Update for the rename of PluginDatabase::createPluginView
        to PluginView::create

        * WebFrame.cpp:

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

WebCore/ChangeLog
WebCore/plugins/PluginDatabase.h
WebCore/plugins/PluginView.h
WebCore/plugins/win/PluginDatabaseWin.cpp
WebCore/plugins/win/PluginViewWin.cpp
WebKit/win/ChangeLog
WebKit/win/WebFrame.cpp

index e4e6abe2416afd712fc010eb48d87769b55bc2c6..f86a83bfe658821b2b2598c081d95ea63ee79f33 100644 (file)
@@ -1,3 +1,22 @@
+2008-02-13  Rodney Dawes  <dobey@wayofthemonkey.com>
+
+        Fix Bug 17220: Illogical dependency between PluginView and
+        PluginDatabase
+        
+        <http://bugs.webkit.org/show_bug.cgi?id=17220>
+
+        Reviewed by Adam and Darin.
+
+        Rename PluginDatabase::createPluginView to PluginView::create, to make
+        the illogical dependency between the two, logical
+        Make PluginDatabase::findPlugin a public method
+        Update the includes in PluginView and PluginDatabase for the change
+
+        * plugins/PluginDatabase.h:
+        * plugins/PluginView.h:
+        * plugins/win/PluginDatabaseWin.cpp:
+        * plugins/win/PluginViewWin.cpp:
+
 2008-02-13  Adam Roben  <aroben@apple.com>
 
         Build fix
index 7f56da4a6ac61600a2baed298a7df490ed32963b..7544e47364d0702367e736188f840fa95b4a72b7 100644 (file)
@@ -46,17 +46,17 @@ namespace WebCore {
     class PluginDatabase {
     public:
         static PluginDatabase* installedPlugins();
-        PluginView* createPluginView(Frame* parentFrame, const IntSize&, Element* element, const KURL& url, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually);
 
         bool refresh();
         Vector<PluginPackage*> plugins() const;
         bool isMIMETypeRegistered(const String& mimeType);
         void addExtraPluginPath(const String&);
+
+        PluginPackage* findPlugin(const KURL&, String& mimeType);
     private:
         void setPluginPaths(const Vector<String>& paths) { m_pluginPaths = paths; }
         PluginSet getPluginsInPaths() const;
 
-        PluginPackage* findPlugin(const KURL& url, String& mimeType);
         PluginPackage* pluginForMIMEType(const String& mimeType);
         String MIMETypeForExtension(const String& extension) const;
 
index e423e8ccdf8f16c29d5f4963b4a17cc0b1741eb5..28b5d97829ffee0811164b17fbc4ad201f40b363 100644 (file)
@@ -76,7 +76,7 @@ namespace WebCore {
     friend static LRESULT CALLBACK PluginViewWndProc(HWND, UINT, WPARAM, LPARAM);
 
     public:
-        PluginView(Frame* parentFrame, const IntSize&, PluginPackage* plugin, Element*, const KURL&, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually);
+        static PluginView* create(Frame* parentFrame, const IntSize&, Element*, const KURL&, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually);
         virtual ~PluginView();
 
         PluginPackage* plugin() const { return m_plugin.get(); }
@@ -138,6 +138,8 @@ namespace WebCore {
         static bool isCallingPlugin();
 
     private:
+        PluginView(Frame* parentFrame, const IntSize&, PluginPackage*, Element*, const KURL&, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually);
+
         void setParameters(const Vector<String>& paramNames, const Vector<String>& paramValues);
         void init();
         bool start();
index be8a2534bec44bec965376584f64ad28738db896..35047f97f306acfea6e16fd12a6a9eb5d512df76 100644 (file)
@@ -26,9 +26,9 @@
 #include "config.h"
 #include "PluginDatabase.h"
 
-#include "PluginPackage.h"
-#include "PluginView.h"
+#include "KURL.h"
 #include "Frame.h"
+#include "PluginPackage.h"
 #include <windows.h>
 #include <shlwapi.h>
 
@@ -521,20 +521,4 @@ PluginPackage* PluginDatabase::findPlugin(const KURL& url, String& mimeType)
     return plugin;
 }
 
-PluginView* PluginDatabase::createPluginView(Frame* parentFrame, const IntSize& size, Element* element, const KURL& url, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually)
-{
-    // if we fail to find a plugin for this MIME type, findPlugin will search for
-    // a plugin by the file extension and update the MIME type, so pass a mutable String
-    String mimeTypeCopy = mimeType;
-    PluginPackage* plugin = findPlugin(url, mimeTypeCopy);
-    
-    // No plugin was found, try refreshing the database and searching again
-    if (!plugin && refresh()) {
-        mimeTypeCopy = mimeType;
-        plugin = findPlugin(url, mimeTypeCopy);
-    }
-        
-    return new PluginView(parentFrame, size, plugin, element, url, paramNames, paramValues, mimeTypeCopy, loadManually);
-}
-
 }
index 403610183d4b0ae4a92c0aa3f41fd1282f91b31f..5b1727c25c4547092513be68e1a74eba23f79d42 100644 (file)
@@ -51,6 +51,7 @@
 #include "kjs_binding.h"
 #include "kjs_proxy.h"
 #include "kjs_window.h"
+#include "PluginDatabase.h"
 #include "PluginDebug.h"
 #include "PluginPackage.h"
 #include "npruntime_impl.h"
@@ -1700,4 +1701,20 @@ bool PluginView::isCallingPlugin()
     return s_callingPlugin > 0;
 }
 
+PluginView* PluginView::create(Frame* parentFrame, const IntSize& size, Element* element, const KURL& url, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually)
+{
+    // if we fail to find a plugin for this MIME type, findPlugin will search for
+    // a plugin by the file extension and update the MIME type, so pass a mutable String
+    String mimeTypeCopy = mimeType;
+    PluginPackage* plugin = PluginDatabase::installedPlugins()->findPlugin(url, mimeTypeCopy);
+
+    // No plugin was found, try refreshing the database and searching again
+    if (!plugin && PluginDatabase::installedPlugins()->refresh()) {
+        mimeTypeCopy = mimeType;
+        plugin = PluginDatabase::installedPlugins()->findPlugin(url, mimeTypeCopy);
+    }
+
+    return new PluginView(parentFrame, size, plugin, element, url, paramNames, paramValues, mimeTypeCopy, loadManually);
+}
+
 } // namespace WebCore
index 1956578f7e6ca940a392ba165d4932a7da23e492..34e4a2b8292e9d5e10666d733d5b93d54e5af8b1 100644 (file)
@@ -1,3 +1,17 @@
+2008-02-13  Rodney Dawes  <dobey@wayofthemonkey.com>
+
+        Fix Bug 17220: Illogical dependency between PluginView and
+        PluginDatabase
+        
+        <http://bugs.webkit.org/show_bug.cgi?id=17220>
+
+        Reviewed by Adam and Darin.
+
+        Update for the rename of PluginDatabase::createPluginView
+        to PluginView::create
+
+        * WebFrame.cpp:
+
 2008-02-13  Adam Roben  <aroben@apple.com>
 
         Windows build fix
         (WebCore::imageTitle):
         Add stub.
         
+
 2008-02-07  Ada Chan  <adachan@apple.com>
 
         <rdar://problem/5292433> certificate authentication support broken in Safari 3.0
index 51a2a4e52759db7a8b26639a310c7b1b714cbf73..e06c388b44dd02b6a0c7180e7d60ae4c72dc288b 100644 (file)
@@ -2333,7 +2333,7 @@ PassRefPtr<Frame> WebFrame::createFrame(const KURL& url, const String& name, HTM
 
 Widget* WebFrame::createPlugin(const IntSize& pluginSize, Element* element, const KURL& url, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually)
 {
-    PluginView* pluginView = PluginDatabase::installedPlugins()->createPluginView(core(this), pluginSize, element, url, paramNames, paramValues, mimeType, loadManually);
+    PluginView* pluginView = PluginView::create(core(this), pluginSize, element, url, paramNames, paramValues, mimeType, loadManually);
 
     if (pluginView->status() == PluginStatusLoadedSuccessfully)
         return pluginView;
@@ -2403,8 +2403,7 @@ void WebFrame::redirectDataToPlugin(Widget* pluginWidget)
 
 Widget* WebFrame::createJavaAppletWidget(const IntSize& pluginSize, Element* element, const KURL& /*baseURL*/, const Vector<String>& paramNames, const Vector<String>& paramValues)
 {
-    PluginView* pluginView = PluginDatabase::installedPlugins()->
-        createPluginView(core(this), pluginSize, element, KURL(), paramNames, paramValues, "application/x-java-applet", false);
+    PluginView* pluginView = PluginView::create(core(this), pluginSize, element, KURL(), paramNames, paramValues, "application/x-java-applet", false);
 
     // Check if the plugin can be loaded successfully
     if (pluginView->plugin() && pluginView->plugin()->load())