diff options
author | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-11-24 19:19:16 +0000 |
---|---|---|
committer | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-11-24 19:19:16 +0000 |
commit | 1051ccbdf5ebcaaa967db454393b85ed84fd36fb (patch) | |
tree | c4e67e3470f15be5a2472628537967e10a62d6aa /webkit | |
parent | 7ef2e9d25fa0e7fbdc71def514da476f5756751b (diff) | |
download | chromium_src-1051ccbdf5ebcaaa967db454393b85ed84fd36fb.zip chromium_src-1051ccbdf5ebcaaa967db454393b85ed84fd36fb.tar.gz chromium_src-1051ccbdf5ebcaaa967db454393b85ed84fd36fb.tar.bz2 |
Bridge calls to get the root NPObject from a WebPluginContainer.
I also did a little cleanup in getPlugins. I found that there was a
WebPluginInfo struct declared within the WebCore namespace that was causing us
to need '::' in front of WebPluginInfo. I killed the erroneous declaration so
that the rest could be cleaned up. I also renamed getPlugins to plugins since
I think that is more consistent with how Apple names these kinds of methods.
There was some old, unused USE(JSC) code in ScriptController.cpp that I deleted.
R=erikkay
Review URL: http://codereview.chromium.org/12601
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5928 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r-- | webkit/glue/chromium_bridge_impl.cc | 24 | ||||
-rw-r--r-- | webkit/port/bindings/js/ScriptControllerChromium.cpp | 17 | ||||
-rw-r--r-- | webkit/port/bindings/v8/ScriptController.cpp | 28 | ||||
-rw-r--r-- | webkit/port/bindings/v8/v8_custom.cpp | 5 | ||||
-rw-r--r-- | webkit/port/bridge/chromium/PluginsChromium.cpp | 2 | ||||
-rw-r--r-- | webkit/port/platform/chromium/ChromiumBridge.h | 6 |
6 files changed, 29 insertions, 53 deletions
diff --git a/webkit/glue/chromium_bridge_impl.cc b/webkit/glue/chromium_bridge_impl.cc index 9745a76..1115d3d 100644 --- a/webkit/glue/chromium_bridge_impl.cc +++ b/webkit/glue/chromium_bridge_impl.cc @@ -42,7 +42,7 @@ #include "webkit/glue/scoped_clipboard_writer_glue.h" #include "webkit/glue/webcursor.h" #include "webkit/glue/webkit_glue.h" -#include "webkit/glue/webplugin.h" +#include "webkit/glue/webplugin_impl.h" #include "webkit/glue/webkit_resources.h" #include "webkit/glue/webview_impl.h" #include "webkit/glue/webview_delegate.h" @@ -285,19 +285,19 @@ String ChromiumBridge::preferredExtensionForMIMEType(const String& mime_type) { // Plugin --------------------------------------------------------------------- -bool ChromiumBridge::getPlugins(bool refresh, Vector<PluginInfo*>* plugins) { - std::vector< ::WebPluginInfo> glue_plugins; +bool ChromiumBridge::plugins(bool refresh, Vector<PluginInfo*>* results) { + std::vector<WebPluginInfo> glue_plugins; if (!webkit_glue::GetPlugins(refresh, &glue_plugins)) return false; for (size_t i = 0; i < glue_plugins.size(); ++i) { - WebCore::PluginInfo* rv = new WebCore::PluginInfo; - const ::WebPluginInfo& plugin = glue_plugins[i]; + PluginInfo* rv = new PluginInfo; + const WebPluginInfo& plugin = glue_plugins[i]; rv->name = webkit_glue::StdWStringToString(plugin.name); rv->desc = webkit_glue::StdWStringToString(plugin.desc); rv->file = webkit_glue::StdWStringToString( file_util::GetFilenameFromPath(plugin.file)); for (size_t j = 0; j < plugin.mime_types.size(); ++ j) { - WebCore::MimeClassInfo* new_mime = new WebCore::MimeClassInfo(); + MimeClassInfo* new_mime = new MimeClassInfo(); const WebPluginMimeType& mime_type = plugin.mime_types[j]; new_mime->desc = webkit_glue::StdWStringToString(mime_type.description); @@ -313,11 +313,21 @@ bool ChromiumBridge::getPlugins(bool refresh, Vector<PluginInfo*>* plugins) { new_mime->plugin = rv; rv->mimes.append(new_mime); } - plugins->append(rv); + results->append(rv); } return true; } +NPObject* ChromiumBridge::pluginScriptableObject(Widget* widget) { + if (!widget) + return NULL; + + // NOTE: We have to trust that the widget passed to us here is a + // WebPluginImpl. There isn't a way to dynamically verify it, since the + // derived class (Widget) has no identifier. + return static_cast<WebPluginContainer*>(widget)->GetPluginScriptableObject(); +} + // Protocol ------------------------------------------------------------------- String ChromiumBridge::uiResourceProtocol() { diff --git a/webkit/port/bindings/js/ScriptControllerChromium.cpp b/webkit/port/bindings/js/ScriptControllerChromium.cpp index cb6ed97..3339a1b 100644 --- a/webkit/port/bindings/js/ScriptControllerChromium.cpp +++ b/webkit/port/bindings/js/ScriptControllerChromium.cpp @@ -32,9 +32,7 @@ #include "bindings/npruntime.h" #include "c_instance.h" - -#undef LOG // glue defines its own LOG macro -#include "webkit/glue/webplugin_impl.h" +#include "ChromiumBridge.h" namespace WebCore { @@ -45,21 +43,14 @@ JSInstanceHandle ScriptController::createScriptInstanceForWidget(Widget* widget) if (widget->isFrameView()) return JSInstanceHolder::EmptyInstance(); - // Note: We have to trust that the widget passed to us here - // is a WebPluginImpl. There isn't a way to dynamically verify - // it, since the derived class (Widget) has no identifier. - WebPluginContainer* container = static_cast<WebPluginContainer*>(widget); - if (!container) - return JSInstanceHolder::EmptyInstance(); - - NPObject* npObject = container->GetPluginScriptableObject(); + NPObject* npObject = ChromiumBridge::pluginScriptableObject(widget); if (!npObject) return JSInstanceHolder::EmptyInstance(); // Register 'widget' with the frame so that we can teardown // subobjects when the container goes away. RefPtr<JSC::Bindings::RootObject> root = createRootObject(widget); - RefPtr<JSC::Bindings::Instance> instance = + RefPtr<JSC::Bindings::Instance> instance = JSC::Bindings::CInstance::create(npObject, root.release()); // GetPluginScriptableObject returns a retained NPObject. // The caller is expected to release it. @@ -67,4 +58,4 @@ JSInstanceHandle ScriptController::createScriptInstanceForWidget(Widget* widget) return instance.release(); } -} // namespace WebCpre +} // namespace WebCore diff --git a/webkit/port/bindings/v8/ScriptController.cpp b/webkit/port/bindings/v8/ScriptController.cpp index bf4b029..b9ab314 100644 --- a/webkit/port/bindings/v8/ScriptController.cpp +++ b/webkit/port/bindings/v8/ScriptController.cpp @@ -30,6 +30,7 @@ #include "config.h" #include "ScriptController.h" +#include "ChromiumBridge.h" #include "CString.h" #include "Document.h" #include "DOMWindow.h" @@ -48,10 +49,6 @@ #include "v8_binding.h" #include "v8_npobject.h" -//TODO(eseidel): We should remove this glue dependency -#undef LOG // glue defines its own LOG macro -#include "webkit/glue/webplugin_impl.h" - NPRuntimeFunctions npruntime_functions = { NPN_GetStringIdentifier, NPN_GetStringIdentifiers, @@ -408,30 +405,10 @@ JSInstanceHandle ScriptController::createScriptInstanceForWidget(Widget* widget) if (widget->isFrameView()) return JSInstanceHolder::EmptyInstance(); - // Note: We have to trust that the widget passed to us here - // is a WebPluginImpl. There isn't a way to dynamically verify - // it, since the derived class (Widget) has no identifier. - WebPluginContainer* container = static_cast<WebPluginContainer*>(widget); - if (!container) - return JSInstanceHolder::EmptyInstance(); - - NPObject* npObject = container->GetPluginScriptableObject(); + NPObject* npObject = ChromiumBridge::pluginScriptableObject(widget); if (!npObject) return JSInstanceHolder::EmptyInstance(); -#if USE(JSC) - // Register 'widget' with the frame so that we can teardown - // subobjects when the container goes away. - RefPtr<KJS::Bindings::RootObject> root = script()->createRootObject(widget); - KJS::Bindings::Instance* instance = - KJS::Bindings::Instance::createBindingForLanguageInstance( - KJS::Bindings::Instance::CLanguage, npObject, - root.release()); - // GetPluginScriptableObject returns a retained NPObject. - // The caller is expected to release it. - NPN_ReleaseObject(npObject); - return instance; -#elif USE(V8) // Frame Memory Management for NPObjects // ------------------------------------- // NPObjects are treated differently than other objects wrapped by JS. @@ -464,7 +441,6 @@ JSInstanceHandle ScriptController::createScriptInstanceForWidget(Widget* widget) JSInstance instance = wrapper; return instance; -#endif } void ScriptController::cleanupScriptObjectsForPlugin(void* nativeHandle) diff --git a/webkit/port/bindings/v8/v8_custom.cpp b/webkit/port/bindings/v8/v8_custom.cpp index 57036bf..3f001ec 100644 --- a/webkit/port/bindings/v8/v8_custom.cpp +++ b/webkit/port/bindings/v8/v8_custom.cpp @@ -68,6 +68,7 @@ #include "FloatRect.h" #include "Frame.h" #include "FrameLoader.h" +#include "FrameLoadRequest.h" #include "FrameTree.h" #include "FrameView.h" #include "HTMLBodyElement.h" @@ -119,10 +120,6 @@ #include "Navigator.h" -#undef LOG - -#include "webkit/glue/webplugin_impl.h" - // Horizontal and vertical offset, from the parent content area, around newly // opened popups that don't specify a location. static const int kPopupTilePixels = 10; diff --git a/webkit/port/bridge/chromium/PluginsChromium.cpp b/webkit/port/bridge/chromium/PluginsChromium.cpp index 20c2ce0..86da906 100644 --- a/webkit/port/bridge/chromium/PluginsChromium.cpp +++ b/webkit/port/bridge/chromium/PluginsChromium.cpp @@ -67,7 +67,7 @@ void LoadPlugins(bool refresh) g_loaded_plugins = true; // these are leaked at shutdown - ChromiumBridge::getPlugins(refresh, &g_plugins); + ChromiumBridge::plugins(refresh, &g_plugins); } // Returns a PluginInfo pointer. Caller is responsible for diff --git a/webkit/port/platform/chromium/ChromiumBridge.h b/webkit/port/platform/chromium/ChromiumBridge.h index cde6508..4e4e5b1 100644 --- a/webkit/port/platform/chromium/ChromiumBridge.h +++ b/webkit/port/platform/chromium/ChromiumBridge.h @@ -38,6 +38,8 @@ class NativeImageSkia; +typedef struct NPObject NPObject; + #if PLATFORM(WIN_OS) typedef struct HFONT__* HFONT; #endif @@ -50,7 +52,6 @@ namespace WebCore { class IntRect; class KURL; class String; - class WebPluginInfo; class Widget; struct PluginInfo; @@ -101,7 +102,8 @@ namespace WebCore { static String preferredExtensionForMIMEType(const String& mime_type); // Plugin ------------------------------------------------------------- - static bool getPlugins(bool refresh, Vector<PluginInfo*>* plugins); + static bool plugins(bool refresh, Vector<PluginInfo*>* plugins); + static NPObject* pluginScriptableObject(Widget* widget); // Protocol ----------------------------------------------------------- static String uiResourceProtocol(); |