summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/extensions
diff options
context:
space:
mode:
authorrafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-22 20:12:07 +0000
committerrafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-22 20:12:07 +0000
commit6e3f6928a0f43c3e956903693f8a84a2a207e970 (patch)
treec3f57be6c06a75ff02fac9ed014231fd8bab1f9c /chrome/renderer/extensions
parent2248d729d57ca026d78e88355f760bb4048f8430 (diff)
downloadchromium_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.cc10
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();