summaryrefslogtreecommitdiffstats
path: root/toolkit/components/resistfingerprinting/RFPHelper.sys.mjs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:34:42 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:34:42 +0000
commitda4c7e7ed675c3bf405668739c3012d140856109 (patch)
treecdd868dba063fecba609a1d819de271f0d51b23e /toolkit/components/resistfingerprinting/RFPHelper.sys.mjs
parentAdding upstream version 125.0.3. (diff)
downloadfirefox-da4c7e7ed675c3bf405668739c3012d140856109.tar.xz
firefox-da4c7e7ed675c3bf405668739c3012d140856109.zip
Adding upstream version 126.0.upstream/126.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'toolkit/components/resistfingerprinting/RFPHelper.sys.mjs')
-rw-r--r--toolkit/components/resistfingerprinting/RFPHelper.sys.mjs42
1 files changed, 36 insertions, 6 deletions
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");
}