commit | ab59c3eb888bf37dfacb76d18c443ef284460b7f | [log] [tgz] |
---|---|---|
author | Paul Miller <paulmiller@google.com> | Mon Feb 04 19:08:06 2019 |
committer | Paul Miller <paulmiller@chromium.org> | Mon Feb 04 19:08:06 2019 |
tree | 4fd4a90339b5fea0f76e7ef241e269d14bfe5a17 | |
parent | ecf83e1defb9875792b1193d81acc4ffbe230491 [diff] |
Allow non-WebUI navigations in single-process mode WebUINavigationThrottle blocks WebUI (chrome://...) pages from loading non-WebUI pages in subframes. When a renderer navigates to a WebUI page, a "WebUI bindings" bit is set in that renderer's ChildProcessSecurityPolicyImpl::SecurityState, and it remains for the lifetime of the renderer process. WebUINavigationThrottles are created for renderers with this bit set. In multi-process mode, navigating away from the WebUI page creates a fresh renderer with a fresh SecurityState, so subsequent non-WebUI pages are again able to load non-WebUI subframes. In single-process mode, the WebUI bit remains. After visiting a WebUI page, iframes on all other pages will be broken until Chrome is restarted. This breaks Android WebView as well, since WebView uses single-process on old Android versions and low-memory devices. It breaks CTS because testOnSafeBrowsingHit loads chrome://safe-browsing/match?type=malware, which sets the bit, and then testShouldOverrideUrlLoadingOnCreateWindow tries to use an iframe. Fix this by not creating a WebUINavigationThrottle in single-process mode. BUG=924799 Change-Id: I5a61f45dc065681f0e6b97e0b205e804edbd7402 Reviewed-on: https://chromium-review.googlesource.com/c/1432953 Commit-Queue: Paul Miller <paulmiller@chromium.org> Reviewed-by: Nasko Oskov <nasko@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#626267}(cherry picked from commit 8a5d9397e612ca062c702a0f8f017db516790b85) Reviewed-on: https://chromium-review.googlesource.com/c/1452372 Reviewed-by: Paul Miller <paulmiller@chromium.org> Cr-Commit-Position: refs/branch-heads/3683@{#176} Cr-Branched-From: e51029943e0a38dd794b73caaf6373d5496ae783-refs/heads/master@{#625896}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .