summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/extensions/schema_generated_bindings.cc
diff options
context:
space:
mode:
authorakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-09 07:55:14 +0000
committerakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-09 07:55:14 +0000
commit65f8fbbd988207a470e2a399379baa70f4abb282 (patch)
tree9f91f7a50a48af285b12cb406f45fc8d00b38127 /chrome/renderer/extensions/schema_generated_bindings.cc
parentc7f74e7ca7e2b2428fb7434b0ef0b7a9b4bfbff8 (diff)
downloadchromium_src-65f8fbbd988207a470e2a399379baa70f4abb282.zip
chromium_src-65f8fbbd988207a470e2a399379baa70f4abb282.tar.gz
chromium_src-65f8fbbd988207a470e2a399379baa70f4abb282.tar.bz2
Revert 125801 - Implement a module system for the extension bindings JS.
BUG=104100 TEST=existing browser tests Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=125132 Review URL: http://codereview.chromium.org/9386001 TBR=koz@chromium.org Review URL: https://chromiumcodereview.appspot.com/9657026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125814 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/extensions/schema_generated_bindings.cc')
-rw-r--r--chrome/renderer/extensions/schema_generated_bindings.cc43
1 files changed, 35 insertions, 8 deletions
diff --git a/chrome/renderer/extensions/schema_generated_bindings.cc b/chrome/renderer/extensions/schema_generated_bindings.cc
index eda15d8..c0e0725 100644
--- a/chrome/renderer/extensions/schema_generated_bindings.cc
+++ b/chrome/renderer/extensions/schema_generated_bindings.cc
@@ -51,6 +51,13 @@ using WebKit::WebSecurityOrigin;
namespace {
+const char* kExtensionDeps[] = {
+ "extensions/event.js",
+ "extensions/json_schema.js",
+ "extensions/miscellaneous_bindings.js",
+ "extensions/apitest.js"
+};
+
// Contains info relevant to a pending API request.
struct PendingRequest {
public :
@@ -70,12 +77,11 @@ base::LazyInstance<PendingRequestMap> g_pending_requests =
class ExtensionImpl : public ChromeV8Extension {
public:
explicit ExtensionImpl(ExtensionDispatcher* extension_dispatcher)
- : ChromeV8Extension(extension_dispatcher) {
- RouteStaticFunction("GetExtensionAPIDefinition",
- &GetExtensionAPIDefinition);
- RouteStaticFunction("GetNextRequestId", &GetNextRequestId);
- RouteStaticFunction("StartRequest", &StartRequest);
- RouteStaticFunction("SetIconCommon", &SetIconCommon);
+ : ChromeV8Extension("extensions/schema_generated_bindings.js",
+ IDR_SCHEMA_GENERATED_BINDINGS_JS,
+ arraysize(kExtensionDeps),
+ kExtensionDeps,
+ extension_dispatcher) {
}
~ExtensionImpl() {
@@ -88,6 +94,24 @@ class ExtensionImpl : public ChromeV8Extension {
}
}
+ virtual v8::Handle<v8::FunctionTemplate> GetNativeFunction(
+ v8::Handle<v8::String> name) OVERRIDE {
+ if (name->Equals(v8::String::New("GetExtensionAPIDefinition"))) {
+ return v8::FunctionTemplate::New(GetExtensionAPIDefinition,
+ v8::External::New(this));
+ } else if (name->Equals(v8::String::New("GetNextRequestId"))) {
+ return v8::FunctionTemplate::New(GetNextRequestId);
+ } else if (name->Equals(v8::String::New("StartRequest"))) {
+ return v8::FunctionTemplate::New(StartRequest,
+ v8::External::New(this));
+ } else if (name->Equals(v8::String::New("SetIconCommon"))) {
+ return v8::FunctionTemplate::New(SetIconCommon,
+ v8::External::New(this));
+ }
+
+ return ChromeV8Extension::GetNativeFunction(name);
+ }
+
private:
static v8::Handle<v8::Value> GetV8SchemaForAPI(
ExtensionImpl* self,
@@ -323,9 +347,12 @@ class ExtensionImpl : public ChromeV8Extension {
namespace extensions {
-ChromeV8Extension* SchemaGeneratedBindings::Get(
+v8::Extension* SchemaGeneratedBindings::Get(
ExtensionDispatcher* extension_dispatcher) {
- return new ExtensionImpl(extension_dispatcher);
+ static v8::Extension* extension = new ExtensionImpl(extension_dispatcher);
+ CHECK_EQ(extension_dispatcher,
+ static_cast<ExtensionImpl*>(extension)->extension_dispatcher());
+ return extension;
}
// static