Index: chrome/test/data/extensions/api_test/bindings/frames_before_navigation.html |
diff --git a/chrome/test/data/extensions/api_test/bindings/frames_before_navigation.html b/chrome/test/data/extensions/api_test/bindings/frames_before_navigation.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9d0a1569e459b0e9c1a92f5e6347f4ef1a46e24a |
--- /dev/null |
+++ b/chrome/test/data/extensions/api_test/bindings/frames_before_navigation.html |
@@ -0,0 +1,63 @@ |
+<!doctype html> |
+<html> |
+<body> |
+<iframe id="frame1" src="chrome-extension://ficgdghpakbhhkmdjamiedmcoobamkoo/public.html"></iframe> |
+<iframe id="frame2" src="chrome-extension://ficgdghpakbhhkmdjamiedmcoobamkoo/nonexistent.html"></iframe> |
+<script> |
+ |
+// We expect that chrome.runtime.id will not be set in this frame, and that either |
Devlin
2016/07/21 00:44:54
Are some of these lines over 80 char? Or is that
asargent_no_longer_on_chrome
2016/07/21 18:12:22
Oops, it actually went to 81 chars. Fixed.
|
+// chrome.runtime.sendMessage is not defined or we're able to call it (but |
+// elsewhere in the browser_test that uses this page we check that the message |
+// was not actually sent, or at least didn't incorrectly seem to come from the |
+// extension ficgdghpakbhhkmdjamiedmcoobamkoo). |
+function testFrame(win) { |
+ var haveId = true; |
+ var didRun = false; |
+ try { |
+ haveId = win.eval('typeof chrome.runtime != "undefined" && ' + |
+ 'typeof chrome.runtime.id != "undefined"'); |
+ win.eval('typeof chrome.runtime != "undefined" && chrome.runtime.sendMessage(' + |
+ '"mlmdejkkkhmhchpmepehbcncoalclded", "evil")'); |
+ didRun = true; |
+ } catch (e) { |
+ console.log('caught exception: ' + e); |
+ } |
+ return didRun && !haveId; |
+} |
+ |
+// Test the two frames (actual page and nonexistent page) that were included in |
+// the original html document. |
+var frame1Success = testFrame(document.getElementById('frame1').contentWindow); |
+var frame2Success = testFrame(document.getElementById('frame2').contentWindow); |
+ |
+// Now test two frames that get dynamically created and added to the DOM, again |
+// one actual page and one nonexistent. |
+var frame3 = document.createElement('iframe'); |
+frame3.src = 'chrome-extension://ficgdghpakbhhkmdjamiedmcoobamkoo/public.html'; |
+document.body.appendChild(frame3); |
+var frame3Success = testFrame(frame3.contentWindow); |
+ |
+var frame4 = document.createElement('iframe'); |
+frame4.src = |
+ 'chrome-extension://ficgdghpakbhhkmdjamiedmcoobamkoo/nonexistent.html'; |
+document.body.appendChild(frame4); |
+var frame4Success = testFrame(frame4.contentWindow); |
+ |
+// Finally, test against two newly opened windows. |
+var newWin1 = window.open( |
+ 'chrome-extension://ficgdghpakbhhkmdjamiedmcoobamkoo/public.html'); |
+var newWindow1Success = testFrame(newWin1); |
+ |
+var newWin2 = window.open( |
+ 'chrome-extension://ficgdghpakbhhkmdjamiedmcoobamkoo/nonexistent.html'); |
+var newWindow2Success = testFrame(newWin2); |
+ |
+function getResult() { |
+ window.domAutomationController.send( |
+ frame1Success && frame2Success && frame3Success && |
+ frame4Success && newWindow1Success && newWindow2Success); |
+} |
+ |
+</script> |
+</body> |
+</html> |