From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- browser/actors/AboutPrivateBrowsingChild.sys.mjs | 64 ++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 browser/actors/AboutPrivateBrowsingChild.sys.mjs (limited to 'browser/actors/AboutPrivateBrowsingChild.sys.mjs') diff --git a/browser/actors/AboutPrivateBrowsingChild.sys.mjs b/browser/actors/AboutPrivateBrowsingChild.sys.mjs new file mode 100644 index 0000000000..1433c9cb79 --- /dev/null +++ b/browser/actors/AboutPrivateBrowsingChild.sys.mjs @@ -0,0 +1,64 @@ +/* -*- 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/. */ + +import { RemotePageChild } from "resource://gre/actors/RemotePageChild.sys.mjs"; + +const lazy = {}; + +ChromeUtils.defineESModuleGetters(lazy, { + NimbusFeatures: "resource://nimbus/ExperimentAPI.sys.mjs", + ExperimentAPI: "resource://nimbus/ExperimentAPI.sys.mjs", +}); + +export class AboutPrivateBrowsingChild extends RemotePageChild { + actorCreated() { + super.actorCreated(); + let window = this.contentWindow; + + Cu.exportFunction(this.PrivateBrowsingRecordClick.bind(this), window, { + defineAs: "PrivateBrowsingRecordClick", + }); + Cu.exportFunction( + this.PrivateBrowsingShouldHideDefault.bind(this), + window, + { + defineAs: "PrivateBrowsingShouldHideDefault", + } + ); + Cu.exportFunction(this.PrivateBrowsingEnableNewLogo.bind(this), window, { + defineAs: "PrivateBrowsingEnableNewLogo", + }); + Cu.exportFunction( + this.PrivateBrowsingExposureTelemetry.bind(this), + window, + { defineAs: "PrivateBrowsingExposureTelemetry" } + ); + } + + PrivateBrowsingRecordClick(source) { + const experiment = lazy.ExperimentAPI.getExperimentMetaData({ + featureId: "pbNewtab", + }); + if (experiment) { + Services.telemetry.recordEvent("aboutprivatebrowsing", "click", source); + } + return experiment; + } + + PrivateBrowsingShouldHideDefault() { + const config = lazy.NimbusFeatures.pbNewtab.getAllVariables() || {}; + return config?.content?.hideDefault; + } + + PrivateBrowsingEnableNewLogo() { + return lazy.NimbusFeatures.majorRelease2022.getVariable( + "feltPrivacyPBMNewLogo" + ); + } + + PrivateBrowsingExposureTelemetry() { + lazy.NimbusFeatures.pbNewtab.recordExposureEvent({ once: false }); + } +} -- cgit v1.2.3