Index: chrome/renderer/chrome_content_renderer_client.cc |
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc |
index 8abba76074fca84d41df0f0cb5d2ef0519f2b1ae..285251e61cb81ad0cf68411b3f1056b63ffc94c2 100644 |
--- a/chrome/renderer/chrome_content_renderer_client.cc |
+++ b/chrome/renderer/chrome_content_renderer_client.cc |
@@ -289,10 +289,10 @@ void ChromeContentRendererClient::RenderThreadStarted() { |
if (command_line->HasSwitch(switches::kNewProfileManagement)) |
thread->RegisterExtension(extensions_v8::PrincipalsExtension::Get()); |
- // chrome:, chrome-search:, chrome-devtools:, and chrome-internal: pages |
- // should not be accessible by normal content, and should also be unable to |
- // script anything but themselves (to help limit the damage that a corrupt |
- // page could cause). |
+ // chrome:, chrome-search:, chrome-devtools:, chrome-distiller: and |
+ // chrome-internal: pages should not be accessible by normal content, and |
+ // should also be unable to script anything but themselves (to help limit the |
+ // damage that a corrupt page could cause). |
WebString chrome_ui_scheme(ASCIIToUTF16(chrome::kChromeUIScheme)); |
WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(chrome_ui_scheme); |
@@ -308,6 +308,13 @@ void ChromeContentRendererClient::RenderThreadStarted() { |
WebString internal_scheme(ASCIIToUTF16(chrome::kChromeInternalScheme)); |
WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(internal_scheme); |
+ if (CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kEnableDomDistiller)) { |
+ WebString dom_distiller_scheme(ASCIIToUTF16(chrome::kDomDistillerScheme)); |
+ // TODO(nyquist): Add test to ensure this happens when the flag is set. |
+ WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(dom_distiller_scheme); |
+ } |
+ |
#if defined(OS_CHROMEOS) |
WebString drive_scheme(ASCIIToUTF16(chrome::kDriveScheme)); |
WebSecurityPolicy::registerURLSchemeAsLocal(drive_scheme); |