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/BlockedSiteParent.sys.mjs | 70 ++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 browser/actors/BlockedSiteParent.sys.mjs (limited to 'browser/actors/BlockedSiteParent.sys.mjs') 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; + } + } +} -- cgit v1.2.3