Bug 1845017 - Disable the TestPHCExhaustion test r=glandium
[gecko.git] / browser / actors / BlockedSiteParent.sys.mjs
blob25d90ce2be39e0b326c9d479c69272099d1842f7
1 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3  * License, v. 2.0. If a copy of the MPL was not distributed with this
4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 export class BlockedSiteParent extends JSWindowActorParent {
7   receiveMessage(msg) {
8     switch (msg.name) {
9       case "Browser:SiteBlockedError":
10         this._onAboutBlocked(
11           msg.data.elementId,
12           msg.data.reason,
13           this.browsingContext === this.browsingContext.top,
14           msg.data.blockedInfo
15         );
16         break;
17     }
18   }
20   _onAboutBlocked(elementId, reason, isTopFrame, blockedInfo) {
21     let browser = this.browsingContext.top.embedderElement;
22     if (!browser) {
23       return;
24     }
25     let { BrowserOnClick } = browser.ownerGlobal;
26     // Depending on what page we are displaying here (malware/phishing/unwanted)
27     // use the right strings and links for each.
28     let bucketName = "";
29     let sendTelemetry = false;
30     if (reason === "malware") {
31       sendTelemetry = true;
32       bucketName = "WARNING_MALWARE_PAGE_";
33     } else if (reason === "phishing") {
34       sendTelemetry = true;
35       bucketName = "WARNING_PHISHING_PAGE_";
36     } else if (reason === "unwanted") {
37       sendTelemetry = true;
38       bucketName = "WARNING_UNWANTED_PAGE_";
39     } else if (reason === "harmful") {
40       sendTelemetry = true;
41       bucketName = "WARNING_HARMFUL_PAGE_";
42     }
43     let secHistogram = Services.telemetry.getHistogramById(
44       "URLCLASSIFIER_UI_EVENTS"
45     );
46     let nsISecTel = Ci.IUrlClassifierUITelemetry;
47     bucketName += isTopFrame ? "TOP_" : "FRAME_";
49     switch (elementId) {
50       case "goBackButton":
51         if (sendTelemetry) {
52           secHistogram.add(nsISecTel[bucketName + "GET_ME_OUT_OF_HERE"]);
53         }
54         browser.ownerGlobal.getMeOutOfHere(this.browsingContext);
55         break;
56       case "ignore_warning_link":
57         if (Services.prefs.getBoolPref("browser.safebrowsing.allowOverride")) {
58           if (sendTelemetry) {
59             secHistogram.add(nsISecTel[bucketName + "IGNORE_WARNING"]);
60           }
61           BrowserOnClick.ignoreWarningLink(
62             reason,
63             blockedInfo,
64             this.browsingContext
65           );
66         }
67         break;
68     }
69   }