Index: chrome/test/data/extensions/api_test/sandboxed_pages_csp/main.js |
diff --git a/chrome/test/data/extensions/api_test/sandboxed_pages_csp/main.js b/chrome/test/data/extensions/api_test/sandboxed_pages_csp/main.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..16cf3717b57bb161135906d0c4747a4dbca7b60f |
--- /dev/null |
+++ b/chrome/test/data/extensions/api_test/sandboxed_pages_csp/main.js |
@@ -0,0 +1,48 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+var LOCAL_FILE_NAME = 'local_frame.html'; |
+var REMOTE_FILE_NAME = 'remote_frame.html'; |
+ |
+onmessage = function(e) { |
+ var data = JSON.parse(e.data); |
+ var message = data[0]; |
+ if (message != 'loaded') |
+ return; |
+ |
+ var loadedFileName = data[1]; |
+ var succeeded = data[2]; |
+ var expectSuccess = loadedFileName === LOCAL_FILE_NAME; |
+ chrome.test.assertEq(expectSuccess, succeeded); |
+ chrome.test.succeed(); |
+}; |
+ |
+var loadIframeContentInSandboxedPage = function(url, fileName) { |
+ var sandboxedFrame = document.createElement('iframe'); |
+ sandboxedFrame.src = 'sandboxed.html'; |
+ sandboxedFrame.onload = function() { |
+ sandboxedFrame.contentWindow.postMessage( |
+ JSON.stringify(['load', url, fileName]), '*'); |
+ sandboxedFrame.onload = null; |
+ }; |
+ document.body.appendChild(sandboxedFrame); |
+}; |
+ |
+onload = function() { |
+ chrome.test.getConfig(function(config) { |
+ chrome.test.runTests([ |
+ function sandboxedFrameLocalContentPasses() { |
+ // Response is received in |onmessage|. |
+ loadIframeContentInSandboxedPage(LOCAL_FILE_NAME, LOCAL_FILE_NAME); |
+ }, |
+ function sandboxedFrameWebContentFails() { |
+ var url = 'http://localhost:' + config.testServer.port + |
+ '/extensions/api_test/sandboxed_pages_web_content/' + |
+ REMOTE_FILE_NAME; |
+ // Response is received in |onmessage|. |
+ loadIframeContentInSandboxedPage(url, REMOTE_FILE_NAME); |
+ } |
+ ]); |
+ }); |
+}; |