Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

// Bug 1725026 - HTTPS Only Mode - Test if a load triggered by a user gesture
// Test if a load triggered by a user gesture can be upgraded to HTTPS
// successfully.
"use strict";
const testPathUpgradeable = getRootDirectory(gTestPath).replace(
);
const kTestURI = testPathUpgradeable + "file_user_gesture.html";
add_task(async function () {
// Enable HTTPS-Only Mode and register console-listener
await SpecialPowers.pushPrefEnv({
set: [["dom.security.https_only_mode", true]],
});
await BrowserTestUtils.withNewTab("about:blank", async function (browser) {
const loaded = BrowserTestUtils.browserLoaded(browser, false, null, true);
// 1. Upgrade a page to https://
BrowserTestUtils.startLoadingURIString(browser, kTestURI);
await loaded;
await ContentTask.spawn(browser, {}, async () => {
ok(
content.document.location.href.startsWith("https://"),
"Should be https"
);
// 2. Trigger a load by clicking button.
// The scheme of the link url is `http` and the load should be able to
// upgraded to `https` because of HTTPS-only mode.
let button = content.document.getElementById("httpLinkButton");
await EventUtils.synthesizeMouseAtCenter(
button,
{ type: "mousedown" },
content
);
await EventUtils.synthesizeMouseAtCenter(
button,
{ type: "mouseup" },
content
);
await ContentTaskUtils.waitForCondition(() => {
return content.document.location.href.startsWith("https://");
});
ok(
content.document.location.href.startsWith("https://"),
"Should be https"
);
});
});
});