diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
commit | 43a97878ce14b72f0981164f87f2e35e14151312 (patch) | |
tree | 620249daf56c0258faa40cbdcf9cfba06de2a846 /browser/actors/BlockedSiteParent.sys.mjs | |
parent | Initial commit. (diff) | |
download | firefox-upstream.tar.xz firefox-upstream.zip |
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | browser/actors/BlockedSiteParent.sys.mjs | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/browser/actors/BlockedSiteParent.sys.mjs b/browser/actors/BlockedSiteParent.sys.mjs new file mode 100644 index 0000000000..25d90ce2be --- /dev/null +++ b/browser/actors/BlockedSiteParent.sys.mjs @@ -0,0 +1,70 @@ +/* -*- 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/. */ + +export class BlockedSiteParent extends JSWindowActorParent { + receiveMessage(msg) { + switch (msg.name) { + case "Browser:SiteBlockedError": + this._onAboutBlocked( + msg.data.elementId, + msg.data.reason, + this.browsingContext === this.browsingContext.top, + msg.data.blockedInfo + ); + break; + } + } + + _onAboutBlocked(elementId, reason, isTopFrame, blockedInfo) { + let browser = this.browsingContext.top.embedderElement; + if (!browser) { + return; + } + let { BrowserOnClick } = browser.ownerGlobal; + // Depending on what page we are displaying here (malware/phishing/unwanted) + // use the right strings and links for each. + let bucketName = ""; + let sendTelemetry = false; + if (reason === "malware") { + sendTelemetry = true; + bucketName = "WARNING_MALWARE_PAGE_"; + } else if (reason === "phishing") { + sendTelemetry = true; + bucketName = "WARNING_PHISHING_PAGE_"; + } else if (reason === "unwanted") { + sendTelemetry = true; + bucketName = "WARNING_UNWANTED_PAGE_"; + } else if (reason === "harmful") { + sendTelemetry = true; + bucketName = "WARNING_HARMFUL_PAGE_"; + } + let secHistogram = Services.telemetry.getHistogramById( + "URLCLASSIFIER_UI_EVENTS" + ); + let nsISecTel = Ci.IUrlClassifierUITelemetry; + bucketName += isTopFrame ? "TOP_" : "FRAME_"; + + switch (elementId) { + case "goBackButton": + if (sendTelemetry) { + secHistogram.add(nsISecTel[bucketName + "GET_ME_OUT_OF_HERE"]); + } + browser.ownerGlobal.getMeOutOfHere(this.browsingContext); + break; + case "ignore_warning_link": + if (Services.prefs.getBoolPref("browser.safebrowsing.allowOverride")) { + if (sendTelemetry) { + secHistogram.add(nsISecTel[bucketName + "IGNORE_WARNING"]); + } + BrowserOnClick.ignoreWarningLink( + reason, + blockedInfo, + this.browsingContext + ); + } + break; + } + } +} |