Chromium Code Reviews| Index: chrome/renderer/extensions/app_bindings.cc |
| diff --git a/chrome/renderer/extensions/app_bindings.cc b/chrome/renderer/extensions/app_bindings.cc |
| index e502ce65c856dcf830b40fce6499a1bc690bcc61..5043293541b5d5d67e3d42aae39c100004f765ba 100644 |
| --- a/chrome/renderer/extensions/app_bindings.cc |
| +++ b/chrome/renderer/extensions/app_bindings.cc |
| @@ -53,93 +53,41 @@ const char* kMissingClientIdError = "Missing clientId parameter"; |
| const char* kInvalidClientIdError = "Invalid clientId"; |
| const char* kInvalidCallbackIdError = "Invalid callbackId"; |
| - |
| -class AppBindingsHandler : public ChromeV8ExtensionHandler { |
| - public: |
| - AppBindingsHandler(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> GetIsInstalled(const v8::Arguments& args); |
| - v8::Handle<v8::Value> Install(const v8::Arguments& args); |
| - v8::Handle<v8::Value> GetDetails(const v8::Arguments& args); |
| - v8::Handle<v8::Value> GetDetailsForFrame(const v8::Arguments& args); |
| - v8::Handle<v8::Value> GetAppNotifyChannel(const v8::Arguments& args); |
| - |
| - v8::Handle<v8::Value> GetDetailsForFrameImpl(WebKit::WebFrame* frame); |
| - |
| - void OnGetAppNotifyChannelResponse(const std::string& channel_id, |
| - const std::string& error, |
| - int callback_id); |
| - |
| - ExtensionDispatcher* dispatcher_; |
| - DISALLOW_COPY_AND_ASSIGN(AppBindingsHandler); |
| -}; |
| - |
| } // namespace |
| -AppBindings::AppBindings(ExtensionDispatcher* dispatcher) |
| - : ChromeV8Extension("extensions/app.js", IDR_APP_BINDINGS_JS, |
| - dispatcher) { |
| -} |
| - |
| -ChromeV8ExtensionHandler* AppBindings::CreateHandler( |
| - ChromeV8Context* context) { |
| - return new AppBindingsHandler(extension_dispatcher(), context); |
| -} |
| - |
| - |
| - |
| -AppBindingsHandler::AppBindingsHandler(ExtensionDispatcher* dispatcher, |
| - ChromeV8Context* context) |
| - : ChromeV8ExtensionHandler(context), |
| - dispatcher_(dispatcher) { |
| +AppBindings::AppBindings(ExtensionDispatcher* dispatcher, |
| + ChromeV8Context* context) |
| + : ChromeV8Extension(dispatcher), |
| + ChromeV8ExtensionHandler(context) { |
| + RouteFunction("GetIsInstalled", |
| + base::Bind(&AppBindings::GetIsInstalled, base::Unretained(this))); |
|
Matt Perry
2012/02/28 20:34:20
indent should be 4 spaces
koz (OOO until 15th September)
2012/03/01 03:41:56
Done.
|
| + RouteFunction("Install", |
| + base::Bind(&AppBindings::Install, base::Unretained(this))); |
| + RouteFunction("GetDetails", |
| + base::Bind(&AppBindings::GetDetails, base::Unretained(this))); |
| + RouteFunction("GetDetailsForFrame", |
| + base::Bind(&AppBindings::GetDetailsForFrame, base::Unretained(this))); |
| + RouteFunction("GetAppNotifyChannel", |
| + base::Bind(&AppBindings::GetAppNotifyChannel, base::Unretained(this))); |
| } |
| -v8::Handle<v8::Value> AppBindingsHandler::HandleNativeFunction( |
| - const std::string& name, const v8::Arguments& args) { |
| - // TODO(aa): Create a helper map of callback that can be used in either |
| - // extensions or handlers. |
| - if (name == "GetIsInstalled") { |
| - return GetIsInstalled(args); |
| - } else if (name == "Install") { |
| - return Install(args); |
| - } else if (name == "GetDetails") { |
| - return GetDetails(args); |
| - } else if (name == "GetDetailsForFrame") { |
| - return GetDetailsForFrame(args); |
| - } else if (name == "GetAppNotifyChannel") { |
| - return GetAppNotifyChannel(args); |
| - } else { |
| - CHECK(false) << "Unknown native function: " << name; |
| - } |
| - |
| - return v8::Undefined(); |
| -} |
| -v8::Handle<v8::Value> AppBindingsHandler::GetIsInstalled( |
| +v8::Handle<v8::Value> AppBindings::GetIsInstalled( |
| const v8::Arguments& args) { |
| // TODO(aa): Hm, maybe ExtensionBindingsContext should have GetExtension() |
| // afterall? |
| const ::Extension* extension = |
| - dispatcher_->extensions()->GetByID(context_->extension_id()); |
| + extension_dispatcher_->extensions()->GetByID(context_->extension_id()); |
| // TODO(aa): Why only hosted app? |
| // TODO(aa): GARRR - why is there IsExtensionActive and IsApplicationActive!? |
| bool result = extension && extension->is_hosted_app() && |
| - dispatcher_->IsApplicationActive(extension->id()); |
| + extension_dispatcher_->IsApplicationActive(extension->id()); |
| return v8::Boolean::New(result); |
| } |
| -v8::Handle<v8::Value> AppBindingsHandler::Install(const v8::Arguments& args) { |
| +v8::Handle<v8::Value> AppBindings::Install(const v8::Arguments& args) { |
| content::RenderView* render_view = context_->GetRenderView(); |
| CHECK(render_view); |
| @@ -153,13 +101,13 @@ v8::Handle<v8::Value> AppBindingsHandler::Install(const v8::Arguments& args) { |
| return v8::Undefined(); |
| } |
| -v8::Handle<v8::Value> AppBindingsHandler::GetDetails( |
| +v8::Handle<v8::Value> AppBindings::GetDetails( |
| const v8::Arguments& args) { |
| CHECK(context_->web_frame()); |
| return GetDetailsForFrameImpl(context_->web_frame()); |
| } |
| -v8::Handle<v8::Value> AppBindingsHandler::GetDetailsForFrame( |
| +v8::Handle<v8::Value> AppBindings::GetDetailsForFrame( |
| const v8::Arguments& args) { |
| CHECK(context_->web_frame()); |
| if (!CheckAccessToAppDetails(context_->web_frame())) |
| @@ -186,12 +134,12 @@ v8::Handle<v8::Value> AppBindingsHandler::GetDetailsForFrame( |
| return GetDetailsForFrameImpl(target_frame); |
| } |
| -v8::Handle<v8::Value> AppBindingsHandler::GetDetailsForFrameImpl( |
| +v8::Handle<v8::Value> AppBindings::GetDetailsForFrameImpl( |
| WebFrame* frame) { |
| const ::Extension* extension = |
| - dispatcher_->extensions()->GetExtensionOrAppByURL(ExtensionURLInfo( |
| - frame->document().securityOrigin(), |
| - frame->document().url())); |
| + extension_dispatcher_->extensions()->GetExtensionOrAppByURL( |
| + ExtensionURLInfo(frame->document().securityOrigin(), |
| + frame->document().url())); |
| if (!extension) |
| return v8::Null(); |
| @@ -203,7 +151,7 @@ v8::Handle<v8::Value> AppBindingsHandler::GetDetailsForFrameImpl( |
| frame->mainWorldScriptContext()); |
| } |
| -v8::Handle<v8::Value> AppBindingsHandler::GetAppNotifyChannel( |
| +v8::Handle<v8::Value> AppBindings::GetAppNotifyChannel( |
| const v8::Arguments& args) { |
| // Read the required 'clientId' value out of the object at args[0]. |
| std::string client_id; |
| @@ -242,8 +190,8 @@ v8::Handle<v8::Value> AppBindingsHandler::GetAppNotifyChannel( |
| return v8::Undefined(); |
| } |
| -bool AppBindingsHandler::OnMessageReceived(const IPC::Message& message) { |
| - IPC_BEGIN_MESSAGE_MAP(AppBindingsHandler, message) |
| +bool AppBindings::OnMessageReceived(const IPC::Message& message) { |
| + IPC_BEGIN_MESSAGE_MAP(AppBindings, message) |
| IPC_MESSAGE_HANDLER(ExtensionMsg_GetAppNotifyChannelResponse, |
| OnGetAppNotifyChannelResponse) |
| IPC_MESSAGE_UNHANDLED(CHECK(false) << "Unhandled IPC message") |
| @@ -251,7 +199,7 @@ bool AppBindingsHandler::OnMessageReceived(const IPC::Message& message) { |
| return true; |
| } |
| -void AppBindingsHandler::OnGetAppNotifyChannelResponse( |
| +void AppBindings::OnGetAppNotifyChannelResponse( |
| const std::string& channel_id, const std::string& error, int callback_id) { |
| v8::HandleScope handle_scope; |
| v8::Context::Scope context_scope(context_->v8_context()); |