Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(306)

Side by Side Diff: chrome/renderer/extensions/extension_helper.cc

Issue 8113006: Add js api for hosted/pacakged apps to request notification authorization (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: added process check, and moved to ExtensionTabHelper Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/extensions/extension_helper.h" 5 #include "chrome/renderer/extensions/extension_helper.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/lazy_instance.h" 8 #include "base/lazy_instance.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
11 #include "chrome/common/chrome_switches.h" 11 #include "chrome/common/chrome_switches.h"
12 #include "chrome/common/extensions/extension_messages.h" 12 #include "chrome/common/extensions/extension_messages.h"
13 #include "chrome/common/render_messages.h" 13 #include "chrome/common/render_messages.h"
14 #include "chrome/common/url_constants.h" 14 #include "chrome/common/url_constants.h"
15 #include "chrome/renderer/extensions/chrome_app_bindings.h"
15 #include "chrome/renderer/extensions/chrome_webstore_bindings.h" 16 #include "chrome/renderer/extensions/chrome_webstore_bindings.h"
16 #include "chrome/renderer/extensions/event_bindings.h" 17 #include "chrome/renderer/extensions/event_bindings.h"
17 #include "chrome/renderer/extensions/extension_bindings_context.h" 18 #include "chrome/renderer/extensions/extension_bindings_context.h"
18 #include "chrome/renderer/extensions/extension_dispatcher.h" 19 #include "chrome/renderer/extensions/extension_dispatcher.h"
19 #include "chrome/renderer/extensions/extension_process_bindings.h" 20 #include "chrome/renderer/extensions/extension_process_bindings.h"
20 #include "chrome/renderer/extensions/renderer_extension_bindings.h" 21 #include "chrome/renderer/extensions/renderer_extension_bindings.h"
21 #include "chrome/renderer/extensions/user_script_idle_scheduler.h" 22 #include "chrome/renderer/extensions/user_script_idle_scheduler.h"
22 #include "chrome/renderer/extensions/user_script_slave.h" 23 #include "chrome/renderer/extensions/user_script_slave.h"
23 #include "content/common/json_value_serializer.h" 24 #include "content/common/json_value_serializer.h"
24 #include "content/renderer/render_view.h" 25 #include "content/renderer/render_view.h"
25 #include "webkit/glue/image_resource_fetcher.h" 26 #include "webkit/glue/image_resource_fetcher.h"
26 #include "webkit/glue/resource_fetcher.h" 27 #include "webkit/glue/resource_fetcher.h"
27 #include "third_party/WebKit/Source/WebKit/chromium/public/WebConsoleMessage.h" 28 #include "third_party/WebKit/Source/WebKit/chromium/public/WebConsoleMessage.h"
28 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" 29 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
29 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLRequest.h" 30 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLRequest.h"
30 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" 31 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
31 32
33 using extensions_v8::ChromeAppExtension;
32 using WebKit::WebConsoleMessage; 34 using WebKit::WebConsoleMessage;
33 using WebKit::WebDataSource; 35 using WebKit::WebDataSource;
34 using WebKit::WebFrame; 36 using WebKit::WebFrame;
35 using WebKit::WebURLRequest; 37 using WebKit::WebURLRequest;
36 using WebKit::WebView; 38 using WebKit::WebView;
37 using webkit_glue::ImageResourceFetcher; 39 using webkit_glue::ImageResourceFetcher;
38 using webkit_glue::ResourceFetcher; 40 using webkit_glue::ResourceFetcher;
39 41
40 namespace { 42 namespace {
41 // Keeps a mapping from the frame pointer to a UserScriptIdleScheduler object. 43 // Keeps a mapping from the frame pointer to a UserScriptIdleScheduler object.
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 routing_id(), install_id, webstore_item_id, requestor_url)); 113 routing_id(), install_id, webstore_item_id, requestor_url));
112 } 114 }
113 115
114 void ExtensionHelper::OnInlineWebstoreInstallResponse( 116 void ExtensionHelper::OnInlineWebstoreInstallResponse(
115 int install_id, 117 int install_id,
116 bool success, 118 bool success,
117 const std::string& error) { 119 const std::string& error) {
118 ChromeWebstoreExtension::HandleInstallResponse(install_id, success, error); 120 ChromeWebstoreExtension::HandleInstallResponse(install_id, success, error);
119 } 121 }
120 122
123 void ExtensionHelper::GetAppNotifyChannel(int request_id,
124 const GURL& requestor_url,
125 const std::string& client_id) {
126 Send(new ExtensionHostMsg_GetAppNotifyChannel(
127 routing_id(), request_id, requestor_url, client_id));
128 }
129
130 void ExtensionHelper::OnGetAppNotifyChannelResponse(
131 int request_id, const std::string& channel_id, const std::string& error) {
132 ChromeAppExtension::HandleGetAppNotifyChannelResponse(
133 request_id, channel_id, error);
134 }
135
121 bool ExtensionHelper::OnMessageReceived(const IPC::Message& message) { 136 bool ExtensionHelper::OnMessageReceived(const IPC::Message& message) {
122 bool handled = true; 137 bool handled = true;
123 IPC_BEGIN_MESSAGE_MAP(ExtensionHelper, message) 138 IPC_BEGIN_MESSAGE_MAP(ExtensionHelper, message)
124 IPC_MESSAGE_HANDLER(ExtensionMsg_Response, OnExtensionResponse) 139 IPC_MESSAGE_HANDLER(ExtensionMsg_Response, OnExtensionResponse)
125 IPC_MESSAGE_HANDLER(ExtensionMsg_MessageInvoke, OnExtensionMessageInvoke) 140 IPC_MESSAGE_HANDLER(ExtensionMsg_MessageInvoke, OnExtensionMessageInvoke)
126 IPC_MESSAGE_HANDLER(ExtensionMsg_DeliverMessage, OnExtensionDeliverMessage) 141 IPC_MESSAGE_HANDLER(ExtensionMsg_DeliverMessage, OnExtensionDeliverMessage)
127 IPC_MESSAGE_HANDLER(ExtensionMsg_ExecuteCode, OnExecuteCode) 142 IPC_MESSAGE_HANDLER(ExtensionMsg_ExecuteCode, OnExecuteCode)
128 IPC_MESSAGE_HANDLER(ExtensionMsg_GetApplicationInfo, OnGetApplicationInfo) 143 IPC_MESSAGE_HANDLER(ExtensionMsg_GetApplicationInfo, OnGetApplicationInfo)
129 IPC_MESSAGE_HANDLER(ExtensionMsg_UpdateBrowserWindowId, 144 IPC_MESSAGE_HANDLER(ExtensionMsg_UpdateBrowserWindowId,
130 OnUpdateBrowserWindowId) 145 OnUpdateBrowserWindowId)
131 IPC_MESSAGE_HANDLER(ExtensionMsg_NotifyRenderViewType, 146 IPC_MESSAGE_HANDLER(ExtensionMsg_NotifyRenderViewType,
132 OnNotifyRendererViewType) 147 OnNotifyRendererViewType)
133 IPC_MESSAGE_HANDLER(ExtensionMsg_InlineWebstoreInstallResponse, 148 IPC_MESSAGE_HANDLER(ExtensionMsg_InlineWebstoreInstallResponse,
134 OnInlineWebstoreInstallResponse) 149 OnInlineWebstoreInstallResponse)
150 IPC_MESSAGE_HANDLER(ExtensionMsg_GetAppNotifyChannelResponse,
151 OnGetAppNotifyChannelResponse)
135 IPC_MESSAGE_UNHANDLED(handled = false) 152 IPC_MESSAGE_UNHANDLED(handled = false)
136 IPC_END_MESSAGE_MAP() 153 IPC_END_MESSAGE_MAP()
137 return handled; 154 return handled;
138 } 155 }
139 156
140 void ExtensionHelper::DidFinishDocumentLoad(WebFrame* frame) { 157 void ExtensionHelper::DidFinishDocumentLoad(WebFrame* frame) {
141 extension_dispatcher_->user_script_slave()->InjectScripts( 158 extension_dispatcher_->user_script_slave()->InjectScripts(
142 frame, UserScript::DOCUMENT_END); 159 frame, UserScript::DOCUMENT_END);
143 160
144 SchedulerMap::iterator i = g_schedulers.Get().find(frame); 161 SchedulerMap::iterator i = g_schedulers.Get().find(frame);
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 routing_id(), *pending_app_info_)); 373 routing_id(), *pending_app_info_));
357 pending_app_info_.reset(NULL); 374 pending_app_info_.reset(NULL);
358 } 375 }
359 376
360 void ExtensionHelper::AddErrorToRootConsole(const string16& message) { 377 void ExtensionHelper::AddErrorToRootConsole(const string16& message) {
361 if (render_view()->webview() && render_view()->webview()->mainFrame()) { 378 if (render_view()->webview() && render_view()->webview()->mainFrame()) {
362 render_view()->webview()->mainFrame()->addMessageToConsole( 379 render_view()->webview()->mainFrame()->addMessageToConsole(
363 WebConsoleMessage(WebConsoleMessage::LevelError, message)); 380 WebConsoleMessage(WebConsoleMessage::LevelError, message));
364 } 381 }
365 } 382 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698