/* 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(
"resource://testing-common/PromptTestUtils.sys.mjs"
);
add_task(async
function () {
SpecialPowers.pushPrefEnv({
set: [[
"network.auth.supress_auth_prompt_for_XFO_failures",
true]],
});
let URL =
"https://example.com/browser/netwerk/test/browser/test_1629307.html";
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 =
"https://example.com/browser/netwerk/test/browser/test_1629307.html";
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"
);
});