diff options
author | rafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-22 20:12:07 +0000 |
---|---|---|
committer | rafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-22 20:12:07 +0000 |
commit | 6e3f6928a0f43c3e956903693f8a84a2a207e970 (patch) | |
tree | c3f57be6c06a75ff02fac9ed014231fd8bab1f9c /chrome/renderer/extensions | |
parent | 2248d729d57ca026d78e88355f760bb4048f8430 (diff) | |
download | chromium_src-6e3f6928a0f43c3e956903693f8a84a2a207e970.zip chromium_src-6e3f6928a0f43c3e956903693f8a84a2a207e970.tar.gz chromium_src-6e3f6928a0f43c3e956903693f8a84a2a207e970.tar.bz2 |
Step 2 in abstracting Extension APIs to shared "IDL".
In this step, all "normal" async extension apis have been pulled out into extension_api.json which is loaded in the renderer, and dynamic bindings are created for extension functions & events in extension_process_bindings.js.
R=aa
Review URL: http://codereview.chromium.org/155741
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21313 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/extensions')
-rw-r--r-- | chrome/renderer/extensions/extension_process_bindings.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/chrome/renderer/extensions/extension_process_bindings.cc b/chrome/renderer/extensions/extension_process_bindings.cc index 1e4bafe1..fd92481 100644 --- a/chrome/renderer/extensions/extension_process_bindings.cc +++ b/chrome/renderer/extensions/extension_process_bindings.cc @@ -12,6 +12,7 @@ #include "chrome/renderer/extensions/renderer_extension_bindings.h" #include "chrome/renderer/js_only_v8_extensions.h" #include "chrome/renderer/render_view.h" +#include "grit/common_resources.h" #include "grit/renderer_resources.h" #include "webkit/glue/webframe.h" @@ -64,7 +65,9 @@ class ExtensionImpl : public ExtensionBase { virtual v8::Handle<v8::FunctionTemplate> GetNativeFunction( v8::Handle<v8::String> name) { - if (name->Equals(v8::String::New("GetViews"))) { + if (name->Equals(v8::String::New("GetExtensionAPIDefinition"))) { + return v8::FunctionTemplate::New(GetExtensionAPIDefinition); + } else if (name->Equals(v8::String::New("GetViews"))) { return v8::FunctionTemplate::New(GetViews); } else if (name->Equals(v8::String::New("GetNextRequestId"))) { return v8::FunctionTemplate::New(GetNextRequestId); @@ -87,6 +90,11 @@ class ExtensionImpl : public ExtensionBase { return url.host(); } + static v8::Handle<v8::Value> GetExtensionAPIDefinition( + const v8::Arguments& args) { + return v8::String::New(GetStringResource<IDR_EXTENSION_API_JSON>()); + } + static v8::Handle<v8::Value> GetViews(const v8::Arguments& args) { std::string extension_id = ExtensionIdFromCurrentContext(); |