fune/netwerk/test/browser/browser_103_preload.js
Emilio Cobos Álvarez ea11c5c0b4 Bug 1847811 - Remove network.preload pref. r=necko-reviewers,anti-tracking-reviewers,pbz,kershaw
Having it disabled is not web compatible, and there's no strong reason
to keep it, IMO.

If we want another pref to determine whether preloads are actually
triggered we can add it in the future.

Differential Revision: https://phabricator.services.mozilla.com/D186014
2023-08-14 10:46:03 +00:00

125 lines
3.8 KiB
JavaScript

/* 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";
Services.prefs.setBoolPref("network.early-hints.enabled", true);
// Disable mixed-content upgrading as this test is expecting HTTP image loads
Services.prefs.setBoolPref(
"security.mixed_content.upgrade_display_content",
false
);
const {
request_count_checking,
test_hint_preload_internal,
test_hint_preload,
} = ChromeUtils.importESModule(
"resource://testing-common/early_hint_preload_test_helper.sys.mjs"
);
// TODO testing:
// * Abort main document load while early hint is still loading -> early hint should be aborted
// Test that with early hint config option disabled, no early hint requests are made
add_task(async function test_103_preload_disabled() {
Services.prefs.setBoolPref("network.early-hints.enabled", false);
await test_hint_preload(
"test_103_preload_disabled",
"https://example.com",
"https://example.com/browser/netwerk/test/browser/early_hint_pixel.sjs",
{ hinted: 0, normal: 1 }
);
Services.prefs.setBoolPref("network.early-hints.enabled", true);
});
// Preload with same origin in secure context with mochitest http proxy
add_task(async function test_103_preload_https() {
await test_hint_preload(
"test_103_preload_https",
"https://example.org",
"/browser/netwerk/test/browser/early_hint_pixel.sjs",
{ hinted: 1, normal: 0 }
);
});
// Preload with same origin in secure context
add_task(async function test_103_preload() {
await test_hint_preload(
"test_103_preload",
"https://example.com",
"https://example.com/browser/netwerk/test/browser/early_hint_pixel.sjs",
{ hinted: 1, normal: 0 }
);
});
// Cross origin preload in secure context
add_task(async function test_103_preload_cor() {
await test_hint_preload(
"test_103_preload_cor",
"https://example.com",
"https://example.net/browser/netwerk/test/browser/early_hint_pixel.sjs",
{ hinted: 1, normal: 0 }
);
});
// Cross origin preload in insecure context
add_task(async function test_103_preload_insecure_cor() {
await test_hint_preload(
"test_103_preload_insecure_cor",
"https://example.com",
"http://mochi.test:8888/browser/netwerk/test/browser/early_hint_pixel.sjs",
{ hinted: 0, normal: 1 }
);
});
// Same origin request with relative url
add_task(async function test_103_relative_preload() {
await test_hint_preload(
"test_103_relative_preload",
"https://example.com",
"/browser/netwerk/test/browser/early_hint_pixel.sjs",
{ hinted: 1, normal: 0 }
);
});
// Early hint from insecure context
add_task(async function test_103_insecure_preload() {
await test_hint_preload(
"test_103_insecure_preload",
"http://mochi.test:8888",
"/browser/netwerk/test/browser/early_hint_pixel.sjs",
{ hinted: 0, normal: 1 }
);
});
// Cross origin preload from secure context to insecure context on same domain
add_task(async function test_103_preload_mixed_content() {
await test_hint_preload(
"test_103_preload_mixed_content",
"https://example.org",
"http://example.org/browser/netwerk/test/browser/early_hint_pixel.sjs",
{ hinted: 0, normal: 1 }
);
});
// Same preload from localhost to localhost should preload
add_task(async function test_103_preload_localhost_to_localhost() {
await test_hint_preload(
"test_103_preload_localhost_to_localhost",
"http://127.0.0.1:8888",
"http://127.0.0.1:8888/browser/netwerk/test/browser/early_hint_pixel.sjs",
{ hinted: 1, normal: 0 }
);
});
// Relative url, correct file for requested uri
add_task(async function test_103_preload_only_file() {
await test_hint_preload(
"test_103_preload_only_file",
"https://example.com",
"early_hint_pixel.sjs",
{ hinted: 1, normal: 0 }
);
});