summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authordarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-24 19:19:16 +0000
committerdarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-24 19:19:16 +0000
commit1051ccbdf5ebcaaa967db454393b85ed84fd36fb (patch)
treec4e67e3470f15be5a2472628537967e10a62d6aa /webkit
parent7ef2e9d25fa0e7fbdc71def514da476f5756751b (diff)
downloadchromium_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.cc24
-rw-r--r--webkit/port/bindings/js/ScriptControllerChromium.cpp17
-rw-r--r--webkit/port/bindings/v8/ScriptController.cpp28
-rw-r--r--webkit/port/bindings/v8/v8_custom.cpp5
-rw-r--r--webkit/port/bridge/chromium/PluginsChromium.cpp2
-rw-r--r--webkit/port/platform/chromium/ChromiumBridge.h6
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();