summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/extensions/webstore_bindings.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/renderer/extensions/webstore_bindings.cc')
-rw-r--r--chrome/renderer/extensions/webstore_bindings.cc73
1 files changed, 10 insertions, 63 deletions
diff --git a/chrome/renderer/extensions/webstore_bindings.cc b/chrome/renderer/extensions/webstore_bindings.cc
index 5991e6a..7214db9 100644
--- a/chrome/renderer/extensions/webstore_bindings.cc
+++ b/chrome/renderer/extensions/webstore_bindings.cc
@@ -13,7 +13,6 @@
#include "grit/renderer_resources.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebElement.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebNode.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebNodeList.h"
#include "v8/include/v8.h"
@@ -48,69 +47,17 @@ const char kInvalidWebstoreItemUrlError[] =
// (successful or not) via OnInlineWebstoreInstallResponse.
int g_next_install_id = 0;
-class WebstoreBindingsHandler : public ChromeV8ExtensionHandler {
- public:
- WebstoreBindingsHandler(
- ExtensionDispatcher* dispatcher, ChromeV8Context* context);
-
- // ChromeV8ExtensionHandler
- virtual v8::Handle<v8::Value> HandleNativeFunction(
- const std::string& name,
- const v8::Arguments& arguments) OVERRIDE;
-
- // IPC::Channel::Listener
- virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
-
- private:
- v8::Handle<v8::Value> Install(const v8::Arguments& args);
-
- void OnInlineWebstoreInstallResponse(
- int install_id, bool success, const std::string& error);
-
- // Extracts a Web Store item ID from a <link rel="chrome-webstore-item"
- // href="https://chrome.google.com/webstore/detail/id"> node found in the
- // frame. On success, true will be returned and the |webstore_item_id|
- // parameter will be populated with the ID. On failure, false will be returned
- // and |error| will be populated with the error.
- static bool GetWebstoreItemIdFromFrame(
- WebFrame* frame, const std::string& preferred_store_link_url,
- std::string* webstore_item_id, std::string* error);
-
- ExtensionDispatcher* dispatcher_;
- DISALLOW_COPY_AND_ASSIGN(WebstoreBindingsHandler);
-};
-
} // anonymous namespace
-WebstoreBindings::WebstoreBindings(ExtensionDispatcher* dispatcher)
- : ChromeV8Extension("extensions/webstore.js", IDR_WEBSTORE_BINDINGS_JS,
- dispatcher) {
-}
-
-ChromeV8ExtensionHandler* WebstoreBindings::CreateHandler(
- ChromeV8Context* context) {
- return new WebstoreBindingsHandler(extension_dispatcher(), context);
-}
-
-WebstoreBindingsHandler::WebstoreBindingsHandler(
- ExtensionDispatcher* dispatcher,
+WebstoreBindings::WebstoreBindings(ExtensionDispatcher* dispatcher,
ChromeV8Context* context)
- : ChromeV8ExtensionHandler(context),
- dispatcher_(dispatcher) {
-}
-
-v8::Handle<v8::Value> WebstoreBindingsHandler::HandleNativeFunction(
- const std::string& name, const v8::Arguments& args) {
- if (name == "Install") {
- return Install(args);
- } else {
- CHECK(false) << "Unknown native function: " << name;
- }
-
- return v8::Undefined();
+ : ChromeV8Extension(dispatcher),
+ ChromeV8ExtensionHandler(context) {
+ RouteFunction("Install",
+ base::Bind(&WebstoreBindings::Install, base::Unretained(this)));
}
-v8::Handle<v8::Value> WebstoreBindingsHandler::Install(
+v8::Handle<v8::Value> WebstoreBindings::Install(
const v8::Arguments& args) {
WebFrame* frame = WebFrame::frameForCurrentContext();
if (!frame || !frame->view())
@@ -161,7 +108,7 @@ v8::Handle<v8::Value> WebstoreBindingsHandler::Install(
}
// static
-bool WebstoreBindingsHandler::GetWebstoreItemIdFromFrame(
+bool WebstoreBindings::GetWebstoreItemIdFromFrame(
WebFrame* frame, const std::string& preferred_store_link_url,
std::string* webstore_item_id, std::string* error) {
if (frame != frame->top()) {
@@ -247,8 +194,8 @@ bool WebstoreBindingsHandler::GetWebstoreItemIdFromFrame(
return false;
}
-bool WebstoreBindingsHandler::OnMessageReceived(const IPC::Message& message) {
- IPC_BEGIN_MESSAGE_MAP(WebstoreBindingsHandler, message)
+bool WebstoreBindings::OnMessageReceived(const IPC::Message& message) {
+ IPC_BEGIN_MESSAGE_MAP(WebstoreBindings, message)
IPC_MESSAGE_HANDLER(ExtensionMsg_InlineWebstoreInstallResponse,
OnInlineWebstoreInstallResponse)
IPC_MESSAGE_UNHANDLED(CHECK(false) << "Unhandled IPC message")
@@ -256,7 +203,7 @@ bool WebstoreBindingsHandler::OnMessageReceived(const IPC::Message& message) {
return true;
}
-void WebstoreBindingsHandler::OnInlineWebstoreInstallResponse(
+void WebstoreBindings::OnInlineWebstoreInstallResponse(
int install_id,
bool success,
const std::string& error) {