| 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 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 232 | 232 |
| 233 if (command_line->HasSwitch(switches::kPlaybackMode) || | 233 if (command_line->HasSwitch(switches::kPlaybackMode) || |
| 234 command_line->HasSwitch(switches::kRecordMode) || | 234 command_line->HasSwitch(switches::kRecordMode) || |
| 235 command_line->HasSwitch(switches::kNoJsRandomness)) { | 235 command_line->HasSwitch(switches::kNoJsRandomness)) { |
| 236 thread->RegisterExtension(extensions_v8::PlaybackExtension::Get()); | 236 thread->RegisterExtension(extensions_v8::PlaybackExtension::Get()); |
| 237 } | 237 } |
| 238 | 238 |
| 239 if (command_line->HasSwitch(switches::kEnableIPCFuzzing)) { | 239 if (command_line->HasSwitch(switches::kEnableIPCFuzzing)) { |
| 240 thread->GetChannel()->set_outgoing_message_filter(LoadExternalIPCFuzzer()); | 240 thread->GetChannel()->set_outgoing_message_filter(LoadExternalIPCFuzzer()); |
| 241 } | 241 } |
| 242 // chrome:, chrome-devtools:, and chrome-internal: pages should not be | 242 // chrome:, chrome-search:, chrome-devtools:, and chrome-internal: pages |
| 243 // accessible by normal content, and should also be unable to script | 243 // should not be accessible by normal content, and should also be unable to |
| 244 // anything but themselves (to help limit the damage that a corrupt | 244 // script anything but themselves (to help limit the damage that a corrupt |
| 245 // page could cause). | 245 // page could cause). |
| 246 WebString chrome_ui_scheme(ASCIIToUTF16(chrome::kChromeUIScheme)); | 246 WebString chrome_ui_scheme(ASCIIToUTF16(chrome::kChromeUIScheme)); |
| 247 WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(chrome_ui_scheme); | 247 WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(chrome_ui_scheme); |
| 248 | 248 |
| 249 WebString chrome_search_scheme(ASCIIToUTF16(chrome::kChromeSearchScheme)); |
| 250 WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(chrome_search_scheme); |
| 251 |
| 249 WebString dev_tools_scheme(ASCIIToUTF16(chrome::kChromeDevToolsScheme)); | 252 WebString dev_tools_scheme(ASCIIToUTF16(chrome::kChromeDevToolsScheme)); |
| 250 WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(dev_tools_scheme); | 253 WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(dev_tools_scheme); |
| 251 | 254 |
| 252 WebString internal_scheme(ASCIIToUTF16(chrome::kChromeInternalScheme)); | 255 WebString internal_scheme(ASCIIToUTF16(chrome::kChromeInternalScheme)); |
| 253 WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(internal_scheme); | 256 WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(internal_scheme); |
| 254 | 257 |
| 255 #if defined(OS_CHROMEOS) | 258 #if defined(OS_CHROMEOS) |
| 256 WebString drive_scheme(ASCIIToUTF16(chrome::kDriveScheme)); | 259 WebString drive_scheme(ASCIIToUTF16(chrome::kDriveScheme)); |
| 257 WebSecurityPolicy::registerURLSchemeAsLocal(drive_scheme); | 260 WebSecurityPolicy::registerURLSchemeAsLocal(drive_scheme); |
| 258 #endif | 261 #endif |
| 259 | 262 |
| 260 // chrome: pages should not be accessible by bookmarklets or javascript: | 263 // chrome: and chrome-search: pages should not be accessible by bookmarklets |
| 261 // URLs typed in the omnibox. | 264 // or javascript: URLs typed in the omnibox. |
| 262 WebSecurityPolicy::registerURLSchemeAsNotAllowingJavascriptURLs( | 265 WebSecurityPolicy::registerURLSchemeAsNotAllowingJavascriptURLs( |
| 263 chrome_ui_scheme); | 266 chrome_ui_scheme); |
| 267 WebSecurityPolicy::registerURLSchemeAsNotAllowingJavascriptURLs( |
| 268 chrome_search_scheme); |
| 264 | 269 |
| 265 // chrome:, and chrome-extension: resources shouldn't trigger insecure | 270 // chrome:, chrome-search:, and chrome-extension: resources shouldn't trigger |
| 266 // content warnings. | 271 // insecure content warnings. |
| 267 WebSecurityPolicy::registerURLSchemeAsSecure(chrome_ui_scheme); | 272 WebSecurityPolicy::registerURLSchemeAsSecure(chrome_ui_scheme); |
| 273 WebSecurityPolicy::registerURLSchemeAsSecure(chrome_search_scheme); |
| 268 | 274 |
| 269 WebString extension_scheme(ASCIIToUTF16(extensions::kExtensionScheme)); | 275 WebString extension_scheme(ASCIIToUTF16(extensions::kExtensionScheme)); |
| 270 WebSecurityPolicy::registerURLSchemeAsSecure(extension_scheme); | 276 WebSecurityPolicy::registerURLSchemeAsSecure(extension_scheme); |
| 271 | 277 |
| 272 // chrome-extension: resources should be allowed to receive CORS requests. | 278 // chrome-extension: resources should be allowed to receive CORS requests. |
| 273 WebSecurityPolicy::registerURLSchemeAsCORSEnabled(extension_scheme); | 279 WebSecurityPolicy::registerURLSchemeAsCORSEnabled(extension_scheme); |
| 274 | 280 |
| 275 WebString extension_resource_scheme( | 281 WebString extension_resource_scheme( |
| 276 ASCIIToUTF16(chrome::kExtensionResourceScheme)); | 282 ASCIIToUTF16(chrome::kExtensionResourceScheme)); |
| 277 WebSecurityPolicy::registerURLSchemeAsSecure(extension_resource_scheme); | 283 WebSecurityPolicy::registerURLSchemeAsSecure(extension_resource_scheme); |
| (...skipping 831 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1109 if (container->element().shadowHost().tagName().equals( | 1115 if (container->element().shadowHost().tagName().equals( |
| 1110 WebKit::WebString::fromUTF8(kWebViewTagName))) { | 1116 WebKit::WebString::fromUTF8(kWebViewTagName))) { |
| 1111 return true; | 1117 return true; |
| 1112 } else { | 1118 } else { |
| 1113 return CommandLine::ForCurrentProcess()->HasSwitch( | 1119 return CommandLine::ForCurrentProcess()->HasSwitch( |
| 1114 switches::kEnableBrowserPluginForAllViewTypes); | 1120 switches::kEnableBrowserPluginForAllViewTypes); |
| 1115 } | 1121 } |
| 1116 } | 1122 } |
| 1117 | 1123 |
| 1118 } // namespace chrome | 1124 } // namespace chrome |
| OLD | NEW |