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 ffb7765ac9cb543a1df8d0e6ce175d1a139b9709..eb92b84870b45d4b11a2a990e028fa2621d2172d 100644 |
--- a/chrome/renderer/chrome_content_renderer_client.cc |
+++ b/chrome/renderer/chrome_content_renderer_client.cc |
@@ -281,10 +281,10 @@ void ChromeContentRendererClient::RenderThreadStarted() { |
thread->RegisterExtension(extensions_v8::PlaybackExtension::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); |
@@ -300,6 +300,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); |