| OLD | NEW |
| (Empty) |
| 1 <!doctype html> | |
| 2 <html> | |
| 3 <body> | |
| 4 <iframe id="frame1" src="chrome-extension://ficgdghpakbhhkmdjamiedmcoobamkoo/pub
lic.html"></iframe> | |
| 5 <iframe id="frame2" src="chrome-extension://ficgdghpakbhhkmdjamiedmcoobamkoo/non
existent.html"></iframe> | |
| 6 <script> | |
| 7 | |
| 8 // We expect that chrome.runtime.id will not be set in this frame, and that | |
| 9 // either chrome.runtime.sendMessage is not defined or we're able to call it | |
| 10 // (but elsewhere in the browser_test that uses this page we check that the | |
| 11 // message was not actually sent, or at least didn't incorrectly seem to come | |
| 12 // from the extension ficgdghpakbhhkmdjamiedmcoobamkoo). | |
| 13 function testFrame(win) { | |
| 14 var haveId = true; | |
| 15 var didRun = false; | |
| 16 try { | |
| 17 haveId = win.eval('typeof chrome.runtime != "undefined" && ' + | |
| 18 'typeof chrome.runtime.id != "undefined"'); | |
| 19 win.eval('typeof chrome.runtime != "undefined" ' + | |
| 20 '&& chrome.runtime.sendMessage(' + | |
| 21 '"mlmdejkkkhmhchpmepehbcncoalclded", "evil")'); | |
| 22 didRun = true; | |
| 23 } catch (e) { | |
| 24 console.log('caught exception: ' + e); | |
| 25 } | |
| 26 return didRun && !haveId; | |
| 27 } | |
| 28 | |
| 29 // Test the two frames (actual page and nonexistent page) that were included in | |
| 30 // the original html document. | |
| 31 var frame1Success = testFrame(document.getElementById('frame1').contentWindow); | |
| 32 var frame2Success = testFrame(document.getElementById('frame2').contentWindow); | |
| 33 | |
| 34 // Now test two frames that get dynamically created and added to the DOM, again | |
| 35 // one actual page and one nonexistent. | |
| 36 var frame3 = document.createElement('iframe'); | |
| 37 frame3.src = 'chrome-extension://ficgdghpakbhhkmdjamiedmcoobamkoo/public.html'; | |
| 38 document.body.appendChild(frame3); | |
| 39 var frame3Success = testFrame(frame3.contentWindow); | |
| 40 | |
| 41 var frame4 = document.createElement('iframe'); | |
| 42 frame4.src = | |
| 43 'chrome-extension://ficgdghpakbhhkmdjamiedmcoobamkoo/nonexistent.html'; | |
| 44 document.body.appendChild(frame4); | |
| 45 var frame4Success = testFrame(frame4.contentWindow); | |
| 46 | |
| 47 // Finally, test against two newly opened windows. | |
| 48 var newWin1 = window.open( | |
| 49 'chrome-extension://ficgdghpakbhhkmdjamiedmcoobamkoo/public.html'); | |
| 50 var newWindow1Success = testFrame(newWin1); | |
| 51 | |
| 52 var newWin2 = window.open( | |
| 53 'chrome-extension://ficgdghpakbhhkmdjamiedmcoobamkoo/nonexistent.html'); | |
| 54 var newWindow2Success = testFrame(newWin2); | |
| 55 | |
| 56 function getResult() { | |
| 57 window.domAutomationController.send( | |
| 58 frame1Success && frame2Success && frame3Success && | |
| 59 frame4Success && newWindow1Success && newWindow2Success); | |
| 60 } | |
| 61 | |
| 62 </script> | |
| 63 </body> | |
| 64 </html> | |
| OLD | NEW |