| Index: chrome/renderer/extensions/schema_generated_bindings.cc
|
| ===================================================================
|
| --- chrome/renderer/extensions/schema_generated_bindings.cc (revision 125813)
|
| +++ chrome/renderer/extensions/schema_generated_bindings.cc (working copy)
|
| @@ -51,6 +51,13 @@
|
|
|
| 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 @@
|
| 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 @@
|
| }
|
| }
|
|
|
| + 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 @@
|
|
|
| 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
|
|
|