summaryrefslogtreecommitdiffstats
path: root/chrome/renderer
diff options
context:
space:
mode:
authoraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-01 04:38:24 +0000
committeraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-01 04:38:24 +0000
commit3fda6cda9e170c4f75c8c15cc1082b4f6e42cfdb (patch)
tree1041d6b8e4055ac5fab8d09db216048b44d58f0c /chrome/renderer
parent014010e750ac79058bd94b03caf9a6f7a5166e99 (diff)
downloadchromium_src-3fda6cda9e170c4f75c8c15cc1082b4f6e42cfdb.zip
chromium_src-3fda6cda9e170c4f75c8c15cc1082b4f6e42cfdb.tar.gz
chromium_src-3fda6cda9e170c4f75c8c15cc1082b4f6e42cfdb.tar.bz2
Rename ExtensionBase to ChromeV8Extension and simplify.
Remove JsOnlyV8Extensions since we can just create instances of ChromeV8Extension where necessary. Instead of using made-up names like "chrome/extensionprocessbindings", standardize on the path to the file as the name of an extension. Review URL: http://codereview.chromium.org/8100014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103624 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer')
-rw-r--r--chrome/renderer/automation/dom_automation_v8_extension.cc19
-rw-r--r--chrome/renderer/automation/dom_automation_v8_extension.h18
-rw-r--r--chrome/renderer/chrome_content_renderer_client.cc5
-rw-r--r--chrome/renderer/extensions/chrome_v8_extension.cc (renamed from chrome/renderer/extensions/extension_base.cc)38
-rw-r--r--chrome/renderer/extensions/chrome_v8_extension.h (renamed from chrome/renderer/extensions/extension_base.h)33
-rw-r--r--chrome/renderer/extensions/event_bindings.cc15
-rw-r--r--chrome/renderer/extensions/event_bindings.h2
-rw-r--r--chrome/renderer/extensions/extension_api_json_validity_unittest.cc5
-rw-r--r--chrome/renderer/extensions/extension_bindings_context.cc4
-rw-r--r--chrome/renderer/extensions/extension_dispatcher.cc11
-rw-r--r--chrome/renderer/extensions/extension_process_bindings.cc26
-rw-r--r--chrome/renderer/extensions/js_only_v8_extensions.cc27
-rw-r--r--chrome/renderer/extensions/js_only_v8_extensions.h28
-rw-r--r--chrome/renderer/extensions/renderer_extension_bindings.cc18
-rw-r--r--chrome/renderer/extensions/renderer_extension_bindings.h3
15 files changed, 88 insertions, 164 deletions
diff --git a/chrome/renderer/automation/dom_automation_v8_extension.cc b/chrome/renderer/automation/dom_automation_v8_extension.cc
deleted file mode 100644
index 7794b19..0000000
--- a/chrome/renderer/automation/dom_automation_v8_extension.cc
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/renderer/automation/dom_automation_v8_extension.h"
-
-#include "chrome/renderer/extensions/extension_base.h"
-#include "grit/renderer_resources.h"
-#include "v8/include/v8.h"
-
-const char kName[] = "chrome/domautomation";
-
-v8::Extension* DomAutomationV8Extension::Get() {
- static v8::Extension* extension =
- new v8::Extension(
- kName, ExtensionBase::GetStringResource(IDR_DOM_AUTOMATION_JS), 0,
- NULL);
- return extension;
-}
diff --git a/chrome/renderer/automation/dom_automation_v8_extension.h b/chrome/renderer/automation/dom_automation_v8_extension.h
deleted file mode 100644
index ddffd04..0000000
--- a/chrome/renderer/automation/dom_automation_v8_extension.h
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_RENDERER_AUTOMATION_DOM_AUTOMATION_V8_EXTENSION_H_
-#define CHROME_RENDERER_AUTOMATION_DOM_AUTOMATION_V8_EXTENSION_H_
-#pragma once
-
-namespace v8 {
-class Extension;
-}
-
-class DomAutomationV8Extension {
- public:
- static v8::Extension* Get();
-};
-
-#endif // CHROME_RENDERER_AUTOMATION_DOM_AUTOMATION_V8_EXTENSION_H_
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
index 88d41cf..39a108a 100644
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -26,13 +26,13 @@
#include "chrome/renderer/autofill/autofill_agent.h"
#include "chrome/renderer/autofill/password_autofill_manager.h"
#include "chrome/renderer/automation/automation_renderer_helper.h"
-#include "chrome/renderer/automation/dom_automation_v8_extension.h"
#include "chrome/renderer/benchmarking_extension.h"
#include "chrome/renderer/blocked_plugin.h"
#include "chrome/renderer/chrome_ppapi_interfaces.h"
#include "chrome/renderer/chrome_render_process_observer.h"
#include "chrome/renderer/chrome_render_view_observer.h"
#include "chrome/renderer/content_settings_observer.h"
+#include "chrome/renderer/extensions/chrome_v8_extension.h"
#include "chrome/renderer/extensions/extension_bindings_context.h"
#include "chrome/renderer/extensions/extension_dispatcher.h"
#include "chrome/renderer/extensions/extension_helper.h"
@@ -181,7 +181,8 @@ void ChromeContentRendererClient::RenderThreadStarted() {
if (CommandLine::ForCurrentProcess()->HasSwitch(
switches::kDomAutomationController)) {
- thread->RegisterExtension(DomAutomationV8Extension::Get());
+ thread->RegisterExtension(new ChromeV8Extension(
+ "dom_automation.js", IDR_DOM_AUTOMATION_JS, NULL));
}
if (CommandLine::ForCurrentProcess()->HasSwitch(
diff --git a/chrome/renderer/extensions/extension_base.cc b/chrome/renderer/extensions/chrome_v8_extension.cc
index d72bf50..e4e254a 100644
--- a/chrome/renderer/extensions/extension_base.cc
+++ b/chrome/renderer/extensions/chrome_v8_extension.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/renderer/extensions/extension_base.h"
+#include "chrome/renderer/extensions/chrome_v8_extension.h"
#include "base/logging.h"
#include "base/lazy_instance.h"
@@ -35,7 +35,7 @@ static base::LazyInstance<StringMap> g_string_map(base::LINKER_INITIALIZED);
} // namespace
// static
-const char* ExtensionBase::GetStringResource(int resource_id) {
+const char* ChromeV8Extension::GetStringResource(int resource_id) {
StringMap* strings = g_string_map.Pointer();
StringMap::iterator it = strings->find(resource_id);
if (it == strings->end()) {
@@ -48,7 +48,7 @@ const char* ExtensionBase::GetStringResource(int resource_id) {
}
// static
-RenderView* ExtensionBase::GetCurrentRenderView() {
+RenderView* ChromeV8Extension::GetCurrentRenderView() {
WebFrame* webframe = WebFrame::frameForCurrentContext();
DCHECK(webframe) << "RetrieveCurrentFrame called when not in a V8 context.";
if (!webframe)
@@ -63,7 +63,27 @@ RenderView* ExtensionBase::GetCurrentRenderView() {
return renderview;
}
-const Extension* ExtensionBase::GetExtensionForCurrentRenderView() const {
+ChromeV8Extension::ChromeV8Extension(const char* name, int resource_id,
+ ExtensionDispatcher* extension_dispatcher)
+ : v8::Extension(name,
+ GetStringResource(resource_id),
+ 0, // num dependencies
+ NULL), // dependencies array
+ extension_dispatcher_(extension_dispatcher) {
+}
+
+ChromeV8Extension::ChromeV8Extension(const char* name, int resource_id,
+ int dependency_count,
+ const char** dependencies,
+ ExtensionDispatcher* extension_dispatcher)
+ : v8::Extension(name,
+ GetStringResource(resource_id),
+ dependency_count,
+ dependencies),
+ extension_dispatcher_(extension_dispatcher) {
+}
+
+const Extension* ChromeV8Extension::GetExtensionForCurrentRenderView() const {
RenderView* renderview = GetCurrentRenderView();
if (!renderview)
return NULL; // this can happen as a tab is closing.
@@ -76,7 +96,7 @@ const Extension* ExtensionBase::GetExtensionForCurrentRenderView() const {
return extensions->GetByURL(url);
}
-bool ExtensionBase::CheckPermissionForCurrentRenderView(
+bool ChromeV8Extension::CheckPermissionForCurrentRenderView(
const std::string& function_name) const {
const ::Extension* extension = GetExtensionForCurrentRenderView();
if (extension &&
@@ -94,7 +114,7 @@ bool ExtensionBase::CheckPermissionForCurrentRenderView(
}
v8::Handle<v8::FunctionTemplate>
- ExtensionBase::GetNativeFunction(v8::Handle<v8::String> name) {
+ ChromeV8Extension::GetNativeFunction(v8::Handle<v8::String> name) {
if (name->Equals(v8::String::New("GetChromeHidden"))) {
return v8::FunctionTemplate::New(GetChromeHidden);
}
@@ -106,12 +126,12 @@ v8::Handle<v8::FunctionTemplate>
return v8::Handle<v8::FunctionTemplate>();
}
-v8::Handle<v8::Value> ExtensionBase::GetChromeHidden(
+v8::Handle<v8::Value> ChromeV8Extension::GetChromeHidden(
const v8::Arguments& args) {
return GetChromeHidden(v8::Context::GetCurrent());
}
-v8::Handle<v8::Value> ExtensionBase::GetChromeHidden(
+v8::Handle<v8::Value> ChromeV8Extension::GetChromeHidden(
const v8::Handle<v8::Context>& context) {
v8::Local<v8::Object> global = context->Global();
v8::Local<v8::Value> hidden = global->GetHiddenValue(
@@ -133,7 +153,7 @@ v8::Handle<v8::Value> ExtensionBase::GetChromeHidden(
return v8::Local<v8::Object>::Cast(hidden);
}
-v8::Handle<v8::Value> ExtensionBase::Print(const v8::Arguments& args) {
+v8::Handle<v8::Value> ChromeV8Extension::Print(const v8::Arguments& args) {
if (args.Length() < 1)
return v8::Undefined();
diff --git a/chrome/renderer/extensions/extension_base.h b/chrome/renderer/extensions/chrome_v8_extension.h
index 9e9efb1..d635a63 100644
--- a/chrome/renderer/extensions/extension_base.h
+++ b/chrome/renderer/extensions/chrome_v8_extension.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_RENDERER_EXTENSIONS_EXTENSION_BASE_H_
-#define CHROME_RENDERER_EXTENSIONS_EXTENSION_BASE_H_
+#ifndef CHROME_RENDERER_EXTENSIONS_CHROME_V8_EXTENSION_H_
+#define CHROME_RENDERER_EXTENSIONS_CHROME_V8_EXTENSION_H_
#pragma once
#include "base/logging.h"
@@ -21,18 +21,20 @@ class WebFrame;
// This is a base class for chrome extension bindings. Common features that
// are shared by different modules go here.
-class ExtensionBase : public v8::Extension {
+//
+// TODO(aa): Remove the extension-system specific bits of this and move to
+// renderer/, or even to renderer/bindings and use DEPS to enforce separation
+// from extension system.
+class ChromeV8Extension : public v8::Extension {
public:
- static const char* GetStringResource(int resource_id);
-
- ExtensionBase(const char* name,
- const char* source,
- int dep_count,
- const char** deps,
- ExtensionDispatcher* extension_dispatcher)
- : v8::Extension(name, source, dep_count, deps),
- extension_dispatcher_(extension_dispatcher) {
- }
+ ChromeV8Extension(const char* name,
+ int resource_id,
+ ExtensionDispatcher* extension_dispatcher);
+ ChromeV8Extension(const char* name,
+ int resource_id,
+ int dependency_count,
+ const char** dependencies,
+ ExtensionDispatcher* extension_dispatcher);
// Derived classes should call this at the end of their implementation in
// order to expose common native functions, like GetChromeHidden, to the
@@ -40,7 +42,6 @@ class ExtensionBase : public v8::Extension {
virtual v8::Handle<v8::FunctionTemplate>
GetNativeFunction(v8::Handle<v8::String> name);
- // TODO(jstritar): Used for testing http://crbug.com/91582. Remove when done.
ExtensionDispatcher* extension_dispatcher() { return extension_dispatcher_; }
// Returns a hidden variable for use by the bindings in the specified context
@@ -76,8 +77,10 @@ class ExtensionBase : public v8::Extension {
ExtensionDispatcher* extension_dispatcher_;
private:
+ static const char* GetStringResource(int resource_id);
+
// Helper to print from bindings javascript.
static v8::Handle<v8::Value> Print(const v8::Arguments& args);
};
-#endif // CHROME_RENDERER_EXTENSIONS_EXTENSION_BASE_H_
+#endif // CHROME_RENDERER_EXTENSIONS_CHROME_V8_EXTENSION_H_
diff --git a/chrome/renderer/extensions/event_bindings.cc b/chrome/renderer/extensions/event_bindings.cc
index ed65e3f..f4f9b66 100644
--- a/chrome/renderer/extensions/event_bindings.cc
+++ b/chrome/renderer/extensions/event_bindings.cc
@@ -12,12 +12,11 @@
#include "chrome/common/extensions/extension_messages.h"
#include "chrome/common/extensions/extension_set.h"
#include "chrome/common/url_constants.h"
+#include "chrome/renderer/extensions/chrome_v8_extension.h"
#include "chrome/renderer/extensions/event_bindings.h"
-#include "chrome/renderer/extensions/extension_base.h"
#include "chrome/renderer/extensions/extension_bindings_context.h"
#include "chrome/renderer/extensions/extension_dispatcher.h"
#include "chrome/renderer/extensions/extension_process_bindings.h"
-#include "chrome/renderer/extensions/js_only_v8_extensions.h"
#include "chrome/renderer/extensions/user_script_slave.h"
#include "content/renderer/render_thread.h"
#include "content/renderer/render_view.h"
@@ -57,12 +56,12 @@ static EventListenerCounts& GetListenerCounts(const std::string& extension_id) {
return g_singleton_data.Get().listener_counts_[extension_id];
}
-class ExtensionImpl : public ExtensionBase {
+class ExtensionImpl : public ChromeV8Extension {
public:
explicit ExtensionImpl(ExtensionDispatcher* dispatcher)
- : ExtensionBase(EventBindings::kName,
- GetStringResource(IDR_EVENT_BINDINGS_JS),
- 0, NULL, dispatcher) {
+ : ChromeV8Extension("extensions/event.js",
+ IDR_EVENT_BINDINGS_JS,
+ dispatcher) {
}
~ExtensionImpl() {}
@@ -75,7 +74,7 @@ class ExtensionImpl : public ExtensionBase {
} else if (name->Equals(v8::String::New("GetExternalFileEntry"))) {
return v8::FunctionTemplate::New(GetExternalFileEntry);
}
- return ExtensionBase::GetNativeFunction(name);
+ return ChromeV8Extension::GetNativeFunction(name);
}
// Attach an event name to an object.
@@ -165,8 +164,6 @@ class ExtensionImpl : public ExtensionBase {
} // namespace
-const char* EventBindings::kName = "chrome/EventBindings";
-
v8::Extension* EventBindings::Get(ExtensionDispatcher* dispatcher) {
static v8::Extension* extension = new ExtensionImpl(dispatcher);
return extension;
diff --git a/chrome/renderer/extensions/event_bindings.h b/chrome/renderer/extensions/event_bindings.h
index 98cbf39..42c9450 100644
--- a/chrome/renderer/extensions/event_bindings.h
+++ b/chrome/renderer/extensions/event_bindings.h
@@ -16,8 +16,6 @@ class Extension;
// This class deals with the javascript bindings related to Event objects.
class EventBindings {
public:
- static const char* kName; // The v8::Extension name, for dependencies.
-
static v8::Extension* Get(ExtensionDispatcher* dispatcher);
// Allow RenderThread to be mocked out. It would be better if
diff --git a/chrome/renderer/extensions/extension_api_json_validity_unittest.cc b/chrome/renderer/extensions/extension_api_json_validity_unittest.cc
index f382923..29de3d8 100644
--- a/chrome/renderer/extensions/extension_api_json_validity_unittest.cc
+++ b/chrome/renderer/extensions/extension_api_json_validity_unittest.cc
@@ -7,11 +7,11 @@
#include "base/memory/scoped_ptr.h"
#include "base/path_service.h"
#include "chrome/common/chrome_paths.h"
-#include "chrome/renderer/extensions/extension_base.h"
#include "chrome/test/base/v8_unit_test.h"
#include "content/common/json_value_serializer.h"
#include "grit/common_resources.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/base/resource/resource_bundle.h"
namespace {
@@ -130,7 +130,8 @@ TEST_F(ExtensionApiJsonValidityTest, Basic) {
// chrome/renderer/resources/extension_process_bindings.js .
TEST_F(ExtensionApiJsonValidityTest, MAYBE_WithV8) {
std::string ext_api_string =
- ExtensionBase::GetStringResource(IDR_EXTENSION_API_JSON);
+ ResourceBundle::GetSharedInstance().GetRawDataResource(
+ IDR_EXTENSION_API_JSON).as_string();
// Create a global variable holding the text of extension_api.json .
SetGlobalStringVar("ext_api_json_text", ext_api_string);
diff --git a/chrome/renderer/extensions/extension_bindings_context.cc b/chrome/renderer/extensions/extension_bindings_context.cc
index 6755f91..a6ad33e 100644
--- a/chrome/renderer/extensions/extension_bindings_context.cc
+++ b/chrome/renderer/extensions/extension_bindings_context.cc
@@ -12,7 +12,7 @@
#include "chrome/common/extensions/extension.h"
#include "chrome/common/extensions/extension_set.h"
#include "chrome/renderer/chrome_render_process_observer.h"
-#include "chrome/renderer/extensions/extension_base.h"
+#include "chrome/renderer/extensions/chrome_v8_extension.h"
#include "chrome/renderer/extensions/extension_dispatcher.h"
#include "chrome/renderer/extensions/user_script_slave.h"
#include "content/common/url_constants.h"
@@ -250,7 +250,7 @@ v8::Handle<v8::Value> ExtensionBindingsContext::CallChromeHiddenMethod(
// Look up the function name, which may be a sub-property like
// "Port.dispatchOnMessage" in the hidden global variable.
v8::Local<v8::Value> value = v8::Local<v8::Value>::New(
- ExtensionBase::GetChromeHidden(v8_context_));
+ ChromeV8Extension::GetChromeHidden(v8_context_));
std::vector<std::string> components;
base::SplitStringDontTrim(function_name, '.', &components);
for (size_t i = 0; i < components.size(); ++i) {
diff --git a/chrome/renderer/extensions/extension_dispatcher.cc b/chrome/renderer/extensions/extension_dispatcher.cc
index 2ce242c..b8865dd 100644
--- a/chrome/renderer/extensions/extension_dispatcher.cc
+++ b/chrome/renderer/extensions/extension_dispatcher.cc
@@ -12,15 +12,16 @@
#include "chrome/common/extensions/extension_permission_set.h"
#include "chrome/common/url_constants.h"
#include "chrome/renderer/extensions/chrome_app_bindings.h"
+#include "chrome/renderer/extensions/chrome_v8_extension.h"
#include "chrome/renderer/extensions/chrome_webstore_bindings.h"
#include "chrome/renderer/extensions/event_bindings.h"
#include "chrome/renderer/extensions/extension_bindings_context.h"
#include "chrome/renderer/extensions/extension_groups.h"
#include "chrome/renderer/extensions/extension_process_bindings.h"
-#include "chrome/renderer/extensions/js_only_v8_extensions.h"
#include "chrome/renderer/extensions/renderer_extension_bindings.h"
#include "chrome/renderer/extensions/user_script_slave.h"
#include "content/renderer/render_thread.h"
+#include "grit/renderer_resources.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebDataSource.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityPolicy.h"
@@ -90,11 +91,13 @@ void ExtensionDispatcher::WebKitInitialized() {
RegisterExtension(ChromeWebstoreExtension::Get(), false);
// Add v8 extensions related to chrome extensions.
- RegisterExtension(ExtensionProcessBindings::Get(this), true);
- RegisterExtension(JsonSchemaJsV8Extension::Get(), true);
+ RegisterExtension(new ChromeV8Extension(
+ "extensions/json_schema.js", IDR_JSON_SCHEMA_JS, NULL), true);
RegisterExtension(EventBindings::Get(this), true);
RegisterExtension(RendererExtensionBindings::Get(this), true);
- RegisterExtension(ExtensionApiTestV8Extension::Get(), true);
+ RegisterExtension(ExtensionProcessBindings::Get(this), true);
+ RegisterExtension(new ChromeV8Extension(
+ "extensions/apitest.js", IDR_EXTENSION_APITEST_JS, NULL), true);
// Initialize host permissions for any extensions that were activated before
// WebKit was initialized.
diff --git a/chrome/renderer/extensions/extension_process_bindings.cc b/chrome/renderer/extensions/extension_process_bindings.cc
index 38eb20d..1ab49f8 100644
--- a/chrome/renderer/extensions/extension_process_bindings.cc
+++ b/chrome/renderer/extensions/extension_process_bindings.cc
@@ -26,12 +26,11 @@
#include "chrome/common/render_messages.h"
#include "chrome/common/url_constants.h"
#include "chrome/renderer/chrome_render_process_observer.h"
+#include "chrome/renderer/extensions/chrome_v8_extension.h"
#include "chrome/renderer/extensions/event_bindings.h"
#include "chrome/renderer/extensions/extension_bindings_context.h"
-#include "chrome/renderer/extensions/extension_base.h"
#include "chrome/renderer/extensions/extension_dispatcher.h"
#include "chrome/renderer/extensions/extension_helper.h"
-#include "chrome/renderer/extensions/js_only_v8_extensions.h"
#include "chrome/renderer/extensions/renderer_extension_bindings.h"
#include "chrome/renderer/extensions/user_script_slave.h"
#include "chrome/renderer/static_v8_external_string_resource.h"
@@ -54,12 +53,11 @@ using WebKit::WebView;
namespace {
-const char kExtensionName[] = "chrome/ExtensionProcessBindings";
const char* kExtensionDeps[] = {
- EventBindings::kName,
- JsonSchemaJsV8Extension::kName,
- RendererExtensionBindings::kName,
- ExtensionApiTestV8Extension::kName,
+ "extensions/event.js",
+ "extensions/json_schema.js",
+ "extensions/renderer_extension_bindings.js",
+ "extensions/apitest.js"
};
// Contains info relevant to a pending API request.
@@ -155,14 +153,14 @@ class ExtensionViewAccumulator : public RenderViewVisitor {
int index_;
};
-class ExtensionImpl : public ExtensionBase {
+class ExtensionImpl : public ChromeV8Extension {
public:
explicit ExtensionImpl(ExtensionDispatcher* extension_dispatcher)
- : ExtensionBase(kExtensionName,
- GetStringResource(IDR_EXTENSION_PROCESS_BINDINGS_JS),
- arraysize(kExtensionDeps),
- kExtensionDeps,
- extension_dispatcher) {
+ : ChromeV8Extension("extensions/extension_process_bindings.js",
+ IDR_EXTENSION_PROCESS_BINDINGS_JS,
+ arraysize(kExtensionDeps),
+ kExtensionDeps,
+ extension_dispatcher) {
}
~ExtensionImpl() {}
@@ -202,7 +200,7 @@ class ExtensionImpl : public ExtensionBase {
return v8::FunctionTemplate::New(CreateBlob, v8::External::New(this));
}
- return ExtensionBase::GetNativeFunction(name);
+ return ChromeV8Extension::GetNativeFunction(name);
}
private:
diff --git a/chrome/renderer/extensions/js_only_v8_extensions.cc b/chrome/renderer/extensions/js_only_v8_extensions.cc
deleted file mode 100644
index 0ee892e..0000000
--- a/chrome/renderer/extensions/js_only_v8_extensions.cc
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/renderer/extensions/js_only_v8_extensions.h"
-
-#include "chrome/renderer/extensions/extension_base.h"
-#include "grit/renderer_resources.h"
-#include "v8/include/v8.h"
-
-// JsonSchemaJsV8Extension
-const char* JsonSchemaJsV8Extension::kName = "chrome/jsonschema";
-v8::Extension* JsonSchemaJsV8Extension::Get() {
- static v8::Extension* extension = new ExtensionBase(
- kName, ExtensionBase::GetStringResource(IDR_JSON_SCHEMA_JS), 0, NULL,
- NULL);
- return extension;
-}
-
-// ExtensionApiTestV8Extension
-const char* ExtensionApiTestV8Extension::kName = "chrome/extensionapitest";
-v8::Extension* ExtensionApiTestV8Extension::Get() {
- static v8::Extension* extension = new ExtensionBase(
- kName, ExtensionBase::GetStringResource(IDR_EXTENSION_APITEST_JS), 0,
- NULL, NULL);
- return extension;
-}
diff --git a/chrome/renderer/extensions/js_only_v8_extensions.h b/chrome/renderer/extensions/js_only_v8_extensions.h
deleted file mode 100644
index dac0498..0000000
--- a/chrome/renderer/extensions/js_only_v8_extensions.h
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_RENDERER_EXTENSIONS_JS_ONLY_V8_EXTENSIONS_H_
-#define CHROME_RENDERER_EXTENSIONS_JS_ONLY_V8_EXTENSIONS_H_
-#pragma once
-
-namespace v8 {
-class Extension;
-}
-
-// This file contains various V8 Extensions that are JavaScript only, and
-// don't have any C++ native functions.
-
-class JsonSchemaJsV8Extension {
- public:
- static const char* kName;
- static v8::Extension* Get();
-};
-
-class ExtensionApiTestV8Extension {
- public:
- static const char* kName;
- static v8::Extension* Get();
-};
-
-#endif // CHROME_RENDERER_EXTENSIONS_JS_ONLY_V8_EXTENSIONS_H_
diff --git a/chrome/renderer/extensions/renderer_extension_bindings.cc b/chrome/renderer/extensions/renderer_extension_bindings.cc
index 4e7811b..c52233b 100644
--- a/chrome/renderer/extensions/renderer_extension_bindings.cc
+++ b/chrome/renderer/extensions/renderer_extension_bindings.cc
@@ -12,8 +12,8 @@
#include "chrome/common/extensions/extension_message_bundle.h"
#include "chrome/common/extensions/extension_messages.h"
#include "chrome/common/url_constants.h"
+#include "chrome/renderer/extensions/chrome_v8_extension.h"
#include "chrome/renderer/extensions/event_bindings.h"
-#include "chrome/renderer/extensions/extension_base.h"
#include "chrome/renderer/extensions/extension_bindings_context.h"
#include "chrome/renderer/extensions/extension_dispatcher.h"
#include "content/renderer/render_thread.h"
@@ -59,14 +59,15 @@ static void ClearPortData(int port_id) {
}
const char kPortClosedError[] = "Attempting to use a disconnected port object";
-const char* kExtensionDeps[] = { EventBindings::kName };
+const char* kExtensionDeps[] = { "extensions/event.js" };
-class ExtensionImpl : public ExtensionBase {
+class ExtensionImpl : public ChromeV8Extension {
public:
explicit ExtensionImpl(ExtensionDispatcher* dispatcher)
- : ExtensionBase(RendererExtensionBindings::kName,
- GetStringResource(IDR_RENDERER_EXTENSION_BINDINGS_JS),
- arraysize(kExtensionDeps), kExtensionDeps, dispatcher) {
+ : ChromeV8Extension("extensions/renderer_extension_bindings.js",
+ IDR_RENDERER_EXTENSION_BINDINGS_JS,
+ arraysize(kExtensionDeps), kExtensionDeps,
+ dispatcher) {
}
~ExtensionImpl() {}
@@ -85,7 +86,7 @@ class ExtensionImpl : public ExtensionBase {
} else if (name->Equals(v8::String::New("GetL10nMessage"))) {
return v8::FunctionTemplate::New(GetL10nMessage);
}
- return ExtensionBase::GetNativeFunction(name);
+ return ChromeV8Extension::GetNativeFunction(name);
}
// Creates a new messaging channel to the given extension.
@@ -246,9 +247,6 @@ class ExtensionImpl : public ExtensionBase {
} // namespace
-const char* RendererExtensionBindings::kName =
- "chrome/RendererExtensionBindings";
-
v8::Extension* RendererExtensionBindings::Get(ExtensionDispatcher* dispatcher) {
static v8::Extension* extension = new ExtensionImpl(dispatcher);
return extension;
diff --git a/chrome/renderer/extensions/renderer_extension_bindings.h b/chrome/renderer/extensions/renderer_extension_bindings.h
index 021611e..59a3928 100644
--- a/chrome/renderer/extensions/renderer_extension_bindings.h
+++ b/chrome/renderer/extensions/renderer_extension_bindings.h
@@ -19,9 +19,6 @@ class Extension;
// used by both web renderers and extension processes.
class RendererExtensionBindings {
public:
- // Name of extension, for dependencies.
- static const char* kName;
-
// Creates an instance of the extension.
static v8::Extension* Get(ExtensionDispatcher* dispatcher);