forked from mirrors/gecko-dev
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
125 lines
3.8 KiB
JavaScript
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 }
|
|
);
|
|
});
|