From da4c7e7ed675c3bf405668739c3012d140856109 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 15 May 2024 05:34:42 +0200 Subject: Adding upstream version 126.0. Signed-off-by: Daniel Baumann --- .../resistfingerprinting/RFPHelper.sys.mjs | 42 ++++++++++++++++++---- 1 file changed, 36 insertions(+), 6 deletions(-) (limited to 'toolkit/components/resistfingerprinting/RFPHelper.sys.mjs') diff --git a/toolkit/components/resistfingerprinting/RFPHelper.sys.mjs b/toolkit/components/resistfingerprinting/RFPHelper.sys.mjs index 223c0259b7..c586873a74 100644 --- a/toolkit/components/resistfingerprinting/RFPHelper.sys.mjs +++ b/toolkit/components/resistfingerprinting/RFPHelper.sys.mjs @@ -1,7 +1,7 @@ // -*- indent-tabs-mode: nil; js-indent-level: 2 -*- /* 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/. */ + * You can obtain one at https://mozilla.org/MPL/2.0/. */ import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs"; @@ -43,6 +43,8 @@ class _RFPHelper { this._initialized = true; // Add unconditional observers + Services.obs.addObserver(this, "user-characteristics-populating-data"); + Services.obs.addObserver(this, "user-characteristics-populating-data-done"); Services.prefs.addObserver(kPrefResistFingerprinting, this); Services.prefs.addObserver(kPrefLetterboxing, this); XPCOMUtils.defineLazyPreferenceGetter( @@ -80,6 +82,12 @@ class _RFPHelper { observe(subject, topic, data) { switch (topic) { + case "user-characteristics-populating-data": + this._registerUserCharacteristicsActor(); + break; + case "user-characteristics-populating-data-done": + this._unregisterUserCharacteristicsActor(); + break; case "nsPref:changed": this._handlePrefChanged(data); break; @@ -97,6 +105,28 @@ class _RFPHelper { } } + _registerUserCharacteristicsActor() { + log("_registerUserCharacteristicsActor()"); + ChromeUtils.registerWindowActor("UserCharacteristics", { + parent: { + esModuleURI: "resource://gre/actors/UserCharacteristicsParent.sys.mjs", + }, + child: { + esModuleURI: "resource://gre/actors/UserCharacteristicsChild.sys.mjs", + events: { + UserCharacteristicsDataDone: { wantUntrusted: true }, + }, + }, + matches: ["about:fingerprinting"], + remoteTypes: ["privilegedabout"], + }); + } + + _unregisterUserCharacteristicsActor() { + log("_unregisterUserCharacteristicsActor()"); + ChromeUtils.unregisterWindowActor("UserCharacteristics"); + } + handleEvent(aMessage) { switch (aMessage.type) { case "TabOpen": { @@ -186,7 +216,7 @@ class _RFPHelper { ); } - _handleHttpOnModifyRequest(subject, data) { + _handleHttpOnModifyRequest(subject) { // If we are loading an HTTP page from content, show the // "request English language web pages?" prompt. let httpChannel = subject.QueryInterface(Ci.nsIHttpChannel); @@ -283,16 +313,16 @@ class _RFPHelper { _handleLetterboxingPrefChanged() { if (Services.prefs.getBoolPref(kPrefLetterboxing, false)) { Services.ww.registerNotification(this); - this._registerActor(); + this._registerLetterboxingActor(); this._attachAllWindows(); } else { - this._unregisterActor(); + this._unregisterLetterboxingActor(); this._detachAllWindows(); Services.ww.unregisterNotification(this); } } - _registerActor() { + _registerLetterboxingActor() { ChromeUtils.registerWindowActor("RFPHelper", { parent: { esModuleURI: "resource:///actors/RFPHelperParent.sys.mjs", @@ -307,7 +337,7 @@ class _RFPHelper { }); } - _unregisterActor() { + _unregisterLetterboxingActor() { ChromeUtils.unregisterWindowActor("RFPHelper"); } -- cgit v1.2.3