Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
// Load a web page containing an iframe that requires authentication but includes the X-Frame-Options: SAMEORIGIN header.
// Make sure that we don't needlessly show an authentication prompt for it.
const { PromptTestUtils } = ChromeUtils.importESModule(
);
add_task(async function () {
SpecialPowers.pushPrefEnv({
set: [["network.auth.supress_auth_prompt_for_XFO_failures", true]],
});
let URL =
let hasPrompt = false;
PromptTestUtils.handleNextPrompt(
window,
{
modalType: Ci.nsIPrompt.MODAL_TYPE_TAB,
promptType: "promptUserAndPass",
},
{ buttonNumClick: 1 }
)
.then(function () {
hasPrompt = true;
})
.catch(function () {});
BrowserTestUtils.startLoadingURIString(gBrowser.selectedBrowser, URL);
// wait until the page and its iframe page is loaded
await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser, true, URL);
Assert.equal(
hasPrompt,
false,
"no prompt when loading page via iframe with x-auth options"
);
});
add_task(async function () {
SpecialPowers.pushPrefEnv({
set: [["network.auth.supress_auth_prompt_for_XFO_failures", false]],
});
let URL =
let hasPrompt = false;
PromptTestUtils.handleNextPrompt(
window,
{
modalType: Ci.nsIPrompt.MODAL_TYPE_TAB,
promptType: "promptUserAndPass",
},
{ buttonNumClick: 1 }
)
.then(function () {
hasPrompt = true;
})
.catch(function () {});
BrowserTestUtils.startLoadingURIString(gBrowser.selectedBrowser, URL);
await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser, true, URL);
Assert.equal(
hasPrompt,
true,
"prompt when loading page via iframe with x-auth options with pref network.auth.supress_auth_prompt_for_XFO_failures disabled"
);
});