| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/chrome_content_renderer_client.h" | 5 #include "chrome/renderer/chrome_content_renderer_client.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 239 | 239 |
| 240 if (command_line->HasSwitch(switches::kPlaybackMode) || | 240 if (command_line->HasSwitch(switches::kPlaybackMode) || |
| 241 command_line->HasSwitch(switches::kRecordMode) || | 241 command_line->HasSwitch(switches::kRecordMode) || |
| 242 command_line->HasSwitch(switches::kNoJsRandomness)) { | 242 command_line->HasSwitch(switches::kNoJsRandomness)) { |
| 243 thread->RegisterExtension(extensions_v8::PlaybackExtension::Get()); | 243 thread->RegisterExtension(extensions_v8::PlaybackExtension::Get()); |
| 244 } | 244 } |
| 245 | 245 |
| 246 if (command_line->HasSwitch(switches::kEnableIPCFuzzing)) { | 246 if (command_line->HasSwitch(switches::kEnableIPCFuzzing)) { |
| 247 thread->GetChannel()->set_outgoing_message_filter(LoadExternalIPCFuzzer()); | 247 thread->GetChannel()->set_outgoing_message_filter(LoadExternalIPCFuzzer()); |
| 248 } | 248 } |
| 249 // chrome:, chrome-devtools:, and chrome-internal: pages should not be | 249 // chrome:, chrome-search:, chrome-devtools:, and chrome-internal: pages |
| 250 // accessible by normal content, and should also be unable to script | 250 // should not be accessible by normal content, and should also be unable to |
| 251 // anything but themselves (to help limit the damage that a corrupt | 251 // script anything but themselves (to help limit the damage that a corrupt |
| 252 // page could cause). | 252 // page could cause). |
| 253 WebString chrome_ui_scheme(ASCIIToUTF16(chrome::kChromeUIScheme)); | 253 WebString chrome_ui_scheme(ASCIIToUTF16(chrome::kChromeUIScheme)); |
| 254 WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(chrome_ui_scheme); | 254 WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(chrome_ui_scheme); |
| 255 | 255 |
| 256 WebString chrome_search_scheme(ASCIIToUTF16(chrome::kChromeSearchScheme)); |
| 257 WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(chrome_search_scheme); |
| 258 |
| 256 WebString dev_tools_scheme(ASCIIToUTF16(chrome::kChromeDevToolsScheme)); | 259 WebString dev_tools_scheme(ASCIIToUTF16(chrome::kChromeDevToolsScheme)); |
| 257 WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(dev_tools_scheme); | 260 WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(dev_tools_scheme); |
| 258 | 261 |
| 259 WebString internal_scheme(ASCIIToUTF16(chrome::kChromeInternalScheme)); | 262 WebString internal_scheme(ASCIIToUTF16(chrome::kChromeInternalScheme)); |
| 260 WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(internal_scheme); | 263 WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(internal_scheme); |
| 261 | 264 |
| 262 #if defined(OS_CHROMEOS) | 265 #if defined(OS_CHROMEOS) |
| 263 WebString drive_scheme(ASCIIToUTF16(chrome::kDriveScheme)); | 266 WebString drive_scheme(ASCIIToUTF16(chrome::kDriveScheme)); |
| 264 WebSecurityPolicy::registerURLSchemeAsLocal(drive_scheme); | 267 WebSecurityPolicy::registerURLSchemeAsLocal(drive_scheme); |
| 265 #endif | 268 #endif |
| 266 | 269 |
| 267 // chrome: pages should not be accessible by bookmarklets or javascript: | 270 // chrome: and chrome-search: pages should not be accessible by bookmarklets |
| 268 // URLs typed in the omnibox. | 271 // or javascript: URLs typed in the omnibox. |
| 269 WebSecurityPolicy::registerURLSchemeAsNotAllowingJavascriptURLs( | 272 WebSecurityPolicy::registerURLSchemeAsNotAllowingJavascriptURLs( |
| 270 chrome_ui_scheme); | 273 chrome_ui_scheme); |
| 274 WebSecurityPolicy::registerURLSchemeAsNotAllowingJavascriptURLs( |
| 275 chrome_search_scheme); |
| 271 | 276 |
| 272 // chrome:, and chrome-extension: resources shouldn't trigger insecure | 277 // chrome:, chrome-search:, and chrome-extension: resources shouldn't trigger |
| 273 // content warnings. | 278 // insecure content warnings. |
| 274 WebSecurityPolicy::registerURLSchemeAsSecure(chrome_ui_scheme); | 279 WebSecurityPolicy::registerURLSchemeAsSecure(chrome_ui_scheme); |
| 280 WebSecurityPolicy::registerURLSchemeAsSecure(chrome_search_scheme); |
| 275 | 281 |
| 276 WebString extension_scheme(ASCIIToUTF16(extensions::kExtensionScheme)); | 282 WebString extension_scheme(ASCIIToUTF16(extensions::kExtensionScheme)); |
| 277 WebSecurityPolicy::registerURLSchemeAsSecure(extension_scheme); | 283 WebSecurityPolicy::registerURLSchemeAsSecure(extension_scheme); |
| 278 | 284 |
| 279 // chrome-extension: resources should be allowed to receive CORS requests. | 285 // chrome-extension: resources should be allowed to receive CORS requests. |
| 280 WebSecurityPolicy::registerURLSchemeAsCORSEnabled(extension_scheme); | 286 WebSecurityPolicy::registerURLSchemeAsCORSEnabled(extension_scheme); |
| 281 | 287 |
| 282 WebString extension_resource_scheme( | 288 WebString extension_resource_scheme( |
| 283 ASCIIToUTF16(chrome::kExtensionResourceScheme)); | 289 ASCIIToUTF16(chrome::kExtensionResourceScheme)); |
| 284 WebSecurityPolicy::registerURLSchemeAsSecure(extension_resource_scheme); | 290 WebSecurityPolicy::registerURLSchemeAsSecure(extension_resource_scheme); |
| (...skipping 794 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1079 } | 1085 } |
| 1080 | 1086 |
| 1081 void ChromeContentRendererClient::RegisterPPAPIInterfaceFactories( | 1087 void ChromeContentRendererClient::RegisterPPAPIInterfaceFactories( |
| 1082 webkit::ppapi::PpapiInterfaceFactoryManager* factory_manager) { | 1088 webkit::ppapi::PpapiInterfaceFactoryManager* factory_manager) { |
| 1083 #if defined(ENABLE_PLUGINS) | 1089 #if defined(ENABLE_PLUGINS) |
| 1084 factory_manager->RegisterFactory(ChromePPAPIInterfaceFactory); | 1090 factory_manager->RegisterFactory(ChromePPAPIInterfaceFactory); |
| 1085 #endif | 1091 #endif |
| 1086 } | 1092 } |
| 1087 | 1093 |
| 1088 } // namespace chrome | 1094 } // namespace chrome |
| OLD | NEW |