diff options
author | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-09 07:55:14 +0000 |
---|---|---|
committer | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-09 07:55:14 +0000 |
commit | 65f8fbbd988207a470e2a399379baa70f4abb282 (patch) | |
tree | 9f91f7a50a48af285b12cb406f45fc8d00b38127 /chrome/renderer/extensions/schema_generated_bindings.cc | |
parent | c7f74e7ca7e2b2428fb7434b0ef0b7a9b4bfbff8 (diff) | |
download | chromium_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.cc | 43 |
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 |