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

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

Issue 534163002: Move app.window API implementation to extensions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix OWNERS Created 6 years, 3 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/chrome_extensions_dispatcher_delegate.h" 5 #include "chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/sha1.h" 8 #include "base/sha1.h"
9 #include "base/strings/string_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
10 #include "chrome/common/chrome_switches.h" 10 #include "chrome/common/chrome_switches.h"
11 #include "chrome/common/chrome_version_info.h" 11 #include "chrome/common/chrome_version_info.h"
12 #include "chrome/common/crash_keys.h" 12 #include "chrome/common/crash_keys.h"
13 #include "chrome/common/extensions/features/feature_channel.h" 13 #include "chrome/common/extensions/features/feature_channel.h"
14 #include "chrome/common/url_constants.h" 14 #include "chrome/common/url_constants.h"
15 #include "chrome/grit/renderer_resources.h" 15 #include "chrome/grit/renderer_resources.h"
16 #include "chrome/renderer/extensions/app_bindings.h" 16 #include "chrome/renderer/extensions/app_bindings.h"
17 #include "chrome/renderer/extensions/app_window_custom_bindings.h"
18 #include "chrome/renderer/extensions/automation_internal_custom_bindings.h" 17 #include "chrome/renderer/extensions/automation_internal_custom_bindings.h"
19 #include "chrome/renderer/extensions/chrome_v8_context.h" 18 #include "chrome/renderer/extensions/chrome_v8_context.h"
20 #include "chrome/renderer/extensions/enterprise_platform_keys_natives.h" 19 #include "chrome/renderer/extensions/enterprise_platform_keys_natives.h"
21 #include "chrome/renderer/extensions/file_browser_handler_custom_bindings.h" 20 #include "chrome/renderer/extensions/file_browser_handler_custom_bindings.h"
22 #include "chrome/renderer/extensions/file_browser_private_custom_bindings.h" 21 #include "chrome/renderer/extensions/file_browser_private_custom_bindings.h"
23 #include "chrome/renderer/extensions/media_galleries_custom_bindings.h" 22 #include "chrome/renderer/extensions/media_galleries_custom_bindings.h"
24 #include "chrome/renderer/extensions/notifications_native_handler.h" 23 #include "chrome/renderer/extensions/notifications_native_handler.h"
25 #include "chrome/renderer/extensions/page_capture_custom_bindings.h" 24 #include "chrome/renderer/extensions/page_capture_custom_bindings.h"
26 #include "chrome/renderer/extensions/sync_file_system_custom_bindings.h" 25 #include "chrome/renderer/extensions/sync_file_system_custom_bindings.h"
27 #include "chrome/renderer/extensions/tab_finder.h" 26 #include "chrome/renderer/extensions/tab_finder.h"
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 extensions::ModuleSystem* module_system, 90 extensions::ModuleSystem* module_system,
92 extensions::ScriptContext* context) { 91 extensions::ScriptContext* context) {
93 #if !defined(ENABLE_EXTENSIONS) 92 #if !defined(ENABLE_EXTENSIONS)
94 return; 93 return;
95 #endif 94 #endif
96 module_system->RegisterNativeHandler( 95 module_system->RegisterNativeHandler(
97 "app", 96 "app",
98 scoped_ptr<NativeHandler>( 97 scoped_ptr<NativeHandler>(
99 new extensions::AppBindings(dispatcher, context))); 98 new extensions::AppBindings(dispatcher, context)));
100 module_system->RegisterNativeHandler( 99 module_system->RegisterNativeHandler(
101 "app_window_natives",
102 scoped_ptr<NativeHandler>(
103 new extensions::AppWindowCustomBindings(dispatcher, context)));
104 module_system->RegisterNativeHandler(
105 "sync_file_system", 100 "sync_file_system",
106 scoped_ptr<NativeHandler>( 101 scoped_ptr<NativeHandler>(
107 new extensions::SyncFileSystemCustomBindings(context))); 102 new extensions::SyncFileSystemCustomBindings(context)));
108 module_system->RegisterNativeHandler( 103 module_system->RegisterNativeHandler(
109 "enterprise_platform_keys_natives", 104 "enterprise_platform_keys_natives",
110 scoped_ptr<NativeHandler>( 105 scoped_ptr<NativeHandler>(
111 new extensions::EnterprisePlatformKeysNatives(context))); 106 new extensions::EnterprisePlatformKeysNatives(context)));
112 module_system->RegisterNativeHandler( 107 module_system->RegisterNativeHandler(
113 "file_browser_handler", 108 "file_browser_handler",
114 scoped_ptr<NativeHandler>( 109 scoped_ptr<NativeHandler>(
(...skipping 29 matching lines...) Expand all
144 module_system->RegisterNativeHandler( 139 module_system->RegisterNativeHandler(
145 "automationInternal", 140 "automationInternal",
146 scoped_ptr<NativeHandler>( 141 scoped_ptr<NativeHandler>(
147 new extensions::AutomationInternalCustomBindings(context))); 142 new extensions::AutomationInternalCustomBindings(context)));
148 } 143 }
149 144
150 void ChromeExtensionsDispatcherDelegate::PopulateSourceMap( 145 void ChromeExtensionsDispatcherDelegate::PopulateSourceMap(
151 extensions::ResourceBundleSourceMap* source_map) { 146 extensions::ResourceBundleSourceMap* source_map) {
152 // Custom bindings. 147 // Custom bindings.
153 source_map->RegisterSource("app", IDR_APP_CUSTOM_BINDINGS_JS); 148 source_map->RegisterSource("app", IDR_APP_CUSTOM_BINDINGS_JS);
154 source_map->RegisterSource("app.window", IDR_APP_WINDOW_CUSTOM_BINDINGS_JS);
155 source_map->RegisterSource("automation", IDR_AUTOMATION_CUSTOM_BINDINGS_JS); 149 source_map->RegisterSource("automation", IDR_AUTOMATION_CUSTOM_BINDINGS_JS);
156 source_map->RegisterSource("automationEvent", IDR_AUTOMATION_EVENT_JS); 150 source_map->RegisterSource("automationEvent", IDR_AUTOMATION_EVENT_JS);
157 source_map->RegisterSource("automationNode", IDR_AUTOMATION_NODE_JS); 151 source_map->RegisterSource("automationNode", IDR_AUTOMATION_NODE_JS);
158 source_map->RegisterSource("browserAction", 152 source_map->RegisterSource("browserAction",
159 IDR_BROWSER_ACTION_CUSTOM_BINDINGS_JS); 153 IDR_BROWSER_ACTION_CUSTOM_BINDINGS_JS);
160 source_map->RegisterSource("declarativeContent", 154 source_map->RegisterSource("declarativeContent",
161 IDR_DECLARATIVE_CONTENT_CUSTOM_BINDINGS_JS); 155 IDR_DECLARATIVE_CONTENT_CUSTOM_BINDINGS_JS);
162 source_map->RegisterSource("declarativeWebRequest", 156 source_map->RegisterSource("declarativeWebRequest",
163 IDR_DECLARATIVE_WEBREQUEST_CUSTOM_BINDINGS_JS); 157 IDR_DECLARATIVE_WEBREQUEST_CUSTOM_BINDINGS_JS);
164 source_map->RegisterSource("desktopCapture", 158 source_map->RegisterSource("desktopCapture",
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 #if defined(ENABLE_WEBRTC) 211 #if defined(ENABLE_WEBRTC)
218 source_map->RegisterSource("cast.streaming.rtpStream", 212 source_map->RegisterSource("cast.streaming.rtpStream",
219 IDR_CAST_STREAMING_RTP_STREAM_CUSTOM_BINDINGS_JS); 213 IDR_CAST_STREAMING_RTP_STREAM_CUSTOM_BINDINGS_JS);
220 source_map->RegisterSource("cast.streaming.session", 214 source_map->RegisterSource("cast.streaming.session",
221 IDR_CAST_STREAMING_SESSION_CUSTOM_BINDINGS_JS); 215 IDR_CAST_STREAMING_SESSION_CUSTOM_BINDINGS_JS);
222 source_map->RegisterSource( 216 source_map->RegisterSource(
223 "cast.streaming.udpTransport", 217 "cast.streaming.udpTransport",
224 IDR_CAST_STREAMING_UDP_TRANSPORT_CUSTOM_BINDINGS_JS); 218 IDR_CAST_STREAMING_UDP_TRANSPORT_CUSTOM_BINDINGS_JS);
225 #endif 219 #endif
226 source_map->RegisterSource("webstore", IDR_WEBSTORE_CUSTOM_BINDINGS_JS); 220 source_map->RegisterSource("webstore", IDR_WEBSTORE_CUSTOM_BINDINGS_JS);
227 source_map->RegisterSource("windowControls", IDR_WINDOW_CONTROLS_JS);
228 221
229 // Custom types sources. 222 // Custom types sources.
230 source_map->RegisterSource("ChromeSetting", IDR_CHROME_SETTING_JS); 223 source_map->RegisterSource("ChromeSetting", IDR_CHROME_SETTING_JS);
231 source_map->RegisterSource("ContentSetting", IDR_CONTENT_SETTING_JS); 224 source_map->RegisterSource("ContentSetting", IDR_CONTENT_SETTING_JS);
232 source_map->RegisterSource("ChromeDirectSetting", 225 source_map->RegisterSource("ChromeDirectSetting",
233 IDR_CHROME_DIRECT_SETTING_JS); 226 IDR_CHROME_DIRECT_SETTING_JS);
234 227
235 // Platform app sources that are not API-specific.. 228 // Platform app sources that are not API-specific..
236 source_map->RegisterSource("appView", IDR_APP_VIEW_JS); 229 source_map->RegisterSource("appView", IDR_APP_VIEW_JS);
237 source_map->RegisterSource("fileEntryBindingUtil", 230 source_map->RegisterSource("fileEntryBindingUtil",
(...skipping 23 matching lines...) Expand all
261 extensions::ModuleSystem* module_system = context->module_system(); 254 extensions::ModuleSystem* module_system = context->module_system();
262 extensions::Feature::Context context_type = context->context_type(); 255 extensions::Feature::Context context_type = context->context_type();
263 256
264 // TODO(kalman, fsamuel): Eagerly calling Require on context startup is 257 // TODO(kalman, fsamuel): Eagerly calling Require on context startup is
265 // expensive. It would be better if there were a light way of detecting when 258 // expensive. It would be better if there were a light way of detecting when
266 // a webview or appview is created and only then set up the infrastructure. 259 // a webview or appview is created and only then set up the infrastructure.
267 if (context_type == extensions::Feature::BLESSED_EXTENSION_CONTEXT && 260 if (context_type == extensions::Feature::BLESSED_EXTENSION_CONTEXT &&
268 is_within_platform_app && 261 is_within_platform_app &&
269 extensions::GetCurrentChannel() <= chrome::VersionInfo::CHANNEL_DEV && 262 extensions::GetCurrentChannel() <= chrome::VersionInfo::CHANNEL_DEV &&
270 CommandLine::ForCurrentProcess()->HasSwitch( 263 CommandLine::ForCurrentProcess()->HasSwitch(
271 ::switches::kEnableAppWindowControls)) { 264 extensions::switches::kEnableAppWindowControls)) {
272 module_system->Require("windowControls"); 265 module_system->Require("windowControls");
273 } 266 }
274 267
275 // Note: setting up the WebView class here, not the chrome.webview API. 268 // Note: setting up the WebView class here, not the chrome.webview API.
276 // The API will be automatically set up when first used. 269 // The API will be automatically set up when first used.
277 if (context->GetAvailability("webViewInternal").is_available()) { 270 if (context->GetAvailability("webViewInternal").is_available()) {
278 module_system->Require("webView"); 271 module_system->Require("webView");
279 if (context->GetAvailability("webViewExperimentalInternal").is_available()) 272 if (context->GetAvailability("webViewExperimentalInternal").is_available())
280 module_system->Require("webViewExperimental"); 273 module_system->Require("webViewExperimental");
281 } else if (context_type == extensions::Feature::BLESSED_EXTENSION_CONTEXT) { 274 } else if (context_type == extensions::Feature::BLESSED_EXTENSION_CONTEXT) {
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 new extensions::PermissionSet(extensions::APIPermissionSet(), 341 new extensions::PermissionSet(extensions::APIPermissionSet(),
349 extensions::ManifestPermissionSet(), 342 extensions::ManifestPermissionSet(),
350 origin_set, 343 origin_set,
351 extensions::URLPatternSet())); 344 extensions::URLPatternSet()));
352 } 345 }
353 346
354 void ChromeExtensionsDispatcherDelegate::HandleWebRequestAPIUsage( 347 void ChromeExtensionsDispatcherDelegate::HandleWebRequestAPIUsage(
355 bool webrequest_used) { 348 bool webrequest_used) {
356 webrequest_used_ = webrequest_used; 349 webrequest_used_ = webrequest_used;
357 } 350 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698