summaryrefslogtreecommitdiffstats
path: root/netwerk/test/browser/browser_103_user_load.js
diff options
context:
space:
mode:
Diffstat (limited to 'netwerk/test/browser/browser_103_user_load.js')
-rw-r--r--netwerk/test/browser/browser_103_user_load.js81
1 files changed, 81 insertions, 0 deletions
diff --git a/netwerk/test/browser/browser_103_user_load.js b/netwerk/test/browser/browser_103_user_load.js
new file mode 100644
index 0000000000..01c4b71ab2
--- /dev/null
+++ b/netwerk/test/browser/browser_103_user_load.js
@@ -0,0 +1,81 @@
+/* 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";
+
+// simulate user initiated loads by entering the URL in the URL-bar code based on
+// https://searchfox.org/mozilla-central/rev/5644fae86d5122519a0e34ee03117c88c6ed9b47/browser/components/urlbar/tests/browser/browser_enter.js
+
+const {
+ request_count_checking,
+ test_hint_preload_internal,
+ test_hint_preload,
+} = ChromeUtils.importESModule(
+ "resource://testing-common/early_hint_preload_test_helper.sys.mjs"
+);
+
+const START_VALUE =
+ "https://example.com/browser/netwerk/test/browser/early_hint_asset_html.sjs?as=style&hinted=1";
+
+add_setup(async function () {
+ await SpecialPowers.pushPrefEnv({
+ set: [["browser.urlbar.suggest.quickactions", false]],
+ });
+});
+
+Services.prefs.setBoolPref("network.early-hints.enabled", true);
+
+// bug 1780822
+add_task(async function user_initiated_load() {
+ // reset the count
+ let headers = new Headers();
+ headers.append("X-Early-Hint-Count-Start", "");
+ await fetch(
+ "https://example.com/browser/netwerk/test/browser/early_hint_pixel_count.sjs",
+ { headers }
+ );
+
+ info("Simple user initiated load");
+ let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
+
+ // under normal test conditions using the systemPrincipal as loadingPrincipal
+ // doesn't elicit a crash, changing the behavior for this test:
+ // https://searchfox.org/mozilla-central/rev/5644fae86d5122519a0e34ee03117c88c6ed9b47/dom/security/nsContentSecurityManager.cpp#1149-1150
+ Services.prefs.setBoolPref(
+ "security.disallow_non_local_systemprincipal_in_tests",
+ true
+ );
+
+ gURLBar.value = START_VALUE;
+ gURLBar.focus();
+ EventUtils.synthesizeKey("KEY_Enter");
+ await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
+
+ // reset the config option
+ Services.prefs.clearUserPref(
+ "security.disallow_non_local_systemprincipal_in_tests"
+ );
+
+ // Check url bar and selected tab.
+ is(
+ gURLBar.value,
+ START_VALUE,
+ "Urlbar should preserve the value on return keypress"
+ );
+ is(gBrowser.selectedTab, tab, "New URL was loaded in the current tab");
+
+ let gotRequestCount = await fetch(
+ "https://example.com/browser/netwerk/test/browser/early_hint_pixel_count.sjs"
+ ).then(response => response.json());
+ let expectedRequestCount = { hinted: 1, normal: 0 };
+
+ await request_count_checking(
+ "test_preload_user_initiated",
+ gotRequestCount,
+ expectedRequestCount
+ );
+
+ // Cleanup.
+ BrowserTestUtils.removeTab(gBrowser.selectedTab);
+});