| Index: chrome/test/data/extensions/api_test/sandboxed_pages_csp/sandboxed.html
|
| diff --git a/chrome/test/data/extensions/api_test/sandboxed_pages_csp/sandboxed.html b/chrome/test/data/extensions/api_test/sandboxed_pages_csp/sandboxed.html
|
| index ac13d0bb80ef380059c4aa4d3e6e7f6a3084ceea..6f2cd359d046973c91109f3804d87fe73573b04f 100644
|
| --- a/chrome/test/data/extensions/api_test/sandboxed_pages_csp/sandboxed.html
|
| +++ b/chrome/test/data/extensions/api_test/sandboxed_pages_csp/sandboxed.html
|
| @@ -3,6 +3,19 @@ This page should be sandboxed.
|
| <script>
|
| // We're not served with the extension default CSP, we can use inline script.
|
|
|
| +var sendResponse = function(msg) {
|
| + var mainWindow = window.opener || window.top;
|
| + mainWindow.postMessage(msg, '*');
|
| +};
|
| +
|
| +var remote_frame_loaded = false;
|
| +window.addEventListener('securitypolicyviolation', function(e) {
|
| + if (remote_frame_loaded)
|
| + sendResponse('succeeded');
|
| + else
|
| + sendResponse('failed');
|
| +});
|
| +
|
| var loadFrameExpectResponse = function(iframe, url) {
|
| var identifier = performance.now();
|
| return new Promise(function(resolve, reject) {
|
| @@ -25,10 +38,6 @@ var loadFrameExpectResponse = function(iframe, url) {
|
|
|
| var runTestAndRespond = function(localUrl, remoteUrl) {
|
| var iframe = document.createElement('iframe');
|
| - var sendResponse = function(msg) {
|
| - var mainWindow = window.opener || window.top;
|
| - mainWindow.postMessage(msg, '*');
|
| - };
|
|
|
| // First load local resource in |iframe|, expect the local frame to respond.
|
| loadFrameExpectResponse(iframe, localUrl).then(function() {
|
| @@ -36,6 +45,10 @@ var runTestAndRespond = function(localUrl, remoteUrl) {
|
| // resource will fail to load but we'd get an iframe.onload event and the
|
| // local frame will still be there. Therefore, expect the local frame to
|
| // respond again.
|
| + // PlzNavigate: The first local frame has been replaced by an error page.
|
| + // Instead, rely on the SecurityPolicyViolationEvent to detect that the
|
| + // frame has been blocked.
|
| + remote_frame_loaded = true;
|
| return loadFrameExpectResponse(iframe, remoteUrl);
|
| }).then(function() {
|
| sendResponse('succeeded');
|
|
|