Bug 1732875 - Call the ExperimentUserAgentUpdated() handler once direcly in nsHttpHandler::Init(). r=cpeterson,necko-reviewers,valentin

This is needed to make sure the experimental User Agent string is applied immediately after starting the browser, not just whenever the Nimbus data changes as part of the NimbusFeatures::OnUpdate handler.

Differential Revision: https://phabricator.services.mozilla.com/D126774
This commit is contained in:
Dennis Schubert 2021-09-28 17:11:26 +00:00
Родитель 6cec896db2
Коммит e6d9617889
4 изменённых файлов: 38 добавлений и 0 удалений

Просмотреть файл

@ -9,6 +9,7 @@ with Files("**"):
BROWSER_CHROME_MANIFESTS += [
"test/browser/browser.ini",
"test/browser/experiment-useragent/browser.ini",
]
MOCHITEST_MANIFESTS += [

Просмотреть файл

@ -0,0 +1,9 @@
[DEFAULT]
support-files =
../browser_navigator_header.sjs
prefs =
nimbus.syncdatastore.firefox100.firefoxVersion=100
[browser_experiment_useragent_startup.js]
skip-if = os == "android"
https_first_disabled = true

Просмотреть файл

@ -0,0 +1,25 @@
add_task(async function firefoxVersionExperimentOnStartup() {
const BASE =
"http://mochi.test:8888/browser/browser/components/resistfingerprinting/test/browser/";
const TEST_TARGET_URL = `${BASE}browser_navigator_header.sjs?`;
let tab = await BrowserTestUtils.openNewForegroundTab(
gBrowser,
TEST_TARGET_URL
);
let result = await SpecialPowers.spawn(tab.linkedBrowser, [], function() {
return content.document.body.textContent;
});
ok(
result.includes("rv:100.0"),
"User-Agent string does include the rv:100.0 segment"
);
ok(
result.includes("Firefox/100.0"),
"User-Agent string does include the Firefox/100.0 segment"
);
BrowserTestUtils.removeTab(tab);
});

Просмотреть файл

@ -393,6 +393,9 @@ nsresult nsHttpHandler::Init() {
// monitor Firefox Version Experiment enrollment
NimbusFeatures::OnUpdate(UA_EXPERIMENT_NAME, UA_EXPERIMENT_VAR,
ExperimentUserAgentUpdated, &mExperimentUserAgent);
// Load the experiment state once for startup
ExperimentUserAgentUpdated("", &mExperimentUserAgent);
#endif // MOZ_BUILD_APP_IS_BROWSER && !ANDROID
Telemetry::ScalarSet(Telemetry::ScalarID::NETWORKING_HTTP3_ENABLED,