1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <!DOCTYPE HTML>
- <html>
- <!--
- https://bugzilla.mozilla.org/show_bug.cgi?id=777467
- -->
- <head>
- <meta charset="utf-8">
- <title>Test app principal's equality</title>
- <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
- </head>
- <body>
- <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=777467">Mozilla Bug 777467</a>
- <p id="display"></p>
- <script>
- /** Test for app principal's equality **/
- SimpleTest.waitForExplicitFinish();
- var permissions = new Promise(resolve => {
- SpecialPowers.pushPermissions(
- [{ type: "browser", allow: true, context: document },
- { type: "embed-apps", allow: true, context: document }],
- resolve);
- });
- permissions.then(() => {
- $('content').innerHTML =
- '<iframe src="error404"></iframe>\n' +
- '<iframe mozbrowser src="error404"></iframe>\n' +
- '<iframe mozapp="http://example.org/manifest.webapp" mozbrowser src="error404"></iframe>';
- var iframes = document.getElementsByTagName("iframe");
- var promises = []
- for (var i = 0; i < promises.length; ++i) {
- promises.push(new Promise(resolve => {
- iframes[i].addEventListener("load", resolve);
- }));
- }
- return Promise.all(promises);
- });
- var prefs = new Promise(resolve => {
- SpecialPowers.pushPrefEnv(
- { set: [[ "dom.mozBrowserFramesEnabled", true ],
- [ "dom.ipc.browser_frames.oop_by_default", false ]] },
- resolve);
- });
- </script>
- <div id="content" style="display: none;">
- </div>
- <pre id="test">
- <script type="application/javascript">
- function canAccessDocument(win) {
- var result = true;
- try {
- win.document;
- } catch(e) {
- result = false;
- }
- return result;
- }
- var loaded = new Promise(resolve => addLoadEvent(resolve));
- Promise.all([ permissions, prefs, loaded ]).then(runTest);
- function runTest() {
- // Test the witness frame (we can access same-origin frame).
- is(canAccessDocument(frames[0]), true,
- "should be able to access the first frame");
- // Test different app/browserElement frames.
- for (var i=1; i<frames.length; ++i) {
- is(canAccessDocument(frames[i]), false,
- "should not be able to access the other frames");
- }
- SimpleTest.finish();
- }
- </script>
- </pre>
- </body>
- </html>
|