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

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

Issue 1866103002: [Extensions] Expand bindings access checks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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/channel_info.h" 10 #include "chrome/common/channel_info.h"
(...skipping 19 matching lines...) Expand all
30 #include "content/public/renderer/render_thread.h" 30 #include "content/public/renderer/render_thread.h"
31 #include "content/public/renderer/render_view.h" 31 #include "content/public/renderer/render_view.h"
32 #include "extensions/common/constants.h" 32 #include "extensions/common/constants.h"
33 #include "extensions/common/extension.h" 33 #include "extensions/common/extension.h"
34 #include "extensions/common/feature_switch.h" 34 #include "extensions/common/feature_switch.h"
35 #include "extensions/common/permissions/manifest_permission_set.h" 35 #include "extensions/common/permissions/manifest_permission_set.h"
36 #include "extensions/common/permissions/permission_set.h" 36 #include "extensions/common/permissions/permission_set.h"
37 #include "extensions/common/permissions/permissions_data.h" 37 #include "extensions/common/permissions/permissions_data.h"
38 #include "extensions/common/switches.h" 38 #include "extensions/common/switches.h"
39 #include "extensions/renderer/dispatcher.h" 39 #include "extensions/renderer/dispatcher.h"
40 #include "extensions/renderer/i18n_custom_bindings.h"
41 #include "extensions/renderer/lazy_background_page_native_handler.h"
40 #include "extensions/renderer/native_handler.h" 42 #include "extensions/renderer/native_handler.h"
41 #include "extensions/renderer/resource_bundle_source_map.h" 43 #include "extensions/renderer/resource_bundle_source_map.h"
42 #include "extensions/renderer/script_context.h" 44 #include "extensions/renderer/script_context.h"
43 #include "third_party/WebKit/public/platform/WebString.h" 45 #include "third_party/WebKit/public/platform/WebString.h"
44 #include "third_party/WebKit/public/web/WebSecurityPolicy.h" 46 #include "third_party/WebKit/public/web/WebSecurityPolicy.h"
45 47
46 #if defined(ENABLE_WEBRTC) 48 #if defined(ENABLE_WEBRTC)
47 #include "chrome/renderer/extensions/cast_streaming_native_handler.h" 49 #include "chrome/renderer/extensions/cast_streaming_native_handler.h"
48 #endif 50 #endif
49 51
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 #if defined(ENABLE_WEBRTC) 118 #if defined(ENABLE_WEBRTC)
117 module_system->RegisterNativeHandler( 119 module_system->RegisterNativeHandler(
118 "cast_streaming_natives", 120 "cast_streaming_natives",
119 scoped_ptr<NativeHandler>( 121 scoped_ptr<NativeHandler>(
120 new extensions::CastStreamingNativeHandler(context))); 122 new extensions::CastStreamingNativeHandler(context)));
121 #endif 123 #endif
122 module_system->RegisterNativeHandler( 124 module_system->RegisterNativeHandler(
123 "automationInternal", 125 "automationInternal",
124 scoped_ptr<NativeHandler>( 126 scoped_ptr<NativeHandler>(
125 new extensions::AutomationInternalCustomBindings(context))); 127 new extensions::AutomationInternalCustomBindings(context)));
128
129 // The following are native handlers that are defined in //extensions, but
130 // are only used for APIs defined in Chrome.
131 // TODO(devlin): We should clean this up. If an API is defined in Chrome,
132 // there's no reason to have its native handlers residing and being compiled
133 // in //extensions.
asargent_no_longer_on_chrome 2016/04/11 17:30:14 Can you explain why you moved these here from //ex
Devlin 2016/04/13 19:51:26 These are for features that are only available in
asargent_no_longer_on_chrome 2016/04/13 23:02:40 Ok, the part about i18n makes sense since its impl
Devlin 2016/04/15 21:39:24 Right now, it's only used by tts, and tts is a fea
134 module_system->RegisterNativeHandler(
135 "i18n",
136 scoped_ptr<NativeHandler>(new extensions::I18NCustomBindings(context)));
137 module_system->RegisterNativeHandler(
138 "lazy_background_page",
139 scoped_ptr<NativeHandler>(
140 new extensions::LazyBackgroundPageNativeHandler(context)));
126 } 141 }
127 142
128 void ChromeExtensionsDispatcherDelegate::PopulateSourceMap( 143 void ChromeExtensionsDispatcherDelegate::PopulateSourceMap(
129 extensions::ResourceBundleSourceMap* source_map) { 144 extensions::ResourceBundleSourceMap* source_map) {
130 // Custom bindings. 145 // Custom bindings.
131 source_map->RegisterSource("app", IDR_APP_CUSTOM_BINDINGS_JS); 146 source_map->RegisterSource("app", IDR_APP_CUSTOM_BINDINGS_JS);
132 source_map->RegisterSource("automation", IDR_AUTOMATION_CUSTOM_BINDINGS_JS); 147 source_map->RegisterSource("automation", IDR_AUTOMATION_CUSTOM_BINDINGS_JS);
133 source_map->RegisterSource("automationEvent", IDR_AUTOMATION_EVENT_JS); 148 source_map->RegisterSource("automationEvent", IDR_AUTOMATION_EVENT_JS);
134 source_map->RegisterSource("automationNode", IDR_AUTOMATION_NODE_JS); 149 source_map->RegisterSource("automationNode", IDR_AUTOMATION_NODE_JS);
135 source_map->RegisterSource("browserAction", 150 source_map->RegisterSource("browserAction",
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 } 277 }
263 278
264 void ChromeExtensionsDispatcherDelegate::SetChannel(int channel) { 279 void ChromeExtensionsDispatcherDelegate::SetChannel(int channel) {
265 extensions::SetCurrentChannel(static_cast<version_info::Channel>(channel)); 280 extensions::SetCurrentChannel(static_cast<version_info::Channel>(channel));
266 if (extensions::feature_util::ExtensionServiceWorkersEnabled()) { 281 if (extensions::feature_util::ExtensionServiceWorkersEnabled()) {
267 // chrome-extension: resources should be allowed to register ServiceWorkers. 282 // chrome-extension: resources should be allowed to register ServiceWorkers.
268 blink::WebSecurityPolicy::registerURLSchemeAsAllowingServiceWorkers( 283 blink::WebSecurityPolicy::registerURLSchemeAsAllowingServiceWorkers(
269 blink::WebString::fromUTF8(extensions::kExtensionScheme)); 284 blink::WebString::fromUTF8(extensions::kExtensionScheme));
270 } 285 }
271 } 286 }
OLDNEW
« no previous file with comments | « no previous file | chrome/renderer/extensions/tabs_custom_bindings.cc » ('j') | extensions/renderer/object_backed_native_handler.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698