forked from mirrors/gecko-dev
		
	Differential Revision: https://phabricator.services.mozilla.com/D68413 --HG-- rename : browser/extensions/webcompat/injections/js/bug1577245-salesforce-communities-hide-unsupported.js => browser/extensions/webcompat/injections/js/bug1623375-salesforce-communities-hide-unsupported.js rename : browser/extensions/webcompat/lib/google.js => browser/extensions/webcompat/lib/intervention_helpers.js extra : moz-landing-system : lando
		
			
				
	
	
		
			233 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			233 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* 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/. */
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
/* globals module */
 | 
						|
 | 
						|
const GOOGLE_TLDS = [
 | 
						|
  "com",
 | 
						|
  "ac",
 | 
						|
  "ad",
 | 
						|
  "ae",
 | 
						|
  "com.af",
 | 
						|
  "com.ag",
 | 
						|
  "com.ai",
 | 
						|
  "al",
 | 
						|
  "am",
 | 
						|
  "co.ao",
 | 
						|
  "com.ar",
 | 
						|
  "as",
 | 
						|
  "at",
 | 
						|
  "com.au",
 | 
						|
  "az",
 | 
						|
  "ba",
 | 
						|
  "com.bd",
 | 
						|
  "be",
 | 
						|
  "bf",
 | 
						|
  "bg",
 | 
						|
  "com.bh",
 | 
						|
  "bi",
 | 
						|
  "bj",
 | 
						|
  "com.bn",
 | 
						|
  "com.bo",
 | 
						|
  "com.br",
 | 
						|
  "bs",
 | 
						|
  "bt",
 | 
						|
  "co.bw",
 | 
						|
  "by",
 | 
						|
  "com.bz",
 | 
						|
  "ca",
 | 
						|
  "com.kh",
 | 
						|
  "cc",
 | 
						|
  "cd",
 | 
						|
  "cf",
 | 
						|
  "cat",
 | 
						|
  "cg",
 | 
						|
  "ch",
 | 
						|
  "ci",
 | 
						|
  "co.ck",
 | 
						|
  "cl",
 | 
						|
  "cm",
 | 
						|
  "cn",
 | 
						|
  "com.co",
 | 
						|
  "co.cr",
 | 
						|
  "com.cu",
 | 
						|
  "cv",
 | 
						|
  "com.cy",
 | 
						|
  "cz",
 | 
						|
  "de",
 | 
						|
  "dj",
 | 
						|
  "dk",
 | 
						|
  "dm",
 | 
						|
  "com.do",
 | 
						|
  "dz",
 | 
						|
  "com.ec",
 | 
						|
  "ee",
 | 
						|
  "com.eg",
 | 
						|
  "es",
 | 
						|
  "com.et",
 | 
						|
  "fi",
 | 
						|
  "com.fj",
 | 
						|
  "fm",
 | 
						|
  "fr",
 | 
						|
  "ga",
 | 
						|
  "ge",
 | 
						|
  "gf",
 | 
						|
  "gg",
 | 
						|
  "com.gh",
 | 
						|
  "com.gi",
 | 
						|
  "gl",
 | 
						|
  "gm",
 | 
						|
  "gp",
 | 
						|
  "gr",
 | 
						|
  "com.gt",
 | 
						|
  "gy",
 | 
						|
  "com.hk",
 | 
						|
  "hn",
 | 
						|
  "hr",
 | 
						|
  "ht",
 | 
						|
  "hu",
 | 
						|
  "co.id",
 | 
						|
  "iq",
 | 
						|
  "ie",
 | 
						|
  "co.il",
 | 
						|
  "im",
 | 
						|
  "co.in",
 | 
						|
  "io",
 | 
						|
  "is",
 | 
						|
  "it",
 | 
						|
  "je",
 | 
						|
  "com.jm",
 | 
						|
  "jo",
 | 
						|
  "co.jp",
 | 
						|
  "co.ke",
 | 
						|
  "ki",
 | 
						|
  "kg",
 | 
						|
  "co.kr",
 | 
						|
  "com.kw",
 | 
						|
  "kz",
 | 
						|
  "la",
 | 
						|
  "com.lb",
 | 
						|
  "com.lc",
 | 
						|
  "li",
 | 
						|
  "lk",
 | 
						|
  "co.ls",
 | 
						|
  "lt",
 | 
						|
  "lu",
 | 
						|
  "lv",
 | 
						|
  "com.ly",
 | 
						|
  "co.ma",
 | 
						|
  "md",
 | 
						|
  "me",
 | 
						|
  "mg",
 | 
						|
  "mk",
 | 
						|
  "ml",
 | 
						|
  "com.mm",
 | 
						|
  "mn",
 | 
						|
  "ms",
 | 
						|
  "com.mt",
 | 
						|
  "mu",
 | 
						|
  "mv",
 | 
						|
  "mw",
 | 
						|
  "com.mx",
 | 
						|
  "com.my",
 | 
						|
  "co.mz",
 | 
						|
  "com.na",
 | 
						|
  "ne",
 | 
						|
  "com.nf",
 | 
						|
  "com.ng",
 | 
						|
  "com.ni",
 | 
						|
  "nl",
 | 
						|
  "no",
 | 
						|
  "com.np",
 | 
						|
  "nr",
 | 
						|
  "nu",
 | 
						|
  "co.nz",
 | 
						|
  "com.om",
 | 
						|
  "com.pk",
 | 
						|
  "com.pa",
 | 
						|
  "com.pe",
 | 
						|
  "com.ph",
 | 
						|
  "pl",
 | 
						|
  "com.pg",
 | 
						|
  "pn",
 | 
						|
  "com.pr",
 | 
						|
  "ps",
 | 
						|
  "pt",
 | 
						|
  "com.py",
 | 
						|
  "com.qa",
 | 
						|
  "ro",
 | 
						|
  "rs",
 | 
						|
  "ru",
 | 
						|
  "rw",
 | 
						|
  "com.sa",
 | 
						|
  "com.sb",
 | 
						|
  "sc",
 | 
						|
  "se",
 | 
						|
  "com.sg",
 | 
						|
  "sh",
 | 
						|
  "si",
 | 
						|
  "sk",
 | 
						|
  "com.sl",
 | 
						|
  "sn",
 | 
						|
  "sm",
 | 
						|
  "so",
 | 
						|
  "st",
 | 
						|
  "sr",
 | 
						|
  "com.sv",
 | 
						|
  "td",
 | 
						|
  "tg",
 | 
						|
  "co.th",
 | 
						|
  "com.tj",
 | 
						|
  "tk",
 | 
						|
  "tl",
 | 
						|
  "tm",
 | 
						|
  "to",
 | 
						|
  "tn",
 | 
						|
  "com.tr",
 | 
						|
  "tt",
 | 
						|
  "com.tw",
 | 
						|
  "co.tz",
 | 
						|
  "com.ua",
 | 
						|
  "co.ug",
 | 
						|
  "co.uk",
 | 
						|
  "com",
 | 
						|
  "com.uy",
 | 
						|
  "co.uz",
 | 
						|
  "com.vc",
 | 
						|
  "co.ve",
 | 
						|
  "vg",
 | 
						|
  "co.vi",
 | 
						|
  "com.vn",
 | 
						|
  "vu",
 | 
						|
  "ws",
 | 
						|
  "co.za",
 | 
						|
  "co.zm",
 | 
						|
  "co.zw",
 | 
						|
];
 | 
						|
 | 
						|
var InterventionHelpers = {
 | 
						|
  /**
 | 
						|
   * Useful helper to generate a list of domains with a fixed base domain and
 | 
						|
   * multiple country-TLDs or other cases with various TLDs.
 | 
						|
   *
 | 
						|
   * Example:
 | 
						|
   *   matchPatternsForTLDs("*://mozilla.", "/*", ["com", "org"])
 | 
						|
   *     => ["*://mozilla.com/*", "*://mozilla.org/*"]
 | 
						|
   */
 | 
						|
  matchPatternsForTLDs(base, suffix, tlds) {
 | 
						|
    return tlds.map(tld => base + tld + suffix);
 | 
						|
  },
 | 
						|
 | 
						|
  /**
 | 
						|
   * A modified version of matchPatternsForTLDs that always returns the match
 | 
						|
   * list for all known Google country TLDs.
 | 
						|
   */
 | 
						|
  matchPatternsForGoogle(base, suffix = "/*") {
 | 
						|
    return InterventionHelpers.matchPatternsForTLDs(base, suffix, GOOGLE_TLDS);
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
module.exports = InterventionHelpers;
 |