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";
// We need to request longer timeout because HTTPS-Only Mode sends the
// backround http request with a delay of N milliseconds before the
// actual load gets cancelled.
requestLongerTimeout(5);
const TEST_PATH_HTTP = getRootDirectory(gTestPath).replace(
);
const TEST_PATH_HTTPS = getRootDirectory(gTestPath).replace(
);
const TIMEOUT_PAGE_URI_HTTP =
TEST_PATH_HTTP + "file_errorpage_timeout_server.sjs";
const TIMEOUT_PAGE_URI_HTTPS =
TEST_PATH_HTTPS + "file_errorpage_timeout_server.sjs";
add_task(async function avoid_timeout_and_show_https_only_error_page() {
await BrowserTestUtils.withNewTab("about:blank", async function (browser) {
let loaded = BrowserTestUtils.browserLoaded(
browser,
false, // includeSubFrames = false, no need to includeSubFrames
TIMEOUT_PAGE_URI_HTTPS, // Wait for upgraded page to timeout
true // maybeErrorPage = true, because we need the error page to appear
);
BrowserTestUtils.startLoadingURIString(browser, TIMEOUT_PAGE_URI_HTTP);
await loaded;
await SpecialPowers.spawn(browser, [], async function () {
const doc = content.document;
let errorPage = doc.body.innerHTML;
// It's possible that fluent has not been translated when running in
// chaos mode, hence let's rather use an element id for verification
// that the https-only mode error page has loaded.
ok(
errorPage.includes("about-httpsonly-button-continue-to-site"),
"Potential time-out in https-only mode should cause error page to appear!"
);
// Verify that the right title is set.
ok(
errorPage.includes("about-httpsonly-title-site-not-available"),
"Potential time-out in https-only mode should cause error page to appear with right title!"
);
});
});
});