Merge autoland to mozilla-central. a=merge
authorBogdan Tara <btara@mozilla.com>
Tue, 17 Jul 2018 00:58:15 +0300
changeset 819019 f6df6a982ee9510ca32dd3afa52dfe9f8c3586a3
parent 818977 da5b3e1dca89a6ae67ec98a129515e5c11d25a7c (current diff)
parent 819018 28d0ba8fa12c18915e50a8b71c38800d800f72a9 (diff)
child 819020 cf94b6b40e6cc259e972e8c6c3d13d5ae8b669ed
child 819037 ea798d777861d84a62a20dfed18419ba55e89c5c
child 819051 100853854cd0f89d2e3bf89b44ebcba3a820fc46
child 819058 258fafb8a4d4bd279d4b919982f3f51152bf1a68
child 819060 8a4637b34c6f67321aa5dc9b288915a63010ddd6
child 819066 1e6206ed414f1340869966ee086e8f6583a0d112
child 819067 7a4d390f75d46dee1ca1224c53b3fd73b79f8dd2
child 819069 72b094f7f9c632cffcda4823a43e7b459700c14b
child 819072 9ea55485365640086e363395acb86fa50c03fe6c
child 819077 dbc24fdab7767eb94d4518bfad68b0193221b248
child 819082 0406bb33a0f7efd82a6f931ee75d1087e45dc71e
child 819087 9f5d405e260cdd17910d192393c9f8760257ef2e
child 819099 2b4612def0fe62def3b633c91c942c354d183c42
child 819141 be65ac05845963623a31053ef3024cc417440609
child 819143 0e3bf77a45f81dc70120a9b9a2855715ed34b712
child 819162 58627bcc615875d46a0e4e3a826251fa17d3c674
child 819163 43cb03c80758325fd19b868ec9d3a879fb2fc8d7
child 819201 e84a273a0e973156de3ff4c5e7d3771ccb512ec8
child 819251 cfb2ebaaed23ce5c51ef9d8f447f3fabe0a04a49
child 819264 4e34e43bbd0c4992045ebdaacea04189f9a942bc
child 819332 0380a51b1eb175caf64381dbac995a05ff13839d
child 819455 b52b7874ca1cc5c2eb9e67b34bf4ba1596649a38
child 819556 142abb12580eb9c91ac0660ab45666d799bb01ad
child 819557 5e7af02dd791194d73c7b35bb0d2e9d784589b4a
child 819603 c5b090aaac73c7efa5133979620b29fc7a88dc52
child 819647 862b2060c3b6d6e57dfd2369e142d3d0c114f5ba
child 819650 642bfc0be36d0a4c6fc9b55061ef99edf25442a4
child 820135 0ffed280b37fc2396b66ef29f3b7440e3666c760
child 820137 1e231cab7bb2a108ffda38355527f8abfbf7b86f
child 820141 58b2ad629b2301cff23c54eb5a7a039e8d10c80f
child 820175 e87d92299acd5ecfca6cbd47710dce15ca6276e0
child 820250 1fd2016c273103eadf5a0dfcd8f5f8c942f1883f
child 821311 1e9e9d3bdea84620b1b517734ed7359b69c47036
child 821553 6edcbd84c39da82f7e44b8805348f9f4e728a0a6
child 822256 b4335f170694ee6fdfcb41a8ee1baee9863dde03
child 822638 ce4a9d963586979f0ff22d13e46df2c781844ce1
child 822866 237fc6e3264621e6befbba308c47688c4eaefe5d
child 822867 42f4841ec3aed0df48da708a363c5cd5d2b7d97b
child 822868 a1f7c987952b1de1c3a4657c43ba622d78e1aa68
child 822869 00d8f5bb35a97049fce98569a05d8d5099fae60f
child 822872 e460244eb42388653ad5e1aed09ac396527cfa44
child 823099 080ba71ab93b4831f91793b94557063adde25b0e
child 823101 3eaba63aac7f2c0f45a504a057a8fd739714f68c
child 823126 2494892a4408a1560de58cbb437e946ff5d5b4b1
child 823190 82483b123737a680ea8e4c27afe3785e4feb6b17
child 823191 983dd718e2d96f6959b23622f7e5f182049940a9
child 823251 aca2d235ee8dba701e1f98cfb7c21dd37d18ccf5
child 823657 9ce19c0ca399e66ed7fb2981111437cf1f96f9d6
child 825282 e34b2418bd7994909378ad78c9ffbaa679c565b8
child 825588 2b158275727b8b79bda2aef67740f447412ec7a7
push id116413
push userbgrinstead@mozilla.com
push dateMon, 16 Jul 2018 22:40:17 +0000
reviewersmerge
milestone63.0a1
Merge autoland to mozilla-central. a=merge
taskcluster/taskgraph/transforms/use_fetches.py
testing/web-platform/meta/MANIFEST.json
testing/web-platform/meta/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html.ini
--- a/.gitignore
+++ b/.gitignore
@@ -10,16 +10,17 @@ tags
 ID
 !id/
 .DS_Store*
 *.pdb
 *.egg-info
 
 # Vim swap files.
 .*.sw[a-z]
+.sw[a-z]
 
 # Emacs directory variable files.
 **/.dir-locals.el
 
 # User files that may appear at the root
 /.mozconfig*
 /mozconfig
 /configure
--- a/browser/components/nsBrowserGlue.js
+++ b/browser/components/nsBrowserGlue.js
@@ -754,16 +754,19 @@ BrowserGlue.prototype = {
     }, {
       useInDarkMode: true
     });
 
     Normandy.init();
 
     // Initialize the default l10n resource sources for L10nRegistry.
     let locales = Services.locale.getPackagedLocales();
+    const greSource = new FileSource("toolkit", locales, "resource://gre/localization/{locale}/");
+    L10nRegistry.registerSource(greSource);
+
     const appSource = new FileSource("app", locales, "resource://app/localization/{locale}/");
     L10nRegistry.registerSource(appSource);
 
     Services.obs.notifyObservers(null, "browser-ui-startup-complete");
   },
 
   _checkForOldBuildUpdates() {
     // check for update if our build is old
--- a/browser/components/originattributes/test/browser/browser_firstPartyIsolation.js
+++ b/browser/components/originattributes/test/browser/browser_firstPartyIsolation.js
@@ -273,8 +273,27 @@ add_task(async function window_open_form
 
     let submit = content.document.getElementById("submit");
     submit.click();
   });
 
   gBrowser.removeTab(tab);
   await BrowserTestUtils.closeWindow(win);
 });
+
+/**
+ * A test for using an IP address as the first party domain.
+ */
+add_task(async function ip_address_test() {
+  const ipAddr = "127.0.0.1";
+  const ipHost = `http://${ipAddr}/browser/browser/components/originattributes/test/browser/`;
+
+  let tab = BrowserTestUtils.addTab(gBrowser, ipHost + "test_firstParty.html");
+  await BrowserTestUtils.browserLoaded(tab.linkedBrowser, true);
+
+  await ContentTask.spawn(tab.linkedBrowser, { firstPartyDomain: ipAddr }, async function(attrs) {
+    info("document principal: " + content.document.nodePrincipal.origin);
+    Assert.equal(content.document.nodePrincipal.originAttributes.firstPartyDomain,
+                   attrs.firstPartyDomain, "The firstPartyDomain should be set properly for the IP address");
+  });
+
+  gBrowser.removeTab(tab);
+});
--- a/browser/components/search/searchplugins/freelang.xml
+++ b/browser/components/search/searchplugins/freelang.xml
@@ -1,18 +1,17 @@
 <!-- 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/. -->
 
 <SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
 <ShortName>Freelang (br)</ShortName>
 <Description>Geriadur Freelang</Description>
 <InputEncoding>UTF-8</InputEncoding>
-<Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAD5+vYAQxGlAHp1DQDMzJoAnp4+AIWEDADc3b0AgH8CAJmZNADS06gAe3oAAJ6ePwCCgQUAfn0AALGxZAB/fQAAgIAAAIGAAABcP14AtrZvAIKDAACGhQsAuLhyAIqKFgDS0acAx8eSAP7+/gB7dg0AeHETALOzaACtrFsAc2ofAMLCiABPJ4MAi4oXAHh4AAB5eAAA+vv3AIGAAgB6eAAAubp2AFw/YABMIYwA9PTqAHx7AACNjBoAmJgyAH9+AABgRlUAgIEAAOjo0wCBgQAApKRKAIGAAwD7+/gAurp3AIKEAAC3t28Ag4QAAPT06wCXljAAzc2cAEUWnAB0ax4AqalVALu8egCjokgAjo4eAKurWACIhxEAhYQJALCwYwDq6tcA4+PKAJ+fQQCgn0EA+fn3AG5gLgB/fgIAyMiTAHp5AAD///8AiosPALe3cQCQkCIAfXwAAEMRpAB/fwAAgH8AAIF/AACBggAAi4sYAIKCAACPjiAA4eLGAJ2ePQChoUUA0NGkAHZtGwDJypcAh4YOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERERERERERERLwc8LBEREREREREREREREFhYWzdVERFYJg0RERERERERES8ZNFgRWEVHClgQERERERFYYExQEVkRLWM1LxFYERFYL1NRVBERWBFYYU9DJCwsJEIaURURERFZWCdbCQAySSVRURMvERFZVUBeK0gDKEQWHmQvEREREUtRBgguBB0YXw0RWREREVg5OyNYIFFdCgsOVRERERERWzIsEQU2PS9YRkpXWBEREQ9BIhERDBcRERFSWBERERERVQtcFBERWBEzEhwRERERERFYMCpaEVkRTjEQWRERERERET8+Hyk4TT8hXBEREREREVgROgJWGwFiOlgREQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</Image>
-<Url type="text/html" method="POST" template="http://www.freelang.com/enligne/breton.php?lg=fr" resultdomain="freelang.com">
+<Image width="16" height="16">data:image/x-icon;base64,AAABAAIAEBAAAAEACAC8AgAAJgAAACAgAAABAAgABgYAAOICAACJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAKDSURBVDiNfZNLSFRRGMd/595jo811emiOSvTQKSMtKAlb5Gi4aCSKKEJ64KoWBUEQBIWBRRRBRLQpiB5UEDSLMiILKshFaGmLHlZkUUFS46OZZsKcO/d+LWYaTaH/4qzO+X/f//t+R9F6WBgvEVAKpQ2s2Ahnr3axq3kl5650sn9zNf3+fMR2QCkADCZKKeZE4pw/08GMxCgPKkpI+DycCFViOi5HrnaDOfZMTzIQoaZvkKjXw5cSH5f9PrCFF/MKMF2XQ1uXgeuCKFATDFQqRbBsPmHTIFxbBs7fdAIoHNOg+dF77iyfzfC0vH8jKMflQH2QN4ND4Ao4Qo5SFE3Ny+ZFoG3tUoZ9udmiWQO/z2JL1RIisRgAltbEDx7gWEMDynVBhDytqZ41K+0kMm4GIjRVVlFsWeCkQGtagrV4tObo4w4klaIuUM6CggIuPOsGrSd0oBQvv3+j0Ovl4c4drCgt4UZvL3WXLhFaEOB6UxMOwoXuHkTr9EgyMqlf3YrAp6EhXg8OUDt3LntqamgMBJiem8svO8nT/n4WFRZSNnMmn6NRkik7OxeVBUkyx2iS4oIZnA6tYX1FBR+GfzBi2ywp9pOrcwDY297Omc4uxDAyBhn6EOHaxg38GPnNySdP+BwZANNM9+o4hBYv5u72bSilyD92nIRto9MrVpRaFi3BVTTfbENcFzEM8HjGVqg19/v62HfvPqcaQxR5p5KIxjBAmO7x0BgoZ/et27giiKGyWI9HXJTi1UCE38kkH79Hxtb4c3SUiz3PYcqUSWT/Q6oI6xYuZFM4nL1roBQuIH+zTlIGGhH8+RZf43Ha3777z2+cXBclggn4vRYnHnekWcjoD87z7kUU/IwHAAAAAElFTkSuQmCCiVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAFzUlEQVRYhbWXaWxUVRTHf/e9mc7CzBSmlC5MQYqtpSjQKQITWhUhRFCjISyS+MEVjV/co5KYaPxg/GDUxCXRmIgRYpStlppoRaKIFK0o1FppS6F2gbbTdugyr53lXT+8FmaYGVqKng/vJfeee87//O85954reOVVyRTFFImy8dg/FHVc4KPVBXS47ayqP8+9v7axq2wexwoyJ7YxVedIyfrfO3isuhGAI0Wz8LssPFf5F/bRCNWLciYXxNU4dIyGWftHJ/ZQhN0r5uLSwmhpKn/mTedw0SxCqkLFUg+BaWl8XTKbOT2DPHqwmQPe2QYbQkwdQFpU5/mKem5p6AbgVG46X/jm8mNxFl3pNkbNCiD4cE0hCEDC5qOtrGjsoXpR9rUzkBXQWHq6D4A+h4WmHCchs4l/ZjriFcejFJIdt85n37I8Tme5kkY/eQBS4k+3snd5Hu7hEPtvziNgt0ywSNCTbqPHZcUc1YkqAl0RGPRcBQBVwJLsbNoGBvj49oJx2wmGUklOQOPtT35lZ9k8vlqal7BMmcjANq8Xs6rSPRw0aBSJUVxJwqrgm8W5/FCclXQ+JQMmIdheXoYWDlPT3pG4h3Ls+BhLuFR77Hda+XxtkaEeiSTMJzIgJUjJ5oULeHDJEj6o/S3RqgRFCNbOz2ebtwSrKfVOCgE+jwctGk0eaLLBLIedd+5Yx96GBoZCofjopMSkKLy3fh0Pe71I4Pj5Lmo7zyUBKllXcD2dg4MG6iQsJc2Bx0qXkmG309IfSIr6oZLFPOz1ogjB4OgoAW0kwTFI7r6hkGyHgxNd3UntQBIGzKrKXYVGtntczoQF061Wnvb5UBUFKSX7Ghpo6e+Pc243m3ly+TJ0KXnj558xEiV5jiQwYDebSbdaAdiwYAFum/VSwgFZ0+zkOpxIKanv7uKlgwfRxyJGSlbmefhy00b8msabNTUpHadkYDgU4vzQMIUZM8lxOtm7ZTNPHKjiL38vCEHbwCAfHf8NLRLh7aPH6NU03DYrZXlzeMRbgtNq4flvq42cSFEZsSISrmMp2XrjQj7bsAFljGZ/MMiBxkYOt7bSEggQjkZxW63ku934PB5Kc3NBwls1R/n05EmGQ+FJOU8OAAkSnri5lBfLyvG4XEkXSiS9wSA17e3sqvuTPQ0NqEIhzWRCl5KRcJiIrl90k2onkgC4BMLjcrImP5/S3BxynU5UodCnaZwNBDjeeY6hcIiCDDcl2TkUZ87EbbNjUVV0JMOhMM19fXx7+jT7/v6b/pERkqFIASBZyBIEFLjd3Ft0A/fftIjiWZmoIj6PRQz1EV1HFYI+TeOF6mp2nDxJRI93N+nbsDDDzbM+31hl2OgOBvn+zBka/b34g0Eius50q5WizExWeGaTYbOjCoEWiZBht/Pu+vVYTSbeq62NY+LKAKQk2zGNZ3w+Hi8tpSUQ4K2aGqqamqjr6kaXumFsPOqxck1TVTYVF7O9vIwFmZnoUmIxmXh9zWo+r6+nN+bgSg1ASm6dO5f371yHP6ixZc8eDre2MhQKG/NCwGX0jwMJ6To76+o4dPYMFVvvozQnl6iUONIslM+Zw/5TjVcAICWqovDcSh9bFt7Ii98dpKqpGd248iZdXghB5+AQj1ZUcujBB0i3GA1Mhs0Wp5ZwEpoUhddW3cb8GTO4c+dOKhubxk66yfcAsSDqerqp7Wi/ONQ+MJACgJHkbC8vo3t4iG2VVZwbGo7xO4Xng5REdZ3msbviwsgIR9ra4lRM44oA9xQW0nZhgB0nTlyMwPhfve9YcaVZQEp21dUZOSRiqyAmsB/OttI/Ohrv/BrFZbGwODublkCA1386kmDXFNtg9l/efPwHstLjIX/GdLbu3kP74ACX0zlhU3otkqaqvFBexsvfH6IipvRiZepvw8tFjn+MLlUIeGr5MipPNfLOsV+u8WEyeQQX/6uuu476nh6qmpqN4f8fwCXJsNlo6u2lbWBwQt1/AUtVOfRNAUAmAAAAAElFTkSuQmCC</Image>
+<Url type="text/html" method="POST" template="https://www.freelang.com/enligne/breton.php" resultdomain="freelang.com" rel="searchform">
   <Param name="dico" value="fr_bre_fra"/>
+  <Param name="lg" value="fr"/>
   <Param name="mot1" value="{searchTerms}"/>
   <Param name="mot2" value=""/>
   <Param name="entier" value="on"/>
 </Url>
-
-<SearchForm>http://www.freelang.com/enligne/breton.php</SearchForm>
 </SearchPlugin>
--- a/browser/extensions/activity-stream/bootstrap.js
+++ b/browser/extensions/activity-stream/bootstrap.js
@@ -1,91 +1,24 @@
 /* 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";
 
 ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
-XPCOMUtils.defineLazyGlobalGetters(this, ["fetch"]);
 
 ChromeUtils.defineModuleGetter(this, "Services",
   "resource://gre/modules/Services.jsm");
 
 XPCOMUtils.defineLazyServiceGetter(this, "resProto",
                                    "@mozilla.org/network/protocol;1?name=resource",
                                    "nsISubstitutingProtocolHandler");
 
 const RESOURCE_HOST = "activity-stream";
 
-const BROWSER_READY_NOTIFICATION = "sessionstore-windows-restored";
-const RESOURCE_BASE = "resource://activity-stream";
-
-let activityStream;
-let modulesToUnload = new Set();
-let waitingForBrowserReady = true;
-
-// Lazily load ActivityStream then find related modules to unload
-XPCOMUtils.defineLazyModuleGetter(this, "ActivityStream",
-  "resource://activity-stream/lib/ActivityStream.jsm", null, null, () => {
-    // Helper to fetch a resource directory listing and call back with each item
-    const processListing = async (uri, cb) => {
-      try {
-        (await (await fetch(uri)).text())
-          .split("\n").slice(2).forEach(line => cb(line.split(" ").slice(1)));
-      } catch (e) {
-        // Silently ignore listings that fail to load
-        // probably because the resource: has been unloaded
-      }
-    };
-
-    // Look for modules one level deeper than the top resource URI
-    processListing(RESOURCE_BASE, ([directory, , , type]) => {
-      if (type === "DIRECTORY") {
-        // Look into this directory for .jsm files
-        const subDir = `${RESOURCE_BASE}/${directory}`;
-        processListing(subDir, ([name]) => {
-          if (name && name.search(/\.jsm$/) !== -1) {
-            modulesToUnload.add(`${subDir}/${name}`);
-          }
-        });
-      }
-    });
-  });
-
-/**
- * init - Initializes an instance of ActivityStream. This could be called by
- *        the startup() function exposed by bootstrap.js.
- */
-function init() {
-  // Don't re-initialize
-  if (activityStream && activityStream.initialized) {
-    return;
-  }
-  activityStream = new ActivityStream();
-  try {
-    activityStream.init();
-  } catch (e) {
-    Cu.reportError(e);
-  }
-}
-
-/**
- * uninit - Uninitializes the activityStream instance, if it exsits.This could be
- *          called by the shutdown() function exposed by bootstrap.js.
- *
- * @param  {type} reason Reason for uninitialization. Could be uninstall, upgrade, or PREF_OFF
- */
-function uninit(reason) {
-  // Make sure to only uninit once in case both pref change and shutdown happen
-  if (activityStream) {
-    activityStream.uninit(reason);
-    activityStream = null;
-  }
-}
-
 /**
  * Check if an old pref has a custom value to migrate. Clears the pref so that
  * it's the default after migrating (to avoid future need to migrate).
  *
  * @param oldPrefName {string} Pref to check and migrate
  * @param cbIfNotDefault {function} Callback that gets the current pref value
  */
 function migratePref(oldPrefName, cbIfNotDefault) {
@@ -108,22 +41,24 @@ function migratePref(oldPrefName, cbIfNo
       break;
   }
 
   // Give the callback the current value then clear the pref
   cbIfNotDefault(Services.prefs[prefGetter](oldPrefName));
   Services.prefs.clearUserPref(oldPrefName);
 }
 
-/**
- * onBrowserReady - Continues startup of the add-on after browser is ready.
- */
-function onBrowserReady() {
-  waitingForBrowserReady = false;
-  init();
+// The functions below are required by bootstrap.js
+
+this.install = function install(data, reason) {};
+
+this.startup = function startup(data, reason) {
+  resProto.setSubstitutionWithFlags(RESOURCE_HOST,
+                                    Services.io.newURI("chrome/content/", null, data.resourceURI),
+                                    resProto.ALLOW_CONTENT_ACCESS);
 
   // Do a one time migration of Tiles about:newtab prefs that have been modified
   migratePref("browser.newtabpage.rows", rows => {
     // Just disable top sites if rows are not desired
     if (rows <= 0) {
       Services.prefs.setBoolPref("browser.newtabpage.activity-stream.feeds.topsites", false);
     } else {
       Services.prefs.setIntPref("browser.newtabpage.activity-stream.topSitesRows", rows);
@@ -135,62 +70,15 @@ function onBrowserReady() {
       Services.prefs.setBoolPref("browser.newtabpage.activity-stream.feeds.topsites", false);
     }
   });
 
   // Old activity stream topSitesCount pref showed 6 per row
   migratePref("browser.newtabpage.activity-stream.topSitesCount", count => {
     Services.prefs.setIntPref("browser.newtabpage.activity-stream.topSitesRows", Math.ceil(count / 6));
   });
-}
-
-/**
- * observe - nsIObserver callback to handle various browser notifications.
- */
-function observe(subject, topic, data) {
-  switch (topic) {
-    case BROWSER_READY_NOTIFICATION:
-      Services.obs.removeObserver(observe, BROWSER_READY_NOTIFICATION);
-      // Avoid running synchronously during this event that's used for timing
-      Services.tm.dispatchToMainThread(() => onBrowserReady());
-      break;
-  }
-}
-
-// The functions below are required by bootstrap.js
-
-this.install = function install(data, reason) {};
-
-this.startup = function startup(data, reason) {
-  resProto.setSubstitutionWithFlags(RESOURCE_HOST,
-                                    Services.io.newURI("chrome/content/", null, data.resourceURI),
-                                    resProto.ALLOW_CONTENT_ACCESS);
-
-  // Only start Activity Stream up when the browser UI is ready
-  if (Services.startup.startingUp) {
-    Services.obs.addObserver(observe, BROWSER_READY_NOTIFICATION);
-  } else {
-    // Handle manual install or automatic install after manual uninstall
-    onBrowserReady();
-  }
 };
 
 this.shutdown = function shutdown(data, reason) {
   resProto.setSubstitution(RESOURCE_HOST, null);
-
-  // Uninitialize Activity Stream
-  uninit(reason);
-
-  // Stop waiting for browser to be ready
-  if (waitingForBrowserReady) {
-    Services.obs.removeObserver(observe, BROWSER_READY_NOTIFICATION);
-  }
-
-  // Unload any add-on modules that might might have been imported
-  modulesToUnload.forEach(Cu.unload);
 };
 
-this.uninstall = function uninstall(data, reason) {
-  if (activityStream) {
-    activityStream.uninstall(reason);
-    activityStream = null;
-  }
-};
+this.uninstall = function uninstall(data, reason) {};
--- a/browser/modules/AboutNewTab.jsm
+++ b/browser/modules/AboutNewTab.jsm
@@ -4,72 +4,112 @@
 
 "use strict";
 
 var EXPORTED_SYMBOLS = [ "AboutNewTab" ];
 
 ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
 ChromeUtils.import("resource://gre/modules/Services.jsm");
 
-ChromeUtils.defineModuleGetter(this, "AutoMigrate",
-  "resource:///modules/AutoMigrate.jsm");
-ChromeUtils.defineModuleGetter(this, "NewTabUtils",
-  "resource://gre/modules/NewTabUtils.jsm");
-ChromeUtils.defineModuleGetter(this, "RemotePages",
-  "resource://gre/modules/RemotePageManager.jsm");
+XPCOMUtils.defineLazyModuleGetters(this, {
+  ActivityStream: "resource://activity-stream/lib/ActivityStream.jsm",
+  RemotePages: "resource://gre/modules/RemotePageManager.jsm"
+});
+
+const BROWSER_READY_NOTIFICATION = "sessionstore-windows-restored";
 
 var AboutNewTab = {
+  QueryInterface: ChromeUtils.generateQI([Ci.nsIObserver, Ci.nsISupportsWeakReference]),
+
+  // AboutNewTab
 
   pageListener: null,
 
   isOverridden: false,
 
+  activityStream: null,
+
+  /**
+   * init - Initializes an instance of Activity Stream if one doesn't exist already
+   *        and creates the instance of Remote Page Manager which Activity Stream
+   *        uses for message passing.
+   *
+   * @param {obj} pageListener - Optional argument. An existing instance of RemotePages
+   *                             which Activity Stream has previously made, and we
+   *                             would like to re-use.
+   */
   init(pageListener) {
     if (this.isOverridden) {
       return;
     }
+
+    // Since `init` can be called via `reset` at a later time with an existing
+    // pageListener, we want to only add the observer if we are initializing
+    // without this pageListener argument. This means it was the first call to `init`
+    if (!pageListener) {
+      Services.obs.addObserver(this, BROWSER_READY_NOTIFICATION);
+    }
+
     this.pageListener = pageListener || new RemotePages(["about:home", "about:newtab", "about:welcome"]);
-    this.pageListener.addMessageListener("NewTab:Customize", this.customize);
-    this.pageListener.addMessageListener("NewTab:MaybeShowMigrateMessage",
-      this.maybeShowMigrateMessage);
   },
 
-  maybeShowMigrateMessage({ target }) {
-    AutoMigrate.shouldShowMigratePrompt(target.browser).then((prompt) => {
-      if (prompt) {
-        AutoMigrate.showUndoNotificationBar(target.browser);
-      }
-    });
+  /**
+   * onBrowserReady - Continues the initialization of Activity Stream after browser is ready.
+   */
+  onBrowserReady() {
+    if (this.activityStream && this.activityStream.initialized) {
+       return;
+    }
+
+    this.activityStream = new ActivityStream();
+    try {
+      this.activityStream.init();
+    } catch (e) {
+      Cu.reportError(e);
+    }
   },
 
-  customize(message) {
-    NewTabUtils.allPages.enabled = message.data.enabled;
-    NewTabUtils.allPages.enhanced = message.data.enhanced;
-  },
+  /**
+   * uninit - Uninitializes Activity Stream if it exists, and destroys the pageListener
+   *        if it exists.
+   */
+  uninit() {
+    if (this.activityStream) {
+      this.activityStream.uninit();
+      this.activityStream = null;
+    }
 
-  uninit() {
     if (this.pageListener) {
       this.pageListener.destroy();
       this.pageListener = null;
     }
   },
 
   override(shouldPassPageListener) {
     this.isOverridden = true;
     const pageListener = this.pageListener;
     if (!pageListener)
       return null;
     if (shouldPassPageListener) {
       this.pageListener = null;
-      pageListener.removeMessageListener("NewTab:Customize", this.customize);
-      pageListener.removeMessageListener("NewTab:MaybeShowMigrateMessage",
-        this.maybeShowMigrateMessage);
       return pageListener;
     }
     this.uninit();
     return null;
   },
 
   reset(pageListener) {
     this.isOverridden = false;
     this.init(pageListener);
+  },
+
+  // nsIObserver implementation
+
+  observe(subject, topic, data) {
+    switch (topic) {
+      case BROWSER_READY_NOTIFICATION:
+        Services.obs.removeObserver(this, BROWSER_READY_NOTIFICATION);
+        // Avoid running synchronously during this event that's used for timing
+        Services.tm.dispatchToMainThread(() => this.onBrowserReady());
+        break;
+    }
   }
 };
--- a/caps/OriginAttributes.cpp
+++ b/caps/OriginAttributes.cpp
@@ -6,16 +6,17 @@
 
 #include "mozilla/OriginAttributes.h"
 #include "mozilla/Preferences.h"
 #include "mozilla/dom/URLSearchParams.h"
 #include "mozilla/dom/quota/QuotaManager.h"
 #include "nsIEffectiveTLDService.h"
 #include "nsIURI.h"
 #include "nsIURIWithPrincipal.h"
+#include "nsURLHelper.h"
 
 namespace mozilla {
 
 using dom::URLParams;
 
 bool OriginAttributes::sFirstPartyIsolation = false;
 bool OriginAttributes::sRestrictedOpenerAccess = false;
 
@@ -53,16 +54,38 @@ OriginAttributes::SetFirstPartyDomain(co
 
   nsAutoCString baseDomain;
   nsresult rv = tldService->GetBaseDomain(aURI, 0, baseDomain);
   if (NS_SUCCEEDED(rv)) {
     mFirstPartyDomain = NS_ConvertUTF8toUTF16(baseDomain);
     return;
   }
 
+  if (rv == NS_ERROR_HOST_IS_IP_ADDRESS) {
+    // If the host is an IPv4/IPv6 address, we still accept it as a
+    // valid firstPartyDomain.
+    nsAutoCString ipAddr;
+    rv = aURI->GetHost(ipAddr);
+    NS_ENSURE_SUCCESS_VOID(rv);
+
+    if (net_IsValidIPv6Addr(ipAddr.BeginReading(), ipAddr.Length())) {
+      // According to RFC2732, the host of an IPv6 address should be an
+      // IPv6reference. The GetHost() of nsIURI will only return the IPv6
+      // address. So, we need to convert it back to IPv6reference here.
+      mFirstPartyDomain.Truncate();
+      mFirstPartyDomain.AssignLiteral("[");
+      mFirstPartyDomain.Append(NS_ConvertUTF8toUTF16(ipAddr));
+      mFirstPartyDomain.AppendLiteral("]");
+    } else {
+      mFirstPartyDomain = NS_ConvertUTF8toUTF16(ipAddr);
+    }
+
+    return;
+  }
+
   nsAutoCString scheme;
   rv = aURI->GetScheme(scheme);
   NS_ENSURE_SUCCESS_VOID(rv);
   if (scheme.EqualsLiteral("about")) {
     mFirstPartyDomain.AssignLiteral(ABOUT_URI_FIRST_PARTY_DOMAIN);
   } else if (scheme.EqualsLiteral("blob")) {
     nsCOMPtr<nsIURIWithPrincipal> uriPrinc = do_QueryInterface(aURI);
     if (uriPrinc) {
--- a/devtools/client/preferences/devtools-client.js
+++ b/devtools/client/preferences/devtools-client.js
@@ -60,18 +60,23 @@ pref("devtools.inspector.showAllAnonymou
 // Enable the Flexbox highlighter
 pref("devtools.inspector.flexboxHighlighter.enabled", false);
 // Enable the CSS shapes highlighter
 pref("devtools.inspector.shapesHighlighter.enabled", true);
 // Enable the Flexbox Inspector panel
 pref("devtools.flexboxinspector.enabled", false);
 // Enable the new Animation Inspector
 pref("devtools.new-animationinspector.enabled", true);
-// Enable the Variable Fonts editor
+
+// Enable the Variable Fonts editor only in Nightly
+#if defined(NIGHTLY_BUILD)
+pref("devtools.inspector.fonteditor.enabled", true);
+#else
 pref("devtools.inspector.fonteditor.enabled", false);
+#endif
 // Enable the font highlight-on-hover feature
 pref("devtools.inspector.fonthighlighter.enabled", false);
 
 // Grid highlighter preferences
 pref("devtools.gridinspector.gridOutlineMaxColumns", 50);
 pref("devtools.gridinspector.gridOutlineMaxRows", 50);
 pref("devtools.gridinspector.showGridAreas", false);
 pref("devtools.gridinspector.showGridLineNumbers", false);
--- a/devtools/client/sourceeditor/editor.js
+++ b/devtools/client/sourceeditor/editor.js
@@ -23,16 +23,17 @@ const VALID_KEYMAPS = new Set(["emacs", 
 // Maximum allowed margin (in number of lines) from top or bottom of the editor
 // while shifting to a line which was initially out of view.
 const MAX_VERTICAL_OFFSET = 3;
 
 // Match @Scratchpad/N:LINE[:COLUMN] or (LINE[:COLUMN]) anywhere at an end of
 // line in text selection.
 const RE_SCRATCHPAD_ERROR = /(?:@Scratchpad\/\d+:|\()(\d+):?(\d+)?(?:\)|\n)/;
 const RE_JUMP_TO_LINE = /^(\d+):?(\d+)?/;
+const AUTOCOMPLETE_MARK_CLASSNAME = "cm-auto-complete-shadow-text";
 
 const Services = require("Services");
 const EventEmitter = require("devtools/shared/event-emitter");
 const { PrefObserver } = require("devtools/client/shared/prefs");
 const { getClientCssProperties } = require("devtools/shared/fronts/css-properties");
 const KeyShortcuts = require("devtools/client/shared/key-shortcuts");
 
 const {LocalizationHelper} = require("devtools/shared/l10n");
@@ -53,32 +54,33 @@ const { OS } = Services.appinfo;
 
 const CM_SCRIPTS = [
   "chrome://devtools/content/sourceeditor/codemirror/codemirror.bundle.js",
 ];
 
 const CM_IFRAME = "chrome://devtools/content/sourceeditor/codemirror/cmiframe.html";
 
 const CM_MAPPING = [
+  "clearHistory",
+  "defaultCharWidth",
+  "extendSelection",
   "focus",
+  "getCursor",
+  "getScrollInfo",
+  "getSelection",
+  "getViewport",
   "hasFocus",
   "lineCount",
-  "somethingSelected",
-  "getCursor",
+  "openDialog",
+  "redo",
+  "refresh",
+  "replaceSelection",
   "setSelection",
-  "getSelection",
-  "replaceSelection",
-  "extendSelection",
+  "somethingSelected",
   "undo",
-  "redo",
-  "clearHistory",
-  "openDialog",
-  "refresh",
-  "getScrollInfo",
-  "getViewport"
 ];
 
 const editors = new WeakMap();
 
 Editor.modes = {
   css: { name: "css" },
   fs: { name: "x-shader/x-fragment" },
   haxe: { name: "haxe" },
@@ -174,16 +176,26 @@ function Editor(config) {
   // Remember the initial value of autoCloseBrackets.
   this.config.autoCloseBracketsSaved = this.config.autoCloseBrackets;
 
   // Overwrite default tab behavior. If something is selected,
   // indent those lines. If nothing is selected and we're
   // indenting with tabs, insert one tab. Otherwise insert N
   // whitespaces where N == indentUnit option.
   this.config.extraKeys.Tab = cm => {
+    if (config.extraKeys && config.extraKeys.Tab) {
+      // If a consumer registers its own extraKeys.Tab, we execute it before doing
+      // anything else. If it returns false, that mean that all the key handling work is
+      // done, so we can do an early return.
+      const res = config.extraKeys.Tab(cm);
+      if (res === false) {
+        return;
+      }
+    }
+
     if (cm.somethingSelected()) {
       cm.indentSelection("add");
       return;
     }
 
     if (this.config.indentWithTabs) {
       cm.replaceSelection("\t", "end", "+input");
       return;
@@ -1257,16 +1269,42 @@ Editor.prototype = {
 
     if (this.config.autocomplete && Services.prefs.getBoolPref(AUTOCOMPLETE)) {
       this.initializeAutoCompletion(this.config.autocompleteOpts);
     } else {
       this.destroyAutoCompletion();
     }
   },
 
+  getAutoCompletionText() {
+    const cm = editors.get(this);
+    const mark = cm.getAllMarks().find(m => m.className === AUTOCOMPLETE_MARK_CLASSNAME);
+    if (!mark) {
+      return "";
+    }
+
+    return mark.title || "";
+  },
+
+  setAutoCompletionText: function(text) {
+    const cursor = this.getCursor();
+    const cm = editors.get(this);
+    const className = AUTOCOMPLETE_MARK_CLASSNAME;
+
+    cm.getAllMarks().forEach(mark => {
+      if (mark.className === className) {
+        mark.clear();
+      }
+    });
+
+    if (text) {
+      cm.markText({...cursor, ch: cursor.ch - 1}, cursor, { className, title: text });
+    }
+  },
+
   /**
    * Extends an instance of the Editor object with additional
    * functions. Each function will be called with context as
    * the first argument. Context is a {ed, cm} object where
    * 'ed' is an instance of the Editor object and 'cm' is an
    * instance of the CodeMirror object. Example:
    *
    * function hello(ctx, name) {
--- a/devtools/client/themes/webconsole.css
+++ b/devtools/client/themes/webconsole.css
@@ -377,16 +377,21 @@ textarea.jsterm-input-node:focus {
   border-radius: 0 0 4px 4px;
 }
 
 /* Unset the bottom right radius on the jsterm inputs when the sidebar is visible */
 :root[platform="mac"]  .jsterm-cm .sidebar ~ .jsterm-input-container > .CodeMirror {
   border-bottom-right-radius: 0;
 }
 
+.jsterm-cm .cm-auto-complete-shadow-text::after {
+  content: attr(title);
+  color: var(--theme-comment);
+}
+
 /* Security styles */
 
 .message.security > .indent {
   border-inline-end: solid red 6px;
 }
 
 .message.security.error > .icon::before {
   background-position: -12px -48px;
--- a/devtools/client/webconsole/components/JSTerm.js
+++ b/devtools/client/webconsole/components/JSTerm.js
@@ -165,63 +165,90 @@ class JSTerm extends Component {
 
     const doc = this.hud.document;
     const toolbox = gDevTools.getToolbox(this.hud.owner.target);
     const tooltipDoc = toolbox ? toolbox.doc : doc;
     // The popup will be attached to the toolbox document or HUD document in the case
     // such as the browser console which doesn't have a toolbox.
     this.autocompletePopup = new AutocompletePopup(tooltipDoc, autocompleteOptions);
 
-    this.inputBorderSize = this.inputNode
-      ? this.inputNode.getBoundingClientRect().height - this.inputNode.clientHeight
-      : 0;
-
-    // Update the character width and height needed for the popup offset
-    // calculations.
-    this._updateCharSize();
-
     if (this.props.codeMirrorEnabled) {
       if (this.node) {
         this.editor = new Editor({
           autofocus: true,
           enableCodeFolding: false,
           gutters: [],
           lineWrapping: true,
           mode: Editor.modes.js,
           styleActiveLine: false,
           tabIndex: "0",
           viewportMargin: Infinity,
           extraKeys: {
-            "Enter": (e, cm) => {
-              if (!this.autocompletePopup.isOpen && (
-                e.shiftKey || !Debugger.isCompilableUnit(this.getInputValue())
-              )) {
-                // shift return or incomplete statement
+            "Enter": () => {
+              // No need to handle shift + Enter as it's natively handled by CodeMirror.
+              if (
+                !this.autocompletePopup.isOpen &&
+                !Debugger.isCompilableUnit(this.getInputValue())
+              ) {
+                // incomplete statement
                 return "CodeMirror.Pass";
               }
 
+              if (this._autocompletePopupNavigated &&
+                this.autocompletePopup.isOpen &&
+                this.autocompletePopup.selectedIndex > -1
+              ) {
+                return this.acceptProposedCompletion();
+              }
+
               this.execute();
               return null;
             },
+
+            "Tab": () => {
+              // Generate a completion and accept the first proposed value.
+              if (
+                this.complete(this.COMPLETE_HINT_ONLY) &&
+                this.lastCompletion &&
+                this.acceptProposedCompletion()
+              ) {
+                return false;
+              }
+
+              if (this.hasEmptyInput()) {
+                this.editor.codeMirror.getInputField().blur();
+                return false;
+              }
+
+              if (!this.editor.somethingSelected()) {
+                this.insertStringAtCursor("\t");
+                return false;
+              }
+
+              // Input is not empty and some text is selected, let the editor handle this.
+              return true;
+            },
+
             "Up": () => {
               let inputUpdated;
               if (this.autocompletePopup.isOpen) {
                 inputUpdated = this.complete(this.COMPLETE_BACKWARD);
                 if (inputUpdated) {
                   this._autocompletePopupNavigated = true;
                 }
               } else if (this.canCaretGoPrevious()) {
                 inputUpdated = this.historyPeruse(HISTORY_BACK);
               }
 
               if (!inputUpdated) {
                 return "CodeMirror.Pass";
               }
               return null;
             },
+
             "Down": () => {
               let inputUpdated;
               if (this.autocompletePopup.isOpen) {
                 inputUpdated = this.complete(this.COMPLETE_FORWARD);
                 if (inputUpdated) {
                   this._autocompletePopupNavigated = true;
                 }
               } else if (this.canCaretGoNext()) {
@@ -229,16 +256,46 @@ class JSTerm extends Component {
               }
 
               if (!inputUpdated) {
                 return "CodeMirror.Pass";
               }
               return null;
             },
 
+            "Left": () => {
+              if (this.autocompletePopup.isOpen || this.lastCompletion.value) {
+                this.clearCompletion();
+              }
+              return "CodeMirror.Pass";
+            },
+
+            "Right": () => {
+              const haveSuggestion =
+                this.autocompletePopup.isOpen || this.lastCompletion.value;
+              const useCompletion =
+                this.canCaretGoNext() || this._autocompletePopupNavigated;
+
+              if (
+                haveSuggestion &&
+                useCompletion &&
+                this.complete(this.COMPLETE_HINT_ONLY) &&
+                this.lastCompletion.value &&
+                this.acceptProposedCompletion()
+              ) {
+                return null;
+              }
+
+              if (this.autocompletePopup.isOpen) {
+                this.clearCompletion();
+              }
+
+              return "CodeMirror.Pass";
+            },
+
             "Ctrl-N": () => {
               // Control-N differs from down arrow: it ignores autocomplete state.
               // Note that we preserve the default 'down' navigation within
               // multiline text.
               if (
                 Services.appinfo.OS === "Darwin"
                 && this.canCaretGoNext()
                 && this.historyPeruse(HISTORY_FORWARD)
@@ -246,45 +303,104 @@ class JSTerm extends Component {
                 return null;
               }
 
               this.clearCompletion();
               return "CodeMirror.Pass";
             },
 
             "Ctrl-P": () => {
-              // Control-N differs from down arrow: it ignores autocomplete state.
-              // Note that we preserve the default 'down' navigation within
+              // Control-P differs from up arrow: it ignores autocomplete state.
+              // Note that we preserve the default 'up' navigation within
               // multiline text.
               if (
                 Services.appinfo.OS === "Darwin"
                 && this.canCaretGoPrevious()
                 && this.historyPeruse(HISTORY_BACK)
               ) {
                 return null;
               }
 
               this.clearCompletion();
               return "CodeMirror.Pass";
+            },
+
+            "Esc": () => {
+              if (this.autocompletePopup.isOpen) {
+                this.clearCompletion();
+                return null;
+              }
+
+              return "CodeMirror.Pass";
+            },
+
+            "PageUp": () => {
+              if (this.autocompletePopup.isOpen) {
+                if (this.complete(this.COMPLETE_PAGEUP)) {
+                  this._autocompletePopupNavigated = true;
+                }
+                return null;
+              }
+
+              return "CodeMirror.Pass";
+            },
+
+            "PageDown": () => {
+              if (this.autocompletePopup.isOpen) {
+                if (this.complete(this.COMPLETE_PAGEDOWN)) {
+                  this._autocompletePopupNavigated = true;
+                }
+                return null;
+              }
+
+              return "CodeMirror.Pass";
+            },
+
+            "Home": () => {
+              if (this.autocompletePopup.isOpen) {
+                this.autocompletePopup.selectedIndex = 0;
+                return null;
+              }
+
+              return "CodeMirror.Pass";
+            },
+
+            "End": () => {
+              if (this.autocompletePopup.isOpen) {
+                this.autocompletePopup.selectedIndex =
+                  this.autocompletePopup.itemCount - 1;
+                return null;
+              }
+
+              return "CodeMirror.Pass";
             }
           }
         });
 
+        this.editor.on("change", this._inputEventHandler);
         this.editor.appendToLocalElement(this.node);
         const cm = this.editor.codeMirror;
         cm.on("paste", (_, event) => this.props.onPaste(event));
         cm.on("drop", (_, event) => this.props.onPaste(event));
       }
     } else if (this.inputNode) {
       this.inputNode.addEventListener("keypress", this._keyPress);
       this.inputNode.addEventListener("input", this._inputEventHandler);
       this.inputNode.addEventListener("keyup", this._inputEventHandler);
       this.focus();
     }
 
+    this.inputBorderSize = this.inputNode
+      ? this.inputNode.getBoundingClientRect().height - this.inputNode.clientHeight
+      : 0;
+
+    // Update the character and chevron width needed for the popup offset calculations.
+    this._inputCharWidth = this._getInputCharWidth();
+    this._chevronWidth = this.editor ? null : this._getChevronWidth();
+
     this.hud.window.addEventListener("blur", this._blurEventHandler);
     this.lastInputValue && this.setInputValue(this.lastInputValue);
   }
 
   shouldComponentUpdate(nextProps, nextState) {
     // XXX: For now, everything is handled in an imperative way and we
     // only want React to do the initial rendering of the component.
     // This should be modified when the actual refactoring will take place.
@@ -571,22 +687,23 @@ class JSTerm extends Component {
    * Sets the value of the input field (command line), and resizes the field to
    * fit its contents. This method is preferred over setting "inputNode.value"
    * directly, because it correctly resizes the field.
    *
    * @param string newValue
    *        The new value to set.
    * @returns void
    */
-  setInputValue(newValue) {
+  setInputValue(newValue = "") {
     if (this.props.codeMirrorEnabled) {
       if (this.editor) {
         this.editor.setText(newValue);
         // Set the cursor at the end of the input.
         this.editor.setCursor({line: this.editor.getDoc().lineCount(), ch: 0});
+        this.editor.setAutoCompletionText();
       }
     } else {
       if (!this.inputNode) {
         return;
       }
 
       this.inputNode.value = newValue;
       this.completeNode.value = "";
@@ -598,31 +715,40 @@ class JSTerm extends Component {
   }
 
   /**
    * Gets the value from the input field
    * @returns string
    */
   getInputValue() {
     if (this.props.codeMirrorEnabled) {
-      return this.editor.getText() || "";
+      return this.editor ? this.editor.getText() || "" : "";
     }
 
     return this.inputNode ? this.inputNode.value || "" : "";
   }
 
+  getSelectionStart() {
+    if (this.props.codeMirrorEnabled) {
+      return this.getInputValueBeforeCursor().length;
+    }
+
+    return this.inputNode ? this.inputNode.selectionStart : null;
+  }
+
   /**
    * The inputNode "input" and "keyup" event handler.
    * @private
    */
   _inputEventHandler() {
-    if (this.lastInputValue != this.getInputValue()) {
+    const value = this.getInputValue();
+    if (this.lastInputValue !== value) {
       this.resizeInput();
       this.complete(this.COMPLETE_HINT_ONLY);
-      this.lastInputValue = this.getInputValue();
+      this.lastInputValue = value;
     }
   }
 
   /**
    * The window "blur" event handler.
    * @private
    */
   _blurEventHandler() {
@@ -637,17 +763,16 @@ class JSTerm extends Component {
    *
    * @private
    * @param Event event
    */
   _keyPress(event) {
     const inputNode = this.inputNode;
     const inputValue = this.getInputValue();
     let inputUpdated = false;
-
     if (event.ctrlKey) {
       switch (event.charCode) {
         case 101:
           // control-e
           if (Services.appinfo.OS == "WINNT") {
             break;
           }
           let lineEndPos = inputValue.length;
@@ -994,39 +1119,40 @@ class JSTerm extends Component {
    *          completed text.
    * @param function callback
    *        Optional function invoked when the autocomplete properties are
    *        updated.
    * @returns boolean true if there existed a completion for the current input,
    *          or false otherwise.
    */
   complete(type, callback) {
-    const inputNode = this.inputNode;
     const inputValue = this.getInputValue();
     const frameActor = this.getFrameActor(this.SELECTED_FRAME);
-
     // If the inputNode has no value, then don't try to complete on it.
     if (!inputValue) {
       this.clearCompletion();
       callback && callback(this);
       this.emit("autocomplete-updated");
       return false;
     }
 
+    const {editor, inputNode} = this;
     // Only complete if the selection is empty.
-    if (inputNode.selectionStart != inputNode.selectionEnd) {
+    if (
+      (inputNode && inputNode.selectionStart != inputNode.selectionEnd) ||
+      (editor && editor.getSelection())
+    ) {
       this.clearCompletion();
       this.callback && callback(this);
       this.emit("autocomplete-updated");
       return false;
     }
 
     // Update the completion results.
-    if (this.lastCompletion.value != inputValue ||
-        frameActor != this._lastFrameActorId) {
+    if (this.lastCompletion.value != inputValue || frameActor != this._lastFrameActorId) {
       this._updateCompletionResult(type, callback);
       return false;
     }
 
     const popup = this.autocompletePopup;
     let accepted = false;
 
     if (type != this.COMPLETE_HINT_ONLY && popup.itemCount == 1) {
@@ -1053,135 +1179,155 @@ class JSTerm extends Component {
    *
    * @private
    * @param int type
    *        Completion type. See this.complete() for details.
    * @param function [callback]
    *        Optional, function to invoke when completion results are received.
    */
   _updateCompletionResult(type, callback) {
+    const value = this.getInputValue();
     const frameActor = this.getFrameActor(this.SELECTED_FRAME);
-    if (this.lastCompletion.value == this.getInputValue() &&
-        frameActor == this._lastFrameActorId) {
+    if (this.lastCompletion.value == value && frameActor == this._lastFrameActorId) {
       return;
     }
 
     const requestId = gSequenceId();
-    const cursor = this.inputNode.selectionStart;
-    const input = this.getInputValue().substring(0, cursor);
+    const cursor = this.getSelectionStart();
+    const input = value.substring(0, cursor);
     const cache = this._autocompleteCache;
 
     // If the current input starts with the previous input, then we already
     // have a list of suggestions and we just need to filter the cached
-    // suggestions. When the current input ends with a non-alphanumeri;
+    // suggestions. When the current input ends with a non-alphanumeric
     // character we ask the server again for suggestions.
 
     // Check if last character is non-alphanumeric
     if (!/[a-zA-Z0-9]$/.test(input) || frameActor != this._lastFrameActorId) {
       this._autocompleteQuery = null;
       this._autocompleteCache = null;
     }
-
     if (this._autocompleteQuery && input.startsWith(this._autocompleteQuery)) {
       let filterBy = input;
       // Find the last non-alphanumeric other than _ or $ if it exists.
       const lastNonAlpha = input.match(/[^a-zA-Z0-9_$][a-zA-Z0-9_$]*$/);
       // If input contains non-alphanumerics, use the part after the last one
       // to filter the cache
       if (lastNonAlpha) {
         filterBy = input.substring(input.lastIndexOf(lastNonAlpha) + 1);
       }
 
-      const newList = cache.sort().filter(function(l) {
-        return l.startsWith(filterBy);
-      });
+      const newList = cache.sort().filter(l => l.startsWith(filterBy));
 
       this.lastCompletion = {
         requestId: null,
         completionType: type,
         value: null,
       };
 
       const response = { matches: newList, matchProp: filterBy };
       this._receiveAutocompleteProperties(null, callback, response);
       return;
     }
-
     this._lastFrameActorId = frameActor;
 
     this.lastCompletion = {
       requestId: requestId,
       completionType: type,
       value: null,
     };
 
     const autocompleteCallback =
       this._receiveAutocompleteProperties.bind(this, requestId, callback);
 
     this.webConsoleClient.autocomplete(
       input, cursor, autocompleteCallback, frameActor);
   }
 
+  getInputValueBeforeCursor() {
+    if (this.editor) {
+      return this.editor.getDoc().getRange({line: 0, ch: 0}, this.editor.getCursor());
+    }
+
+    if (this.inputNode) {
+      const cursor = this.inputNode.selectionStart;
+      return this.getInputValue().substring(0, cursor);
+    }
+
+    return null;
+  }
+
   /**
    * Handler for the autocompletion results. This method takes
    * the completion result received from the server and updates the UI
    * accordingly.
    *
    * @param number requestId
    *        Request ID.
    * @param function [callback=null]
    *        Optional, function to invoke when the completion result is received.
    * @param object message
    *        The JSON message which holds the completion results received from
    *        the content process.
    */
   _receiveAutocompleteProperties(requestId, callback, message) {
-    const inputNode = this.inputNode;
     const inputValue = this.getInputValue();
     if (this.lastCompletion.value == inputValue ||
         requestId != this.lastCompletion.requestId) {
       return;
     }
     // Cache whatever came from the server if the last char is
     // alphanumeric or '.'
-    const cursor = inputNode.selectionStart;
-    const inputUntilCursor = inputValue.substring(0, cursor);
+    const inputUntilCursor = this.getInputValueBeforeCursor();
 
     if (requestId != null && /[a-zA-Z0-9.]$/.test(inputUntilCursor)) {
       this._autocompleteCache = message.matches;
       this._autocompleteQuery = inputUntilCursor;
     }
 
     const matches = message.matches;
     const lastPart = message.matchProp;
     if (!matches.length) {
       this.clearCompletion();
       callback && callback(this);
       this.emit("autocomplete-updated");
       return;
     }
 
-    const items = matches.reverse().map(function(match) {
-      return { preLabel: lastPart, label: match };
-    });
-
+    const items = matches.reverse().map(match => ({ preLabel: lastPart, label: match }));
     const popup = this.autocompletePopup;
     popup.setItems(items);
 
     const completionType = this.lastCompletion.completionType;
     this.lastCompletion = {
       value: inputValue,
       matchProp: lastPart,
     };
     if (items.length > 1 && !popup.isOpen) {
-      const str = this.getInputValue().substr(0, this.inputNode.selectionStart);
-      const offset = str.length - (str.lastIndexOf("\n") + 1) - lastPart.length;
-      const x = offset * this._inputCharWidth;
-      popup.openPopup(inputNode, x + this._chevronWidth);
-      this._autocompletePopupNavigated = false;
+      let popupAlignElement;
+      let xOffset;
+      let yOffset;
+
+      if (this.editor) {
+        popupAlignElement = this.node.querySelector(".CodeMirror-cursor");
+        // We need to show the popup at the ".".
+        xOffset = -1 * lastPart.length * this._inputCharWidth;
+        yOffset = 4;
+      } else if (this.inputNode) {
+        const offset = inputUntilCursor.length -
+          (inputUntilCursor.lastIndexOf("\n") + 1) -
+          lastPart.length;
+        xOffset = (offset * this._inputCharWidth) + this._chevronWidth;
+        popupAlignElement = this.inputNode;
+      }
+
+      if (popupAlignElement) {
+        popup.openPopup(popupAlignElement, xOffset, yOffset);
+        this._autocompletePopupNavigated = false;
+      }
     } else if (items.length < 2 && popup.isOpen) {
       popup.hidePopup();
       this._autocompletePopupNavigated = false;
     }
     if (items.length == 1) {
       popup.selectedIndex = 0;
     }
 
@@ -1196,17 +1342,17 @@ class JSTerm extends Component {
     }
 
     callback && callback(this);
     this.emit("autocomplete-updated");
   }
 
   onAutocompleteSelect() {
     // Render the suggestion only if the cursor is at the end of the input.
-    if (this.inputNode.selectionStart != this.getInputValue().length) {
+    if (this.getSelectionStart() != this.getInputValue().length) {
       return;
     }
 
     const currentItem = this.autocompletePopup.selectedItem;
     if (currentItem && this.lastCompletion.value) {
       const suffix =
         currentItem.label.substring(this.lastCompletion.matchProp.length);
       this.updateCompleteNode(suffix);
@@ -1223,19 +1369,21 @@ class JSTerm extends Component {
     this.lastCompletion = { value: null };
     this.updateCompleteNode("");
     if (this.autocompletePopup) {
       this.autocompletePopup.clearItems();
 
       if (this.autocompletePopup.isOpen) {
         // Trigger a blur/focus of the JSTerm input to force screen readers to read the
         // value again.
-        this.inputNode.blur();
+        if (this.inputNode) {
+          this.inputNode.blur();
+        }
         this.autocompletePopup.once("popup-closed", () => {
-          this.inputNode.focus();
+          this.focus();
         });
         this.autocompletePopup.hidePopup();
         this._autocompletePopupNavigated = false;
       }
     }
   }
 
   /**
@@ -1248,82 +1396,119 @@ class JSTerm extends Component {
   acceptProposedCompletion() {
     let updated = false;
 
     const currentItem = this.autocompletePopup.selectedItem;
     if (currentItem && this.lastCompletion.value) {
       this.insertStringAtCursor(
         currentItem.label.substring(this.lastCompletion.matchProp.length)
       );
+
       updated = true;
     }
 
     this.clearCompletion();
 
     return updated;
   }
 
   /**
    * Insert a string into the console at the cursor location,
    * moving the cursor to the end of the string.
    *
    * @param string str
    */
   insertStringAtCursor(str) {
-    const cursor = this.inputNode.selectionStart;
     const value = this.getInputValue();
-    this.setInputValue(value.substr(0, cursor) +
-      str + value.substr(cursor));
-    const newCursor = cursor + str.length;
-    this.inputNode.selectionStart = this.inputNode.selectionEnd = newCursor;
+    const prefix = this.getInputValueBeforeCursor();
+    const suffix = value.replace(prefix, "");
+
+    // We need to retrieve the cursor before setting the new value.
+    const editorCursor = this.editor && this.editor.getCursor();
+
+    this.setInputValue(prefix + str + suffix);
+
+    if (this.inputNode) {
+      const newCursor = prefix.length + str.length;
+      this.inputNode.selectionStart = this.inputNode.selectionEnd = newCursor;
+    } else if (this.editor) {
+      // Set the cursor on the same line it was already at, after the autocompleted text
+      this.editor.setCursor({
+        line: editorCursor.line,
+        ch: editorCursor.ch + str.length
+      });
+    }
   }
 
   /**
    * Update the node that displays the currently selected autocomplete proposal.
    *
    * @param string suffix
    *        The proposed suffix for the inputNode value.
    */
   updateCompleteNode(suffix) {
-    if (!this.completeNode) {
-      return;
+    if (this.completeNode) {
+      // completion prefix = input, with non-control chars replaced by spaces
+      const prefix = suffix ? this.getInputValue().replace(/[\S]/g, " ") : "";
+      this.completeNode.value = prefix + suffix;
     }
 
-    // completion prefix = input, with non-control chars replaced by spaces
-    const prefix = suffix ? this.getInputValue().replace(/[\S]/g, " ") : "";
-    this.completeNode.value = prefix + suffix;
+    if (this.editor) {
+      this.editor.setAutoCompletionText(suffix);
+    }
   }
+
   /**
-   * Calculates the width and height of a single character of the input box.
+   * Calculates and returns the width of a single character of the input box.
    * This will be used in opening the popup at the correct offset.
    *
-   * @private
+   * @returns {Number|null}: Width off the "x" char, or null if the input does not exist.
    */
-  _updateCharSize() {
-    if (this.props.codeMirrorEnabled || !this.inputNode) {
-      return;
+  _getInputCharWidth() {
+    if (!this.inputNode && !this.node) {
+      return null;
+    }
+
+    if (this.editor) {
+      return this.editor.defaultCharWidth();
     }
 
     const doc = this.hud.document;
     const tempLabel = doc.createElement("span");
     const style = tempLabel.style;
     style.position = "fixed";
     style.padding = "0";
     style.margin = "0";
     style.width = "auto";
     style.color = "transparent";
     WebConsoleUtils.copyTextStyles(this.inputNode, tempLabel);
     tempLabel.textContent = "x";
     doc.documentElement.appendChild(tempLabel);
-    this._inputCharWidth = tempLabel.offsetWidth;
+    const width = tempLabel.offsetWidth;
     tempLabel.remove();
-    // Calculate the width of the chevron placed at the beginning of the input
+    return width;
+  }
+
+  /**
+   * Calculates and returns the width of the chevron icon.
+   * This will be used in opening the popup at the correct offset.
+   *
+   * @returns {Number|null}: Width of the icon, or null if the input does not exist.
+   */
+  _getChevronWidth() {
+    if (!this.inputNode) {
+      return null;
+    }
+
+   // Calculate the width of the chevron placed at the beginning of the input
     // box. Remove 4 more pixels to accommodate the padding of the popup.
-    this._chevronWidth = +doc.defaultView.getComputedStyle(this.inputNode)
-                             .paddingLeft.replace(/[^0-9.]/g, "") - 4;
+    const doc = this.hud.document;
+    return doc.defaultView
+      .getComputedStyle(this.inputNode)
+      .paddingLeft.replace(/[^0-9.]/g, "") - 4;
   }
 
   destroy() {
     this.clearCompletion();
 
     this.webConsoleClient.clearNetworkRequests();
     if (this.hud.outputNode) {
       // We do this because it's much faster than letting React handle the ConsoleOutput
--- a/devtools/client/webconsole/test/mochitest/browser.ini
+++ b/devtools/client/webconsole/test/mochitest/browser.ini
@@ -179,16 +179,17 @@ skip-if = (verify && debug && (os == 'ma
 skip-if = verify
 [browser_console_webconsole_console_api_calls.js]
 [browser_console_webconsole_ctrlw_close_tab.js]
 [browser_console_webconsole_iframe_messages.js]
 [browser_console_webconsole_private_browsing.js]
 [browser_jsterm_accessibility.js]
 [browser_jsterm_add_edited_input_to_history.js]
 [browser_jsterm_autocomplete_array_no_index.js]
+[browser_jsterm_autocomplete_arrow_keys.js]
 [browser_jsterm_autocomplete_cached_results.js]
 [browser_jsterm_autocomplete_crossdomain_iframe.js]
 [browser_jsterm_autocomplete_escape_key.js]
 [browser_jsterm_autocomplete_extraneous_closing_brackets.js]
 [browser_jsterm_autocomplete_helpers.js]
 [browser_jsterm_autocomplete_in_chrome_tab.js]
 [browser_jsterm_autocomplete_in_debugger_stackframe.js]
 [browser_jsterm_autocomplete_inside_text.js]
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_add_edited_input_to_history.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_add_edited_input_to_history.js
@@ -7,27 +7,28 @@
 // lost after navigating in history.
 // See https://bugzilla.mozilla.org/show_bug.cgi?id=817834
 
 "use strict";
 
 const TEST_URI = "data:text/html;charset=utf-8,Web Console test for bug 817834";
 
 add_task(async function() {
-  const hud = await openNewTabAndConsole(TEST_URI);
-  await testEditedInputHistory(hud);
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
 });
 
-async function testEditedInputHistory(hud) {
-  const jsterm = hud.jsterm;
-  const inputNode = jsterm.inputNode;
+async function performTests() {
+  const {jsterm} = await openNewTabAndConsole(TEST_URI);
 
   ok(!jsterm.getInputValue(), "jsterm.getInputValue() is empty");
-  is(inputNode.selectionStart, 0);
-  is(inputNode.selectionEnd, 0);
+  checkJsTermCursor(jsterm, 0, "Cursor is at expected position");
 
   jsterm.setInputValue('"first item"');
   EventUtils.synthesizeKey("KEY_ArrowUp");
   is(jsterm.getInputValue(), '"first item"', "null test history up");
   EventUtils.synthesizeKey("KEY_ArrowDown");
   is(jsterm.getInputValue(), '"first item"', "null test history down");
 
   await jsterm.execute();
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete-properties-with-non-alphanumeric-names.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete-properties-with-non-alphanumeric-names.js
@@ -5,16 +5,24 @@
 
 "use strict";
 
 // Test that properties starting with underscores or dollars can be
 // autocompleted (bug 967468).
 const TEST_URI = "data:text/html;charset=utf8,test autocompletion with $ or _";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const { jsterm } = await openNewTabAndConsole(TEST_URI);
 
   await jsterm.execute("var testObject = {$$aaab: '', $$aaac: ''}");
 
   // Should work with bug 967468.
   await testAutocomplete(jsterm, "Object.__d");
   await testAutocomplete(jsterm, "testObject.$$a");
 
@@ -23,17 +31,17 @@ add_task(async function() {
   await testAutocomplete(jsterm, "testObject.$$aa");
 
   // Should work with bug 1207868.
   await jsterm.execute("let foobar = {a: ''}; const blargh = {a: 1};");
   await testAutocomplete(jsterm, "foobar");
   await testAutocomplete(jsterm, "blargh");
   await testAutocomplete(jsterm, "foobar.a");
   await testAutocomplete(jsterm, "blargh.a");
-});
+}
 
 async function testAutocomplete(jsterm, inputString) {
   jsterm.setInputValue(inputString);
   await new Promise(resolve => jsterm.complete(jsterm.COMPLETE_HINT_ONLY, resolve));
 
   const popup = jsterm.autocompletePopup;
   ok(popup.itemCount > 0, `There's ${popup.itemCount} suggestions for '${inputString}'`);
 }
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_array_no_index.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_array_no_index.js
@@ -11,16 +11,24 @@ const TEST_URI = `data:text/html;charset
 <head>
   <script>
     window.foo = [1,2,3];
   </script>
 </head>
 <body>bug 585991 - Autocomplete popup on array</body>`;
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const { jsterm } = await openNewTabAndConsole(TEST_URI);
 
   const {
     autocompletePopup: popup
   } = jsterm;
 
   const onPopUpOpen = popup.once("popup-opened");
 
@@ -33,9 +41,9 @@ add_task(async function() {
   const popupItems = popup.getItems().map(e => e.label);
   is(popupItems.includes("0"), false, "Completing on an array doesn't show numbers.");
 
   info("press Escape to close the popup");
   const onPopupClose = popup.once("popup-closed");
   EventUtils.synthesizeKey("KEY_Escape");
 
   await onPopupClose;
-});
+}
new file mode 100644
--- /dev/null
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_arrow_keys.js
@@ -0,0 +1,69 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const TEST_URI = `data:text/html;charset=utf-8,<head><script>
+    /* Create a prototype-less object so popup does not contain native
+     * Object prototype properties.
+     */
+    window.foo = Object.create(null, Object.getOwnPropertyDescriptors({
+      aa: "a",
+      bb: "b",
+    }));
+  </script></head><body>Autocomplete text navigation key usage test</body>`;
+
+add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
+  const { jsterm } = await openNewTabAndConsole(TEST_URI);
+  const { autocompletePopup: popup } = jsterm;
+
+  const checkInput = (expected, assertionInfo) =>
+    checkJsTermValueAndCursor(jsterm, expected, assertionInfo);
+
+  let onPopUpOpen = popup.once("popup-opened");
+  jsterm.setInputValue("window.foo");
+  EventUtils.sendString(".");
+  await onPopUpOpen;
+
+  info("Trigger autocomplete popup opening");
+  // checkInput is asserting the cursor position with the "|" char.
+  checkInput("window.foo.|");
+  is(popup.isOpen, true, "popup is open");
+  checkJsTermCompletionValue(jsterm, "           aa", "completeNode has expected value");
+
+  info("Test that arrow left closes the popup and clears complete node");
+  let onPopUpClose = popup.once("popup-closed");
+  EventUtils.synthesizeKey("KEY_ArrowLeft");
+  await onPopUpClose;
+  checkInput("window.foo|.");
+  is(popup.isOpen, false, "popup is closed");
+  checkJsTermCompletionValue(jsterm, "", "completeNode is empty");
+
+  info("Trigger autocomplete popup opening again");
+  onPopUpOpen = popup.once("popup-opened");
+  jsterm.setInputValue("window.foo");
+  EventUtils.sendString(".");
+  await onPopUpOpen;
+
+  checkInput("window.foo.|");
+  is(popup.isOpen, true, "popup is open");
+  checkJsTermCompletionValue(jsterm, "           aa", "completeNode has expected value");
+
+  info("Test that arrow right selects selected autocomplete item");
+  onPopUpClose = popup.once("popup-closed");
+  EventUtils.synthesizeKey("KEY_ArrowRight");
+  await onPopUpClose;
+  checkInput("window.foo.aa|");
+  is(popup.isOpen, false, "popup is closed");
+  checkJsTermCompletionValue(jsterm, "", "completeNode is empty");
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_cached_results.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_cached_results.js
@@ -6,66 +6,91 @@
 // Tests that the cached autocomplete results are used when the new
 // user input is a subset of the existing completion results.
 
 "use strict";
 
 const TEST_URI = "data:text/html;charset=utf8,<p>test cached autocompletion results";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const { jsterm } = await openNewTabAndConsole(TEST_URI);
-  const {
-    autocompletePopup: popup,
-    completeNode,
-    inputNode: input,
-  } = jsterm;
+  const { autocompletePopup: popup } = jsterm;
 
-  const jstermComplete = (value, offset) =>
-    jstermSetValueAndComplete(jsterm, value, offset);
+  const jstermComplete = (value, caretPosition) =>
+    jstermSetValueAndComplete(jsterm, value, caretPosition);
 
   // Test if 'doc' gives 'document'
   await jstermComplete("doc");
-  is(input.value, "doc", "'docu' completion (input.value)");
-  is(completeNode.value, "   ument", "'docu' completion (completeNode)");
+  is(jsterm.getInputValue(), "doc", "'docu' completion (input.value)");
+  checkJsTermCompletionValue(jsterm, "   ument", "'docu' completion (completeNode)");
 
-  // Test typing 'window.'.
+  // Test typing 'window.'.'
   await jstermComplete("window.");
   ok(popup.getItems().length > 0, "'window.' gave a list of suggestions");
 
-  await jsterm.execute("window.docfoobar = true");
+  info("Add a property on the window object");
+  await ContentTask.spawn(gBrowser.selectedBrowser, {}, () => {
+    content.wrappedJSObject.window.docfoobar = true;
+  });
+
+  // Test typing d (i.e. input is now 'window.d').
+  let onUpdated = jsterm.once("autocomplete-updated");
+  EventUtils.synthesizeKey("d");
+  await onUpdated;
+  ok(!getPopupLabels(popup).includes("docfoobar"),
+    "autocomplete popup does not contain docfoobar. List has not been updated");
 
-  // Test typing 'window.doc'.
-  await jstermComplete("window.doc");
+  // Test typing o (i.e. input is now 'window.do').
+  jsterm.once("autocomplete-updated");
+  EventUtils.synthesizeKey("o");
+  await onUpdated;
+  ok(!getPopupLabels(popup).includes("docfoobar"),
+    "autocomplete popup does not contain docfoobar. List has not been updated");
+
+  // Test that backspace does not cause a request to the server
+  onUpdated = jsterm.once("autocomplete-updated");
+  EventUtils.synthesizeKey("KEY_Backspace");
+  await onUpdated;
   ok(!getPopupLabels(popup).includes("docfoobar"),
     "autocomplete cached results do not contain docfoobar. list has not been updated");
 
-  // Test that backspace does not cause a request to the server
-  await jstermComplete("window.do");
-  ok(!getPopupLabels(popup).includes("docfoobar"),
-    "autocomplete cached results do not contain docfoobar. list has not been updated");
-
-  await jsterm.execute("delete window.docfoobar");
+  await ContentTask.spawn(gBrowser.selectedBrowser, {}, () => {
+    delete content.wrappedJSObject.window.docfoobar;
+  });
 
   // Test if 'window.getC' gives 'getComputedStyle'
   await jstermComplete("window.");
   await jstermComplete("window.getC");
   ok(getPopupLabels(popup).includes("getComputedStyle"),
     "autocomplete results do contain getComputedStyle");
 
   // Test if 'dump(d' gives non-zero results
   await jstermComplete("dump(d");
   ok(popup.getItems().length > 0, "'dump(d' gives non-zero results");
 
   // Test that 'dump(window.)' works.
   await jstermComplete("dump(window.)", -1);
   ok(popup.getItems().length > 0, "'dump(window.' gave a list of suggestions");
 
-  await jsterm.execute("window.docfoobar = true");
+  info("Add a property on the window object");
+  await ContentTask.spawn(gBrowser.selectedBrowser, {}, () => {
+    content.wrappedJSObject.window.docfoobar = true;
+  });
 
-  // Make sure 'dump(window.doc)' does not contain 'docfoobar'.
-  await jstermComplete("dump(window.doc)", -1);
+  // Make sure 'dump(window.d)' does not contain 'docfoobar'.
+  onUpdated = jsterm.once("autocomplete-updated");
+  EventUtils.synthesizeKey("d");
+  await onUpdated;
   ok(!getPopupLabels(popup).includes("docfoobar"),
     "autocomplete cached results do not contain docfoobar. list has not been updated");
-});
+}
 
 function getPopupLabels(popup) {
   return popup.getItems().map(item => item.label);
 }
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_crossdomain_iframe.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_crossdomain_iframe.js
@@ -3,17 +3,26 @@
 
 // Test that autocomplete doesn't break when trying to reach into objects from
 // a different domain. See Bug 989025.
 
 "use strict";
 
 const TEST_URI = "http://example.com/browser/devtools/client/webconsole/" +
                  "test/mochitest/test-iframe-parent.html";
+
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const hud = await openNewTabAndConsole(TEST_URI);
   const { jsterm } = hud;
 
   const onParentTitle = waitForMessage(hud, "iframe parent");
   jsterm.execute("document.title");
   await onParentTitle;
   ok(true, "root document's title is accessible");
 
@@ -29,9 +38,9 @@ add_task(async function() {
   const permissionDenied = await onPermissionDeniedMessage;
   ok(permissionDenied.node.classList.contains("error"),
     "A message error is shown when trying to inspect window[0]");
 
   const onParentLocation = waitForMessage(hud, "test-iframe-parent.html");
   hud.jsterm.execute("window.location");
   await onParentLocation;
   ok(true, "root document's location is accessible");
-});
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_escape_key.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_escape_key.js
@@ -18,23 +18,28 @@ const TEST_URI = `data:text/html;charset
       item0: "value0",
       item1: "value1",
     });
   </script>
 </head>
 <body>bug 585991 - autocomplete popup escape key usage test</body>`;
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const { jsterm } = await openNewTabAndConsole(TEST_URI);
   info("web console opened");
 
-  const {
-    autocompletePopup: popup,
-    completeNode,
-  } = jsterm;
+  const { autocompletePopup: popup } = jsterm;
 
   const onPopUpOpen = popup.once("popup-opened");
 
   info("wait for completion: window.foo.");
   jsterm.setInputValue("window.foo");
   EventUtils.sendString(".");
 
   await onPopUpOpen;
@@ -45,10 +50,10 @@ add_task(async function() {
   info("press Escape to close the popup");
   const onPopupClose = popup.once("popup-closed");
   EventUtils.synthesizeKey("KEY_Escape");
 
   await onPopupClose;
 
   ok(!popup.isOpen, "popup is not open after VK_ESCAPE");
   is(jsterm.getInputValue(), "window.foo.", "completion was cancelled");
-  ok(!completeNode.value, "completeNode is empty");
-});
+  ok(!getJsTermCompletionValue(jsterm), "completeNode is empty");
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_extraneous_closing_brackets.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_extraneous_closing_brackets.js
@@ -6,17 +6,25 @@
 // Tests that, when the user types an extraneous closing bracket, no error
 // appears. See Bug 592442.
 
 "use strict";
 
 const TEST_URI = "data:text/html;charset=utf-8,test for bug 592442";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const { jsterm } = await openNewTabAndConsole(TEST_URI);
 
   try {
     await jstermSetValueAndComplete(jsterm, "document.getElementById)");
     ok(true, "no error was thrown when an extraneous bracket was inserted");
   } catch (ex) {
     ok(false, "an error was thrown when an extraneous bracket was inserted");
   }
-});
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_helpers.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_helpers.js
@@ -6,22 +6,30 @@
 // Tests that the autocompletion results contain the names of JSTerm helpers.
 // See Bug 686937.
 
 "use strict";
 
 const TEST_URI = "data:text/html;charset=utf8,<p>test JSTerm Helpers autocomplete";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const {jsterm} = await openNewTabAndConsole(TEST_URI);
   await testInspectAutoCompletion(jsterm, "i", true);
   await testInspectAutoCompletion(jsterm, "window.", false);
   await testInspectAutoCompletion(jsterm, "dump(i", true);
   await testInspectAutoCompletion(jsterm, "window.dump(i", true);
-});
+}
 
 async function testInspectAutoCompletion(jsterm, inputValue, expectInspect) {
   jsterm.setInputValue(inputValue);
   await complete(jsterm);
   is(getPopupItemsLabel(jsterm.autocompletePopup).includes("inspect"), expectInspect,
     `autocomplete results${expectInspect ? "" : " does not"} contain helper 'inspect'`);
 }
 
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_in_chrome_tab.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_in_chrome_tab.js
@@ -3,20 +3,28 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 // Tests that code completion works properly in chrome tabs, like about:config.
 
 "use strict";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const hud = await openNewTabAndConsole("about:config");
   ok(hud, "we have a console");
   ok(hud.iframeWindow, "we have the console UI window");
 
   const {jsterm} = hud;
   ok(jsterm, "we have a jsterm");
   ok(hud.outputNode, "we have an output node");
 
   // Test typing 'docu'.
   await jstermSetValueAndComplete(jsterm, "docu");
-  is(jsterm.completeNode.value, "    ment", "'docu' completion");
-});
+  checkJsTermCompletionValue(jsterm, "    ment", "'docu' completion");
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_in_debugger_stackframe.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_in_debugger_stackframe.js
@@ -7,16 +7,24 @@
 // stackframe from the js debugger.
 
 "use strict";
 
 const TEST_URI = "http://example.com/browser/devtools/client/webconsole/" +
                  "test/mochitest/test-autocomplete-in-stackframe.html";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   // Force the old debugger UI since it's directly used (see Bug 1301705)
   await pushPref("devtools.debugger.new-debugger-frontend", false);
 
   const { jsterm } = await openNewTabAndConsole(TEST_URI);
   const {
     autocompletePopup: popup,
   } = jsterm;
 
@@ -88,17 +96,17 @@ add_task(async function() {
 
   // Test if 'foo2Obj.prop1.prop11.' gives suggestions for a string,i.e. 'length'
   await jstermComplete("foo2Obj.prop1.prop11.");
   ok(getPopupLabels(popup).includes("length"), `results do contain "length"`);
 
   // Test if 'foo2Obj[0].' throws no errors.
   await jstermComplete("foo2Obj[0].");
   is(getPopupLabels(popup).length, 0, "no items for foo2Obj[0]");
-});
+}
 
 function getPopupLabels(popup) {
   return popup.getItems().map(item => item.label);
 }
 
 function pauseDebugger(debuggerPanel) {
   const debuggerWin = debuggerPanel.panelWin;
   const debuggerController = debuggerWin.DebuggerController;
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_inside_text.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_inside_text.js
@@ -12,51 +12,52 @@ const TEST_URI = `data:text/html;charset
   <script>
     window.testBugA = "hello world";
     window.testBugB = "hello world 2";
   </script>
 </head>
 <body>bug 812618 - test completion inside text</body>`;
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const { jsterm } = await openNewTabAndConsole(TEST_URI);
   info("web console opened");
 
-  const {
-    autocompletePopup: popup,
-    completeNode,
-    inputNode,
-  } = jsterm;
+  const { autocompletePopup: popup } = jsterm;
 
   const onPopUpOpen = popup.once("popup-opened");
 
   const dumpString = "dump(window.testBu)";
-  jsterm.setInputValue(dumpString);
-  inputNode.selectionStart = inputNode.selectionEnd = dumpString.indexOf(")");
-  EventUtils.sendString("g");
+  jstermSetValueAndComplete(jsterm, dumpString, -1);
 
   await onPopUpOpen;
 
   ok(popup.isOpen, "popup is open");
   is(popup.itemCount, 2, "popup.itemCount is correct");
 
   EventUtils.synthesizeKey("KEY_ArrowDown");
   is(popup.selectedIndex, 0, "popup.selectedIndex is correct");
-  ok(!completeNode.value, "completeNode.value is empty");
+  ok(!getJsTermCompletionValue(jsterm), "completeNode.value is empty");
 
   const items = popup.getItems().map(e => e.label);
   const expectedItems = ["testBugB", "testBugA"];
   is(items.join("-"), expectedItems.join("-"), "getItems returns the items we expect");
 
   info("press Tab and wait for popup to hide");
   const onPopupClose = popup.once("popup-closed");
   EventUtils.synthesizeKey("KEY_Tab");
 
   await onPopupClose;
 
   // At this point the completion suggestion should be accepted.
   ok(!popup.isOpen, "popup is not open");
   const expectedInput = "dump(window.testBugB)";
   is(jsterm.getInputValue(), expectedInput, "completion was successful after VK_TAB");
-  is(inputNode.selectionStart, expectedInput.length - 1, "cursor location is correct");
-  is(inputNode.selectionStart, inputNode.selectionEnd, "cursor location (confirmed)");
-  ok(!completeNode.value, "completeNode is empty");
-});
+  checkJsTermCursor(jsterm, expectedInput.length - 1, "cursor location is correct");
+  ok(!getJsTermCompletionValue(jsterm), "completeNode is empty");
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_native_getters.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_native_getters.js
@@ -6,35 +6,40 @@
 // Tests that native getters (e.g. document.body) autocompletes in the web console.
 // See Bug 651501.
 
 "use strict";
 
 const TEST_URI = "data:text/html;charset=utf-8,Test document.body autocompletion";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const { jsterm } = await openNewTabAndConsole(TEST_URI);
 
-  const {
-    autocompletePopup: popup,
-    completeNode,
-  } = jsterm;
+  const { autocompletePopup: popup } = jsterm;
 
   ok(!popup.isOpen, "popup is not open");
   const onPopupOpen = popup.once("popup-opened");
 
   jsterm.setInputValue("document.body");
   EventUtils.sendString(".");
 
   await onPopupOpen;
 
   ok(popup.isOpen, "popup is open");
   is(popup.itemCount, jsterm._autocompleteCache.length, "popup.itemCount is correct");
   ok(jsterm._autocompleteCache.includes("addEventListener"),
-        "addEventListener is in the list of suggestions");
+    "addEventListener is in the list of suggestions");
   ok(jsterm._autocompleteCache.includes("bgColor"),
     "bgColor is in the list of suggestions");
   ok(jsterm._autocompleteCache.includes("ATTRIBUTE_NODE"),
     "ATTRIBUTE_NODE is in the list of suggestions");
 
   const onPopupClose = popup.once("popup-closed");
   EventUtils.synthesizeKey("KEY_Escape");
 
@@ -48,10 +53,10 @@ add_task(async function() {
 
   await onAutoCompleteUpdated;
 
   // Build the spaces that are placed in the input to place the autocompletion result at
   // the expected spot:
   // > document.bo        <-- input
   // > -----------dy      <-- autocomplete
   const spaces = " ".repeat(inputStr.length + 1);
-  is(completeNode.value, spaces + "dy", "autocomplete shows document.body");
-});
+  checkJsTermCompletionValue(jsterm, spaces + "dy", "autocomplete shows document.body");
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_nav_and_tab_key.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_nav_and_tab_key.js
@@ -20,23 +20,28 @@ const TEST_URI = `data:text/html;charset
       item2: "value2",
       item3: "value3",
     });
   </script>
 </head>
 <body>bug 585991 - autocomplete popup navigation and tab key usage test</body>`;
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const { jsterm } = await openNewTabAndConsole(TEST_URI);
   info("web console opened");
 
-  const {
-    autocompletePopup: popup,
-    completeNode,
-  } = jsterm;
+  const { autocompletePopup: popup } = jsterm;
 
   ok(!popup.isOpen, "popup is not open");
 
   const onPopUpOpen = popup.once("popup-opened");
   jsterm.setInputValue("window.foo");
 
   // Shows the popup
   EventUtils.sendString(".");
@@ -58,29 +63,29 @@ add_task(async function() {
   is(popup.selectedIndex, expectedPopupItems.length - 1,
       "Index of the first item from bottom is selected.");
 
   EventUtils.synthesizeKey("KEY_ArrowDown");
 
   const prefix = jsterm.getInputValue().replace(/[\S]/g, " ");
   is(popup.selectedIndex, 0, "index 0 is selected");
   is(popup.selectedItem.label, "item3", "item3 is selected");
-  is(completeNode.value, prefix + "item3", "completeNode.value holds item3");
+  checkJsTermCompletionValue(jsterm, prefix + "item3", "completeNode.value holds item3");
 
   EventUtils.synthesizeKey("KEY_ArrowDown");
 
   is(popup.selectedIndex, 1, "index 1 is selected");
   is(popup.selectedItem.label, "item2", "item2 is selected");
-  is(completeNode.value, prefix + "item2", "completeNode.value holds item2");
+  checkJsTermCompletionValue(jsterm, prefix + "item2", "completeNode.value holds item2");
 
   EventUtils.synthesizeKey("KEY_ArrowUp");
 
   is(popup.selectedIndex, 0, "index 0 is selected");
   is(popup.selectedItem.label, "item3", "item3 is selected");
-  is(completeNode.value, prefix + "item3", "completeNode.value holds item3");
+  checkJsTermCompletionValue(jsterm, prefix + "item3", "completeNode.value holds item3");
 
   let currentSelectionIndex = popup.selectedIndex;
 
   EventUtils.synthesizeKey("KEY_PageDown");
 
   ok(popup.selectedIndex > currentSelectionIndex, "Index is greater after PGDN");
 
   currentSelectionIndex = popup.selectedIndex;
@@ -99,10 +104,10 @@ add_task(async function() {
   EventUtils.synthesizeKey("KEY_Tab");
 
   await onPopupClose;
 
   // At this point the completion suggestion should be accepted.
   ok(!popup.isOpen, "popup is not open");
   is(jsterm.getInputValue(), "window.foo.item3",
      "completion was successful after KEY_Tab");
-  ok(!completeNode.value, "completeNode is empty");
-});
+  ok(!getJsTermCompletionValue(jsterm), "completeNode is empty");
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_paste_undo.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_paste_undo.js
@@ -11,51 +11,60 @@ XPCOMUtils.defineLazyServiceGetter(
   this,
   "clipboardHelper",
   "@mozilla.org/widget/clipboardhelper;1",
   "nsIClipboardHelper"
 );
 const stringToCopy = "foobazbarBug642615";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const {jsterm, ui} = await openNewTabAndConsole(TEST_URI);
   ui.clearOutput();
-  ok(!jsterm.completeNode.value, "no completeNode.value");
+  ok(!getJsTermCompletionValue(jsterm), "no completeNode.value");
 
   jsterm.setInputValue("doc");
 
   info("wait for completion value after typing 'docu'");
   let onAutocompleteUpdated = jsterm.once("autocomplete-updated");
   EventUtils.sendString("u");
   await onAutocompleteUpdated;
 
-  const completionValue = jsterm.completeNode.value;
+  const completionValue = getJsTermCompletionValue(jsterm);
 
   info(`Copy "${stringToCopy}" in clipboard`);
   await waitForClipboardPromise(() =>
     clipboardHelper.copyString(stringToCopy), stringToCopy);
 
   jsterm.setInputValue("docu");
   info("wait for completion update after clipboard paste");
   onAutocompleteUpdated = jsterm.once("autocomplete-updated");
-  goDoCommand("cmd_paste");
+  EventUtils.synthesizeKey("v", {accelKey: true});
 
   await onAutocompleteUpdated;
 
-  ok(!jsterm.completeNode.value, "no completion value after paste");
+  ok(!getJsTermCompletionValue(jsterm), "no completion value after paste");
 
   info("wait for completion update after undo");
   onAutocompleteUpdated = jsterm.once("autocomplete-updated");
 
-  goDoCommand("cmd_undo");
+  EventUtils.synthesizeKey("z", {accelKey: true});
 
   await onAutocompleteUpdated;
 
-  is(jsterm.completeNode.value, completionValue, "same completeNode.value after undo");
+  checkJsTermCompletionValue(jsterm, completionValue,
+    "same completeNode.value after undo");
 
   info("wait for completion update after clipboard paste (ctrl-v)");
   onAutocompleteUpdated = jsterm.once("autocomplete-updated");
 
   EventUtils.synthesizeKey("v", {accelKey: true});
 
   await onAutocompleteUpdated;
-  ok(!jsterm.completeNode.value, "no completion value after paste (ctrl-v)");
-});
+  ok(!getJsTermCompletionValue(jsterm), "no completion value after paste (ctrl-v)");
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_return_key.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_return_key.js
@@ -20,21 +20,26 @@ const TEST_URI = `data:text/html;charset
       item2: "value2",
       item3: "value3",
     });
   </script>
 </head>
 <body>bug 585991 - test pressing return with open popup</body>`;
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const { jsterm } = await openNewTabAndConsole(TEST_URI);
-  const {
-    autocompletePopup: popup,
-    completeNode,
-  } = jsterm;
+  const { autocompletePopup: popup } = jsterm;
 
   const onPopUpOpen = popup.once("popup-opened");
 
   info("wait for completion suggestions: window.foobar.");
 
   jsterm.setInputValue("window.fooba");
   EventUtils.sendString("r.");
 
@@ -52,21 +57,21 @@ add_task(async function() {
   is(popup.selectedIndex, expectedPopupItems.length - 1,
     "First index from bottom is selected");
 
   EventUtils.synthesizeKey("KEY_ArrowDown");
 
   is(popup.selectedIndex, 0, "index 0 is selected");
   is(popup.selectedItem.label, "item3", "item3 is selected");
   const prefix = jsterm.getInputValue().replace(/[\S]/g, " ");
-  is(completeNode.value, prefix + "item3", "completeNode.value holds item3");
+  checkJsTermCompletionValue(jsterm, prefix + "item3", "completeNode.value holds item3");
 
   info("press Return to accept suggestion. wait for popup to hide");
   const onPopupClose = popup.once("popup-closed");
   EventUtils.synthesizeKey("KEY_Enter");
 
   await onPopupClose;
 
   ok(!popup.isOpen, "popup is not open after KEY_Enter");
   is(jsterm.getInputValue(), "window.foobar.item3",
     "completion was successful after KEY_Enter");
-  ok(!completeNode.value, "completeNode is empty");
-});
+  ok(!getJsTermCompletionValue(jsterm), "completeNode is empty");
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_return_key_no_selection.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_autocomplete_return_key_no_selection.js
@@ -16,25 +16,30 @@ const TEST_URI = `data:text/html;charset
 </head>
 <body>bug 873250 - test pressing return with open popup, but no selection</body>`;
 
 const {
   getHistoryEntries,
 } = require("devtools/client/webconsole/selectors/history");
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const {
     jsterm,
     ui,
   } = await openNewTabAndConsole(TEST_URI);
 
-  const {
-    autocompletePopup: popup,
-    completeNode,
-  } = jsterm;
+  const { autocompletePopup: popup } = jsterm;
 
   const onPopUpOpen = popup.once("popup-opened");
 
   info("wait for popup to show");
   jsterm.setInputValue("window.testBu");
   EventUtils.sendString("g");
 
   await onPopUpOpen;
@@ -45,15 +50,15 @@ add_task(async function() {
 
   info("press Return and wait for popup to hide");
   const onPopUpClose = popup.once("popup-closed");
   executeSoon(() => EventUtils.synthesizeKey("KEY_Enter"));
   await onPopUpClose;
 
   ok(!popup.isOpen, "popup is not open after KEY_Enter");
   is(jsterm.getInputValue(), "", "inputNode is empty after KEY_Enter");
-  is(completeNode.value, "", "completeNode is empty");
+  ok(!getJsTermCompletionValue(jsterm), "completeNode is empty");
 
   const state = ui.consoleOutput.getStore().getState();
   const entries = getHistoryEntries(state);
   is(entries[entries.length - 1], "window.testBug",
      "jsterm history is correct");
-});
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_completion.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_completion.js
@@ -5,69 +5,76 @@
 
 // Tests that code completion works properly.
 
 "use strict";
 
 const TEST_URI = "data:text/html;charset=utf8,<p>test code completion";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const {jsterm, ui} = await openNewTabAndConsole(TEST_URI);
-  const input = jsterm.inputNode;
 
   // Test typing 'docu'.
   await jstermSetValueAndComplete(jsterm, "docu");
-  is(input.value, "docu", "'docu' completion (input.value)");
-  is(jsterm.completeNode.value, "    ment", "'docu' completion (completeNode)");
+  is(jsterm.getInputValue(), "docu", "'docu' completion (input.value)");
+  checkJsTermCompletionValue(jsterm, "    ment", "'docu' completion (completeNode)");
 
   // Test typing 'docu' and press tab.
   await jstermSetValueAndComplete(jsterm, "docu", undefined, jsterm.COMPLETE_FORWARD);
-  is(input.value, "document", "'docu' tab completion");
-  is(input.selectionStart, 8, "start selection is alright");
-  is(input.selectionEnd, 8, "end selection is alright");
-  is(jsterm.completeNode.value.replace(/ /g, ""), "", "'docu' completed");
+  is(jsterm.getInputValue(), "document", "'docu' tab completion");
+
+  checkJsTermCursor(jsterm, "document".length, "cursor is at the end of 'document'");
+  is(getJsTermCompletionValue(jsterm).replace(/ /g, ""), "", "'docu' completed");
 
   // Test typing 'window.Ob' and press tab.  Just 'window.O' is
   // ambiguous: could be window.Object, window.Option, etc.
   await jstermSetValueAndComplete(jsterm, "window.Ob", undefined,
                                   jsterm.COMPLETE_FORWARD);
-  is(input.value, "window.Object", "'window.Ob' tab completion");
+  is(jsterm.getInputValue(), "window.Object", "'window.Ob' tab completion");
 
   // Test typing 'document.getElem'.
   await jstermSetValueAndComplete(
     jsterm, "document.getElem", undefined, jsterm.COMPLETE_FORWARD);
-  is(input.value, "document.getElem", "'document.getElem' completion");
-  is(jsterm.completeNode.value, "                entsByTagNameNS",
+  is(jsterm.getInputValue(), "document.getElem", "'document.getElem' completion");
+  checkJsTermCompletionValue(jsterm, "                entsByTagNameNS",
      "'document.getElem' completion");
 
   // Test pressing tab another time.
   await jsterm.complete(jsterm.COMPLETE_FORWARD);
-  is(input.value, "document.getElem", "'document.getElem' completion");
-  is(jsterm.completeNode.value, "                entsByTagName",
+  is(jsterm.getInputValue(), "document.getElem", "'document.getElem' completion");
+  checkJsTermCompletionValue(jsterm, "                entsByTagName",
      "'document.getElem' another tab completion");
 
   // Test pressing shift_tab.
   await jstermComplete(jsterm, jsterm.COMPLETE_BACKWARD);
-  is(input.value, "document.getElem", "'document.getElem' untab completion");
-  is(jsterm.completeNode.value, "                entsByTagNameNS",
+  is(jsterm.getInputValue(), "document.getElem", "'document.getElem' untab completion");
+  checkJsTermCompletionValue(jsterm, "                entsByTagNameNS",
      "'document.getElem' completion");
 
   ui.clearOutput();
 
   await jstermSetValueAndComplete(jsterm, "docu");
-  is(jsterm.completeNode.value, "    ment", "'docu' completion");
+  checkJsTermCompletionValue(jsterm, "    ment", "'docu' completion");
 
   await jsterm.execute();
-  is(jsterm.completeNode.value, "", "clear completion on execute()");
+  checkJsTermCompletionValue(jsterm, "", "clear completion on execute()");
 
   // Test multi-line completion works
   await jstermSetValueAndComplete(jsterm, "console.log('one');\nconsol");
-  is(jsterm.completeNode.value, "                   \n      e",
+  checkJsTermCompletionValue(jsterm, "                   \n      e",
      "multi-line completion");
 
   // Test non-object autocompletion.
   await jstermSetValueAndComplete(jsterm, "Object.name.sl");
-  is(jsterm.completeNode.value, "              ice", "non-object completion");
+  checkJsTermCompletionValue(jsterm, "              ice", "non-object completion");
 
   // Test string literal autocompletion.
   await jstermSetValueAndComplete(jsterm, "'Asimov'.sl");
-  is(jsterm.completeNode.value, "           ice", "string literal completion");
-});
+  checkJsTermCompletionValue(jsterm, "           ice", "string literal completion");
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_copy_command.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_copy_command.js
@@ -22,32 +22,40 @@ const TEST_URI = `data:text/html;charset
     <h1>Testing copy command</h1>
     <p>This is some example text</p>
     <p id="${id}">${text}</p>
   </div>
   <div><p></p></div>
 </body>`;
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const {jsterm} = await openNewTabAndConsole(TEST_URI);
   const random = Math.random();
   const string = "Text: " + random;
   const obj = {a: 1, b: "foo", c: random};
 
   await testCopy(jsterm, random, random.toString());
   await testCopy(jsterm, JSON.stringify(string), string);
   await testCopy(jsterm, obj.toSource(), JSON.stringify(obj, null, "  "));
 
   const outerHTML = await ContentTask.spawn(gBrowser.selectedBrowser, id,
     function(elementId) {
       return content.document.getElementById(elementId).outerHTML;
     }
   );
   await testCopy(jsterm, `$("#${id}")`, outerHTML);
-});
+}
 
 function testCopy(jsterm, stringToCopy, expectedResult) {
   return waitForClipboardPromise(() => {
     info(`Attempting to copy: "${stringToCopy}"`);
     const command = `copy(${stringToCopy})`;
     info(`Executing command: "${command}"`);
     jsterm.execute(command);
   }, expectedResult);
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_ctrl_a_select_all.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_ctrl_a_select_all.js
@@ -4,32 +4,69 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 // Map Control + A to Select All, In the web console input
 
 "use strict";
 
 const TEST_URI = "data:text/html;charset=utf-8,Test console select all";
 
-add_task(async function testCtrlA() {
-  const hud = await openNewTabAndConsole(TEST_URI);
+add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
 
-  const jsterm = hud.jsterm;
+async function performTests() {
+  const {jsterm} = await openNewTabAndConsole(TEST_URI);
+
   jsterm.setInputValue("Ignore These Four Words");
-  const inputNode = jsterm.inputNode;
 
   // Test select all with (cmd|control) + a.
   EventUtils.synthesizeKey("a", { accelKey: true });
 
-  const inputLength = inputNode.selectionEnd - inputNode.selectionStart;
+  const inputLength = getSelectionTextLength(jsterm);
   is(inputLength, jsterm.getInputValue().length, "Select all of input");
 
-  // (cmd|control) + e cannot be disabled on Linux so skip this section on that
-  // OS.
+  // (cmd|control) + e cannot be disabled on Linux so skip this section on that OS.
   if (Services.appinfo.OS !== "Linux") {
    // Test do nothing on Control + E.
     jsterm.setInputValue("Ignore These Four Words");
-    inputNode.selectionStart = 0;
+    setCursorAtStart(jsterm);
     EventUtils.synthesizeKey("e", { accelKey: true });
-    is(inputNode.selectionStart, 0,
-      "control|cmd + e does not move to end of input");
+    checkSelectionStart(jsterm, 0, "control|cmd + e does not move to end of input");
+  }
+}
+
+function getSelectionTextLength(jsterm) {
+  if (jsterm.inputNode) {
+    return jsterm.inputNode.selectionEnd - jsterm.inputNode.selectionStart;
+  }
+
+  if (jsterm.editor) {
+    return jsterm.editor.getSelection().length;
   }
-});
+
+  return null;
+}
+
+function setCursorAtStart(jsterm) {
+  if (jsterm.inputNode) {
+    jsterm.inputNode.selectionStart = 0;
+  }
+
+  if (jsterm.editor) {
+    jsterm.editor.setCursor({line: 0, ch: 0});
+  }
+}
+
+function checkSelectionStart(jsterm, expectedCursorIndex, assertionInfo) {
+  if (jsterm.inputNode) {
+    const { selectionStart } = jsterm.inputNode;
+    is(selectionStart, expectedCursorIndex, assertionInfo);
+  } else {
+    const [ selection ] = jsterm.editor.codeMirror.listSelections();
+    const { head} = selection;
+    is(head.ch, expectedCursorIndex, assertionInfo);
+  }
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_ctrl_key_nav.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_ctrl_key_nav.js
@@ -10,224 +10,277 @@
 // - ctrl-e does not work on windows,
 // - ctrl-a, ctrl-p and ctrl-n only work on OSX
 "use strict";
 
 const TEST_URI = "data:text/html;charset=utf-8,Web Console test for " +
                  "bug 804845 and bug 619598";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const {jsterm} = await openNewTabAndConsole(TEST_URI);
 
   ok(!jsterm.getInputValue(), "jsterm.getInputValue() is empty");
-  is(jsterm.inputNode.selectionStart, 0);
-  is(jsterm.inputNode.selectionEnd, 0);
+  checkJsTermCursor(jsterm, 0, "Cursor is at the start of the input");
 
   testSingleLineInputNavNoHistory(jsterm);
   testMultiLineInputNavNoHistory(jsterm);
   await testNavWithHistory(jsterm);
-});
+}
 
 function testSingleLineInputNavNoHistory(jsterm) {
-  const inputNode = jsterm.inputNode;
+  const checkInput = (expected, assertionInfo) =>
+    checkJsTermValueAndCursor(jsterm, expected, assertionInfo);
+
   // Single char input
   EventUtils.sendString("1");
-  is(inputNode.selectionStart, 1, "caret location after single char input");
+  checkInput("1|", "caret location after single char input");
 
   // nav to start/end with ctrl-a and ctrl-e;
   synthesizeLineStartKey();
-  is(inputNode.selectionStart, 0,
-     "caret location after single char input and ctrl-a");
+  checkInput("|1", "caret location after single char input and ctrl-a");
 
   synthesizeLineEndKey();
-  is(inputNode.selectionStart, 1,
-     "caret location after single char input and ctrl-e");
+  checkInput("1|", "caret location after single char input and ctrl-e");
 
   // Second char input
   EventUtils.sendString("2");
+  checkInput("12|", "caret location after second char input");
+
   // nav to start/end with up/down keys; verify behaviour using ctrl-p/ctrl-n
   EventUtils.synthesizeKey("KEY_ArrowUp");
-  is(inputNode.selectionStart, 0,
-     "caret location after two char input and KEY_ArrowUp");
+  checkInput("|12", "caret location after two char input and KEY_ArrowUp");
+
   EventUtils.synthesizeKey("KEY_ArrowDown");
-  is(inputNode.selectionStart, 2,
-     "caret location after two char input and KEY_ArrowDown");
+  checkInput("12|", "caret location after two char input and KEY_ArrowDown");
+
+  synthesizeLineStartKey();
+  checkInput("|12", "move caret to beginning of 2 char input with ctrl-a");
 
   synthesizeLineStartKey();
-  is(inputNode.selectionStart, 0,
-     "move caret to beginning of 2 char input with ctrl-a");
-  synthesizeLineStartKey();
-  is(inputNode.selectionStart, 0,
-     "no change of caret location on repeat ctrl-a");
+  checkInput("|12", "no change of caret location on repeat ctrl-a");
+
   synthesizeLineUpKey();
-  is(inputNode.selectionStart, 0,
-     "no change of caret location on ctrl-p from beginning of line");
+  checkInput("|12", "no change of caret location on ctrl-p from beginning of line");
+
+  synthesizeLineEndKey();
+  checkInput("12|", "move caret to end of 2 char input with ctrl-e");
 
   synthesizeLineEndKey();
-  is(inputNode.selectionStart, 2,
-     "move caret to end of 2 char input with ctrl-e");
-  synthesizeLineEndKey();
-  is(inputNode.selectionStart, 2,
-     "no change of caret location on repeat ctrl-e");
+  checkInput("12|", "no change of caret location on repeat ctrl-e");
+
   synthesizeLineDownKey();
-  is(inputNode.selectionStart, 2,
-     "no change of caret location on ctrl-n from end of line");
+  checkInput("12|", "no change of caret location on ctrl-n from end of line");
 
   synthesizeLineUpKey();
-  is(inputNode.selectionStart, 0, "ctrl-p moves to start of line");
+  checkInput("|12", "ctrl-p moves to start of line");
 
   synthesizeLineDownKey();
-  is(inputNode.selectionStart, 2, "ctrl-n moves to end of line");
+  checkInput("12|", "ctrl-n moves to end of line");
 }
 
 function testMultiLineInputNavNoHistory(jsterm) {
-  const inputNode = jsterm.inputNode;
+  const checkInput = (expected, assertionInfo) =>
+    checkJsTermValueAndCursor(jsterm, expected, assertionInfo);
+
   const lineValues = ["one", "2", "something longer", "", "", "three!"];
   jsterm.setInputValue("");
   // simulate shift-return
-  for (let i = 0; i < lineValues.length; i++) {
-    jsterm.setInputValue(jsterm.getInputValue() + lineValues[i]);
+  for (const lineValue of lineValues) {
+    jsterm.setInputValue(jsterm.getInputValue() + lineValue);
     EventUtils.synthesizeKey("KEY_Enter", {shiftKey: true});
   }
-  const inputValue = jsterm.getInputValue();
-  is(inputNode.selectionStart, inputNode.selectionEnd);
-  is(inputNode.selectionStart, inputValue.length,
-     "caret at end of multiline input");
 
-  // possibility newline is represented by one ('\r', '\n') or two
-  // ('\r\n') chars
-  const newlineString = inputValue.match(/(\r\n?|\n\r?)$/)[0];
+  checkInput(
+`one
+2
+something longer
+
+
+three!
+|`, "caret at end of multiline input");
 
   // Ok, test navigating within the multi-line string!
   EventUtils.synthesizeKey("KEY_ArrowUp");
-  let expectedStringAfterCarat = lineValues[5] + newlineString;
-  is(jsterm.getInputValue().slice(inputNode.selectionStart), expectedStringAfterCarat,
-     "up arrow from end of multiline");
+  checkInput(
+`one
+2
+something longer
+
+
+|three!
+`, "up arrow from end of multiline");
 
   EventUtils.synthesizeKey("KEY_ArrowDown");
-  is(jsterm.getInputValue().slice(inputNode.selectionStart), "",
-     "down arrow from within multiline");
+  checkInput(
+`one
+2
+something longer
+
+
+three!
+|`, "down arrow from within multiline");
 
   // navigate up through input lines
   synthesizeLineUpKey();
-  is(jsterm.getInputValue().slice(inputNode.selectionStart), expectedStringAfterCarat,
-     "ctrl-p from end of multiline");
+  checkInput(
+`one
+2
+something longer
 
-  for (let i = 4; i >= 0; i--) {
+
+|three!
+`, "ctrl-p from end of multiline");
+
+  for (let i = 0; i < 5; i++) {
     synthesizeLineUpKey();
-    expectedStringAfterCarat = lineValues[i] + newlineString +
-      expectedStringAfterCarat;
-    is(jsterm.getInputValue().slice(inputNode.selectionStart),
-      expectedStringAfterCarat, "ctrl-p from within line " + i +
-      " of multiline input");
   }
+
+  checkInput(
+`|one
+2
+something longer
+
+
+three!
+`, "reached start of input");
+
   synthesizeLineUpKey();
-  is(inputNode.selectionStart, 0, "reached start of input");
-  is(jsterm.getInputValue(), inputValue,
-     "no change to multiline input on ctrl-p from beginning of multiline");
+  checkInput(
+`|one
+2
+something longer
+
+
+three!
+`, "no change to multiline input on ctrl-p from beginning of multiline");
 
   // navigate to end of first line
   synthesizeLineEndKey();
-  let caretPos = inputNode.selectionStart;
-  let expectedStringBeforeCarat = lineValues[0];
-  is(jsterm.getInputValue().slice(0, caretPos), expectedStringBeforeCarat,
-     "ctrl-e into multiline input");
+  checkInput(
+`one|
+2
+something longer
+
+
+three!
+`, "ctrl-e into multiline input");
+
   synthesizeLineEndKey();
-  is(inputNode.selectionStart, caretPos,
-     "repeat ctrl-e doesn't change caret position in multiline input");
+  checkInput(
+`one|
+2
+something longer
+
+
+three!
+`, "repeat ctrl-e doesn't change caret position in multiline input");
 
-  // navigate down one line; ctrl-a to the beginning; ctrl-e to end
-  for (let i = 1; i < lineValues.length; i++) {
-    synthesizeLineDownKey();
-    synthesizeLineStartKey();
-    caretPos = inputNode.selectionStart;
-    expectedStringBeforeCarat += newlineString;
-    is(jsterm.getInputValue().slice(0, caretPos), expectedStringBeforeCarat,
-       "ctrl-a to beginning of line " + (i + 1) + " in multiline input");
+  synthesizeLineDownKey();
+  synthesizeLineStartKey();
+  checkInput(
+`one
+|2
+something longer
+
+
+three!
+`);
 
-    synthesizeLineEndKey();
-    caretPos = inputNode.selectionStart;
-    expectedStringBeforeCarat += lineValues[i];
-    is(jsterm.getInputValue().slice(0, caretPos), expectedStringBeforeCarat,
-       "ctrl-e to end of line " + (i + 1) + "in multiline input");
-  }
+  synthesizeLineEndKey();
+  synthesizeLineDownKey();
+  synthesizeLineStartKey();
+  checkInput(
+`one
+2
+|something longer
+
+
+three!
+`);
 }
 
 async function testNavWithHistory(jsterm) {
-  const inputNode = jsterm.inputNode;
+  const checkInput = (expected, assertionInfo) =>
+    checkJsTermValueAndCursor(jsterm, expected, assertionInfo);
 
   // NOTE: Tests does NOT currently define behaviour for ctrl-p/ctrl-n with
   // caret placed _within_ single line input
   const values = [
-    '"single line input"',
-    '"a longer single-line input to check caret repositioning"',
-    '"multi-line"\n"input"\n"here!"',
+    "single line input",
+    "a longer single-line input to check caret repositioning",
+    "multi-line\ninput\nhere",
   ];
 
   // submit to history
-  for (let i = 0; i < values.length; i++) {
-    jsterm.setInputValue(values[i]);
+  for (const value of values) {
+    jsterm.setInputValue(value);
     await jsterm.execute();
   }
-  is(inputNode.selectionStart, 0, "caret location at start of empty line");
+
+  checkInput("|", "caret location at start of empty line");
+
+  synthesizeLineUpKey();
+  checkInput("multi-line\ninput\nhere|", "caret location at end of last history input");
+
+  synthesizeLineStartKey();
+  checkInput("multi-line\ninput\n|here",
+    "caret location at beginning of last line of last history input");
+
+  synthesizeLineUpKey();
+  checkInput("multi-line\n|input\nhere",
+    "caret location at beginning of second line of last history input");
+
+  synthesizeLineUpKey();
+  checkInput("|multi-line\ninput\nhere",
+    "caret location at beginning of first line of last history input");
 
   synthesizeLineUpKey();
-  is(inputNode.selectionStart, values[values.length - 1].length,
-     "caret location correct at end of last history input");
+  checkInput("a longer single-line input to check caret repositioning|",
+    "caret location at the end of second history input");
+
+  synthesizeLineUpKey();
+  checkInput("single line input|", "caret location at the end of first history input");
+
+  synthesizeLineUpKey();
+  checkInput("|single line input",
+    "ctrl-p at beginning of history moves caret location to beginning of line");
 
-  // Navigate backwards history with ctrl-p
-  for (let i = values.length - 1; i > 0; i--) {
-    const match = values[i].match(/(\n)/g);
-    if (match) {
-      // multi-line inputs won't update from history unless caret at beginning
-      synthesizeLineStartKey();
-      for (let j = 0; j < match.length; j++) {
-        synthesizeLineUpKey();
-      }
-      synthesizeLineUpKey();
-    } else {
-      // single-line inputs will update from history from end of line
-      synthesizeLineUpKey();
-    }
-    is(jsterm.getInputValue(), values[i - 1],
-       "ctrl-p updates inputNode from backwards history values[" + i - 1 + "]");
-  }
+  synthesizeLineDownKey();
+  checkInput("a longer single-line input to check caret repositioning|",
+    "caret location at the end of second history input");
 
-  let inputValue = jsterm.getInputValue();
-  synthesizeLineUpKey();
-  is(inputNode.selectionStart, 0,
-     "ctrl-p at beginning of history moves caret location to beginning " +
-     "of line");
-  is(jsterm.getInputValue(), inputValue,
-     "no change to input value on ctrl-p from beginning of line");
+  synthesizeLineDownKey();
+  checkInput("multi-line\ninput\nhere|", "caret location at end of last history input");
 
-  // Navigate forwards history with ctrl-n
-  for (let i = 1; i < values.length; i++) {
-    synthesizeLineDownKey();
-    is(jsterm.getInputValue(), values[i],
-       "ctrl-n updates inputNode from forwards history values[" + i + "]");
-    is(inputNode.selectionStart, values[i].length,
-       "caret location correct at end of history input for values[" + i + "]");
-  }
   synthesizeLineDownKey();
-  ok(!jsterm.getInputValue(), "ctrl-n at end of history updates to empty input");
+  checkInput("|", "ctrl-n at end of history updates to empty input");
 
   // Simulate editing multi-line
-  inputValue = "one\nlinebreak";
+  const inputValue = "one\nlinebreak";
   jsterm.setInputValue(inputValue);
+  checkInput("one\nlinebreak|");
 
   // Attempt nav within input
   synthesizeLineUpKey();
-  is(jsterm.getInputValue(), inputValue,
-     "ctrl-p from end of multi-line does not trigger history");
+  checkInput("one|\nlinebreak", "ctrl-p from end of multi-line does not trigger history");
 
   synthesizeLineStartKey();
+  checkInput("|one\nlinebreak");
+
   synthesizeLineUpKey();
-  is(jsterm.getInputValue(), values[values.length - 1],
-     "ctrl-p from start of multi-line triggers history");
+  checkInput("multi-line\ninput\nhere|",
+    "ctrl-p from start of multi-line triggers history");
 }
 
 function synthesizeLineStartKey() {
   EventUtils.synthesizeKey("a", {ctrlKey: true});
 }
 
 function synthesizeLineEndKey() {
   EventUtils.synthesizeKey("e", {ctrlKey: true});
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_document_no_xray.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_document_no_xray.js
@@ -1,17 +1,25 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 const TEST_URI = "data:text/html,Test evaluating document";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const hud = await openNewTabAndConsole(TEST_URI);
   const {jsterm} = hud;
 
   // check for occurrences of Object XRayWrapper, bug 604430
   const onMessage = waitForMessage(hud, "HTMLDocument");
   jsterm.execute("document");
   const {node} = await onMessage;
   is(node.textContent.includes("xray"), false, "document - no XrayWrapper");
-});
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_dollar.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_dollar.js
@@ -7,20 +7,28 @@
 
 // Test that using `$` and `$$` in jsterm call the global content functions
 // if they are defined. See Bug 621644.
 
 const TEST_URI = "http://example.com/browser/devtools/client/webconsole/" +
                  "test/mochitest/test-jsterm-dollar.html";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const hud = await openNewTabAndConsole(TEST_URI);
   await test$(hud);
   await test$$(hud);
-});
+}
 
 async function test$(hud) {
   hud.ui.clearOutput();
   const msg = await hud.jsterm.execute("$(document.body)");
   ok(msg.textContent.includes("<p>"), "jsterm output is correct for $()");
 }
 
 async function test$$(hud) {
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_error_docs.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_error_docs.js
@@ -1,16 +1,24 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 const TEST_URI = "data:text/html,Test error documentation";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const hud = await openNewTabAndConsole(TEST_URI);
   const {jsterm} = hud;
 
   // Check that errors with entries in errordocs.js display links next to their messages.
   const ErrorDocs = require("devtools/server/actors/errordocs");
 
   const ErrorDocStatements = {
     "JSMSG_BAD_RADIX": "(42).toString(0);",
@@ -25,9 +33,9 @@ add_task(async function() {
     hud.ui.clearOutput();
     const onMessage = waitForMessage(hud, "RangeError:");
     jsterm.execute(expression);
     const {node} = await onMessage;
     const learnMoreLink = node.querySelector(".learn-more-link");
     ok(learnMoreLink, `There is a [Learn More] link for "${errorMessageName}" error`);
     is(learnMoreLink.title, title, `The link has the expected "${title}" title`);
   }
-});
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_error_outside_valid_range.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_error_outside_valid_range.js
@@ -4,18 +4,26 @@
 "use strict";
 
 // Ensure that dom errors, with error numbers outside of the range
 // of valid js.msg errors, don't cause crashes (See Bug 1270721).
 
 const TEST_URI = "data:text/html,Test error documentation";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const hud = await openNewTabAndConsole(TEST_URI);
   const {jsterm} = hud;
 
   const text = "TypeError: 'redirect' member of RequestInit 'foo' is not a valid value " +
                "for enumeration RequestRedirect";
   const onErrorMessage =  waitForMessage(hud, text, ".message.error");
   jsterm.execute("new Request('',{redirect:'foo'})");
   await onErrorMessage;
   ok(true, "Error message displayed as expected, without crashing the console.");
-});
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_helper_clear.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_helper_clear.js
@@ -1,22 +1,30 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 const TEST_URI = "data:text/html,Test <code>clear()</code> jsterm helper";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const hud = await openNewTabAndConsole(TEST_URI);
 
   const onMessage = waitForMessage(hud, "message");
   ContentTask.spawn(gBrowser.selectedBrowser, {}, function() {
     content.wrappedJSObject.console.log("message");
   });
   await onMessage;
 
   const onCleared = waitFor(() =>
     hud.jsterm.outputNode.querySelector(".message") === null);
   hud.jsterm.execute("clear()");
   await onCleared;
   ok(true, "Console was cleared");
-});
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_helper_dollar.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_helper_dollar.js
@@ -11,16 +11,24 @@ const TEST_URI = `data:text/html,
     <li>First</li>
     <li>Second</li>
   </ul>
   <aside>Sidebar</aside>
 </main>
 `;
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const hud = await openNewTabAndConsole(TEST_URI);
   const jsterm = hud.jsterm;
 
   let onMessage = waitForMessage(hud, "<main>");
   jsterm.execute("$('main')");
   let message = await onMessage;
   ok(message, "`$('main')` worked");
 
@@ -33,9 +41,9 @@ add_task(async function() {
   jsterm.execute("$('main > ul > li').tagName");
   message = await onMessage;
   ok(message, "`$` result can be used right away");
 
   onMessage = waitForMessage(hud, "null");
   jsterm.execute("$('div')");
   message = await onMessage;
   ok(message, "`$('div')` does return null");
-});
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_helper_dollar_dollar.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_helper_dollar_dollar.js
@@ -11,16 +11,24 @@ const TEST_URI = `data:text/html,
     <li>First</li>
     <li>Second</li>
   </ul>
   <aside>Sidebar</aside>
 </main>
 `;
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const hud = await openNewTabAndConsole(TEST_URI);
   const jsterm = hud.jsterm;
 
   let onMessage = waitForMessage(hud, "Array [ main ]");
   jsterm.execute("$$('main')");
   let message = await onMessage;
   ok(message, "`$$('main')` worked");
 
@@ -33,9 +41,9 @@ add_task(async function() {
   jsterm.execute("$$('main > ul > li').map(el => el.tagName).join(' - ')");
   message = await onMessage;
   ok(message, "`$$` result can be used right away");
 
   onMessage = waitForMessage(hud, "Array []");
   jsterm.execute("$$('div')");
   message = await onMessage;
   ok(message, "`$$('div')` returns an empty array");
-});
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_helper_dollar_x.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_helper_dollar_x.js
@@ -11,21 +11,29 @@ const TEST_URI = `data:text/html,
     <li>First</li>
     <li>Second</li>
   </ul>
   <aside>Sidebar</aside>
 </main>
 `;
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const hud = await openNewTabAndConsole(TEST_URI);
   const jsterm = hud.jsterm;
 
   let onMessage = waitForMessage(hud, "Array [ li, li ]");
   jsterm.execute("$x('.//li')");
   let message = await onMessage;
   ok(message, "`$x` worked");
 
   onMessage = waitForMessage(hud, "<li>");
   jsterm.execute("$x('.//li', document.body)[0]");
   message = await onMessage;
   ok(message, "`$x()` result can be used right away");
-});
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_helper_help.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_helper_help.js
@@ -2,16 +2,24 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 const TEST_URI = "data:text/html,Test <code>help()</code> jsterm helper";
 const HELP_URL = "https://developer.mozilla.org/docs/Tools/Web_Console/Helpers";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const hud = await openNewTabAndConsole(TEST_URI);
   const jsterm = hud.jsterm;
 
   let openedLinks = 0;
   const oldOpenLink = hud.openLink;
   hud.openLink = (url) => {
     if (url == HELP_URL) {
       openedLinks++;
@@ -23,9 +31,9 @@ add_task(async function() {
   await jsterm.execute("help");
   await jsterm.execute("?");
 
   const messages = Array.from(jsterm.outputNode.querySelectorAll(".message"));
   ok(messages.every(msg => msg.classList.contains("command")),
     "There is no results shown for the help commands");
   is(openedLinks, 3, "correct number of pages opened by the help calls");
   hud.openLink = oldOpenLink;
-});
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_helper_keys_values.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_helper_keys_values.js
@@ -2,16 +2,24 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 const TEST_URI =
   "data:text/html,Test <code>keys()</code> & <code>values()</code> jsterm helper";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const hud = await openNewTabAndConsole(TEST_URI);
   const jsterm = hud.jsterm;
 
   let onMessage = waitForMessage(hud, `Array [ "a", "b" ]`);
   jsterm.execute("keys({a: 2, b:1})");
   let message = await onMessage;
   ok(message, "`keys()` worked");
 
@@ -19,9 +27,9 @@ add_task(async function() {
   jsterm.execute("values({a: 2, b:1})");
   message = await onMessage;
   ok(message, "`values()` worked");
 
   onMessage = waitForMessage(hud, "Array");
   jsterm.execute("keys(window)");
   message = await onMessage;
   ok(message, "`keys(window)` worked");
-});
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_helper_pprint.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_helper_pprint.js
@@ -1,16 +1,24 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 const TEST_URI = "data:text/html,Test <code>pprint()</code> jsterm helper";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const hud = await openNewTabAndConsole(TEST_URI);
   const {jsterm} = hud;
 
   let onMessage = waitForMessage(hud, `"  b: 2\n  a: 1"`);
   jsterm.execute("pprint({b:2, a:1})");
   let message = await onMessage;
   ok(message, "`pprint()` worked");
 
@@ -26,9 +34,9 @@ add_task(async function() {
   message = await onMessage;
   ok(message, "`pprint('hi')` worked");
 
   // check that pprint(function) shows function source (See Bug 618344).
   onMessage = waitForMessage(hud, `"function() { var someCanaryValue = 42; }`);
   jsterm.execute("pprint(function() { var someCanaryValue = 42; })");
   message = await onMessage;
   ok(message, "`pprint(function)` shows function source");
-});
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_hide_when_devtools_chrome_enabled_false.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_hide_when_devtools_chrome_enabled_false.js
@@ -18,16 +18,24 @@
  *     set them but there is no reason not to do so as the input is disabled).
  *   - webconsole jsterm should be enabled
  *   - webconsole object inspector properties should be set.
  */
 
 "use strict";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   let browserConsole, webConsole, objInspector;
 
   // We don't use `pushPref()` because we need to revert the same pref later
   // in the test.
   Services.prefs.setBoolPref("devtools.chrome.enabled", true);
 
   browserConsole = await HUDService.toggleBrowserConsole();
   objInspector = await getObjectInspector(browserConsole);
@@ -47,18 +55,21 @@ add_task(async function() {
   browserConsole = await HUDService.toggleBrowserConsole();
   objInspector = await getObjectInspector(browserConsole);
   testJSTermIsNotVisible(browserConsole);
 
   webConsole = await openConsole(browserTab);
   objInspector = await getObjectInspector(webConsole);
   testJSTermIsVisible(webConsole);
   await testObjectInspectorPropertiesAreSet(objInspector);
+
+  info("Close webconsole and browser console");
   await closeConsole(browserTab);
-});
+  await HUDService.toggleBrowserConsole();
+}
 
 /**
  * Returns either the Variables View or Object Inspector depending on which is
  * currently in use.
  */
 async function getObjectInspector(hud) {
   const { ui, jsterm } = hud;
 
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_history_arrow_keys.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_history_arrow_keys.js
@@ -25,113 +25,89 @@ add_task(async function() {
   await pushPref("devtools.webconsole.jsterm.codeMirror", true);
   await performTests();
 });
 
 async function performTests() {
   const hud = await openNewTabAndConsole(TEST_URI);
   const { jsterm } = hud;
 
+  const checkInput = (expected, assertionInfo) =>
+    checkJsTermValueAndCursor(jsterm, expected, assertionInfo);
+
   jsterm.focus();
-  ok(!jsterm.getInputValue(), "jsterm.getInputValue() is empty");
+  checkInput("|", "input is empty");
 
   info("Execute each test value in the console");
   for (const value of TEST_VALUES) {
     jsterm.setInputValue(value);
     await jsterm.execute();
   }
 
-  const values = TEST_VALUES;
-
   EventUtils.synthesizeKey("KEY_ArrowUp");
-
-  is(jsterm.getInputValue(), values[4], "VK_UP: jsterm.getInputValue() #4 is correct");
-  is(getCaretPosition(jsterm), values[4].length, "caret location is correct");
+  checkInput("document.location|", "↑: input #4 is correct");
   ok(inputHasNoSelection(jsterm));
 
   EventUtils.synthesizeKey("KEY_ArrowUp");
-
-  is(jsterm.getInputValue(), values[3], "VK_UP: jsterm.getInputValue() #3 is correct");
-  is(getCaretPosition(jsterm), values[3].length, "caret location is correct");
+  checkInput("document;\nwindow;\ndocument.body|", "↑: input #3 is correct");
   ok(inputHasNoSelection(jsterm));
 
-  info("Select text and ensure hitting arrow up twice won't navigate the history");
-  setCursorAtPosition(jsterm, values[3].length - 2);
+  info("Move cursor and ensure hitting arrow up twice won't navigate the history");
+  EventUtils.synthesizeKey("KEY_ArrowLeft");
+  EventUtils.synthesizeKey("KEY_ArrowLeft");
+  checkInput("document;\nwindow;\ndocument.bo|dy");
+
   EventUtils.synthesizeKey("KEY_ArrowUp");
   EventUtils.synthesizeKey("KEY_ArrowUp");
 
-  is(jsterm.getInputValue(), values[3],
-    "VK_UP two times: jsterm.getInputValue() #3 is correct");
-  is(getCaretPosition(jsterm), jsterm.getInputValue().indexOf("\n"),
-    "caret location is correct");
+  checkInput("document;|\nwindow;\ndocument.body", "↑↑: input #3 is correct");
   ok(inputHasNoSelection(jsterm));
 
   EventUtils.synthesizeKey("KEY_ArrowUp");
-
-  is(jsterm.getInputValue(), values[3],
-     "VK_UP again: jsterm.getInputValue() #3 is correct");
-  is(getCaretPosition(jsterm), 0, "caret location is correct");
+  checkInput("|document;\nwindow;\ndocument.body", "↑ again: input #3 is correct");
   ok(inputHasNoSelection(jsterm));
 
   EventUtils.synthesizeKey("KEY_ArrowUp");
-
-  is(jsterm.getInputValue(), values[2], "VK_UP: jsterm.getInputValue() #2 is correct");
+  checkInput("document.body|", "↑: input #2 is correct");
 
   EventUtils.synthesizeKey("KEY_ArrowUp");
-
-  is(jsterm.getInputValue(), values[1], "VK_UP: jsterm.getInputValue() #1 is correct");
+  checkInput("window|", "↑: input #1 is correct");
 
   EventUtils.synthesizeKey("KEY_ArrowUp");
-
-  is(jsterm.getInputValue(), values[0], "VK_UP: jsterm.getInputValue() #0 is correct");
-  is(getCaretPosition(jsterm), values[0].length, "caret location is correct");
+  checkInput("document|", "↑: input #0 is correct");
   ok(inputHasNoSelection(jsterm));
 
   EventUtils.synthesizeKey("KEY_ArrowDown");
-
-  is(jsterm.getInputValue(), values[1], "VK_DOWN: jsterm.getInputValue() #1 is correct");
-  is(getCaretPosition(jsterm), values[1].length, "caret location is correct");
+  checkInput("window|", "↓: input #1 is correct");
   ok(inputHasNoSelection(jsterm));
 
   EventUtils.synthesizeKey("KEY_ArrowDown");
-
-  is(jsterm.getInputValue(), values[2], "VK_DOWN: jsterm.getInputValue() #2 is correct");
+  checkInput("document.body|", "↓: input #2 is correct");
 
   EventUtils.synthesizeKey("KEY_ArrowDown");
-
-  is(jsterm.getInputValue(), values[3], "VK_DOWN: jsterm.getInputValue() #3 is correct");
-  is(getCaretPosition(jsterm), values[3].length, "caret location is correct");
+  checkInput("document;\nwindow;\ndocument.body|", "↓: input #3 is correct");
   ok(inputHasNoSelection(jsterm));
 
   setCursorAtPosition(jsterm, 2);
+  checkInput("do|cument;\nwindow;\ndocument.body");
 
   EventUtils.synthesizeKey("KEY_ArrowDown");
   EventUtils.synthesizeKey("KEY_ArrowDown");
-
-  is(jsterm.getInputValue(), values[3],
-    "VK_DOWN two times: jsterm.getInputValue() #3 is correct");
-
-  ok(getCaretPosition(jsterm) > jsterm.getInputValue().lastIndexOf("\n")
-    && inputHasNoSelection(jsterm),
-    "caret location is correct");
-
-  EventUtils.synthesizeKey("KEY_ArrowDown");
-
-  is(jsterm.getInputValue(), values[3],
-     "VK_DOWN again: jsterm.getInputValue() #3 is correct");
-  is(getCaretPosition(jsterm), values[3].length, "caret location is correct");
+  checkInput("document;\nwindow;\ndo|cument.body", "↓↓: input #3 is correct");
   ok(inputHasNoSelection(jsterm));
 
   EventUtils.synthesizeKey("KEY_ArrowDown");
-
-  is(jsterm.getInputValue(), values[4], "VK_DOWN: jsterm.getInputValue() #4 is correct");
+  checkInput("document;\nwindow;\ndocument.body|", "↓ again: input #3 is correct");
+  ok(inputHasNoSelection(jsterm));
 
   EventUtils.synthesizeKey("KEY_ArrowDown");
+  checkInput("document.location|", "↓: input #4 is correct");
 
-  ok(!jsterm.getInputValue(), "VK_DOWN: jsterm.getInputValue() is empty");
+  EventUtils.synthesizeKey("KEY_ArrowDown");
+  checkInput("|", "↓: input is empty");
 }
 
 function setCursorAtPosition(jsterm, pos) {
   const {inputNode, editor} = jsterm;
 
   if (editor) {
     let line = 0;
     let ch = 0;
@@ -146,25 +122,15 @@ function setCursorAtPosition(jsterm, pos
       return false;
     });
     return editor.setCursor({line, ch });
   }
 
   return inputNode.setSelectionRange(pos, pos);
 }
 
-function getCaretPosition(jsterm) {
-  const {inputNode, editor} = jsterm;
-
-  if (editor) {
-    return editor.getDoc().getRange({line: 0, ch: 0}, editor.getCursor()).length;
-  }
-
-  return inputNode.selectionStart;
-}
-
 function inputHasNoSelection(jsterm) {
   if (jsterm.editor) {
     return !jsterm.editor.getDoc().getSelection();
   }
 
   return jsterm.inputNode.selectionStart === jsterm.inputNode.selectionEnd;
 }
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_input_expansion.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_input_expansion.js
@@ -5,34 +5,29 @@
 
 "use strict";
 
 // Check that the jsterm input supports multiline values. See Bug 588967.
 
 const TEST_URI = "data:text/html;charset=utf-8,Test for jsterm multine input";
 
 add_task(async function() {
-  const hud = await openNewTabAndConsole(TEST_URI);
-
-  const input = hud.jsterm.inputNode;
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
 
-  info("Focus the jsterm input");
-  input.focus();
+async function performTests() {
+  const {jsterm, ui} = await openNewTabAndConsole(TEST_URI);
+  const inputContainer = ui.window.document.querySelector(".jsterm-input-container");
 
-  const ordinaryHeight = input.clientHeight;
+  const ordinaryHeight = inputContainer.clientHeight;
 
   // Set a multiline value
-  input.value = "hello\nworld\n";
-
-  // Set the caret at the end of input
-  const length = input.value.length;
-  input.selectionEnd = length;
-  input.selectionStart = length;
-
-  info("Type 'd' in jsterm to trigger height change for the input");
-  EventUtils.sendString("d");
-  ok(input.clientHeight > ordinaryHeight, "the input expanded");
+  jsterm.setInputValue("hello\nworld\n");
+  ok(inputContainer.clientHeight > ordinaryHeight, "the input expanded");
 
   info("Erase the value and test if the inputNode shrinks again");
-  input.value = "";
-  EventUtils.sendString("d");
-  is(input.clientHeight, ordinaryHeight, "the input's height is normal again");
-});
+  jsterm.setInputValue("");
+  is(inputContainer.clientHeight, ordinaryHeight, "the input's height is normal again");
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_inspect.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_inspect.js
@@ -5,16 +5,24 @@
 
 // Check that the inspect() jsterm helper function works.
 
 "use strict";
 
 const TEST_URI = "data:text/html;charset=utf8,<p>test inspect() command";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const toolbox = await openNewTabAndToolbox(TEST_URI, "webconsole");
   const hud = toolbox.getCurrentPanel().hud;
 
   const jsterm = hud.jsterm;
 
   info("Test `inspect(window)`");
   // Add a global value so we can check it later.
   await jsterm.execute("testProp = 'testValue'");
@@ -50,13 +58,13 @@ add_task(async function() {
 
   /* Check that a primitive value can be inspected, too */
   info("Test `inspect(1)`");
   await jsterm.execute("inspect(1)");
 
   const inspectPrimitiveNode = await waitFor(() =>
     findInspectResultMessage(hud.ui.outputNode, 2));
   is(inspectPrimitiveNode.textContent, 1, "The primitive is displayed as expected");
-});
+}
 
 function findInspectResultMessage(node, index) {
   return node.querySelectorAll(".message.result")[index];
 }
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_instance_of.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_instance_of.js
@@ -2,16 +2,24 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Check instanceof correctness. See Bug 599940.
 const TEST_URI = "data:text/html,Test <code>instanceof</code> evaluation";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const hud = await openNewTabAndConsole(TEST_URI);
   const {jsterm} = hud;
 
   let onMessage = waitForMessage(hud, "true");
   jsterm.execute("[] instanceof Array");
   let message = await onMessage;
   ok(message, "`instanceof Array` is correct");
 
@@ -19,9 +27,9 @@ add_task(async function() {
   jsterm.execute("({}) instanceof Object");
   message = await onMessage;
   ok(message, "`instanceof Object` is correct");
 
   onMessage = waitForMessage(hud, "false");
   jsterm.execute("({}) instanceof Array");
   message = await onMessage;
   ok(message, "`instanceof Array` has expected result");
-});
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_multiline.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_multiline.js
@@ -71,54 +71,55 @@ const DATA = [
     value: null,
     extra: {
       lines: "3"
     }
   }
 ];
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   // Let's reset the counts.
   Services.telemetry.clearEvents();
 
   // Ensure no events have been logged
   const snapshot = Services.telemetry.snapshotEvents(OPTOUT, true);
   ok(!snapshot.parent, "No events have been logged for the main process");
 
-  const hud = await openNewTabAndConsole(TEST_URI);
-  const { inputNode } = hud.jsterm;
+  const {jsterm} = await openNewTabAndConsole(TEST_URI);
 
   for (const {input, shiftKey} of SHOULD_ENTER_MULTILINE) {
-    hud.jsterm.setInputValue(input);
+    jsterm.setInputValue(input);
     EventUtils.synthesizeKey("VK_RETURN", { shiftKey });
 
-    const inputValue = hud.jsterm.getInputValue();
-    is(inputNode.selectionStart, inputNode.selectionEnd, "selection is collapsed");
-    is(inputNode.selectionStart, inputValue.length, "caret at end of multiline input");
-
-    const inputWithNewline = input + "\n";
-    is(inputValue, inputWithNewline, "Input value is correct");
+    // We need to remove the spaces at the end of the input since code mirror do some
+    // automatic indent in some case.
+    const newValue = jsterm.getInputValue().replace(/ +$/g, "");
+    is(newValue, input + "\n", "A new line was added");
   }
 
   for (const {input, shiftKey} of SHOULD_EXECUTE) {
-    hud.jsterm.setInputValue(input);
+    jsterm.setInputValue(input);
     EventUtils.synthesizeKey("VK_RETURN", { shiftKey });
 
-    await waitFor(() => !hud.jsterm.getInputValue());
-
-    const inputValue = hud.jsterm.getInputValue();
-    is(inputNode.selectionStart, 0, "selection starts/ends at 0");
-    is(inputNode.selectionEnd, 0, "selection starts/ends at 0");
-    is(inputValue, "", "Input value is cleared");
+    await waitFor(() => !jsterm.getInputValue());
+    is(jsterm.getInputValue(), "", "Input is cleared");
   }
 
-  await hud.jsterm.execute("document.\nlocation.\nhref");
+  await jsterm.execute("document.\nlocation.\nhref");
 
   checkEventTelemetry();
-});
+}
 
 function checkEventTelemetry() {
   const snapshot = Services.telemetry.snapshotEvents(OPTOUT, true);
   const events = snapshot.parent.filter(event => event[1] === "devtools.main" &&
                                                   event[2] === "execute_js" &&
                                                   event[3] === "webconsole" &&
                                                   event[4] === null
   );
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_no_autocompletion_on_defined_variables.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_no_autocompletion_on_defined_variables.js
@@ -6,32 +6,35 @@
 // Tests for bug 704295
 
 "use strict";
 
 const TEST_URI = "http://example.com/browser/devtools/client/webconsole/" +
                  "test/mochitest/test-console.html";
 
 add_task(async function() {
-  const hud = await openNewTabAndConsole(TEST_URI);
-  testCompletion(hud);
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
 });
 
-function testCompletion(hud) {
+async function performTests() {
+  const hud = await openNewTabAndConsole(TEST_URI);
   const jsterm = hud.jsterm;
-  const input = jsterm.inputNode;
 
   // Test typing 'var d = 5;' and press RETURN
   jsterm.setInputValue("var d = ");
   EventUtils.sendString("5;");
-  is(input.value, "var d = 5;", "var d = 5;");
-  is(jsterm.completeNode.value, "", "no completion");
+  is(jsterm.getInputValue(), "var d = 5;", "var d = 5;");
+  checkJsTermCompletionValue(jsterm, "", "no completion");
   EventUtils.synthesizeKey("KEY_Enter");
-  is(jsterm.completeNode.value, "", "clear completion on execute()");
+  checkJsTermCompletionValue(jsterm, "", "clear completion on execute()");
 
   // Test typing 'var a = d' and press RETURN
   jsterm.setInputValue("var a = ");
   EventUtils.sendString("d");
-  is(input.value, "var a = d", "var a = d");
-  is(jsterm.completeNode.value, "", "no completion");
+  is(jsterm.getInputValue(), "var a = d", "var a = d");
+  checkJsTermCompletionValue(jsterm, "", "no completion");
   EventUtils.synthesizeKey("KEY_Enter");
-  is(jsterm.completeNode.value, "", "clear completion on execute()");
+  checkJsTermCompletionValue(jsterm, "", "clear completion on execute()");
 }
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_no_input_and_tab_key_pressed.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_no_input_and_tab_key_pressed.js
@@ -5,30 +5,33 @@
 
 "use strict";
 
 // See Bug 583816.
 
 const TEST_URI = "data:text/html,Testing jsterm with no input";
 
 add_task(async function() {
-  const hud = await openNewTabAndConsole(TEST_URI);
-  testCompletion(hud);
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
 });
 
-function testCompletion(hud) {
+async function performTests() {
+  const hud = await openNewTabAndConsole(TEST_URI);
   const jsterm = hud.jsterm;
-  const input = jsterm.inputNode;
 
   // With empty input, tab through
   jsterm.setInputValue("");
   EventUtils.synthesizeKey("KEY_Tab");
   is(jsterm.getInputValue(), "", "inputnode is empty - matched");
-  ok(!hasFocus(input), "input isn't focused anymore");
+  ok(!isJstermFocused(jsterm), "input isn't focused anymore");
   jsterm.focus();
 
   // With non-empty input, insert a tab
   jsterm.setInputValue("window.Bug583816");
   EventUtils.synthesizeKey("KEY_Tab");
   is(jsterm.getInputValue(), "window.Bug583816\t",
      "input content - matched");
-  ok(hasFocus(input), "input is still focused");
+  ok(isJstermFocused(jsterm), "input is still focused");
 }
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_null_undefined.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_null_undefined.js
@@ -2,22 +2,30 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 const TEST_URI =
   "data:text/html,Test evaluating null and undefined";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const hud = await openNewTabAndConsole(TEST_URI);
   const jsterm = hud.jsterm;
 
   // Check that an evaluated null produces "null". See Bug 650780.
   let onMessage = waitForMessage(hud, `null`);
   jsterm.execute("null");
   let message = await onMessage;
   ok(message, "`null` returned the expected value");
 
   onMessage = waitForMessage(hud, "undefined");
   jsterm.execute("undefined");
   message = await onMessage;
   ok(message, "`undefined` returned the expected value");
-});
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_popup_close_on_tab_switch.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_popup_close_on_tab_switch.js
@@ -7,21 +7,29 @@
 
 "use strict";
 
 const TEST_URI = "data:text/html;charset=utf-8,<p>bug 900448 - autocomplete " +
                  "popup closes on tab switch";
 const TEST_URI_NAVIGATE = "data:text/html;charset=utf-8,<p>testing autocomplete closes";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const hud = await openNewTabAndConsole(TEST_URI);
   const popup = hud.jsterm.autocompletePopup;
   const popupShown = once(popup, "popup-opened");
 
   hud.jsterm.setInputValue("sc");
   EventUtils.sendString("r");
 
   await popupShown;
 
   await addTab(TEST_URI_NAVIGATE);
 
   ok(!popup.isOpen, "Popup closes on tab switch");
-});
+}
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_screenshot_command_clipboard.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_screenshot_command_clipboard.js
@@ -8,27 +8,35 @@
 const TEST_URI = "http://example.com/browser/devtools/client/webconsole/" +
                  "test/mochitest/test_jsterm_screenshot_command.html";
 
 // on some machines, such as macOS, dpr is set to 2. This is expected behavior, however
 // to keep tests consistant across OSs we are setting the dpr to 1
 const dpr = "--dpr 1";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   const hud = await openNewTabAndConsole(TEST_URI);
   ok(hud, "web console opened");
 
   await testClipboard(hud);
   await testFullpageClipboard(hud);
   await testSelectorClipboard(hud);
 
   // overflow
   await createScrollbarOverflow();
   await testFullpageClipboardScrollbar(hud);
-});
+}
 
 async function testClipboard(hud) {
   const command = `:screenshot --clipboard ${dpr}`;
   const onMessage = waitForMessage(hud, "Screenshot copied to clipboard.");
   hud.jsterm.execute(command);
   await onMessage;
   const contentSize = await getContentSize();
   const imgSize = await getImageSizeFromClipboard();
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_screenshot_command_file.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_screenshot_command_file.js
@@ -9,23 +9,31 @@ const TEST_URI = "http://example.com/bro
                  "test/mochitest/test_jsterm_screenshot_command.html";
 
 const FileUtils = (ChromeUtils.import("resource://gre/modules/FileUtils.jsm", {})).FileUtils;
 // on some machines, such as macOS, dpr is set to 2. This is expected behavior, however
 // to keep tests consistant across OSs we are setting the dpr to 1
 const dpr = "--dpr 1";
 
 add_task(async function() {
+  // Run test with legacy JsTerm
+  await performTests();
+  // And then run it with the CodeMirror-powered one.
+  await pushPref("devtools.webconsole.jsterm.codeMirror", true);
+  await performTests();
+});
+
+async function performTests() {
   await addTab(TEST_URI);
 
   const hud = await openConsole();
   ok(hud, "web console opened");
 
   await testFile(hud);
-});
+}
 
 async function testFile(hud) {
   // Test capture to file
   const file = FileUtils.getFile("TmpD", [ "TestScreenshotFile.png" ]);
   const command = `:screenshot ${file.path} ${dpr}`;
   const onMessage = waitForMessage(hud, `Saved to ${file.path}`);
   hud.jsterm.execute(command);
   await onMessage;
--- a/devtools/client/webconsole/test/mochitest/head.js
+++ b/devtools/client/webconsole/test/mochitest/head.js
@@ -346,33 +346,51 @@ function hasFocus(node) {
     && node.ownerDocument.hasFocus();
 }
 
 /**
  * Set the value of the JsTerm and its caret position, and fire a completion request.
  *
  * @param {JsTerm} jsterm
  * @param {String} value : The value to set the jsterm to.
- * @param {Integer} caretIndexOffset : A number that will be added to value.length
- *                  when setting the caret. A negative number will place the caret
- *                  in (end - offset) position. Default to 0 (caret set at the end)
+ * @param {Integer} caretPosition : The index where to place the cursor. A negative
+ *                  number will place the caret at (value.length - offset) position.
+ *                  Default to value.length (caret set at the end).
  * @param {Integer} completionType : One of the following jsterm property
  *                   - COMPLETE_FORWARD
  *                   - COMPLETE_BACKWARD
  *                   - COMPLETE_HINT_ONLY
  *                   - COMPLETE_PAGEUP
  *                   - COMPLETE_PAGEDOWN
  *                  Will default to COMPLETE_HINT_ONLY.
  * @returns {Promise} resolves when the jsterm is completed.
  */
-function jstermSetValueAndComplete(jsterm, value, caretIndexOffset = 0, completionType) {
-  const {inputNode} = jsterm;
-  inputNode.value = value;
-  const index = value.length + caretIndexOffset;
-  inputNode.setSelectionRange(index, index);
+function jstermSetValueAndComplete(
+  jsterm,
+  value,
+  caretPosition = value.length,
+  completionType
+) {
+  jsterm.setInputValue(value);
+
+  if (caretPosition < 0) {
+    caretPosition = value.length + caretPosition;
+  }
+
+  if (Number.isInteger(caretPosition)) {
+    if (jsterm.inputNode) {
+      const {inputNode} = jsterm;
+      inputNode.value = value;
+      inputNode.setSelectionRange(caretPosition, caretPosition);
+    }
+
+    if (jsterm.editor) {
+      jsterm.editor.setCursor(jsterm.editor.getPosition(caretPosition));
+    }
+  }
 
   return jstermComplete(jsterm, completionType);
 }
 
 /**
  * Fires a completion request on the jsterm with the specified completionType
  *
  * @param {JsTerm} jsterm
@@ -387,16 +405,130 @@ function jstermSetValueAndComplete(jster
  */
 function jstermComplete(jsterm, completionType = jsterm.COMPLETE_HINT_ONLY) {
   const updated = jsterm.once("autocomplete-updated");
   jsterm.complete(completionType);
   return updated;
 }
 
 /**
+ * Checks if the jsterm has the expected completion value.
+ *
+ * @param {JsTerm} jsterm
+ * @param {String} expectedValue
+ * @param {String} assertionInfo: Description of the assertion passed to `is`.
+ */
+function checkJsTermCompletionValue(jsterm, expectedValue, assertionInfo) {
+  const completionValue = getJsTermCompletionValue(jsterm);
+  if (completionValue === null) {
+    ok(false, "Couldn't retrieve the completion value");
+  }
+
+  info(`Expects "${expectedValue}", is "${completionValue}"`);
+
+  if (jsterm.completeNode) {
+    is(completionValue, expectedValue, assertionInfo);
+  } else {
+    // CodeMirror jsterm doesn't need to add prefix-spaces.
+    is(completionValue, expectedValue.trim(), assertionInfo);
+  }
+}
+
+/**
+ * Checks if the cursor on jsterm is at the expected position.
+ *
+ * @param {JsTerm} jsterm
+ * @param {Integer} expectedCursorIndex
+ * @param {String} assertionInfo: Description of the assertion passed to `is`.
+ */
+function checkJsTermCursor(jsterm, expectedCursorIndex, assertionInfo) {
+  if (jsterm.inputNode) {
+    const {selectionStart, selectionEnd} = jsterm.inputNode;
+    is(selectionStart, expectedCursorIndex, assertionInfo);
+    ok(selectionStart === selectionEnd);
+  } else {
+    is(jsterm.editor.getCursor().ch, expectedCursorIndex, assertionInfo);
+  }
+}
+
+/**
+ * Checks the jsterm value and the cursor position given an expected string containing
+ * a "|" to indicate the expected cursor position.
+ *
+ * @param {JsTerm} jsterm
+ * @param {String} expectedStringWithCursor:
+ *                  String with a "|" to indicate the expected cursor position.
+ *                  For example, this is how you assert an empty value with the focus "|",
+ *                  and this indicates the value should be "test" and the cursor at the
+ *                  end of the input: "test|".
+ * @param {String} assertionInfo: Description of the assertion passed to `is`.
+ */
+function checkJsTermValueAndCursor(jsterm, expectedStringWithCursor, assertionInfo) {
+  info(`Checking jsterm state: \n${expectedStringWithCursor}`);
+  if (!expectedStringWithCursor.includes("|")) {
+    ok(false,
+      `expectedStringWithCursor must contain a "|" char to indicate cursor position`);
+  }
+
+  const inputValue = expectedStringWithCursor.replace("|", "");
+  is(jsterm.getInputValue(), inputValue, "jsterm has expected value");
+  if (jsterm.inputNode) {
+    is(jsterm.inputNode.selectionStart, jsterm.inputNode.selectionEnd);
+    is(jsterm.inputNode.selectionStart, expectedStringWithCursor.indexOf("|"),
+      assertionInfo);
+  } else {
+    const lines = expectedStringWithCursor.split("\n");
+    const lineWithCursor = lines.findIndex(line => line.includes("|"));
+    const {ch, line} = jsterm.editor.getCursor();
+    is(line, lineWithCursor, assertionInfo + " - correct line");
+    is(ch, lines[lineWithCursor].indexOf("|"), assertionInfo + " - correct ch");
+  }
+}
+
+/**
+ * Returns the jsterm completion value, whether there's CodeMirror enabled or not.
+ *
+ * @param {JsTerm} jsterm
+ * @returns {String}
+ */
+function getJsTermCompletionValue(jsterm) {
+  if (jsterm.completeNode) {
+    return jsterm.completeNode.value;
+  }
+
+  if (jsterm.editor) {
+    return jsterm.editor.getAutoCompletionText();
+  }
+
+  return null;
+}
+
+/**
+ * Returns a boolean indicating if the jsterm is focused, whether there's CodeMirror
+ * enabled or not.
+ *
+ * @param {JsTerm} jsterm
+ * @returns {Boolean}
+ */
+function isJstermFocused(jsterm) {
+  const document = jsterm.outputNode.ownerDocument;
+  const documentIsFocused = document.hasFocus();
+
+  if (jsterm.inputNode) {
+    return document.activeElement == jsterm.inputNode && documentIsFocused;
+  }
+
+  if (jsterm.editor) {
+    return documentIsFocused && jsterm.editor.hasFocus();
+  }
+
+  return false;
+}
+
+/**
  * Open the JavaScript debugger.
  *
  * @param object options
  *        Options for opening the debugger:
  *        - tab: the tab you want to open the debugger for.
  * @return object
  *         A promise that is resolved once the debugger opens, or rejected if
  *         the open fails. The resolution callback is given one argument, an
--- a/devtools/docs/getting-started/build.md
+++ b/devtools/docs/getting-started/build.md
@@ -13,17 +13,17 @@ These are the steps we're going to look 
 The code is officially hosted on [a Mercurial repository](https://hg.mozilla.org/mozilla-central/). It takes a long time to clone, because the repository is **B I G**. So be prepared to be patient.
 
 ```bash
 hg clone http://hg.mozilla.org/mozilla-central
 ```
 
 ## Building and running locally
 
-Fortunately, the Firefox team has made a very good job of automating the building process with bootstrap scripts and putting [documentation](https://developer.mozilla.org/En/Simple_Firefox_build) together.
+Fortunately, the Firefox team has made a very good job of automating the building process with bootstrap scripts and putting [documentation](https://developer.mozilla.org/docs/Mozilla/Developer_guide/Build_Instructions/Simple_Firefox_build) together.
 
 The very first time you are building Firefox, run:
 
 ```bash
 ./mach bootstrap
 ./mach configure
 ./mach build
 ```
--- a/dom/media/webaudio/PeriodicWave.cpp
+++ b/dom/media/webaudio/PeriodicWave.cpp
@@ -21,17 +21,17 @@ PeriodicWave::PeriodicWave(AudioContext*
                            const float* aImagData,
                            const uint32_t aLength,
                            const bool aDisableNormalization,
                            ErrorResult& aRv)
   : mContext(aContext)
   , mDisableNormalization(aDisableNormalization)
 {
   MOZ_ASSERT(aContext);
-  MOZ_ASSERT(aRealData || aImagData);
+  MOZ_ASSERT((aRealData || aImagData) || aLength == 2);
 
   // Caller should have checked this and thrown.
   MOZ_ASSERT(aLength > 0);
   mCoefficients.mDuration = aLength;
 
   // Copy coefficient data.
   // The SharedBuffer and two arrays share a single allocation.
   RefPtr<SharedBuffer> buffer =
@@ -39,54 +39,67 @@ PeriodicWave::PeriodicWave(AudioContext*
   if (!buffer) {
     aRv.Throw(NS_ERROR_OUT_OF_MEMORY);
     return;
   }
 
   auto data = static_cast<float*>(buffer->Data());
   mCoefficients.mBuffer = std::move(buffer);
 
-  if (aRealData) {
-    PodCopy(data, aRealData, aLength);
+  if (!aRealData && !aImagData) {
+    PodZero(data, aLength);
+    mCoefficients.mChannelData.AppendElement(data);
+    data += aLength;
+    data[0] = 0.0f;
+    data[1] = 1.0f;
+    mCoefficients.mChannelData.AppendElement(data);
   } else {
-    PodZero(data, aLength);
-  }
-  mCoefficients.mChannelData.AppendElement(data);
+    if (aRealData) {
+      PodCopy(data, aRealData, aLength);
+    } else {
+      PodZero(data, aLength);
+    }
+    mCoefficients.mChannelData.AppendElement(data);
 
-  data += aLength;
-  if (aImagData) {
-    PodCopy(data, aImagData, aLength);
-  } else {
-    PodZero(data, aLength);
+    data += aLength;
+    if (aImagData) {
+      PodCopy(data, aImagData, aLength);
+    } else {
+      PodZero(data, aLength);
+    }
+    mCoefficients.mChannelData.AppendElement(data);
   }
-  mCoefficients.mChannelData.AppendElement(data);
-
   mCoefficients.mVolume = 1.0f;
   mCoefficients.mBufferFormat = AUDIO_FORMAT_FLOAT32;
 }
 
 /* static */ already_AddRefed<PeriodicWave>
 PeriodicWave::Constructor(const GlobalObject& aGlobal,
                           AudioContext& aAudioContext,
                           const PeriodicWaveOptions& aOptions,
                           ErrorResult& aRv)
 {
-  if (!aOptions.mReal.WasPassed() && !aOptions.mImag.WasPassed()) {
-    aRv.Throw(NS_ERROR_DOM_INDEX_SIZE_ERR);
-    return nullptr;
-  }
 
   if (aOptions.mReal.WasPassed() && aOptions.mImag.WasPassed() &&
       aOptions.mReal.Value().Length() != aOptions.mImag.Value().Length()) {
     aRv.Throw(NS_ERROR_DOM_INDEX_SIZE_ERR);
     return nullptr;
   }
 
-  uint32_t length =
-    aOptions.mReal.WasPassed() ? aOptions.mReal.Value().Length() : aOptions.mImag.Value().Length();
+  uint32_t length = 0;
+  if (aOptions.mReal.WasPassed()) {
+    length = aOptions.mReal.Value().Length();
+  } else if (aOptions.mImag.WasPassed()) {
+    length = aOptions.mImag.Value().Length();
+  } else {
+    // If nothing has been passed, this PeriodicWave will be a sine wave: 2
+    // elements for each array, the second imaginary component set to 1.0.
+    length = 2;
+  }
+
   if (length == 0) {
     aRv.Throw(NS_ERROR_DOM_INDEX_SIZE_ERR);
     return nullptr;
   }
 
   const float* realData =
     aOptions.mReal.WasPassed() ? aOptions.mReal.Value().Elements() : nullptr;
   const float* imagData =
--- a/dom/media/webaudio/test/test_periodicWave.html
+++ b/dom/media/webaudio/test/test_periodicWave.html
@@ -36,20 +36,19 @@ addLoadEvent(function() {
   }, DOMException.INDEX_SIZE_ERR);
   expectException(function() {
     ac.createPeriodicWave(new Float32Array(0), new Float32Array(0));
   }, DOMException.INDEX_SIZE_ERR);
   expectNoException(function() {
     ac.createPeriodicWave(new Float32Array(4097), new Float32Array(4097));
   });
 
-  // real || imag
-  expectException(function() {
+  expectNoException(function() {
     new PeriodicWave(ac, {});
-  }, DOMException.INDEX_SIZE_ERR);
+  });
 
   // real.size == imag.size
   expectException(function() {
     new PeriodicWave(ac, {real: new Float32Array(10), imag: new Float32Array(9)});
   }, DOMException.INDEX_SIZE_ERR);
 
   // 0 size is not allowed
   expectException(function() {
--- a/dom/webidl/PeriodicWave.webidl
+++ b/dom/webidl/PeriodicWave.webidl
@@ -15,14 +15,11 @@ dictionary PeriodicWaveConstraints {
 };
 
 dictionary PeriodicWaveOptions : PeriodicWaveConstraints {
              sequence<float> real;
              sequence<float> imag;
 };
 
 [Pref="dom.webaudio.enabled",
- // XXXbz The second arg is not optional in the spec, but that looks
- // like a spec bug to me.  See
- // <https://github.com/WebAudio/web-audio-api/issues/1116>.
  Constructor(BaseAudioContext context, optional PeriodicWaveOptions options)]
 interface PeriodicWave {
 };
--- a/gfx/thebes/gfxTextRun.cpp
+++ b/gfx/thebes/gfxTextRun.cpp
@@ -1228,16 +1228,44 @@ gfxTextRun::GetAdvanceWidth(Range aRange
                 aSpacing->mAfter = spacingBuffer.LastElement().mAfter;
             }
         }
     }
 
     return result + GetAdvanceForGlyphs(ligatureRange);
 }
 
+gfxFloat
+gfxTextRun::GetMinAdvanceWidth(Range aRange)
+{
+    MOZ_ASSERT(aRange.end <= GetLength(), "Substring out of range");
+
+    Range ligatureRange = aRange;
+    ShrinkToLigatureBoundaries(&ligatureRange);
+
+    gfxFloat result = std::max(
+        ComputePartialLigatureWidth(Range(aRange.start, ligatureRange.start),
+                                    nullptr),
+        ComputePartialLigatureWidth(Range(ligatureRange.end, aRange.end),
+                                    nullptr));
+
+    // XXX Do we need to take spacing into account? When each grapheme cluster
+    // takes its own line, we shouldn't be adding spacings around them.
+    gfxFloat clusterAdvance = 0;
+    for (uint32_t i = ligatureRange.start; i < ligatureRange.end; ++i) {
+        clusterAdvance += GetAdvanceForGlyph(i);
+        if (i + 1 == ligatureRange.end || IsClusterStart(i + 1)) {
+            result = std::max(result, clusterAdvance);
+            clusterAdvance = 0;
+        }
+    }
+
+    return result;
+}
+
 bool
 gfxTextRun::SetLineBreaks(Range aRange,
                           bool aLineBreakBefore, bool aLineBreakAfter,
                           gfxFloat *aAdvanceWidthDelta)
 {
     // Do nothing because our shaping does not currently take linebreaks into
     // account. There is no change in advance width.
     if (aAdvanceWidthDelta) {
--- a/gfx/thebes/gfxTextRun.h
+++ b/gfx/thebes/gfxTextRun.h
@@ -322,16 +322,22 @@ public:
                              PropertyProvider::Spacing*
                                  aSpacing = nullptr) const;
 
     gfxFloat GetAdvanceWidth() const {
         return GetAdvanceWidth(Range(this), nullptr);
     }
 
     /**
+     * Computes the minimum advance width for a substring assuming line
+     * breaking is allowed everywhere.
+     */
+    gfxFloat GetMinAdvanceWidth(Range aRange);
+
+    /**
      * Clear all stored line breaks for the given range (both before and after),
      * and then set the line-break state before aRange.start to aBreakBefore and
      * after the last cluster to aBreakAfter.
      *
      * We require that before and after line breaks be consistent. For clusters
      * i and i+1, we require that if there is a break after cluster i, a break
      * will be specified before cluster i+1. This may be temporarily violated
      * (e.g. after reflowing line L and before reflowing line L+1); to handle
--- a/layout/generic/nsTextFrame.cpp
+++ b/layout/generic/nsTextFrame.cpp
@@ -8544,16 +8544,26 @@ nsTextFrame::AddInlineMinISizeForFlow(gf
     if (start < flowEndInTextRun && textRun->CanBreakLineBefore(start)) {
       aData->OptionallyBreak();
     }
     aData->mCurrentLine += provider.GetFontMetrics()->EmHeight();
     aData->mTrailingWhitespace = 0;
     return;
   }
 
+  // If overflow-wrap is break-word, we can wrap everywhere.
+  if (textStyle->WordCanWrap(this)) {
+    aData->OptionallyBreak();
+    aData->mCurrentLine +=
+      textRun->GetMinAdvanceWidth(Range(start, flowEndInTextRun));
+    aData->mTrailingWhitespace = 0;
+    aData->OptionallyBreak();
+    return;
+  }
+
   AutoTArray<gfxTextRun::HyphenType, BIG_TEXT_NODE_SIZE> hyphBuffer;
   if (hyphenating) {
     if (hyphBuffer.AppendElements(flowEndInTextRun - start, fallible)) {
       provider.GetHyphenationBreaks(Range(start, flowEndInTextRun),
                                     hyphBuffer.Elements());
     } else {
       hyphenating = false;
     }
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -2229,16 +2229,17 @@ pref("network.cookie.maxPerHost", 180);
 pref("network.proxy.autoconfig_url", "");
 // Strip off paths when sending URLs to PAC scripts
 pref("network.proxy.autoconfig_url.include_path", false);
 
 // If we cannot load the PAC file, then try again (doubling from interval_min
 // until we reach interval_max or the PAC file is successfully loaded).
 pref("network.proxy.autoconfig_retry_interval_min", 5);    // 5 seconds
 pref("network.proxy.autoconfig_retry_interval_max", 300);  // 5 minutes
+pref("network.proxy.enable_wpad_over_dhcp", true);
 
 // Use the HSTS preload list by default
 pref("network.stricttransportsecurity.preloadlist", true);
 
 // Use JS mDNS as a fallback
 pref("network.mdns.use_js_fallback", false);
 
 pref("converter.html2txt.structs",          true); // Output structured phrases (strong, em, code, sub, sup, b, i, u)
--- a/netwerk/base/ProxyAutoConfig.cpp
+++ b/netwerk/base/ProxyAutoConfig.cpp
@@ -1038,9 +1038,9 @@ ProxyAutoConfig::MyIPAddress(const JS::C
     return false;
   }
 
   aArgs.rval().setString(dottedDecimalString);
   return true;
 }
 
 } // namespace net
-} // namespace mozilla
+} // namespace mozilla
\ No newline at end of file
--- a/netwerk/base/moz.build
+++ b/netwerk/base/moz.build
@@ -33,16 +33,17 @@ XPIDL_SOURCES += [
     'nsIChannelWithDivertableParentListener.idl',
     'nsIChildChannel.idl',
     'nsIClassifiedChannel.idl',
     'nsIClassOfService.idl',
     'nsIContentSniffer.idl',
     'nsIDashboard.idl',
     'nsIDashboardEventNotifier.idl',
     'nsIDeprecationWarner.idl',
+    'nsIDHCPClient.idl',
     'nsIDivertableChannel.idl',
     'nsIDownloader.idl',
     'nsIEncodedChannel.idl',
     'nsIExternalProtocolHandler.idl',
     'nsIFileStreams.idl',
     'nsIFileURL.idl',
     'nsIForcePendingChannel.idl',
     'nsIFormPOSTActionChannel.idl',
new file mode 100644
--- /dev/null
+++ b/netwerk/base/nsIDHCPClient.idl
@@ -0,0 +1,19 @@
+/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* 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/. */
+
+#include "nsISupports.idl"
+
+/**
+ * This interface allows the proxy code to access the DHCP Options in a platform-specific way
+ */
+[scriptable, uuid(aee75dc0-be1a-46b9-9e0c-31a6899c175c)]
+interface nsIDHCPClient : nsISupports
+{
+
+    /**
+    * returns the DHCP Option designated by the option parameter
+    */
+    ACString getOption(in uint8_t option);
+};
--- a/netwerk/base/nsPACMan.cpp
+++ b/netwerk/base/nsPACMan.cpp
@@ -1,36 +1,41 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* vim:set ts=2 sw=2 sts=2 et cindent: */
 /* 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/. */
 
 #include "nsPACMan.h"
-#include "nsThreadUtils.h"
+
+#include "mozilla/Preferences.h"
+#include "nsContentUtils.h"
+#include "nsIAsyncVerifyRedirectCallback.h"
 #include "nsIAuthPrompt.h"
-#include "nsIPromptFactory.h"
+#include "nsIDHCPClient.h"
 #include "nsIHttpChannel.h"
 #include "nsIPrefService.h"
 #include "nsIPrefBranch.h"
-#include "nsNetUtil.h"
-#include "nsIAsyncVerifyRedirectCallback.h"
+#include "nsIPromptFactory.h"
+#include "nsIProtocolProxyService.h"
 #include "nsISystemProxySettings.h"
-#include "nsContentUtils.h"
-#include "mozilla/Preferences.h"
+#include "nsNetUtil.h"
+#include "nsThreadUtils.h"
 
 //-----------------------------------------------------------------------------
 
 namespace mozilla {
 namespace net {
 
 LazyLogModule gProxyLog("proxy");
 
 #undef LOG
 #define LOG(args) MOZ_LOG(gProxyLog, LogLevel::Debug, args)
+#define MOZ_WPAD_URL "http://wpad/wpad.dat"
+#define MOZ_DHCP_WPAD_OPTION 252
 
 // The PAC thread does evaluations of both PAC files and
 // nsISystemProxySettings because they can both block the calling thread and we
 // don't want that on the main thread
 
 // Check to see if the underlying request was not an error page in the case of
 // a HTTP request.  For other types of channels, just return true.
 static bool
@@ -70,16 +75,36 @@ GetExtraJSContextHeapSize()
 
       extraSize = value;
     }
   }
 
   return extraSize < 0 ? 0 : extraSize;
 }
 
+// Read network proxy type from preference
+// Used to verify that the preference is WPAD in nsPACMan::ConfigureWPAD
+nsresult
+GetNetworkProxyTypeFromPref(int32_t* type)
+{
+  *type = 0;
+  nsCOMPtr<nsIPrefBranch> prefs = do_GetService(NS_PREFSERVICE_CONTRACTID);
+
+  if (!prefs) {
+    LOG(("Failed to get a preference service object"));
+    return NS_ERROR_FACTORY_NOT_REGISTERED;
+  }
+  nsresult rv = prefs->GetIntPref("network.proxy.type", type);
+  if (!NS_SUCCEEDED(rv)) {
+    LOG(("Failed to retrieve network.proxy.type from prefs"));
+    return rv;
+  }
+  LOG(("network.proxy.type pref retrieved: %d\n", *type));
+  return NS_OK;
+}
 
 //-----------------------------------------------------------------------------
 
 // The ExecuteCallback runnable is triggered by
 // nsPACManCallback::OnQueryComplete on the Main thread when its completion is
 // discovered on the pac thread
 
 class ExecuteCallback final : public Runnable
@@ -87,22 +112,22 @@ class ExecuteCallback final : public Run
 public:
   ExecuteCallback(nsPACManCallback* aCallback, nsresult status)
     : Runnable("net::ExecuteCallback")
     , mCallback(aCallback)
     , mStatus(status)
   {
   }
 
-  void SetPACString(const nsCString &pacString)
+  void SetPACString(const nsACString &pacString)
   {
     mPACString = pacString;
   }
 
-  void SetPACURL(const nsCString &pacURL)
+  void SetPACURL(const nsACString &pacURL)
   {
     mPACURL = pacURL;
   }
 
   NS_IMETHOD Run() override
   {
     mCallback->OnQueryComplete(mStatus, mPACString, mPACURL);
     mCallback = nullptr;
@@ -186,55 +211,90 @@ public:
   {
     MOZ_ASSERT(NS_IsMainThread(), "wrong thread");
     mPACMan->mLoader = nullptr;
     mPACMan->PostProcessPendingQ();
     return NS_OK;
   }
 
 private:
-    RefPtr<nsPACMan> mPACMan;
+  RefPtr<nsPACMan> mPACMan;
+};
+
+
+//-----------------------------------------------------------------------------
+
+// ConfigureWPADComplete allows the PAC thread to tell the main thread that
+// the URL for the PAC file has been found
+class ConfigureWPADComplete final : public Runnable
+{
+public:
+  ConfigureWPADComplete(nsPACMan *aPACMan, const nsACString &aPACURISpec)
+    : Runnable("net::ConfigureWPADComplete"),
+     mPACMan(aPACMan),
+     mPACURISpec(aPACURISpec)
+  {
+  }
+
+  NS_IMETHOD Run() override
+  {
+    MOZ_ASSERT(NS_IsMainThread(), "wrong thread");
+    mPACMan->AssignPACURISpec(mPACURISpec);
+    mPACMan->ContinueLoadingAfterPACUriKnown();
+    return NS_OK;
+  }
+
+private:
+  RefPtr<nsPACMan> mPACMan;
+  nsCString mPACURISpec;
 };
 
 //-----------------------------------------------------------------------------
 
 // ExecutePACThreadAction is used to proxy actions from the main
-// thread onto the PAC thread. There are 3 options: process the queue,
-// cancel the queue, and setup the javascript context with a new PAC file
+// thread onto the PAC thread. There are 4 options: process the queue,
+// cancel the queue, query DHCP for the PAC option
+// and setup the javascript context with a new PAC file
 
 class ExecutePACThreadAction final : public Runnable
 {
 public:
   // by default we just process the queue
   explicit ExecutePACThreadAction(nsPACMan* aPACMan)
     : Runnable("net::ExecutePACThreadAction")
     , mPACMan(aPACMan)
     , mCancel(false)
     , mCancelStatus(NS_OK)
     , mSetupPAC(false)
     , mExtraHeapSize(0)
+    , mConfigureWPAD(false)
   { }
 
   void CancelQueue (nsresult status)
   {
     mCancel = true;
     mCancelStatus = status;
   }
 
   void SetupPAC (const char *text,
                  uint32_t datalen,
-                 nsCString &pacURI,
+                 const nsACString &pacURI,
                  uint32_t extraHeapSize)
   {
     mSetupPAC = true;
     mSetupPACData.Assign(text, datalen);
     mSetupPACURI = pacURI;
     mExtraHeapSize = extraHeapSize;
   }
 
+  void ConfigureWPAD()
+  {
+    mConfigureWPAD = true;
+  }
+
   NS_IMETHOD Run() override
   {
     MOZ_ASSERT(!NS_IsMainThread(), "wrong thread");
     if (mCancel) {
       mPACMan->CancelPendingQ(mCancelStatus);
       mCancel = false;
       return NS_OK;
     }
@@ -249,30 +309,40 @@ public:
                          mExtraHeapSize,
                          target);
 
       RefPtr<PACLoadComplete> runnable = new PACLoadComplete(mPACMan);
       mPACMan->Dispatch(runnable.forget());
       return NS_OK;
     }
 
+    if (mConfigureWPAD) {
+      nsAutoCString spec;
+      mConfigureWPAD = false;
+      mPACMan->ConfigureWPAD(spec);
+      RefPtr<ConfigureWPADComplete> runnable = new ConfigureWPADComplete(mPACMan, spec);
+      mPACMan->Dispatch(runnable.forget());
+      return NS_OK;
+    }
+
     mPACMan->ProcessPendingQ();
     return NS_OK;
   }
 
 private:
   RefPtr<nsPACMan> mPACMan;
 
   bool      mCancel;
   nsresult  mCancelStatus;
 
   bool                 mSetupPAC;
   uint32_t             mExtraHeapSize;
   nsCString            mSetupPACData;
   nsCString            mSetupPACURI;
+  bool                 mConfigureWPAD;
 };
 
 //-----------------------------------------------------------------------------
 
 PendingPACQuery::PendingPACQuery(nsPACMan* pacMan,
                                  nsIURI* uri,
                                  nsPACManCallback* callback,
                                  bool mainThreadResponse)
@@ -284,30 +354,30 @@ PendingPACQuery::PendingPACQuery(nsPACMa
 {
   uri->GetAsciiSpec(mSpec);
   uri->GetAsciiHost(mHost);
   uri->GetScheme(mScheme);
   uri->GetPort(&mPort);
 }
 
 void
-PendingPACQuery::Complete(nsresult status, const nsCString &pacString)
+PendingPACQuery::Complete(nsresult status, const nsACString &pacString)
 {
   if (!mCallback)
     return;
   RefPtr<ExecuteCallback> runnable = new ExecuteCallback(mCallback, status);
   runnable->SetPACString(pacString);
   if (mOnMainThreadOnly)
     mPACMan->Dispatch(runnable.forget());
   else
     runnable->Run();
 }
 
 void
-PendingPACQuery::UseAlternatePACFile(const nsCString &pacURL)
+PendingPACQuery::UseAlternatePACFile(const nsACString &pacURL)
 {
   if (!mCallback)
     return;
 
   RefPtr<ExecuteCallback> runnable = new ExecuteCallback(mCallback, NS_OK);
   runnable->SetPACURL(pacURL);
   if (mOnMainThreadOnly)
     mPACMan->Dispatch(runnable.forget());
@@ -332,16 +402,19 @@ static const char *kPACIncludePath =
   "network.proxy.autoconfig_url.include_path";
 
 nsPACMan::nsPACMan(nsIEventTarget *mainThreadEventTarget)
   : NeckoTargetHolder(mainThreadEventTarget)
   , mLoadPending(false)
   , mShutdown(false)
   , mLoadFailureCount(0)
   , mInProgress(false)
+  , mAutoDetect(false)
+  , mWPADOverDHCPEnabled(false)
+  , mProxyConfigType(0)
 {
   MOZ_ASSERT(NS_IsMainThread(), "pacman must be created on main thread");
   if (!sThreadLocalSetup){
     sThreadLocalSetup = true;
     PR_NewThreadPrivateIndex(&sThreadLocalIndex, nullptr);
   }
   mPAC.SetThreadLocalIndex(sThreadLocalIndex);
   mIncludePath = Preferences::GetBool(kPACIncludePath, false);
@@ -349,16 +422,17 @@ nsPACMan::nsPACMan(nsIEventTarget *mainT
 
 nsPACMan::~nsPACMan()
 {
   MOZ_ASSERT(mShutdown, "Shutdown must be called before dtor.");
 
   if (mPACThread) {
     if (NS_IsMainThread()) {
       mPACThread->Shutdown();
+      mPACThread = nullptr;
     }
     else {
       RefPtr<ShutdownThread> runnable = new ShutdownThread(mPACThread);
       Dispatch(runnable.forget());
     }
   }
 
   NS_ASSERTION(mLoader == nullptr, "pac man not shutdown properly");
@@ -391,17 +465,17 @@ nsPACMan::AsyncGetProxyForURI(nsIURI *ur
   if (mShutdown)
     return NS_ERROR_NOT_AVAILABLE;
 
   // Maybe Reload PAC
   if (!mPACURISpec.IsEmpty() && !mScheduledReload.IsNull() &&
       TimeStamp::Now() > mScheduledReload) {
     LOG(("nsPACMan::AsyncGetProxyForURI reload as scheduled\n"));
 
-    LoadPACFromURI(EmptyCString());
+    LoadPACFromURI(mAutoDetect? EmptyCString(): mPACURISpec);
   }
 
   RefPtr<PendingPACQuery> query =
     new PendingPACQuery(this, uri, callback, mainThreadResponse);
 
   if (IsPACURI(uri)) {
     // deal with this directly instead of queueing it
     query->Complete(NS_OK, EmptyCString());
@@ -424,26 +498,25 @@ nsPACMan::PostQuery(PendingPACQuery *que
   // add a reference to the query while it is in the pending list
   RefPtr<PendingPACQuery> addref(query);
   mPendingQ.insertBack(addref.forget().take());
   ProcessPendingQ();
   return NS_OK;
 }
 
 nsresult
-nsPACMan::LoadPACFromURI(const nsCString &spec)
+nsPACMan::LoadPACFromURI(const nsACString &aSpec)
 {
   NS_ENSURE_STATE(!mShutdown);
-  NS_ENSURE_ARG(!spec.IsEmpty() || !mPACURISpec.IsEmpty());
 
   nsCOMPtr<nsIStreamLoader> loader =
       do_CreateInstance(NS_STREAMLOADER_CONTRACTID);
   NS_ENSURE_STATE(loader);
 
-  LOG(("nsPACMan::LoadPACFromURI %s\n", spec.get()));
+  LOG(("nsPACMan::LoadPACFromURI aSpec: %s\n", aSpec.BeginReading()));
   // Since we might get called from nsProtocolProxyService::Init, we need to
   // post an event back to the main thread before we try to use the IO service.
   //
   // But, we need to flag ourselves as loading, so that we queue up any PAC
   // queries the enter between now and when we actually load the PAC file.
 
   if (!mLoadPending) {
     nsCOMPtr<nsIRunnable> runnable =
@@ -454,40 +527,112 @@ nsPACMan::LoadPACFromURI(const nsCString
     if (NS_FAILED(rv))
       return rv;
     mLoadPending = true;
   }
 
   CancelExistingLoad();
 
   mLoader = loader;
-  if (!spec.IsEmpty()) {
-    mPACURISpec = spec;
-    mPACURIRedirectSpec.Truncate();
-    mNormalPACURISpec.Truncate(); // set at load time
-    mLoadFailureCount = 0;  // reset
-  }
+  mPACURIRedirectSpec.Truncate();
+  mNormalPACURISpec.Truncate(); // set at load time
+  mLoadFailureCount = 0;  // reset
+  mAutoDetect = aSpec.IsEmpty();
+  mPACURISpec.Assign(aSpec);
 
   // reset to Null
   mScheduledReload = TimeStamp();
   return NS_OK;
 }
 
+nsresult
+nsPACMan::GetPACFromDHCP(nsACString &aSpec)
+{
+  MOZ_ASSERT(!NS_IsMainThread(), "wrong thread");
+  if (!mDHCPClient) {
+    LOG(("nsPACMan::GetPACFromDHCP DHCP option %d query failed because there is no DHCP client available\n", MOZ_DHCP_WPAD_OPTION));
+    return NS_ERROR_NOT_IMPLEMENTED;
+  }
+  nsresult rv;
+  rv = mDHCPClient->GetOption(MOZ_DHCP_WPAD_OPTION, aSpec);
+  if (NS_FAILED(rv)) {
+    LOG(("nsPACMan::GetPACFromDHCP DHCP option %d query failed with result %d\n", MOZ_DHCP_WPAD_OPTION, (uint32_t)rv));
+  } else {
+    LOG(("nsPACMan::GetPACFromDHCP DHCP option %d query succeeded, finding PAC URL %s\n", MOZ_DHCP_WPAD_OPTION, aSpec.BeginReading()));
+  }
+  return rv;
+}
+
+nsresult
+nsPACMan::ConfigureWPAD(nsACString &aSpec)
+{
+  MOZ_ASSERT(!NS_IsMainThread(), "wrong thread");
+
+  MOZ_RELEASE_ASSERT(mProxyConfigType == nsIProtocolProxyService::PROXYCONFIG_WPAD,
+            "WPAD is being executed when not selected by user");
+
+  aSpec.Truncate();
+  if (mWPADOverDHCPEnabled) {
+    GetPACFromDHCP(aSpec);
+  }
+
+  if (aSpec.IsEmpty()) {
+    // We diverge from the WPAD spec here in that we don't walk the
+    // hosts's FQDN, stripping components until we hit a TLD.  Doing so
+    // is dangerous in the face of an incomplete list of TLDs, and TLDs
+    // get added over time.  We could consider doing only a single
+    // substitution of the first component, if that proves to help
+    // compatibility.
+    aSpec.AssignLiteral(MOZ_WPAD_URL);
+  }
+  return NS_OK;
+}
+
+void
+nsPACMan::AssignPACURISpec(const nsACString &aSpec)
+{
+  MOZ_ASSERT(NS_IsMainThread(), "wrong thread");
+  mPACURISpec.Assign(aSpec);
+}
+
 void
 nsPACMan::StartLoading()
 {
   MOZ_ASSERT(NS_IsMainThread(), "wrong thread");
   mLoadPending = false;
 
   // CancelExistingLoad was called...
   if (!mLoader) {
     PostCancelPendingQ(NS_ERROR_ABORT);
     return;
   }
 
+  if (mAutoDetect) {
+    GetNetworkProxyTypeFromPref(&mProxyConfigType);
+    RefPtr<ExecutePACThreadAction> wpadConfigurer =
+      new ExecutePACThreadAction(this);
+    wpadConfigurer->ConfigureWPAD();
+    if (mPACThread) {
+      mPACThread->Dispatch(wpadConfigurer, nsIEventTarget::DISPATCH_NORMAL);
+    }
+  } else {
+    ContinueLoadingAfterPACUriKnown();
+  }
+}
+
+void
+nsPACMan::ContinueLoadingAfterPACUriKnown()
+{
+  MOZ_ASSERT(NS_IsMainThread(), "wrong thread");
+
+  // CancelExistingLoad was called...
+  if (!mLoader) {
+    PostCancelPendingQ(NS_ERROR_ABORT);
+    return;
+  }
   if (NS_SUCCEEDED(mLoader->Init(this, nullptr))) {
     // Always hit the origin server when loading PAC.
     nsCOMPtr<nsIIOService> ios = do_GetIOService();
     if (ios) {
       nsCOMPtr<nsIChannel> channel;
       nsCOMPtr<nsIURI> pacURI;
       NS_NewURI(getter_AddRefs(pacURI), mPACURISpec);
 
@@ -795,17 +940,18 @@ nsPACMan::AsyncOnChannelRedirect(nsIChan
   callback->OnRedirectVerifyCallback(NS_OK);
   return NS_OK;
 }
 
 nsresult
 nsPACMan::Init(nsISystemProxySettings *systemProxySettings)
 {
   mSystemProxySettings = systemProxySettings;
+  mDHCPClient = do_GetService(NS_DHCPCLIENT_CONTRACTID);
 
   nsresult rv =
     NS_NewNamedThread("ProxyResolution", getter_AddRefs(mPACThread));
 
   return rv;
 }
 
 } // namespace net
-} // namespace mozilla
+} // namespace mozilla
\ No newline at end of file
--- a/netwerk/base/nsPACMan.h
+++ b/netwerk/base/nsPACMan.h
@@ -2,33 +2,34 @@
 /* vim:set ts=2 sw=2 sts=2 et cindent: */
 /* 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/. */
 
 #ifndef nsPACMan_h__
 #define nsPACMan_h__
 
-#include "nsIStreamLoader.h"
+#include "mozilla/Atomics.h"
+#include "mozilla/Attributes.h"
+#include "mozilla/LinkedList.h"
+#include "mozilla/Logging.h"
+#include "mozilla/net/NeckoTargetHolder.h"
+#include "mozilla/TimeStamp.h"
+#include "nsAutoPtr.h"
+#include "nsCOMPtr.h"
+#include "nsIChannelEventSink.h"
 #include "nsIInterfaceRequestor.h"
-#include "nsIChannelEventSink.h"
-#include "ProxyAutoConfig.h"
+#include "nsIStreamLoader.h"
 #include "nsThreadUtils.h"
 #include "nsIURI.h"
-#include "nsCOMPtr.h"
 #include "nsString.h"
-#include "mozilla/Attributes.h"
-#include "mozilla/LinkedList.h"
-#include "nsAutoPtr.h"
-#include "mozilla/TimeStamp.h"
-#include "mozilla/Logging.h"
-#include "mozilla/Atomics.h"
-#include "mozilla/net/NeckoTargetHolder.h"
+#include "ProxyAutoConfig.h"
 
 class nsISystemProxySettings;
+class nsIDHCPClient;
 class nsIThread;
 
 namespace mozilla {
 namespace net {
 
 class nsPACMan;
 class WaitForThreadShutdown;
 
@@ -47,31 +48,31 @@ public:
    *        This parameter holds the value of the PAC string.  It is empty when
    *        status is a failure code.
    * @param newPACURL
    *        This parameter holds the URL of a new PAC file that should be loaded
    *        before the query is evaluated again. At least one of pacString and
    *        newPACURL should be 0 length.
    */
   virtual void OnQueryComplete(nsresult status,
-                               const nsCString &pacString,
-                               const nsCString &newPACURL) = 0;
+                               const nsACString &pacString,
+                               const nsACString &newPACURL) = 0;
 };
 
 class PendingPACQuery final : public Runnable,
                               public LinkedListElement<PendingPACQuery>
 {
 public:
   PendingPACQuery(nsPACMan *pacMan, nsIURI *uri,
                   nsPACManCallback *callback,
                   bool mainThreadResponse);
 
   // can be called from either thread
-  void Complete(nsresult status, const nsCString &pacString);
-  void UseAlternatePACFile(const nsCString &pacURL);
+  void Complete(nsresult status, const nsACString &pacString);
+  void UseAlternatePACFile(const nsACString &pacURL);
 
   nsCString                  mSpec;
   nsCString                  mScheme;
   nsCString                  mHost;
   int32_t                    mPort;
 
   NS_IMETHOD Run(void) override;     /* Runnable */
 
@@ -122,21 +123,21 @@ public:
                                nsPACManCallback *callback,
                                bool mustCallbackOnMainThread);
 
   /**
    * This method may be called to reload the PAC file.  While we are loading
    * the PAC file, any asynchronous PAC queries will be queued up to be
    * processed once the PAC file finishes loading.
    *
-   * @param pacSpec
+   * @param aSpec
    *        The non normalized uri spec of this URI used for comparison with
    *        system proxy settings to determine if the PAC uri has changed.
    */
-  nsresult LoadPACFromURI(const nsCString &pacSpec);
+  nsresult LoadPACFromURI(const nsACString &aSpec);
 
   /**
    * Returns true if we are currently loading the PAC file.
    */
   bool IsLoading() { return mLoader != nullptr; }
 
   /**
    * Returns true if the given URI matches the URI of our PAC file or the
@@ -161,71 +162,91 @@ public:
     nsresult rv = uri->GetSpec(tmp);
     if (NS_FAILED(rv)) {
       return false;
     }
 
     return IsPACURI(tmp);
   }
 
+  bool IsUsingWPAD() {
+    return mAutoDetect;
+  }
+
   nsresult Init(nsISystemProxySettings *);
   static nsPACMan *sInstance;
 
   // PAC thread operations only
   void ProcessPendingQ();
   void CancelPendingQ(nsresult);
 
+  void SetWPADOverDHCPEnabled(bool aValue) { mWPADOverDHCPEnabled = aValue; }
+
 private:
   NS_DECL_NSISTREAMLOADEROBSERVER
   NS_DECL_NSIINTERFACEREQUESTOR
   NS_DECL_NSICHANNELEVENTSINK
 
   friend class PendingPACQuery;
   friend class PACLoadComplete;
+  friend class ConfigureWPADComplete;
   friend class ExecutePACThreadAction;
   friend class WaitForThreadShutdown;
+  friend class TestPACMan;
 
   ~nsPACMan();
 
   /**
    * Cancel any existing load if any.
    */
   void CancelExistingLoad();
 
   /**
    * Start loading the PAC file.
    */
   void StartLoading();
 
   /**
+   * Continue loading the PAC file.
+   */
+  void ContinueLoadingAfterPACUriKnown();
+
+  /**
    * Reload the PAC file if there is reason to.
    */
   void MaybeReloadPAC();
 
   /**
    * Called when we fail to load the PAC file.
    */
   void OnLoadFailure();
 
   /**
    * PostQuery() only runs on the PAC thread and it is used to
    * place a pendingPACQuery into the queue and potentially
    * execute the queue if it was otherwise empty
    */
   nsresult PostQuery(PendingPACQuery *query);
 
+  // Having found the PAC URI on the PAC thread, copy it to a string which
+  // can be altered on the main thread.
+  void AssignPACURISpec(const nsACString &aSpec);
+
   // PAC thread operations only
   void PostProcessPendingQ();
   void PostCancelPendingQ(nsresult);
   bool ProcessPending();
+  nsresult GetPACFromDHCP(nsACString &aSpec);
+  nsresult ConfigureWPAD(nsACString &aSpec);
 
 private:
   ProxyAutoConfig mPAC;
   nsCOMPtr<nsIThread>           mPACThread;
   nsCOMPtr<nsISystemProxySettings> mSystemProxySettings;
+  nsCOMPtr<nsIDHCPClient> mDHCPClient;
 
   LinkedList<PendingPACQuery> mPendingQ; /* pac thread only */
 
   // These specs are not nsIURI so that they can be used off the main thread.
   // The non-normalized versions are directly from the configuration, the
   // normalized version has been extracted from an nsIURI
   nsCString                    mPACURISpec;
   nsCString                    mPACURIRedirectSpec;
@@ -234,16 +255,19 @@ private:
   nsCOMPtr<nsIStreamLoader>    mLoader;
   bool                         mLoadPending;
   Atomic<bool, Relaxed>        mShutdown;
   TimeStamp                    mScheduledReload;
   uint32_t                     mLoadFailureCount;
 
   bool                         mInProgress;
   bool                         mIncludePath;
+  bool                         mAutoDetect;
+  bool                         mWPADOverDHCPEnabled;
+  int32_t                      mProxyConfigType;
 };
 
 extern LazyLogModule gProxyLog;
 
 } // namespace net
 } // namespace mozilla
 
-#endif  // nsPACMan_h__
+#endif  // nsPACMan_h__
\ No newline at end of file
--- a/netwerk/base/nsProtocolProxyService.cpp
+++ b/netwerk/base/nsProtocolProxyService.cpp
@@ -57,17 +57,16 @@ namespace net {
 #undef LOG
 #define LOG(args) MOZ_LOG(gProxyLog, LogLevel::Debug, args)
 
 //----------------------------------------------------------------------------
 
 #define PROXY_PREF_BRANCH  "network.proxy"
 #define PROXY_PREF(x)      PROXY_PREF_BRANCH "." x
 
-#define WPAD_URL "http://wpad/wpad.dat"
 
 //----------------------------------------------------------------------------
 
 // This structure is intended to be allocated on the stack
 struct nsProtocolInfo {
     nsAutoCString scheme;
     uint32_t flags;
     int32_t defaultPort;
@@ -306,18 +305,18 @@ public:
         return rv;
     }
 
 private:
 
     // Called asynchronously, so we do not need to post another PLEvent
     // before calling DoCallback.
     void OnQueryComplete(nsresult status,
-                         const nsCString &pacString,
-                         const nsCString &newPACURL) override
+                         const nsACString &pacString,
+                         const nsACString &newPACURL) override
     {
         // If we've already called DoCallback then, nothing more to do.
         if (!mCallback)
             return;
 
         // Provided we haven't been canceled...
         if (mStatus == NS_OK) {
             mStatus = status;
@@ -816,16 +815,17 @@ nsProtocolProxyService::nsProtocolProxyS
     , mProxyConfig(PROXYCONFIG_DIRECT)
     , mHTTPProxyPort(-1)
     , mFTPProxyPort(-1)
     , mHTTPSProxyPort(-1)
     , mSOCKSProxyPort(-1)
     , mSOCKSProxyVersion(4)
     , mSOCKSProxyRemoteDNS(false)
     , mProxyOverTLS(true)
+    , mWPADOverDHCPEnabled(false)
     , mPACMan(nullptr)
     , mSessionStart(PR_Now())
     , mFailedProxyTimeout(30 * 60) // 30 minute default
     , mIsShutdown(false)
 {
 }
 
 nsProtocolProxyService::~nsProtocolProxyService()
@@ -1082,16 +1082,22 @@ nsProtocolProxyService::PrefsChanged(nsI
         proxy_GetBoolPref(prefBranch, PROXY_PREF("socks_remote_dns"),
                           mSOCKSProxyRemoteDNS);
 
     if (!pref || !strcmp(pref, PROXY_PREF("proxy_over_tls"))) {
         proxy_GetBoolPref(prefBranch, PROXY_PREF("proxy_over_tls"),
                           mProxyOverTLS);
     }
 
+    if (!pref || !strcmp(pref, PROXY_PREF("enable_wpad_over_dhcp"))) {
+        proxy_GetBoolPref(prefBranch, PROXY_PREF("enable_wpad_over_dhcp"),
+                          mWPADOverDHCPEnabled);
+        reloadPAC = reloadPAC || mProxyConfig == PROXYCONFIG_WPAD;
+    }
+
     if (!pref || !strcmp(pref, PROXY_PREF("failover_timeout")))
         proxy_GetIntPref(prefBranch, PROXY_PREF("failover_timeout"),
                          mFailedProxyTimeout);
 
     if (!pref || !strcmp(pref, PROXY_PREF("no_proxies_on"))) {
         rv = prefBranch->GetCharPref(PROXY_PREF("no_proxies_on"), tempString);
         if (NS_SUCCEEDED(rv))
             LoadHostFilters(tempString);
@@ -1114,29 +1120,25 @@ nsProtocolProxyService::PrefsChanged(nsI
         tempString.Truncate();
         if (mProxyConfig == PROXYCONFIG_PAC) {
             prefBranch->GetCharPref(PROXY_PREF("autoconfig_url"), tempString);
             if (mPACMan && !mPACMan->IsPACURI(tempString)) {
                 LOG(("PAC Thread URI Changed - Reset Pac Thread"));
                 ResetPACThread();
             }
         } else if (mProxyConfig == PROXYCONFIG_WPAD) {
-            // We diverge from the WPAD spec here in that we don't walk the
-            // hosts's FQDN, stripping components until we hit a TLD.  Doing so
-            // is dangerous in the face of an incomplete list of TLDs, and TLDs
-            // get added over time.  We could consider doing only a single
-            // substitution of the first component, if that proves to help
-            // compatibility.
-            tempString.AssignLiteral(WPAD_URL);
+            LOG(("Auto-detecting proxy - Reset Pac Thread"));
+            ResetPACThread();
         } else if (mSystemProxySettings) {
             // Get System Proxy settings if available
             AsyncConfigureFromPAC(false, false);
         }
-        if (!tempString.IsEmpty())
+        if (!tempString.IsEmpty() || mProxyConfig == PROXYCONFIG_WPAD) {
             ConfigureFromPAC(tempString, false);
+        }
     }
 }
 
 bool
 nsProtocolProxyService::CanUseProxy(nsIURI *aURI, int32_t defaultPort)
 {
     if (mHostFiltersArray.Length() == 0 && !mFilterLocalHosts)
         return true;
@@ -1477,17 +1479,16 @@ nsProtocolProxyService::SetupPACThread(n
     if (mSystemProxySettings &&
         NS_SUCCEEDED(mSystemProxySettings->GetMainThreadOnly(&mainThreadOnly)) &&
         !mainThreadOnly) {
         rv = mPACMan->Init(mSystemProxySettings);
     }
     else {
         rv = mPACMan->Init(nullptr);
     }
-
     if (NS_FAILED(rv)) {
         mPACMan->Shutdown();
         mPACMan = nullptr;
     }
     return rv;
 }
 
 nsresult
@@ -1503,21 +1504,25 @@ nsProtocolProxyService::ResetPACThread()
 
 nsresult
 nsProtocolProxyService::ConfigureFromPAC(const nsCString &spec,
                                          bool forceReload)
 {
     nsresult rv = SetupPACThread();
     NS_ENSURE_SUCCESS(rv, rv);
 
-    if (mPACMan->IsPACURI(spec) && !forceReload)
+    bool autodetect = spec.IsEmpty();
+    if (!forceReload && ((!autodetect && mPACMan->IsPACURI(spec)) ||
+                         (autodetect && mPACMan->IsUsingWPAD()))) {
         return NS_OK;
+    }
 
     mFailedProxies.Clear();
 
+    mPACMan->SetWPADOverDHCPEnabled(mWPADOverDHCPEnabled);
     return mPACMan->LoadPACFromURI(spec);
 }
 
 void
 nsProtocolProxyService::ProcessPACString(const nsCString &pacString,
                                          uint32_t aResolveFlags,
                                          nsIProxyInfo **result)
 {
@@ -1560,27 +1565,25 @@ nsProtocolProxyService::ReloadPAC()
     int32_t type;
     nsresult rv = prefs->GetIntPref(PROXY_PREF("type"), &type);
     if (NS_FAILED(rv))
         return NS_OK;
 
     nsAutoCString pacSpec;
     if (type == PROXYCONFIG_PAC)
         prefs->GetCharPref(PROXY_PREF("autoconfig_url"), pacSpec);
-    else if (type == PROXYCONFIG_WPAD)
-        pacSpec.AssignLiteral(WPAD_URL);
     else if (type == PROXYCONFIG_SYSTEM) {
         if (mSystemProxySettings) {
             AsyncConfigureFromPAC(true, true);
         } else {
             ResetPACThread();
         }
     }
 
-    if (!pacSpec.IsEmpty())
+    if (!pacSpec.IsEmpty() || type == PROXYCONFIG_WPAD)
         ConfigureFromPAC(pacSpec, true);
     return NS_OK;
 }
 
 // When sync interface is removed this can go away too
 // The nsPACManCallback portion of this implementation should be run
 // off the main thread, because it uses a condvar for signaling and
 // the main thread is blocking on that condvar -
@@ -1594,18 +1597,18 @@ class nsAsyncBridgeRequest final  : publ
         : mMutex("nsDeprecatedCallback")
         , mCondVar(mMutex, "nsDeprecatedCallback")
         , mStatus(NS_OK)
         , mCompleted(false)
     {
     }
 
     void OnQueryComplete(nsresult status,
-                         const nsCString &pacString,
-                         const nsCString &newPACURL) override
+                          const nsACString &pacString,
+                          const nsACString &newPACURL) override
     {
         MutexAutoLock lock(mMutex);
         mCompleted = true;
         mStatus = status;
         mPACString = pacString;
         mPACURL = newPACURL;
         mCondVar.Notify();
     }
@@ -2541,9 +2544,9 @@ nsProtocolProxyService::PruneProxyInfo(c
         NS_RELEASE(head);
 
     *list = head;  // Transfer ownership
 
     LOG(("nsProtocolProxyService::PruneProxyInfo LEAVE list=%p", *list));
 }
 
 } // namespace net
-} // namespace mozilla
+} // namespace mozilla
\ No newline at end of file
--- a/netwerk/base/nsProtocolProxyService.h
+++ b/netwerk/base/nsProtocolProxyService.h
@@ -395,16 +395,17 @@ protected:
 
     // mSOCKSProxyTarget could be a host, a domain socket path,
     // or a named-pipe name.
     nsCString                    mSOCKSProxyTarget;
     int32_t                      mSOCKSProxyPort;
     int32_t                      mSOCKSProxyVersion;
     bool                         mSOCKSProxyRemoteDNS;
     bool                         mProxyOverTLS;
+    bool                         mWPADOverDHCPEnabled;
 
     RefPtr<nsPACMan>           mPACMan;  // non-null if we are using PAC
     nsCOMPtr<nsISystemProxySettings> mSystemProxySettings;
 
     PRTime                       mSessionStart;
     nsFailedProxyTable           mFailedProxies;
     int32_t                      mFailedProxyTimeout;
 
@@ -418,9 +419,9 @@ private:
     nsCOMPtr<nsIThread>           mProxySettingThread;
 };
 
 NS_DEFINE_STATIC_IID_ACCESSOR(nsProtocolProxyService, NS_PROTOCOL_PROXY_SERVICE_IMPL_CID)
 
 } // namespace net
 } // namespace mozilla
 
-#endif // !nsProtocolProxyService_h__
+#endif // !nsProtocolProxyService_h__
\ No newline at end of file
--- a/netwerk/build/nsNetCID.h
+++ b/netwerk/build/nsNetCID.h
@@ -330,16 +330,20 @@
 // component implementing nsIIncrementalDownload.
 #define NS_INCREMENTALDOWNLOAD_CONTRACTID \
     "@mozilla.org/network/incremental-download;1"
 
 // component implementing nsISystemProxySettings.
 #define NS_SYSTEMPROXYSETTINGS_CONTRACTID \
     "@mozilla.org/system-proxy-settings;1"
 
+// component implementing nsIDHCPClient.
+#define NS_DHCPCLIENT_CONTRACTID \
+    "@mozilla.org/dhcp-client;1"
+
 // service implementing nsIStreamTransportService
 #define NS_STREAMTRANSPORTSERVICE_CONTRACTID \
     "@mozilla.org/network/stream-transport-service;1"
 #define NS_STREAMTRANSPORTSERVICE_CID \
 { /* 0885d4f8-f7b8-4cda-902e-94ba38bc256e */         \
     0x0885d4f8,                                      \
     0xf7b8,                                          \
     0x4cda,                                          \
new file mode 100644
--- /dev/null
+++ b/netwerk/test/gtest/TestPACMan.cpp
@@ -0,0 +1,282 @@
+#include "gtest/gtest.h"
+#include "nsServiceManagerUtils.h"
+#include "../../../xpcom/threads/nsThreadManager.h"
+#include "nsIDHCPClient.h"
+#include "nsIPrefBranch.h"
+#include "nsComponentManager.h"
+#include "mozilla/ModuleUtils.h"
+#include "../../base/nsPACMan.h"
+
+
+#define TEST_WPAD_DHCP_OPTION "http://pac/pac.dat"
+#define TEST_ASSIGNED_PAC_URL "http://assignedpac/pac.dat"
+#define WPAD_PREF 4
+#define NETWORK_PROXY_TYPE_PREF_NAME "network.proxy.type"
+#define GETTING_NETWORK_PROXY_TYPE_FAILED -1
+
+nsCString WPADOptionResult;
+
+namespace mozilla {
+namespace net {
+
+nsresult
+SetNetworkProxyType(int32_t pref)
+{
+  nsCOMPtr<nsIPrefBranch> prefs = do_GetService(NS_PREFSERVICE_CONTRACTID);
+
+  if (!prefs) {
+    return NS_ERROR_FACTORY_NOT_REGISTERED;
+  }
+  return prefs->SetIntPref(NETWORK_PROXY_TYPE_PREF_NAME, pref);
+}
+
+nsresult
+GetNetworkProxyType(int32_t* pref)
+{
+  nsCOMPtr<nsIPrefBranch> prefs = do_GetService(NS_PREFSERVICE_CONTRACTID);
+
+  if (!prefs) {
+    return NS_ERROR_FACTORY_NOT_REGISTERED;
+  }
+  return prefs->GetIntPref(NETWORK_PROXY_TYPE_PREF_NAME, pref);
+}
+
+class nsTestDHCPClient final : public nsIDHCPClient
+{
+public:
+  NS_DECL_THREADSAFE_ISUPPORTS
+  NS_DECL_NSIDHCPCLIENT
+
+  nsTestDHCPClient() {};
+  nsresult Init(){
+    return NS_OK;
+  };
+
+private:
+   ~nsTestDHCPClient() {};
+};
+
+NS_IMETHODIMP
+nsTestDHCPClient::GetOption(uint8_t option, nsACString & _retval)
+{
+  _retval.Assign(WPADOptionResult);
+  return NS_OK;
+}
+
+NS_IMPL_ISUPPORTS(nsTestDHCPClient, nsIDHCPClient)
+
+#define NS_TESTDHCPCLIENTSERVICE_CID  /* {FEBF1D69-4D7D-4891-9524-045AD18B5592} */\
+    { 0xFEBF1D69, 0x4D7D, 0x4891, \
+         {0x95, 0x24, 0x04, 0x5a, 0xd1, 0x8b, 0x55, 0x92 } }
+
+NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsTestDHCPClient, Init)
+NS_DEFINE_NAMED_CID(NS_TESTDHCPCLIENTSERVICE_CID);
+
+static const mozilla::Module::CIDEntry kSysDHCPClientCIDs[] = {
+  { &kNS_TESTDHCPCLIENTSERVICE_CID, false, nullptr, nsTestDHCPClientConstructor },
+  { nullptr }
+};
+
+static const mozilla::Module::ContractIDEntry kSysDHCPClientContracts[] = {
+  { NS_DHCPCLIENT_CONTRACTID, &kNS_TESTDHCPCLIENTSERVICE_CID },
+  { nullptr }
+};
+
+static const mozilla::Module kSysDHCPClientModule = {
+  mozilla::Module::kVersion,
+  kSysDHCPClientCIDs,
+  kSysDHCPClientContracts
+};
+
+NSMODULE_DEFN(nsDHCPClientModule) = &kSysDHCPClientModule;
+
+void
+SetOptionResult(const char* result)
+{
+  WPADOptionResult.Assign(result);
+}
+
+class ProcessPendingEventsAction final : public Runnable
+{
+public:
+  ProcessPendingEventsAction() : Runnable("net::ProcessPendingEventsAction") { }
+
+  NS_IMETHOD
+  Run() override
+  {
+    if (NS_HasPendingEvents(nullptr)) {
+      NS_WARNING("Found pending requests on PAC thread");
+      nsresult rv;
+      rv = NS_ProcessPendingEvents(nullptr);
+      EXPECT_EQ(NS_OK, rv);
+    }
+    NS_WARNING("No pending requests on PAC thread");
+    return NS_OK;
+  }
+};
+
+class TestPACMan : public ::testing::Test {
+  protected:
+
+    RefPtr<nsPACMan> mPACMan;
+
+    void
+    ProcessAllEvents()
+    {
+      ProcessPendingEventsOnPACThread();
+      nsresult rv;
+      while (NS_HasPendingEvents(nullptr)) {
+        NS_WARNING("Pending events on main thread");
+        rv = NS_ProcessPendingEvents(nullptr);
+        ASSERT_EQ(NS_OK, rv);
+        ProcessPendingEventsOnPACThread();
+      }
+      NS_WARNING("End of pending events on main thread");
+    }
+
+
+    // This method is used to ensure that all pending events on the main thread
+    // and the Proxy thread are processsed.
+    // It iterates over ProcessAllEvents because simply calling ProcessAllEvents once
+    // did not reliably process the events on both threads on all platforms.
+    void
+    ProcessAllEventsTenTimes(){
+      for (int i = 0; i < 10; i++) {
+        ProcessAllEvents();
+      }
+    }
+
+    virtual void
+    SetUp()
+    {
+      ASSERT_EQ(NS_OK, GetNetworkProxyType(&originalNetworkProxyTypePref));
+      nsFactoryEntry* factoryEntry = nsComponentManagerImpl::gComponentManager
+          ->GetFactoryEntry(kNS_TESTDHCPCLIENTSERVICE_CID);
+      if (factoryEntry) {
+        nsresult rv = nsComponentManagerImpl::gComponentManager->UnregisterFactory(kNS_TESTDHCPCLIENTSERVICE_CID, factoryEntry->mFactory);
+        ASSERT_EQ(NS_OK, rv);
+      }
+      nsComponentManagerImpl::gComponentManager->RegisterModule(&kSysDHCPClientModule, nullptr);
+
+      mPACMan = new nsPACMan(nullptr);
+      mPACMan->SetWPADOverDHCPEnabled(true);
+      mPACMan->Init(nullptr);
+      ASSERT_EQ(NS_OK, SetNetworkProxyType(WPAD_PREF));
+
+    }
+
+    virtual void
+    TearDown()
+    {
+
+      mPACMan->Shutdown();
+      if (originalNetworkProxyTypePref != GETTING_NETWORK_PROXY_TYPE_FAILED) {
+        ASSERT_EQ(NS_OK, SetNetworkProxyType(originalNetworkProxyTypePref));
+      }
+    }
+
+    nsCOMPtr<nsIDHCPClient>
+    GetPACManDHCPCient()
+    {
+      return mPACMan->mDHCPClient;
+    }
+
+    void
+    SetPACManDHCPCient(nsCOMPtr<nsIDHCPClient> aValue)
+    {
+       mPACMan->mDHCPClient = aValue;
+    }
+
+    void
+    AssertPACSpecEqualTo(const char* aExpected)
+    {
+      ASSERT_STREQ(aExpected, mPACMan->mPACURISpec.Data());
+    }
+
+  private:
+
+    int32_t originalNetworkProxyTypePref = GETTING_NETWORK_PROXY_TYPE_FAILED;
+
+    void ProcessPendingEventsOnPACThread(){
+      RefPtr<ProcessPendingEventsAction> action =
+          new ProcessPendingEventsAction();
+
+      mPACMan->mPACThread->Dispatch(action, nsIEventTarget::DISPATCH_SYNC);
+    }
+};
+
+TEST_F(TestPACMan, TestCreateDHCPClientAndGetOption) {
+  SetOptionResult(TEST_WPAD_DHCP_OPTION);
+  nsCString spec;
+
+  GetPACManDHCPCient()->GetOption(252, spec);
+
+  ASSERT_STREQ(TEST_WPAD_DHCP_OPTION, spec.Data());
+}
+
+TEST_F(TestPACMan, TestCreateDHCPClientAndGetEmptyOption) {
+  SetOptionResult("");
+  nsCString spec;
+  spec.AssignLiteral(TEST_ASSIGNED_PAC_URL);
+
+  GetPACManDHCPCient()->GetOption(252, spec);
+
+  ASSERT_TRUE(spec.IsEmpty());
+}
+
+TEST_F(TestPACMan, WhenTheDHCPClientExistsAndDHCPIsNonEmptyDHCPOptionIsUsedAsPACUri) {
+  SetOptionResult(TEST_WPAD_DHCP_OPTION);
+
+  mPACMan->LoadPACFromURI(EmptyCString());
+  ProcessAllEventsTenTimes();
+
+  ASSERT_STREQ(TEST_WPAD_DHCP_OPTION, WPADOptionResult.Data());
+  AssertPACSpecEqualTo(TEST_WPAD_DHCP_OPTION);
+}
+
+TEST_F(TestPACMan, WhenTheDHCPResponseIsEmptyWPADDefaultsToStandardURL) {
+  SetOptionResult(EmptyCString().Data());
+
+  mPACMan->LoadPACFromURI(EmptyCString());
+  ASSERT_TRUE(NS_HasPendingEvents(nullptr));
+  ProcessAllEventsTenTimes();
+
+  ASSERT_STREQ("", WPADOptionResult.Data());
+  AssertPACSpecEqualTo("http://wpad/wpad.dat");
+}
+
+TEST_F(TestPACMan, WhenThereIsNoDHCPClientWPADDefaultsToStandardURL) {
+  SetOptionResult(TEST_WPAD_DHCP_OPTION);
+  SetPACManDHCPCient(nullptr);
+
+  mPACMan->LoadPACFromURI(EmptyCString());
+  ProcessAllEventsTenTimes();
+
+  ASSERT_STREQ(TEST_WPAD_DHCP_OPTION, WPADOptionResult.Data());
+  AssertPACSpecEqualTo("http://wpad/wpad.dat");
+}
+
+TEST_F(TestPACMan, WhenWPADOverDHCPIsPreffedOffWPADDefaultsToStandardURL) {
+  SetOptionResult(TEST_WPAD_DHCP_OPTION);
+  mPACMan->SetWPADOverDHCPEnabled(false);
+
+  mPACMan->LoadPACFromURI(EmptyCString());
+  ProcessAllEventsTenTimes();
+
+  ASSERT_STREQ(TEST_WPAD_DHCP_OPTION, WPADOptionResult.Data());
+  AssertPACSpecEqualTo("http://wpad/wpad.dat");
+}
+
+TEST_F(TestPACMan, WhenPACUriIsSetDirectlyItIsUsedRatherThanWPAD) {
+  SetOptionResult(TEST_WPAD_DHCP_OPTION);
+  nsCString spec;
+  spec.AssignLiteral(TEST_ASSIGNED_PAC_URL);
+
+  mPACMan->LoadPACFromURI(spec);
+  ProcessAllEventsTenTimes();
+
+  AssertPACSpecEqualTo(TEST_ASSIGNED_PAC_URL);
+}
+
+} // namespace net
+} // namespace mozilla
\ No newline at end of file
--- a/netwerk/test/gtest/moz.build
+++ b/netwerk/test/gtest/moz.build
@@ -5,16 +5,17 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 UNIFIED_SOURCES += [
     'TestBufferedInputStream.cpp',
     'TestHeaders.cpp',
     'TestHttpAuthUtils.cpp',
     'TestMIMEInputStream.cpp',
     'TestMozURL.cpp',
+    'TestPACMan.cpp',
     'TestPartiallySeekableInputStream.cpp',
     'TestProtocolProxyService.cpp',
     'TestReadStreamToString.cpp',
     'TestServerTimingHeader.cpp',
     'TestStandardURL.cpp',
     'TestURIMutator.cpp',
 ]
 
@@ -25,8 +26,13 @@ TEST_DIRS += [
 LOCAL_INCLUDES += [
     '/netwerk/base',
     '/xpcom/tests/gtest',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul-gtest'
+
+LOCAL_INCLUDES += [
+    '!/xpcom',
+    '/xpcom/components'
+]
\ No newline at end of file
--- a/python/mozversioncontrol/mozversioncontrol/__init__.py
+++ b/python/mozversioncontrol/mozversioncontrol/__init__.py
@@ -425,18 +425,25 @@ class GitRepository(Repository):
     def forget_add_remove_files(self, path):
         self._run('reset', path)
 
     def get_files_in_working_directory(self):
         return self._run('ls-files', '-z').split(b'\0')
 
     def working_directory_clean(self, untracked=False, ignored=False):
         args = ['status', '--porcelain']
-        if not untracked:
+
+        # Even in --porcelain mode, behavior is affected by the
+        # ``status.showUntrackedFiles`` option, which means we need to be
+        # explicit about how to treat untracked files.
+        if untracked:
+            args.append('--untracked-files=all')
+        else:
             args.append('--untracked-files=no')
+
         if ignored:
             args.append('--ignored')
 
         return not len(self._run(*args).strip())
 
     def push_to_try(self, message):
         if not self.has_git_cinnabar:
             raise MissingVCSExtension('cinnabar')
--- a/python/safety/mach_commands.py
+++ b/python/safety/mach_commands.py
@@ -26,26 +26,25 @@ from mozlog import commandline  # , get_
 here = os.path.abspath(os.path.dirname(__file__))
 
 
 @CommandProvider
 class MachCommands(MachCommandBase):
     @Command('python-safety', category='testing',
              description='Run python requirements safety checks')
     @CommandArgument('--python',
+                     default='2.7',
                      help='Version of Python for Pipenv to use. When given a '
                           'Python version, Pipenv will automatically scan your '
                           'system for a Python that matches that given version.')
     def python_safety(self, python=None, **kwargs):
         self.logger = commandline.setup_logging(
             "python-safety", {"raw": sys.stdout})
 
-        python = python or self.virtualenv_manager.python_path
-        self.activate_pipenv(pipfile=os.path.join(here, 'Pipfile'), args=[
-                             '--python', python], populate=True)
+        self.activate_pipenv(pipfile=os.path.join(here, 'Pipfile'), python=python, populate=True)
 
         pattern = '**/*requirements*.txt'
         path = mozpath.normsep(os.path.dirname(os.path.dirname(here)))
         finder = FileFinder(path)
         files = [os.path.join(path, p) for p, f in finder.find(pattern)]
 
         return_code = 0
 
--- a/security/manager/ssl/StaticHPKPins.h
+++ b/security/manager/ssl/StaticHPKPins.h
@@ -1160,9 +1160,9 @@ static const TransportSecurityPreload kP
   { "za.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "zh.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
 };
 
 // Pinning Preload List Length = 487;
 
 static const int32_t kUnknownId = -1;
 
-static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1539861752318000);
+static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1540232248625000);
--- a/security/manager/ssl/nsSTSPreloadList.inc
+++ b/security/manager/ssl/nsSTSPreloadList.inc
@@ -3,17 +3,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /*****************************************************************************/
 /* This is an automatically generated file. If you're not                    */
 /* nsSiteSecurityService.cpp, you shouldn't be #including it.                */
 /*****************************************************************************/
 
 #include <stdint.h>
-const PRTime gPreloadListExpirationTime = INT64_C(1542280764880000);
+const PRTime gPreloadListExpirationTime = INT64_C(1542651331206000);
 %%
 0-1.party, 1
 0.me.uk, 1
 0005pay.com, 1
 00100010.net, 1
 0010100.net, 1
 00120012.net, 1
 00130013.net, 1
@@ -2802,16 +2802,18 @@ appliancerepairlosangeles.com, 1
 applicationmanager.gov, 1
 apply.eu, 1
 apply55gx.com, 1
 appmeas.co.uk, 1
 appmobile.io, 1
 appninjas.com, 1
 apponic.com, 1
 apponline.com, 1
+apprenticeship.gov, 1
+apprenticeships.gov, 1
 approbo.com, 1
 approvedtreecare.com, 1
 apps.co, 1
 apps.facebook.com, 0
 apps.fedoraproject.org, 1
 apps.stg.fedoraproject.org, 1
 apps4all.sytes.net, 1
 apps4inter.net, 1
--- a/security/sandbox/mac/SandboxPolicies.h
+++ b/security/sandbox/mac/SandboxPolicies.h
@@ -639,16 +639,19 @@ static const char flashPluginSandboxRule
       (global-name "com.apple.pbs.fetch_services")
       (global-name "com.apple.tccd.system")
       (global-name "com.apple.tsm.uiserver")
       (global-name "com.apple.inputmethodkit.launchagent")
       (global-name "com.apple.inputmethodkit.launcher")
       (global-name "com.apple.inputmethodkit.getxpcendpoint")
       (global-name "com.apple.decalog4.incoming")
       (global-name "com.apple.windowserver.active"))
+  ; bug 1475707
+  (if (= macosMinorVersion 9)
+     (allow mach-lookup (global-name "com.apple.xpcd")))
 
   ; Fonts
   (allow file-read*
     (subpath "/Library/Fonts")
     (subpath "/Library/Application Support/Apple/Fonts")
     (home-library-subpath "/Fonts")
     ; Allow read access to paths allowed via sandbox extensions.
     ; This is needed for fonts in non-standard locations normally
--- a/services/settings/dumps/blocklists/addons.json
+++ b/services/settings/dumps/blocklists/addons.json
@@ -1,1 +1,1 @@
-{"data":[{"guid":"{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}","prefs":[],"schema":1530711142817,"blockID":"i1900","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1472948","why":"This add-on violates data practices outlined in the review policy.","name":"Stylish"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.1.1","minVersion":"3.0.0"}],"id":"c635229f-7aa0-44c5-914f-80c590949071","last_modified":1530716488758},{"guid":"/^(contactus@unzipper.com|{72dcff4e-48ce-41d8-a807-823adadbe0c9}|{dc7d2ecc-9cc3-40d7-93ed-ef6f3219bd6f}|{994db3d3-ccfe-449a-81e4-f95e2da76843}|{25aef460-43d5-4bd0-aa3d-0a46a41400e6}|{178e750c-ae27-4868-a229-04951dac57f7})$/","prefs":[],"schema":1528400492025,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1460331","why":"Add-ons change search settings against our policies, affecting core Firefox features. Add-on is also reportedly installed without user consent.","name":"SearchWeb"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"5afea853-d029-43f3-a387-64ce9980742a","last_modified":1528408770328},{"guid":"{38363d75-6591-4e8b-bf01-0270623d1b6c}","prefs":[],"schema":1526326889114,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1461625","why":"This add-on contains abusive functionality.","name":"Photobucket Hotlink Fix"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"0f0764d5-a290-428b-a5b2-3767e1d72c71","last_modified":1526381862851},{"guid":"@vkmad","prefs":[],"schema":1526154098016,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1461410","why":"This add-on includes malicious functionality.","name":"VK Universal Downloader (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"cbfa5303-c1bf-49c8-87d8-259738a20064","last_modified":1526322954850},{"guid":"/^(({41c14ab8-9958-44bf-b74e-af54c1f169a6})|({78054cb2-e3e8-4070-a8ad-3fd69c8e4707})|({0089b179-8f3d-44d9-bb18-582843b0757a})|({f44ddcb4-4cc0-4866-92fa-eefda60c6720})|({1893d673-7953-4870-8069-baac49ce3335})|({fb28cac0-c2aa-4e0c-a614-cf3641196237})|({d7dee150-da14-45ba-afca-02c7a79ad805})|(RandomNameTest@RandomNameTest\\.com )|(corpsearchengine@mail\\.ru)|(support@work\\.org))$/","prefs":[],"schema":1525377099963,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1458330","why":"These are malicious add-ons that inject remote scripts and use deceptive names.","name":"\"Table\" add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"3a123214-b4b6-410c-a061-bbaf0d168d31","last_modified":1525377135149},{"guid":"/((@extcorp\\.[a-z]+)|(@brcorporation\\.com)|(@brmodcorp\\.com)|(@teset\\.com)|(@modext\\.tech)|(@ext?mod\\.net)|(@browcorporation\\.org)|(@omegacorporation\\.org)|(@browmodule\\.com)|(@corpext\\.net)|({6b50ddac-f5e0-4d9e-945b-e4165bfea5d6})|({fab6484f-b8a7-4ba9-a041-0f948518b80c})|({b797035a-7f29-4ff5-bd19-77f1b5e464b1})|({0f612416-5c5a-4ec8-b482-eb546af9cac4}))$/","prefs":[],"schema":1525290095999,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1458330","why":"These are malicious add-ons that inject remote scripts and use deceptive names.","name":"\"Table\" add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"3ab9f100-e253-4080-b3e5-652f842ddb7a","last_modified":1525377099954},{"guid":"/^({b99ae7b1-aabb-4674-ba8f-14ed32d04e76})|({dfa77d38-f67b-4c41-80d5-96470d804d09})$/","prefs":[],"schema":1524146566650,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1455291","why":"These add-ons claim to be the flash plugin.","name":"Flash Plugin (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"96b137e6-8cb5-44d6-9a34-4a4a76fb5e38","last_modified":1524147337556},{"guid":"/^({6ecb9f49-90f0-43a1-8f8a-e809ea4f732b})|(@googledashboard)|(@smashdashboard)|(@smash_tv)|(@smash_mov)|(@smashmovs)|(@smashtvs)|(@FirefoxUpdate)|({92b9e511-ac81-4d47-9b8f-f92dc872447e})|({3c841114-da8c-44ea-8303-78264edfe60b})|({116a0754-20eb-4fe5-bd35-575867a0b89e})|({6e6ff0fd-4ae4-49ae-ac0c-e2527e12359b})|({f992ac88-79d3-4960-870e-92c342ed3491})|({6ecb9f49-90f0-43a1-8f8a-e809ea4f732b})|({a512297e-4d3a-468c-bd1a-f77bd093f925})|({08c28c16-9fb6-4b32-9868-db37c1668f94})|({b4ab1a1d-e137-4c59-94d5-4f509358a81d})|({feedf4f8-08c1-451f-a717-f08233a64ec9})$/","prefs":[],"schema":1524139371832,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1454691","why":"This malware prevents itself from getting uninstalled ","name":"Malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"feb2d0d7-1b76-4dba-bf84-42873a92af5f","last_modified":1524141477640},{"guid":"{872f20ea-196e-4d11-8835-1cc4c877b1b8}","prefs":[],"schema":1523734896380,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1454413","why":"Extension claims to be Flash Player","name":"Flash Player (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"1e5f5cb2-346c-422a-9aaa-29d8760949d2","last_modified":1523897202689},{"guid":"/(__TEMPLATE__APPLICATION__@ruta-mapa\\.com)|(application-3@findizer\\.fr)|(application2@allo-pages\\.fr)|(application2@bilan-imc\\.fr)|(application2@lettres\\.net)|(application2@search-maps-finder\\.com)|(application-imcpeso@imc-peso\\.com)|(application-meuimc@meu-imc\\.com)|(application-us2@factorlove)|(application-us@misterdirections)|(application-us@yummmi\\.es)|(application@amiouze\\.fr)|(application@astrolignes\\.com)|(application@blotyn\\.com)|(application@bmi-result\\.com)|(application@bmi-tw\\.com)|(application@calcolo-bmi\\.com)|(application@cartes-itineraires\\.com)|(application@convertisseur\\.pro)|(application@de-findizer\\.fr)|(application@de-super-rezepte\\.com)|(application@dermabeauty\\.fr)|(application@dev\\.squel\\.v2)|(application@eu-my-drivingdirections\\.com)|(application@fr-allo-pages\\.fr)|(application@fr-catizz\\.com)|(application@fr-mr-traduction\\.com)|(application@good-recettes\\.com)|(application@horaires\\.voyage)|(application@imc-calcular\\.com)|(application@imc-peso\\.com)|(application@it-mio-percorso\\.com)|(application@iti-maps\\.fr)|(application@itineraire\\.info)|(application@lbc-search\\.com)|(application@les-pages\\.com)|(application@lovincalculator\\.com)|(application@lovintest\\.com)|(application@masowe\\.com)|(application@matchs\\.direct)|(application@mein-bmi\\.com)|(application@mes-resultats\\.com)|(application@mestaf\\.com)|(application@meu-imc\\.com)|(application@mon-calcul-imc\\.fr)|(application@mon-juste-poids\\.com)|(application@mon-trajet\\.com)|(application@my-drivingdirections\\.com)|(application@people-show\\.com)|(application@plans-reduc\\.fr)|(application@point-meteo\\.fr)|(application@poulixo\\.com)|(application@quipage\\.fr)|(application@quizdeamor\\.com)|(application@quizdoamor\\.com)|(application@quotient-retraite\\.fr)|(application@recettes\\.net)|(application@routenplaner-karten\\.com)|(application@ruta-mapa\\.com)|(application@satellite\\.dev\\.squel\\.v2)|(application@search-bilan-imc\\.fr)|(application@search-maps-finder\\.com)|(application@slimness\\.fr)|(application@start-bmi\\.com)|(application@tests-moi\\.com)|(application@tousmesjeux\\.fr)|(application@toutlannuaire\\.fr)|(application@tuto-diy\\.com)|(application@ubersetzung-app\\.com)|(application@uk-cookyummy\\.com)|(application@uk-howlogin\\.me)|(application@uk-myloap\\.com)|(application@voyagevoyage\\.co)|(application@wikimot\\.fr)|(application@www\\.plans-reduc\\.fr)|(application@yummmi\\.es)|(application@yummmies\\.be)|(application@yummmies\\.ch)|(application@yummmies\\.fr)|(application@yummmies\\.lu)|(application@zikplay\\.fr)|(applicationY@search-maps-finder\\.com)|(cmesapps@findizer\\.fr)|(findizer-shopping@jetpack)|(\\{8aaebb36-1488-4022-b7ec-29b790d12c17\\})/","prefs":[],"schema":1523216496621,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1452648","why":"Those add-ons do not provide a real functionality for users, other than silently tracking browsing behavior.","name":"Tracking Add-ons (harmful)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"36f97298-8bef-4372-a548-eb829413bee9","last_modified":1523286321447},{"guid":"adbeaver@adbeaver.org","prefs":[],"schema":1521630548030,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1445031","why":"This add-on generates numerous errors when loading Facebook, caused by ad injection included in it. Users who want to continue using this add-on can enable it in the Add-ons Manager.","name":"AdBeaver"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0"}],"id":"baf7f735-d6b6-410a-8cc8-25c60f7c57e2","last_modified":1522103097333},{"guid":"{44685ba6-68b3-4895-879e-4efa29dfb578}","prefs":[],"schema":1521565140013,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1447042","why":"This add-on impersonates a Flash tool and runs remote code on users' systems.","name":"FF Flash Manager"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"547037f2-97ae-435a-863c-efd7532668cd","last_modified":1521630548023},{"guid":"/^.*extension.*@asdf\\.pl$/","prefs":[],"schema":1520451695869,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1444037","why":"These add-ons are using deceptive names and taking over Facebook accounts to post spam content.","name":"Facebook spammers"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"3d55fab0-ec1a-4bca-84c9-3b74f5d01509","last_modified":1520527480321},{"guid":"/^(addon@fasterweb\\.com|\\{5f398d3f-25db-47f5-b422-aa2364ff6c0b\\}|addon@fasterp\\.com|addon@calculator)$/","prefs":[],"schema":1520338910918,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1443478","why":"These are malicious add-ons that use deceptive names and run remote scripts.","name":"FasterWeb add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"f58729ec-f93c-41d9-870d-dd9c9fd811b6","last_modified":1520358450708},{"guid":"{42baa93e-0cff-4289-b79e-6ae88df668c4}","prefs":[],"schema":1520336325565,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1443196","why":"The add-on claims to be \"Adobe Shockwave Flash Player\"","name":"Adobe Shockwave Flash Player (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"0cd723fe-d33d-43a0-b84f-7a3cad253212","last_modified":1520338780397},{"guid":"/{0c9970a2-6874-483b-a486-2296cfe251c2}|{01c9a4a4-06dd-426b-9500-2ea6fe841b88}|{1c981c7c-30e0-4ed2-955d-6b370e0a9d19}|{2aa275f8-fabc-4766-95b2-ecfc73db310b}|{2cac0be1-10a2-4a0d-b8c5-787837ea5955}|{2eb66f6c-94b3-44f5-9de2-22371236ec99}|{2f8aade6-8717-4277-b8b1-55172d364903}|{3c27c34f-8775-491a-a1c9-fcb15beb26d3}|{3f4dea3e-dbfc-428f-a88b-36908c459e20}|{3f4191fa-8f16-47d2-9414-36bfc9e0c2bf}|{4c140bc5-c2ad-41c3-a407-749473530904}|{05a21129-af2a-464c-809f-f2df4addf209}|{5da81d3d-5db1-432a-affc-4a2fe9a70749}|{5f4e63e4-351f-4a21-a8e5-e50dc72b5566}|{7c1df23b-1fd8-42b9-8752-71fff2b979de}|{7d5e24a1-7bef-4d09-a952-b9519ec00d20}|{7d932012-b4dd-42cc-8a78-b15ca82d0e61}|{7f8bc48d-1c7c-41a0-8534-54adc079338f}|{8a61507d-dc2f-4507-a9b7-7e33b8cbc31b}|{09c8fa16-4eec-4f78-b19d-9b24b1b57e1e}|{9ce2a636-0e49-4b8e-ad17-d0c156c963b0}|{11df9391-dba5-4fe2-bd48-37a9182b796d}|{23c65153-c21e-430a-a2dc-0793410a870d}|{36a4269e-4eef-4538-baea-9dafbf6a8e2f}|{37f8e483-c782-40ed-82e9-36f101b9e41f}|{63df223d-51cf-4f76-aad8-bbc94c895ed2}|{72c1ca96-c05d-46a7-bce1-c507ec3db4ea}|{76ce213c-8e57-4a14-b60a-67a5519bd7a7}|{79db6c96-d65a-4a64-a892-3d26bd02d2d9}|{81ac42f3-3d17-4cff-85af-8b7f89c8826b}|{83d38ac3-121b-4f28-bf9c-1220bd3c643b}|{86d98522-5d42-41d5-83c2-fc57f260a3d9}|{0111c475-01e6-42ea-a9b4-27bed9eb6092}|{214cb48a-ce31-4e48-82cf-a55061f1b766}|{216e0bcc-8a23-4069-8b63-d9528b437258}|{226b0fe6-f80f-48f1-9d8d-0b7a1a04e537}|{302ef84b-2feb-460e-85ca-f5397a77aa6a}|{408a506b-2336-4671-a490-83a1094b4097}|{419be4e9-c981-478e-baa0-937cf1eea1e8}|{0432b92a-bfcf-41b9-b5f0-df9629feece1}|{449e185a-dd91-4f7b-a23a-bbf6c1ca9435}|{591d1b73-5eae-47f4-a41f-8081d58d49bf}|{869b5825-e344-4375-839b-085d3c09ab9f}|{919fed43-3961-48d9-b0ef-893054f4f6f1}|{01166e60-d740-440c-b640-6bf964504b3c}|{2134e327-8060-441c-ba68-b167b82ff5bc}|{02328ee7-a82b-4983-a5f7-d0fc353698f0}|{6072a2a8-f1bc-4c9c-b836-7ac53e3f51e4}|{28044ca8-8e90-435e-bc63-a757af2fb6be}|{28092fa3-9c52-4a41-996d-c43e249c5f08}|{31680d42-c80d-4f8a-86d3-cd4930620369}|{92111c8d-0850-4606-904a-783d273a2059}|{446122cd-cd92-4d0c-9426-4ee0d28f6dca}|{829827cd-03be-4fed-af96-dd5997806fb4}|{4479446e-40f3-48af-ab85-7e3bb4468227}|{9263519f-ca57-4178-b743-2553a40a4bf1}|{71639610-9cc3-47e0-86ed-d5b99eaa41d5}|{84406197-6d37-437c-8d82-ae624b857355}|{93017064-dfd4-425e-a700-353f332ede37}|{a0ab16af-3384-4dbe-8722-476ce3947873}|{a0c54bd8-7817-4a40-b657-6dc7d59bd961}|{a2de96bc-e77f-4805-92c0-95c9a2023c6a}|{a3fbc8be-dac2-4971-b76a-908464cfa0e0}|{a42e5d48-6175-49e3-9e40-0188cde9c5c6}|{a893296e-5f54-43f9-a849-f12dcdee2c98}|{ac296b47-7c03-486f-a1d6-c48b24419749}|{b26bf964-7aa6-44f4-a2a9-d55af4b4eec0}|{be981b5e-1d9d-40dc-bd4f-47a7a027611c}|{be37931c-af60-4337-8708-63889f36445d}|{bfd92dfd-b293-4828-90c1-66af2ac688e6}|{c5cf4d08-0a33-4aa3-a40d-d4911bcc1da7}|{c488a8f5-ea3d-408d-809e-44e82c06ad9d}|{c661c2dc-00f9-4dc1-a9f6-bb2b7e1a4f8d}|{cd28aa38-d2f1-45a3-96c3-6cfd4702ef51}|{cd89045b-2e06-46bb-9e34-48e8799e5ef2}|{cf9d96ff-5997-439a-b32b-98214c621eee}|{d14acee6-f32b-4aa3-a802-6616003fc6a8}|{d97223b8-44e5-46c7-8ab5-e1d8986daf44}|{ddae89bd-6793-45d8-8ec9-7f4fb7212378}|{de3b1909-d4da-45e9-8da5-7d36a30e2fc6}|{df09f268-3c92-49db-8c31-6a25a6643896}|{e5bc3951-c837-4c98-9643-3c113fc8cf5e}|{e9ccb1f2-a8ba-4346-b43b-0d5582bce414}|{e341ed12-a703-47fe-b8dd-5948c38070e4}|{e2139287-2b0d-4f54-b3b1-c9a06c597223}|{ed352072-ddf0-4cb4-9cb6-d8aa3741c2de}|{f0b809eb-be22-432f-b26f-b1cadd1755b9}|{f1bce8e4-9936-495b-bf48-52850c7250ab}|{f01c3add-dc6d-4f35-a498-6b4279aa2ffa}|{f9e1ad25-5961-4cc5-8d66-5496c438a125}|{f4262989-6de0-4604-918f-663b85fad605}|{fc0d55bd-3c50-4139-9409-7df7c1114a9d}/","prefs":[],"schema":1519766961483,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1439702","why":"This malicious add-on claims to be a Firefox \"helper\" or \"updater\" or similar.","name":"FF updater (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"48b14881-5f6b-4e48-afc5-3d9a7fae26a3","last_modified":1519826648080},{"guid":"{44e4b2cf-77ba-4f76-aca7-f3fcbc2dda2f} ","prefs":[],"schema":1519414957616,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1440821","why":"This is a malicious add-on that uses a deceptive name and runs remote code.","name":"AntiVirus for Firefox"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"2447476f-043b-4d0b-9d3c-8e859c97d950","last_modified":1519429178266},{"guid":"{f3c31b34-862c-4bc8-a98f-910cc6314a86}","prefs":[],"schema":1519242096699,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1440736","why":"This is a malicious add-on that is masked as an official Adobe Updater and runs malicious code.","name":"Adobe Updater (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"adfd98ef-cebc-406b-b1e0-61bd4c71e4b1","last_modified":1519409417397},{"guid":"/^(\\{fd0c36fa-6a29-4246-810b-0bb4800019cb\\}|\\{b9c1e5bf-6585-4766-93fc-26313ac59999\\}|\\{3de25fff-25e8-40e9-9ad9-fdb3b38bb2f4\\})$/","prefs":[],"schema":1519069296530,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1439432","why":"These are malicious add-ons that are masked as an official Adobe Updater and run malicious code.","name":"Adobe Updater"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"4e28ba5c-af62-4e53-a7a1-d33334571cf8","last_modified":1519078890592},{"guid":"/^(\\{01c9a4a4-06dd-426b-9500-2ea6fe841b88\\}|{5e024309-042c-4b9d-a634-5d92cf9c7514\\}|{f4262989-6de0-4604-918f-663b85fad605\\}|{e341ed12-a703-47fe-b8dd-5948c38070e4\\}|{cd89045b-2e06-46bb-9e34-48e8799e5ef2\\}|{ac296b47-7c03-486f-a1d6-c48b24419749\\}|{5da81d3d-5db1-432a-affc-4a2fe9a70749\\}|{df09f268-3c92-49db-8c31-6a25a6643896\\}|{81ac42f3-3d17-4cff-85af-8b7f89c8826b\\}|{09c8fa16-4eec-4f78-b19d-9b24b1b57e1e\\}|{71639610-9cc3-47e0-86ed-d5b99eaa41d5\\}|{83d38ac3-121b-4f28-bf9c-1220bd3c643b\\}|{7f8bc48d-1c7c-41a0-8534-54adc079338f\\})$/","prefs":[],"schema":1518550894975,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1438028","why":"These are malicious add-ons that inject remote scripts into popular websites.","name":"Page Marker add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"cc5848e8-23d5-4655-b45c-dc239839b74e","last_modified":1518640450735},{"guid":"/^(https|youtube)@vietbacsecurity\\.com$/","prefs":[],"schema":1517909997354,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1435974","why":"These add-ons contain malicious functionality, violating the users privacy and security.","name":"HTTPS and Youtube downloader (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"646e2384-f894-41bf-b7fc-8879e0095109","last_modified":1517910100624},{"guid":"{ed352072-ddf0-4cb4-9cb6-d8aa3741c2de}","prefs":[],"schema":1517514097126,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1434893","why":"This is a malicious add-on that injects remote scripts into popular pages while pretending to do something else.","name":"Image previewer"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"2104a522-bb2f-4b04-ad0d-b0c571644552","last_modified":1517577111194},{"guid":"/^(\\{0b24cf69-02b8-407d-83db-e7af04fc1f3e\\})|(\\{6feed48d-41d4-49b8-b7d6-ef78cc7a7cd7\\})| (\\{8a0699a0-09c3-4cf1-b38d-fec25441650c\\})$/","prefs":[],"schema":1517341295286,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1434759","why":"These add-ons use remote scripts to alter popular sites like Google or Amazon.","name":"Malicious remote script add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"32ffc62d-40c4-43ac-aa3f-7240978d0ad0","last_modified":1517439279474},{"guid":"/^({be5d0c88-571b-4d01-a27a-cc2d2b75868c})|({3908d078-e1db-40bf-9567-5845aa77b833})|({5b620343-cd69-49b8-a7ba-f9d499ee5d3d})|({6eee2d17-f932-4a43-a254-9e2223be8f32})|({e05ba06a-6d6a-4c51-b8fc-60b461ffecaf})|({a5808da1-5b4f-42f2-b030-161fd11a36f7})|({d355bee9-07f0-47d3-8de6-59b8eecba57b})|({a1f8e136-bce5-4fd3-9ed1-f260703a5582})$/","prefs":[],"schema":1517260691761,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.\n","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"70f37cc7-9f8a-4d0f-a881-f0c56934fa75","last_modified":1517260722621},{"guid":"/^({d78d27f4-9716-4f13-a8b6-842c455d6a46})|({bd5ba448-b096-4bd0-9582-eb7a5c9c0948})|({0b24cf69-02b8-407d-83db-e7af04fc1f3e})|({e08d85c5-4c0f-4ce3-9194-760187ce93ba})|({1c7d6d9e-325a-4260-8213-82d51277fc31})|({8a0699a0-09c3-4cf1-b38d-fec25441650c})|({1e68848a-2bb7-425c-81a2-524ab93763eb})$/","prefs":[],"schema":1517168490224,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"805ee80e-0929-4c92-93ed-062b98053f28","last_modified":1517260691755},{"guid":"/^({abec23c3-478f-4a5b-8a38-68ccd500ec42}|{a83c1cbb-7a41-41e7-a2ae-58efcb4dc2e4}|{62237447-e365-487e-8fc3-64ddf37bdaed}|{b12cfdc7-3c69-43cb-a3fb-38981b68a087}|{1a927d5b-42e7-4407-828a-fdc441d0daae}|{dd1cb0ec-be2a-432b-9c90-d64c824ac371}|{82c8ced2-e08c-4d6c-a12b-3e8227d7fc2a}|{87c552f9-7dbb-421b-8deb-571d4a2d7a21})$/","prefs":[],"schema":1516828883529,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"c92f2a05-73eb-454e-9583-f6d2382d8bca","last_modified":1516829074251},{"guid":"/^({618baeb9-e694-4c7b-9328-69f35b6a8839}|{b91fcda4-88b0-4a10-9015-9365e5340563}|{04150f98-2d7c-4ae2-8979-f5baa198a577}|{4b1050c6-9139-4126-9331-30a836e75db9}|{1e6f5a54-2c4f-4597-aa9e-3e278c617d38}|{e73854da-9503-423b-ab27-fafea2fbf443}|{a2427e23-d349-4b25-b5b8-46960b218079}|{f92c1155-97b3-40f4-9d5b-7efa897524bb}|{c8e14311-4b2d-4eb0-9a6b-062c6912f50e}|{45621564-b408-4c29-8515-4cf1f26e4bc3}|{27380afd-f42a-4c25-b57d-b9012e0d5d48})$/","prefs":[],"schema":1516828883529,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"2d4fe65b-6c02-4461-baa8-dda52e688cf6","last_modified":1516829040469},{"guid":"/^({4dac7c77-e117-4cae-a9f0-6bd89e9e26ab}|{cc689da4-203f-4a0c-a7a6-a00a5abe74c5}|{0eb4672d-58a6-4230-b74c-50ca3716c4b0}|{06a71249-ef35-4f61-b2c8-85c3c6ee5617}|{5280684d-f769-43c9-8eaa-fb04f7de9199}|{c2341a34-a3a0-4234-90cf-74df1db0aa49}|{85e31e7e-3e3a-42d3-9b7b-0a2ff1818b33}|{b5a35d05-fa28-41b5-ae22-db1665f93f6b}|{1bd8ba17-b3ed-412e-88db-35bc4d8771d7}|{a18087bb-4980-4349-898c-ca1b7a0e59cd}|{488e190b-d1f6-4de8-bffb-0c90cc805b62})$/","prefs":[],"schema":1516828883529,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"9a3fd797-0ab8-4286-9a1b-2b6c97f9075b","last_modified":1516829006347},{"guid":"/^({f6df4ef7-14bd-43b5-90c9-7bd02943789c}|{ccb7b5d6-a567-40a2-9686-a097a8b583dd}|{9b8df895-fcdd-452a-8c46-da5be345b5bc}|{5cf77367-b141-4ba4-ac2a-5b2ca3728e81}|{ada56fe6-f6df-4517-9ed0-b301686a34cc}|{95c7ae97-c87e-4827-a2b7-7b9934d7d642}|{e7b978ae-ffc2-4998-a99d-0f4e2f24da82}|{115a8321-4414-4f4c-aee6-9f812121b446}|{bf153de7-cdf2-4554-af46-29dabfb2aa2d}|{179710ba-0561-4551-8e8d-1809422cb09f}|{9d592fd5-e655-461a-9b28-9eba85d4c97f})$/","prefs":[],"schema":1516828883529,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"aae78cd5-6b26-472e-ab2d-db4105911250","last_modified":1516828973824},{"guid":"/^({30972e0a-f613-4c46-8c87-2e59878e7180}|{0599211f-6314-4bf9-854b-84cb18da97f8}|{4414af84-1e1f-449b-ac85-b79f812eb69b}|{2a8bec00-0ab0-4b4d-bd3d-4f59eada8fd8}|{bea8866f-01f8-49e9-92cd-61e96c05d288}|{046258c9-75c5-429d-8d5b-386cfbadc39d}|{c5d359ff-ae01-4f67-a4f7-bf234b5afd6e}|{fdc0601f-1fbb-40a5-84e1-8bbe96b22502}|{85349ea6-2b5d-496a-9379-d4be82c2c13d}|{640c40e5-a881-4d16-a4d0-6aa788399dd2}|{d42328e1-9749-46ba-b35c-cce85ddd4ace})$/","prefs":[],"schema":1516828883529,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"750aa293-3742-46b5-8761-51536afecaef","last_modified":1516828938683},{"guid":"/^({d03b6b0f-4d44-4666-a6d6-f16ad9483593}|{767d394a-aa77-40c9-9365-c1916b4a2f84}|{a0ce2605-b5fc-4265-aa65-863354e85058}|{b7f366fa-6c66-46bf-8df2-797c5e52859f}|{4ad16913-e5cb-4292-974c-d557ef5ec5bb}|{3c3ef2a3-0440-4e77-9e3c-1ca8d48f895c}|{543f7503-3620-4f41-8f9e-c258fdff07e9}|{98363f8b-d070-47b6-acc6-65b80acac4f3}|{5af74f5a-652b-4b83-a2a9-f3d21c3c0010}|{484e0ba4-a20b-4404-bb1b-b93473782ae0}|{b99847d6-c932-4b52-9650-af83c9dae649})$/","prefs":[],"schema":1516828883529,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"a29aed6f-6546-4fa2-8131-df5c9a5427af","last_modified":1516828911059},{"guid":"/^({2bb68b03-b528-4133-9fc4-4980fbb4e449}|{231e58ac-0f3c-460b-bb08-0e589360bec7}|{a506c5af-0f95-4107-86f8-3de05e2794c9}|{8886a262-1c25-490b-b797-2e750dd9f36b}|{65072bef-041f-492e-8a51-acca2aaeac70}|{6fa41039-572b-44a4-acd4-01fdaebf608d}|{87ba49bd-daba-4071-aedf-4f32a7e63dbe}|{95d58338-ba6a-40c8-93fd-05a34731dc0e}|{4cbef3f0-4205-4165-8871-2844f9737602}|{1855d130-4893-4c79-b4aa-cbdf6fee86d3}|{87dcb9bf-3a3e-4b93-9c85-ba750a55831a})$/","prefs":[],"schema":1516822896448,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"5c092b0d-7205-43a1-aa75-b7a42372fb52","last_modified":1516828883523},{"guid":"/^({fce89242-66d3-4946-9ed0-e66078f172fc})|({0c4df994-4f4a-4646-ae5d-8936be8a4188})|({6cee30bc-a27c-43ea-ac72-302862db62b2})|({e08ebf0b-431d-4ed1-88bb-02e5db8b9443})$/","prefs":[],"schema":1516650096284,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1432560","why":"These are malicious add-ons that make it hard for the user to be removed.","name":"FF AntiVir Monitoring"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"9dfeee42-e6a8-49e0-8979-0648f7368239","last_modified":1516744119329},{"guid":"/^(\\{1490068c-d8b7-4bd2-9621-a648942b312c\\})|(\\{d47ebc8a-c1ea-4a42-9ca3-f723fff034bd\\})|(\\{83d6f65c-7fc0-47d0-9864-a488bfcaa376\\})|(\\{e804fa4c-08e0-4dae-a237-8680074eba07\\})|(\\{ea618d26-780e-4f0f-91fd-2a6911064204\\})|(\\{ce93dcc7-f911-4098-8238-7f023dcdfd0d\\})|(\\{7eaf96aa-d4e7-41b0-9f12-775c2ac7f7c0\\})|(\\{b019c485-2a48-4f5b-be13-a7af94bc1a3e\\})|(\\{9b8a3057-8bf4-4a9e-b94b-867e4e71a50c\\})|(\\{eb3ebb14-6ced-4f60-9800-85c3de3680a4\\})|(\\{01f409a5-d617-47be-a574-d54325fe05d1\\})$/","prefs":[],"schema":1516394914836,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are a set of malicious add-ons that block the add-ons manager tab from opening so they can't be uninstalled.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"5bf72f70-a611-4845-af3f-d4dabe8862b6","last_modified":1516394982586},{"guid":"/^(\\{ac06c6b2-3fd6-45ee-9237-6235aa347215\\})|(\\{d461cc1b-8a36-4ff0-b330-1824c148f326\\})|(\\{d1ab5ebd-9505-481d-a6cd-6b9db8d65977\\})|(\\{07953f60-447e-4f53-a5ef-ed060487f616\\})|(\\{2d3c5a5a-8e6f-4762-8aff-b24953fe1cc9\\})|(\\{f82b3ad5-e590-4286-891f-05adf5028d2f\\})|(\\{f96245ad-3bb0-46c5-8ca9-2917d69aa6ca\\})|(\\{2f53e091-4b16-4b60-9cae-69d0c55b2e78\\})|(\\{18868c3a-a209-41a6-855d-f99f782d1606\\})|(\\{47352fbf-80d9-4b70-9398-fb7bffa3da53\\})$/","prefs":[],"schema":1516311993443,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are a set of malicious add-ons that block the add-ons manager tab from opening so they can't be uninstalled.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"4ca8206f-bc2a-4428-9439-7f3142dc08db","last_modified":1516394914828},{"guid":"{5b0f6d3c-10fd-414c-a135-dffd26d7de0f}","prefs":[],"schema":1516131689499,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1430577","why":"This is a malicious add-on that executes remote scripts, redirects popular search URLs and tracks users.","name":"P Birthday"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"8088b39a-3e6d-4a17-a22f-3f95c0464bd6","last_modified":1516303320468},{"guid":"{1490068c-d8b7-4bd2-9621-a648942b312c}","prefs":[],"schema":1515267698296,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1428754","why":"This add-on is using a deceptive name and performing unwanted actions on users' systems.","name":"FF Safe Helper"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"674b6e19-f087-4706-a91d-1e723ed6f79e","last_modified":1515433728497},{"guid":"{dfa727cb-0246-4c5a-843a-e4a8592cc7b9}","prefs":[],"schema":1514922095288,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1426582","why":"Version 2.0.0 shipped with a hidden coin miner, which degrades performance in users who have it enabled. Version 1.2.3 currently available on AMO is not affected.","name":"Open With Adobe PDF Reader 2.0.0"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.0.0","minVersion":"2.0.0"}],"id":"455772a3-8360-4f5a-9a5f-a45b904d0b51","last_modified":1515007270887},{"guid":"{d03b6b0f-4d44-4666-a6d6-f16ad9483593}","prefs":[],"schema":1513366896461,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1425581","why":"This is a malicious add-on posing as a legitimate update.","name":"FF Guard Tool (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"10d9ce89-b8d4-4b53-b3d7-ecd192681f4e","last_modified":1513376470395},{"guid":"{7e907a15-0a4c-4ff4-b64f-5eeb8f841349}","prefs":[],"schema":1510083698490,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1411885","why":"This is a malicious add-on posing as a legitimate update.","name":"Manual Update"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"f7569261-f575-4719-8202-552b20d013b0","last_modified":1510168860382},{"guid":"{3602008d-8195-4860-965a-d01ac4f9ca96}","prefs":[],"schema":1509120801051,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1411885","why":"This is a malicious add-on posing as a legitimate antivirus.\n","name":"Manual Antivirus"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"28c805a9-e692-4ef8-b3ae-14e085c19ecd","last_modified":1509120934909},{"guid":"{87010166-e3d0-4db5-a394-0517917201df}","prefs":[],"schema":1509120801051,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1411885","why":"This is a malicious add-on posing as a legitimate antivirus.\n","name":"Manual Antivirus"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"84dd8a02-c879-4477-8ea7-bf2f225b0940","last_modified":1509120881470},{"guid":"{8ab60777-e899-475d-9a4f-5f2ee02c7ea4}","prefs":[],"schema":1509120801051,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1411885","why":"This is a malicious add-on posing as a legitimate antivirus.\n","name":"Manual Antivirus"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"ccebab59-7190-4258-8faa-a0b752dd5301","last_modified":1509120831329},{"guid":"{368eb817-31b4-4be9-a761-b67598faf9fa}","prefs":[],"schema":1509046897080,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1411885","why":"This is a malicious add-on posing as a legitimate antivirus.","name":"Manual Antivirus"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"9abc7502-bd6f-40d7-b035-abe721345360","last_modified":1509120801043},{"guid":"fi@dictionaries.addons.mozilla.org","prefs":[],"schema":1508701297180,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1407147","why":"This add-on is causing frequent crashes in Firefox 56.","name":"Finnish spellchecker"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"2.1.0","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"56.0a1"}]}],"id":"22431713-a93b-40f4-8264-0b341b5f6454","last_modified":1508856488536},{"guid":"firefox@mega.co.nz","prefs":[],"schema":1506800496781,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1404290","why":"Add-on is causing tabs to load blank.","name":"Mega.nz"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.16.1","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"56.0a1"}]}],"id":"a84e6eba-4bc1-4416-b481-9b837d39f9f0","last_modified":1506963401477},{"guid":"@68eba425-7a05-4d62-82b1-1d6d5a51716b","prefs":[],"schema":1505072496256,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1398905","why":"Misleads users into thinking this is a security and privacy tool (also distributed on a site that makes it look like an official Mozilla product).","name":"SearchAssist Incognito"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0"}],"id":"595e0e53-b76b-4188-a160-66f29c636094","last_modified":1505211411253},{"guid":"{efda3854-2bd9-45a1-9766-49d7ff18931d}","prefs":[],"schema":1503344500341,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1392625","why":"Add-on injects remote code into privileged scope.","name":"Smart Referer"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.8.17.2","minVersion":"0"}],"id":"d83011de-67a4-479b-a778-916a7232095b","last_modified":1503411102265},{"guid":"@H99KV4DO-UCCF-9PFO-9ZLK-8RRP4FVOKD9O","prefs":[],"schema":1502483549048,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1340877","why":"This is a malicious add-on that is being installed silently.","name":"FF Adr (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"5df16afc-c804-43c9-9de5-f1835403e5fb","last_modified":1502483601731},{"guid":"@DA3566E2-F709-11E5-8E87-A604BC8E7F8B","prefs":[],"schema":1502480491460,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1340877","why":"This is a malicious add-on that is being installed silently into users' systems.","name":"SimilarWeb (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"0a47a2f7-f07c-489b-bd39-88122a2dfe6a","last_modified":1502483549043},{"guid":"xdict@www.iciba.com","prefs":[],"schema":1501098091500,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1384497","why":"This add-on has been discontinued and is creating a prompt loop that blocks users from using Firefox.","name":"PowerWord Grab Word Extension"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.3.1","minVersion":"0"}],"id":"28736359-700e-4b61-9c50-0b533a6bac55","last_modified":1501187580933},{"guid":"{3B4DE07A-DE43-4DBC-873F-05835FF67DCE}","prefs":[],"schema":1496950889322,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1371392","why":"This add-on performs hidden actions that cause the users' systems to act as a botnet.","name":"The Safe Surfing (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"510bbd9b-b883-4837-90ab-8e353e27e1be","last_modified":1496951442076},{"guid":"WebProtection@360safe.com","prefs":[],"schema":1496846005095,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1336635","who":"All users of Firefox 52 and above who have this add-on installed.","why":"This add-on breaks the Firefox user interface starting with version 52.","name":"360 Internet Protection versions 5.0.0.1009 and lower"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"5.0.0.1009","minVersion":"0"}],"id":"e16408c3-4e08-47fd-85a9-3cbbce534e95","last_modified":1496849965060},{"guid":"html5@encoding","prefs":[],"schema":1496788543767,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1370847","who":"All users.","why":"This malicious add-on targets a certain user group and spies on them.","name":"HTML5 Encoding (Malicious), all versions"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"c806b01c-3352-4083-afd9-9a8ab6e00b19","last_modified":1496833261424},{"guid":"/^({95E84BD3-3604-4AAC-B2CA-D9AC3E55B64B}|{E3605470-291B-44EB-8648-745EE356599A}|{95E5E0AD-65F9-4FFC-A2A2-0008DCF6ED25}|{FF20459C-DA6E-41A7-80BC-8F4FEFD9C575}|{6E727987-C8EA-44DA-8749-310C0FBE3C3E}|{12E8A6C2-B125-479F-AB3C-13B8757C7F04}|{EB6628CF-0675-4DAE-95CE-EFFA23169743})$/","prefs":[],"schema":1494022576295,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1362585","why":"All of these add-ons have been identified as malware, and are being installed in Firefox globally, most likely via a malicious application installer.","name":"Malicious globally-installed add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"3fd71895-7fc6-4f3f-aa22-1cbb0c5fd922","last_modified":1494024191520},{"guid":"@safesearchscoutee","prefs":[],"schema":1494013289942,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1362553","why":"This add-on intercepts queries sent to search engines and replaces them with its own, without user consent.","name":"SafeSearch Incognito (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"edad04eb-ea16-42f3-a4a7-20dded33cc37","last_modified":1494022568654},{"guid":"{0D2172E4-C5AE-465A-B80D-53A840275B5E}","prefs":[],"schema":1493332768943,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1359473","who":"All users of Thunderbird 52 and above, using a version of the Priority Switcher add-on before version 0.7","why":"This add-on is causing recurring startup crashes in Thunderbird.","name":"Priority Switcher for Thunderbird before version 0.7"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.6.999","minVersion":"0","targetApplication":[{"guid":"{3550f703-e582-4d05-9a08-453d09bdfdc6}","maxVersion":"*","minVersion":"52.0a1"}]}],"id":"8c8af415-46db-40be-a66e-38e3762493bd","last_modified":1493332986987},{"guid":"msktbird@mcafee.com","prefs":[],"schema":1493150718059,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1354912","why":"These versions of this add-on are known to cause frequent crashes in Thunderbird.","name":"McAfee Anti-Spam Thunderbird Extension 2.0 and lower"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"2.0","minVersion":"0","targetApplication":[{"guid":"{3550f703-e582-4d05-9a08-453d09bdfdc6}","maxVersion":"*","minVersion":"0"}]}],"id":"9e86d1ff-727a-45e3-9fb6-17f32666daf2","last_modified":1493332747360},{"guid":"/^(\\{11112503-5e91-4299-bf4b-f8c07811aa50\\})|(\\{501815af-725e-45be-b0f2-8f36f5617afc\\})$/","prefs":[],"schema":1491421290217,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1354045","why":"This add-on steals user credentials for popular websites from Facebook.","name":"Flash Player Updater (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c142360c-4f93-467e-9717-b638aa085d95","last_modified":1491472107658},{"guid":"fr@fbt.ovh","prefs":[],"schema":1490898754477,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1351689","why":"Scam add-on that silently steals user credentials of popular websites","name":"Adobe Flash Player (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0f8344d0-8211-49a1-81be-c0084b3da9b1","last_modified":1490898787752},{"guid":"/^\\{(9321F452-96D5-11E6-BC3E-3769C7AD2208)|({18ED1ECA-96D3-11E6-A373-BD66C7AD2208})\\}$/","prefs":[],"schema":1490872899765,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1351710","why":"These add-ons modify websites and add deceptive or abusive content","name":"Scamming add-ons (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d6425f24-8c9e-4c0a-89b4-6890fc68d5c9","last_modified":1490898748265},{"guid":"/^(test2@test\\.com)|(test3@test\\.com)|(mozilla_cc2\\.2@internetdownloadmanager\\.com)$/","prefs":[],"schema":1490557289817,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1351095","who":"All users who have any of these add-ons installed.","why":"Old versions of the Internet Download Manager Integration add-on cause performance and stability problems in Firefox 53 and above.","name":"IDM Integration forks"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"53.0a1"}]}],"id":"9085fdba-8498-46a9-b9fd-4c7343a15c62","last_modified":1490653926191},{"guid":"mozilla_cc2@internetdownloadmanager.com","prefs":[],"schema":1489007018796,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1338832","who":"All users who have these versions of the add-on installed.","why":"Old versions of the Internet Download Manager Integration add-on cause performance and stability problems in Firefox 53 and above.","name":"IDM Integration"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"6.26.11","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"53.0a1"}]}],"id":"d33f6d48-a555-49dd-96ff-8d75473403a8","last_modified":1489514734167},{"guid":"InternetProtection@360safe.com","prefs":[],"schema":1489006712382,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1336635","who":"All Firefox users who have this add-on installed.","why":"This add-on breaks the Firefox user interface starting with version 52.","name":"360 Internet Protection"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"5.0.0.1002","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"52.0a1"}]}],"id":"89a61123-79a2-45d1-aec2-97afca0863eb","last_modified":1489006816246},{"guid":"{95E84BD3-3604-4AAC-B2CA-D9AC3E55B64B}","prefs":[],"schema":1487179851382,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1338690","who":"All users who have this add-on installed.","why":"This is a malicious add-on that is silently installed in users' systems.","name":"youtube adblock (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"04b25e3d-a725-493e-be07-cbd74fb37ea7","last_modified":1487288975999},{"guid":"ext@alibonus.com","prefs":[],"schema":1485297431051,"blockID":"i1524","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1333471","who":"All Firefox users who have these versions installed.","why":"Versions 1.20.9 and lower of this add-on contain critical security issues.","name":"Alibonus 1.20.9 and lower","created":"2017-01-24T22:45:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.20.9","minVersion":"0","targetApplication":[]}],"id":"a015d5a4-9184-95db-0c74-9262af2332fa","last_modified":1485301116629},{"guid":"{a0d7ccb3-214d-498b-b4aa-0e8fda9a7bf7}","prefs":[],"schema":1485295513652,"blockID":"i1523","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1314332","who":"All Firefox users who have these versions of the Web of Trust add-on installed.","why":"Versions 20170120 and lower of the Web of Trust add-on send excessive user data to its service, which has been reportedly shared with third parties without sufficient sanitization. These versions are also affected by a vulnerability that could lead to unwanted remote code execution.","name":"Web of Trust 20170120 and lower","created":"2017-01-24T22:01:08Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"20170120","minVersion":"0","targetApplication":[]}],"id":"2224c139-9b98-0900-61c1-04031de11ad3","last_modified":1485297214072},{"guid":"/^(ciscowebexstart1@cisco\\.com|ciscowebexstart_test@cisco\\.com|ciscowebexstart@cisco\\.com|ciscowebexgpc@cisco\\.com)$/","prefs":[],"schema":1485212610474,"blockID":"i1522","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1333225","who":"All Firefox users who have any Cisco WebEx add-ons installed.","why":"A critical security vulnerability has been discovered in Cisco WebEx add-ons that enable malicious websites to execute code on the user's system.","name":"Cisco WebEx add-ons","created":"2017-01-23T22:55:58Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0.1","minVersion":"1.0.0","targetApplication":[]}],"id":"30368779-1d3b-490a-0a34-253085af7754","last_modified":1485215014902},{"guid":"{de71f09a-3342-48c5-95c1-4b0f17567554}","prefs":[],"schema":1484335370642,"blockID":"i1493","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1329654","who":"All users who have this add-on installed.","why":"This is a malicious add-on that is installed using a fake name. It changes search and homepage settings.","name":"Search for Firefox Convertor (malware)","created":"2017-01-12T22:17:59Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"1.3.9","minVersion":"0","targetApplication":[]}],"id":"d6ec9f54-9945-088e-ba68-40117eaba24e","last_modified":1484867614757},{"guid":"googlotim@gmail.com","prefs":[],"schema":1483389810787,"blockID":"i1492","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1328594","who":"All users who have Savogram version 1.3.2 installed. Version 1.3.1 doesn't have this problem and can be installed from the <a href=\"https://addons.mozilla.org/addon/savogram/\">add-on page</a>. Note that this is an older version, so affected users won't be automatically updated to it. New versions should correct this problem if they become available.","why":"Version 1.3.2 of this add-on loads remote code and performs DOM injection in an unsafe manner.","name":"Savogram 1.3.2","created":"2017-01-05T19:58:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.3.2","minVersion":"1.3.2","targetApplication":[]}],"id":"0756ed76-7bc7-ec1e-aba5-3a9fac2107ba","last_modified":1483646608603},{"guid":"support@update-firefox.com","prefs":[],"schema":1483387107003,"blockID":"i21","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=629717","who":"All users of the add-on in all Mozilla applications.","why":"This add-on is adware/spyware masquerading as a Firefox update mechanism.","name":"Browser Update (spyware)","created":"2011-01-31T16:23:48Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"dfb06be8-3594-28e4-d163-17e27119f15d","last_modified":1483389809169},{"guid":"{2224e955-00e9-4613-a844-ce69fccaae91}","prefs":[],"schema":1483387107003,"blockID":"i7","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=512406","who":"All users of Internet Saving Optimizer for all Mozilla applications.","why":"This add-on causes a high volume of Firefox crashes and is considered malware.","name":"Internet Saving Optimizer (extension)","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b9efb796-97c2-6434-d28f-acc83436f8e5","last_modified":1483389809147},{"guid":"supportaccessplugin@gmail.com","prefs":[],"schema":1483387107003,"blockID":"i43","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=693673","who":"All users with Firefox Access Plugin installed","why":"This add-on is spyware that reports all visited websites to a third party with no user value.","name":"Firefox Access Plugin (spyware)","created":"2011-10-11T11:24:05Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1ed230a4-e174-262a-55ab-0c33f93a2529","last_modified":1483389809124},{"guid":"{8CE11043-9A15-4207-A565-0C94C42D590D}","prefs":[],"schema":1483387107003,"blockID":"i10","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=541302","who":"All users of this add-on in all Mozilla applications.","why":"This add-on secretly hijacks all search results in most major search engines and masks as a security add-on.","name":"Internal security options editor (malware)","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e2e0ac09-6d68-75f5-2424-140f51904876","last_modified":1483389809102},{"guid":"youtube@youtube2.com","prefs":[],"schema":1483387107003,"blockID":"i47","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=713050","who":"All users with any version of Free Cheesecake Factory installed on any Mozilla product.","why":"This add-on hijacks your Facebook account.","name":"Free Cheesecake Factory (malware)","created":"2011-12-22T13:11:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"85f5c1db-433b-bee3-2a3b-325165cacc6e","last_modified":1483389809079},{"guid":"admin@youtubespeedup.com","prefs":[],"schema":1483387107003,"blockID":"i48","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=714221","who":"All users with any version of Youtube Speed UP! installed on any Mozilla product.","why":"This add-on hijacks your Facebook account.","name":"Youtube Speed UP! (malware)","created":"2011-12-29T19:48:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a93922c4-8a8a-5230-8f76-76fecb0653b6","last_modified":1483389809057},{"guid":"{E8E88AB0-7182-11DF-904E-6045E0D72085}","prefs":[],"schema":1483387107003,"blockID":"i13","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=578085","who":"All users of this add-on for all Mozilla applications.","why":"This add-on intercepts website login credentials and is malware. For more information, please <a href=\"http://blog.mozilla.com/addons/2010/07/13/add-on-security-announcement/\">read our security announcement</a>.","name":"Mozilla Sniffer (malware)","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ebbd6de9-fc8a-3e5b-2a07-232bee589c7c","last_modified":1483389809035},{"guid":"sigma@labs.mozilla","prefs":[],"schema":1483387107003,"blockID":"i44","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=690819","who":"All users of Lab Kit in all versions of Firefox.","why":"The Lab Kit add-on has been retired due to compatibility issues with Firefox 7 and future Firefox browser releases. You can still install Mozilla Labs add-ons <a href=\"https://addons.mozilla.org/en-US/firefox/user/5133025/\">individually</a>.\r\n\r\nFor more information, please read <a href=\"http://mozillalabs.com/blog/2011/10/lab-kit-is-retiring/\">this announcement</a>.","name":"Mozilla Labs: Lab Kit","created":"2011-10-11T11:51:34Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d614e9cd-220f-3a19-287b-57e122f8c4b5","last_modified":1483389809012},{"guid":"/^(jid0-S9kkzfTvEmC985BVmf8ZOzA5nLM@jetpack|jid1-qps14pkDB6UDvA@jetpack|jid1-Tsr09YnAqIWL0Q@jetpack|shole@ats.ext|{38a64ef0-7181-11e3-981f-0800200c9a66}|eochoa@ualberta.ca)$/","prefs":[],"schema":1483376308298,"blockID":"i1424","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1325060","who":"All users who have any of the affected versions installed.","why":"A security vulnerability was discovered in old versions of the Add-ons SDK, which is exposed by certain old versions of add-ons. In the case of some add-ons that haven't been updated for a long time, all versions are being blocked.","name":"Various vulnerable add-on versions","created":"2016-12-21T17:22:12Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0699488d-2a19-6735-809e-f229849fe00b","last_modified":1483378113482},{"guid":"pink@rosaplugin.info","prefs":[],"schema":1482945809444,"blockID":"i84","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=743484","who":"All Firefox users who have this add-on installed","why":"Add-on acts like malware and performs user actions on Facebook without their consent.","name":"Facebook Rosa (malware)","created":"2012-04-09T10:13:51Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"66ad8de9-311d-076c-7356-87fde6d30d8f","last_modified":1482945810971},{"guid":"videoplugin@player.com","prefs":[],"schema":1482945809444,"blockID":"i90","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=752483","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware disguised as a Flash Player update. It can hijack Google searches and Facebook accounts.","name":"FlashPlayer 11 (malware)","created":"2012-05-07T08:58:30Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d25943f1-39ef-b9ec-ab77-baeef3498365","last_modified":1482945810949},{"guid":"youtb3@youtb3.com","prefs":[],"schema":1482945809444,"blockID":"i60","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=723753","who":"All Firefox users who have this extension installed.","why":"Malicious extension installed under false pretenses.","name":"Video extension (malware)","created":"2012-02-02T16:38:41Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cae3093f-a7b3-5352-a264-01dbfbf347ce","last_modified":1482945810927},{"guid":"{8f42fb8b-b6f6-45de-81c0-d6d39f54f971}","prefs":[],"schema":1482945809444,"blockID":"i82","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=743012","who":"All Firefox users who have installed this add-on.","why":"This add-on maliciously manipulates Facebook and is installed under false pretenses.","name":"Face Plus (malware)","created":"2012-04-09T10:04:28Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"09319ab3-55e7-fec1-44e0-84067d014b9b","last_modified":1482945810904},{"guid":"cloudmask@cloudmask.com","prefs":[],"schema":1482945809444,"blockID":"i1233","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1280431","who":"Any user who has version 2.0.788, or earlier, installed.","why":"These versions of the add-on (before 2.0.788) execute code from a website in a privileged local browser context, potentially allowing dangerous, unreviewed, actions to affect the user's computer.  This is fixed in later versions.","name":"CloudMask","created":"2016-06-17T14:31:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.0.788","minVersion":"0","targetApplication":[]}],"id":"2a8b40c7-a1d2-29f4-b7d7-ccfc5066bae1","last_modified":1482945810881},{"guid":"{95ff02bc-ffc6-45f0-a5c8-619b8226a9de}","prefs":[],"schema":1482945809444,"blockID":"i105","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=763065","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that inserts scripts into Facebook and hijacks the user's session.\r\n","name":"Eklenti D\u00fcnyas\u0131 (malware)","created":"2012-06-08T14:34:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"afbbc08d-2414-f51e-fdb8-74c0a2d90323","last_modified":1482945810858},{"guid":"{fa277cfc-1d75-4949-a1f9-4ac8e41b2dfd}","prefs":[],"schema":1482945809444,"blockID":"i77","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=738419","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware that is installed under false pretenses as an Adobe plugin.","name":"Adobe Flash (malware)","created":"2012-03-22T14:39:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"81753a93-382d-5f9d-a4ca-8a21b679ebb1","last_modified":1482945810835},{"guid":"youtube@youtube3.com","prefs":[],"schema":1482945809444,"blockID":"i57","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=722823","who":"All Firefox users that have installed this add-on.","why":"Malware installed on false pretenses.","name":"Divx 2012 Plugin (malware)","created":"2012-01-31T13:54:20Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4a93a0eb-a513-7272-6199-bc4d6228ff50","last_modified":1482945810811},{"guid":"{392e123b-b691-4a5e-b52f-c4c1027e749c}","prefs":[],"schema":1482945809444,"blockID":"i109","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=769781","who":"All Firefox users who have this add-on installed.","why":"This add-on pretends to be developed by Facebook and injects scripts that manipulate users' Facebook accounts.","name":"Zaman Tuneline Hay\u0131r! (malware)","created":"2012-06-29T13:20:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b9a805aa-cae7-58d6-5a53-2af4442e4cf6","last_modified":1482945810788},{"guid":"msntoolbar@msn.com","prefs":[],"schema":1482945809444,"blockID":"i18","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=599971","who":"Users of Bing Bar 6.0 and older for all versions of Firefox.","why":"This add-on has security issues and was blocked at Microsoft's request. For more information, please see <a href=\"http://support.microsoft.com/kb/2430460\">this article</a>.","name":"Bing Bar","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"6.*","minVersion":" 0","targetApplication":[]}],"id":"9b2f2039-b997-8993-d6dc-d881bc1ca7a1","last_modified":1482945810764},{"guid":"yasd@youasdr3.com","prefs":[],"schema":1482945809444,"blockID":"i104","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=763065","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that inserts scripts into Facebook and hijacks the user's session.\r\n","name":"Play Now (malware)","created":"2012-06-08T14:33:31Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8a352dff-d09d-1e78-7feb-45dec7ace5a5","last_modified":1482945810740},{"guid":"fdm_ffext@freedownloadmanager.org","prefs":[],"schema":1482945809444,"blockID":"i2","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=408445","who":"Users of Firefox 3 and later with versions 1.0 through 1.3.1 of Free Download Manager","why":"This add-on causes a high volume of crashes.","name":"Free Download Manager","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.3.1","minVersion":"1.0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.0a1"}]}],"id":"fc46f8e7-0489-b90f-a373-d93109479ca5","last_modified":1482945810393},{"guid":"flash@adobe.com","prefs":[],"schema":1482945809444,"blockID":"i56","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=722526","who":"All Firefox users who have this add-on installed.","why":"This add-on poses as an Adobe Flash update and injects malicious scripts into web pages. It hides itself in the Add-ons Manager.","name":"Adobe Flash Update (malware)","created":"2012-01-30T15:41:51Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"696db959-fb0b-8aa4-928e-65f157cdd77a","last_modified":1482945810371},{"guid":"youtubeer@youtuber.com","prefs":[],"schema":1482945809444,"blockID":"i66","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=726787","who":"All Firefox users who have installed this add-on.","why":"Add-on behaves maliciously, and is installed under false pretenses.","name":"Plug VDS (malware)","created":"2012-02-13T15:44:20Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0878ce4e-b476-ffa3-0e06-21a65b7917a1","last_modified":1482945810348},{"guid":"{B13721C7-F507-4982-B2E5-502A71474FED}","prefs":[],"schema":1482945809444,"blockID":"i8","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=627278","who":"Users of all versions of the original Skype Toolbar in all versions of Firefox.","why":"This add-on causes a high volume of Firefox crashes and introduces severe performance issues. Please <a href=\"http://www.skype.com/intl/en/get-skype/on-your-computer/click-and-call/\">update to the latest version</a>. For more information, please <a href=\"http://blog.mozilla.com/addons/2011/01/20/blocking-the-skype-toolbar-in-firefox/\">read our announcement</a>.","name":"Original Skype Toolbar","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5a320611-59a3-0eee-bb30-9052be870e00","last_modified":1482945810326},{"guid":"yslow@yahoo-inc.com","prefs":[],"schema":1482945809444,"blockID":"i11","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=542686","who":"Users of YSlow version 2.0.5 for Firefox 3.5.7 and later.","why":"This add-on causes a high volume of Firefox crashes and other stability issues. Users should <a href=\"https://addons.mozilla.org/firefox/addon/yslow/\">update to the latest version</a>.","name":"YSlow","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.0.5","minVersion":"2.0.5","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.5.7"}]}],"id":"a9b34e8f-45ce-9217-b791-98e094c26352","last_modified":1482945810303},{"guid":"youtube@youtuber.com","prefs":[],"schema":1482945809444,"blockID":"i63","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=724691","who":"All Firefox users who have installed this add-on.","why":"Installs under false pretenses and delivers malware.","name":"Mozilla Essentials (malware)","created":"2012-02-06T15:39:38Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"18216e6f-9d70-816f-4d4c-63861f43ff3c","last_modified":1482945810281},{"guid":"flash@adobee.com","prefs":[],"schema":1482945809444,"blockID":"i83","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=743497","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware installed under false pretenses.","name":"FlashPlayer 11 (malware)","created":"2012-04-09T10:08:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"09bb4661-331c-f7ba-865b-9e085dc437af","last_modified":1482945810259},{"guid":"youtube@2youtube.com","prefs":[],"schema":1482945809444,"blockID":"i71","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=730399","who":"All Firefox users who have installed this add-on.","why":"Extension is malware, installed under false pretenses.","name":"YouTube extension (malware)","created":"2012-02-27T10:23:23Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5d389c1f-b3a0-b06f-6ffb-d1e8aa055e3c","last_modified":1482945810236},{"guid":"webmaster@buzzzzvideos.info","prefs":[],"schema":1482945809444,"blockID":"i58","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=722844","who":"All Firefox users who have installed this add-on.","why":"Malware add-on that is installed under false pretenses.","name":"Buzz Video (malware)","created":"2012-01-31T14:51:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f7aab105-e2c2-42f5-d9be-280eb9c0c8f7","last_modified":1482945810213},{"guid":"play5@vide04flash.com","prefs":[],"schema":1482945809444,"blockID":"i92","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=755443","who":"All Firefox users who have this add-on installed.","why":"This add-on impersonates a Flash Player update (poorly), and inserts malicious scripts into Facebook.","name":"Lastest Flash PLayer (malware)","created":"2012-05-15T13:27:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"7190860e-fc1f-cd9f-5d25-778e1e9043b2","last_modified":1482945810191},{"guid":"support3_en@adobe122.com","prefs":[],"schema":1482945809444,"blockID":"i97","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=759164","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware disguised as the Flash Player plugin.","name":"FlashPlayer 11 (malware)","created":"2012-05-28T13:42:54Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"decf93a1-2bb0-148c-a1a6-10b3757b554b","last_modified":1482945810168},{"guid":"a1g0a9g219d@a1.com","prefs":[],"schema":1482945809444,"blockID":"i73","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=736275","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware disguised as Flash Player. It steals user cookies and sends them to a remote location.","name":"Flash Player (malware)","created":"2012-03-15T15:03:04Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6dd66b43-897d-874a-2227-54e240b8520f","last_modified":1482945810146},{"guid":"ghostviewer@youtube2.com","prefs":[],"schema":1482945809444,"blockID":"i59","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=723683","who":"All Firefox users who have installed this add-on.","why":"Malicious add-on that automatically posts to Facebook.","name":"Ghost Viewer (malware)","created":"2012-02-02T16:32:15Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"06dfe833-8c3d-90ee-3aa8-37c3c28f7c56","last_modified":1482945810123},{"guid":"{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}","prefs":[],"schema":1482945809444,"blockID":"i19","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=621660","who":"Users of Stylish version 1.1b1 for Firefox.","why":"Version 1.1b1 of this add-on causes compatibility issues with Firefox. Users should update to the latest version.","name":"Stylish","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.1b1","minVersion":"1.1b1","targetApplication":[]}],"id":"aaea37e1-ff86-4565-8bd5-55a6bf942791","last_modified":1482945810101},{"guid":"kdrgun@gmail.com","prefs":[],"schema":1482945809444,"blockID":"i103","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=763065","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that inserts scripts into Facebook and hijacks the user's session.","name":"Timeline Kapat (malware)","created":"2012-06-08T14:32:51Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a9a46ab2-2f56-1046-201c-5faa3435e248","last_modified":1482945810078},{"guid":"youtube2@youtube2.com","prefs":[],"schema":1482945809444,"blockID":"i67","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=728476","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware, installed under false pretenses.","name":"Youtube Online (malware)","created":"2012-02-18T09:10:30Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"14650ece-295b-a667-f9bc-a3d973e2228c","last_modified":1482945810055},{"guid":"masterfiler@gmail.com","prefs":[],"schema":1482945809444,"blockID":"i12","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=542081","who":"All users of this add-on for all Mozilla applications.","why":"This add-on is malware and attempts to install a Trojan on the user's computer.","name":"Master File (malware)","created":"2010-02-05T15:01:27Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a256d79d-5af8-92e9-a29d-350adf822efe","last_modified":1482945810032},{"guid":"{847b3a00-7ab1-11d4-8f02-006008948af5}","prefs":[],"schema":1482945809444,"blockID":"i9","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=531047","who":"Users of Enigmail versions older than 0.97a for Thunderbird 3 and later.","why":"This add-on causes a high volume of crashes and other stability issues. Users should <a href=\"https://addons.mozilla.org/en-US/thunderbird/addon/enigmail/\">update Enigmail</a>.","name":"Enigmail","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.97a","minVersion":"0","targetApplication":[{"guid":"{3550f703-e582-4d05-9a08-453d09bdfdc6}","maxVersion":"*","minVersion":"3.0pre"}]}],"id":"115f46b6-059d-202a-4373-2ca79b096347","last_modified":1482945810003},{"guid":"mozilla_cc@internetdownloadmanager.com","prefs":[],"schema":1482945809444,"blockID":"i14","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=578443","who":"Users of Firefox 4 and later with Internet Download Manager version 6.9.8 and older.","why":"This add-on causes a high volume of crashes and has other stability issues.","name":"Internet Download Manager","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"6.9.8","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.7a1pre"}]}],"id":"773ffcfb-75d1-081d-7431-ebe3fa5dbb44","last_modified":1482945809979},{"guid":"admin@youtubeplayer.com","prefs":[],"schema":1482945809444,"blockID":"i51","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=717165","who":"All Firefox users with this extension installed.","why":"This add-on is malware, doing nothing more than inserting advertisements into websites through iframes.","name":"Youtube player (malware)","created":"2012-01-18T14:34:55Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"16b2ce94-88db-0d79-33fc-a93070ceb509","last_modified":1482945809957},{"guid":"personas@christopher.beard","prefs":[],"schema":1482945809444,"blockID":"i15","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=590978","who":"All users of Personas Plus 1.6 in all versions of Firefox.","why":"This version of Personas Plus is incompatible with certain Firefox functionality and other add-ons. Users should upgrade to the latest version.","name":"Personas Plus","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.6","minVersion":"1.6","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"3.6.*","minVersion":"3.6"}]}],"id":"e36479c6-ca00-48d4-4fd9-ec677fd032da","last_modified":1482945809934},{"guid":"youtubeee@youtuber3.com","prefs":[],"schema":1482945809444,"blockID":"i96","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=758503","who":"All Firefox users who have installed this add-on.","why":"This is a malicious add-on that is disguised as a DivX plugin.","name":"Divx 2012 Plugins (malware)","created":"2012-05-25T09:26:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f01be9cb-5cf2-774a-a4d7-e210a24db5b9","last_modified":1482945809912},{"guid":"{3252b9ae-c69a-4eaf-9502-dc9c1f6c009e}","prefs":[],"schema":1482945809444,"blockID":"i17","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=599971","who":"Users of version 2.2 of this add-on in all versions of Firefox.","why":"This add-on has security issues and was blocked at Microsoft's request. For more information, please see <a href=\"http://support.microsoft.com/kb/2430460\">this article</a>.","name":"Default Manager (Microsoft)","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.2","minVersion":"2.2","targetApplication":[]}],"id":"38be28ac-2e30-37fa-4332-852a55fafb43","last_modified":1482945809886},{"guid":"{68b8676b-99a5-46d1-b390-22411d8bcd61}","prefs":[],"schema":1482945809444,"blockID":"i93","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=755635","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that post content on Facebook accounts and steals user data.","name":"Zaman T\u00fcnelini Kald\u0131r! (malware)","created":"2012-05-16T10:44:42Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"733aff15-9b1f-ec04-288f-b78a55165a1c","last_modified":1482945809863},{"guid":"applebeegifts@mozilla.doslash.org","prefs":[],"schema":1482945809444,"blockID":"i54","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=721562","who":"All Firefox users that install this add-on.","why":"Add-on is malware installed under false pretenses.","name":"Applebees Gift Card (malware)","created":"2012-01-26T16:17:49Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1372c8ab-5452-745a-461a-aa78e3e12c4b","last_modified":1482945809840},{"guid":"activity@facebook.com","prefs":[],"schema":1482945112982,"blockID":"i65","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=726803","who":"All Firefox users who have installed this add-on.","why":"Add-on behaves maliciously and poses as an official Facebook add-on.","name":"Facebook extension (malware)","created":"2012-02-13T15:41:02Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"79ad1c9b-0828-7823-4574-dd1cdd46c3d6","last_modified":1482945809437},{"guid":"jid0-EcdqvFOgWLKHNJPuqAnawlykCGZ@jetpack","prefs":[],"schema":1482945112982,"blockID":"i62","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=724650","who":"All Firefox users who have installed this add-on.","why":"Add-on is installed under false pretenses and delivers malware.","name":"YouTube extension (malware)","created":"2012-02-06T14:46:33Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5ae1e642-b53c-54c0-19e7-5562cfdac3a3","last_modified":1482945809415},{"guid":"{B7082FAA-CB62-4872-9106-E42DD88EDE45}","prefs":[],"schema":1482945112982,"blockID":"i25","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=637542","who":"Users of McAfee SiteAdvisor below version 3.3.1 for Firefox 4.\r\n\r\nUsers of McAfee SiteAdvisor 3.3.1 and below for Firefox 5 and higher.","why":"This add-on causes a high volume of crashes and is incompatible with certain versions of Firefox.","name":"McAfee SiteAdvisor","created":"2011-03-14T15:53:07Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.3.0.*","minVersion":"0.1","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.7a1"}]}],"id":"c950501b-1f08-2ab2-d817-7c664c0d16fe","last_modified":1482945809393},{"guid":"{B7082FAA-CB62-4872-9106-E42DD88EDE45}","prefs":[],"schema":1482945112982,"blockID":"i38","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=660111","who":"Users of McAfee SiteAdvisor below version 3.3.1 for Firefox 4.\r\n\r\nUsers of McAfee SiteAdvisor 3.3.1 and below for Firefox 5 and higher.","why":"This add-on causes a high volume of crashes and is incompatible with certain versions of Firefox.","name":"McAfee SiteAdvisor","created":"2011-05-27T13:55:02Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"3.3.1","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"5.0a1"}]}],"id":"f11de388-4511-8d06-1414-95d3b2b122c5","last_modified":1482945809371},{"guid":"{3f963a5b-e555-4543-90e2-c3908898db71}","prefs":[],"schema":1482945112982,"blockID":"i6","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=527135","who":"Users of AVG SafeSearch version 8.5 and older for all Mozilla applications.","why":"This add-on causes a high volume of crashes and causes other stability issues.","name":"AVG SafeSearch","created":"2009-06-17T13:12:12Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"8.5","minVersion":"0","targetApplication":[]}],"id":"0d6f7d4c-bf5d-538f-1ded-ea4c6b775617","last_modified":1482945809348},{"guid":"langpack-vi-VN@firefox.mozilla.org","prefs":[],"schema":1482945112982,"blockID":"i3","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=432406","who":"Users of Vietnamese Language Pack version 2.0 for all Mozilla applications.","why":"Corrupted files. For more information, please see <a href=\"http://blog.mozilla.com/security/2008/05/07/compromised-file-in-vietnamese-language-pack-for-firefox-2/\">this blog post</a>.","name":"Vietnamese Language Pack","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.0","minVersion":"2.0","targetApplication":[]}],"id":"51d4b581-d21c-20a1-6147-b17c3adc7867","last_modified":1482945809326},{"guid":"youtube@youtube7.com","prefs":[],"schema":1482945112982,"blockID":"i55","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=721646","who":"All Firefox users with this add-on installed.","why":"This is malware posing as video software.","name":"Plugin Video (malware)","created":"2012-01-27T09:39:31Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"08ceedf5-c7c1-f54f-db0c-02f01f0e319a","last_modified":1482945809304},{"guid":"crossriderapp3924@crossrider.com","prefs":[],"schema":1482945112982,"blockID":"i76","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=738282","who":"All Firefox users who have installed this add-on.","why":"This add-on compromises Facebook privacy and security and spams friends lists without user intervention.","name":"Fblixx (malware)","created":"2012-03-22T10:38:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"39d0a019-62fb-837b-1f1f-6831e56442b5","last_modified":1482945809279},{"guid":"{45147e67-4020-47e2-8f7a-55464fb535aa}","prefs":[],"schema":1482945112982,"blockID":"i86","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=748993","who":"All Firefox users who have this add-on installed.","why":"This add-on injects scripts into Facebook and performs malicious activity.","name":"Mukemmel Face+","created":"2012-04-25T16:33:21Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"960443f9-cf48-0b71-1ff2-b8c34a3411ea","last_modified":1482945809255},{"guid":"{4B3803EA-5230-4DC3-A7FC-33638F3D3542}","prefs":[],"schema":1482945112982,"blockID":"i4","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=441649","who":"Users of Firefox 3 and later with version 1.2 of Crawler Toolbar","why":"This add-on causes a high volume of crashes.","name":"Crawler Toolbar","created":"2008-07-08T10:23:31Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.2","minVersion":"1.2","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.0a1"}]}],"id":"a9818d53-3a6a-8673-04dd-2a16f5644215","last_modified":1482945809232},{"guid":"flashupdate@adobe.com","prefs":[],"schema":1482945112982,"blockID":"i68","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=722526","who":"All Firefox users who have this add-on installed.","why":"Add-on is malware, installed under false pretenses.","name":"Flash Update (malware)","created":"2012-02-21T13:55:10Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1ba5b46e-790d-5af2-9580-a5f1e6e65522","last_modified":1482945809208},{"guid":"plugin@youtubeplayer.com","prefs":[],"schema":1482945112982,"blockID":"i127","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=783356","who":"All users who have this add-on installed.","why":"This add-on tries to pass as a YouTube player and runs malicious scripts on webpages.","name":"Youtube Facebook Player (malware)","created":"2012-08-16T13:03:10Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"17a8bece-e2df-a55d-8a72-95faff028b83","last_modified":1482945809185},{"guid":"GifBlock@facebook.com","prefs":[],"schema":1482945112982,"blockID":"i79","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=739482","who":"All Firefox users who have installed this extension.","why":"This extension is malicious and is installed under false pretenses.","name":"Facebook Essentials (malware)","created":"2012-03-27T10:53:33Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"728451e8-1273-d887-37e9-5712b1cc3bff","last_modified":1482945809162},{"guid":"ff-ext@youtube","prefs":[],"schema":1482945112982,"blockID":"i52","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=719296","who":"All Firefox users that have this add-on installed.","why":"This add-on poses as a YouTube player while posting spam into Facebook account.","name":"Youtube player (malware)","created":"2012-01-19T08:26:35Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cd2dd72a-dd52-6752-a0cd-a4b312fd0b65","last_modified":1482945809138},{"guid":"ShopperReports@ShopperReports.com","prefs":[],"schema":1482945112982,"blockID":"i22","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=630191","who":"Users of Shopper Reports version 3.1.22.0 in Firefox 4 and later.","why":"This add-on causes a high volume of Firefox crashes.","name":"Shopper Reports","created":"2011-02-09T17:03:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.1.22.0","minVersion":"3.1.22.0","targetApplication":[]}],"id":"f26b049c-d856-750f-f050-996e6bec7cbb","last_modified":1482945809115},{"guid":"{27182e60-b5f3-411c-b545-b44205977502}","prefs":[],"schema":1482945112982,"blockID":"i16","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=599971","who":"Users of version 1.0 of this add-on in all versions of Firefox.","why":"This add-on has security issues and was blocked at Microsoft's request. For more information, please see <a href=\"http://support.microsoft.com/kb/2430460\">this article</a>.","name":"Search Helper Extension (Microsoft)","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0","minVersion":"1.0","targetApplication":[]}],"id":"2655f230-11f3-fe4c-7c3d-757d37d5f9a5","last_modified":1482945809092},{"guid":"{841468a1-d7f4-4bd3-84e6-bb0f13a06c64}","prefs":[],"schema":1482945112982,"blockID":"i46","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=712369","who":"Users of all versions of Nectar Search Toolbar in Firefox 9.","why":"This add-on causes crashes and other stability issues in Firefox.","name":"Nectar Search Toolbar","created":"2011-12-20T11:38:17Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0.1","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"9.0","minVersion":"9.0a1"}]}],"id":"b660dabd-0dc0-a55c-4b86-416080b345d9","last_modified":1482945809069},{"guid":"support@daemon-tools.cc","prefs":[],"schema":1482945112982,"blockID":"i5","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=459850","who":"Users of Daemon Tools Toolbar version 1.0.0.5 and older for all Mozilla applications.","why":"This add-on causes a high volume of crashes.","name":"Daemon Tools Toolbar","created":"2009-02-13T18:39:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0.0.5","minVersion":"0","targetApplication":[]}],"id":"8cabafd3-576a-b487-31c8-ab59e0349a0e","last_modified":1482945809045},{"guid":"{a3a5c777-f583-4fef-9380-ab4add1bc2a8}","prefs":[],"schema":1482945112982,"blockID":"i53","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=719605","who":"All users of Firefox with this add-on installed.","why":"This add-on is being offered as an online movie viewer, when it reality it only inserts scripts and ads into known sites.","name":"Peliculas-FLV (malware)","created":"2012-01-19T15:58:10Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"2.0.3","minVersion":"2.0.3","targetApplication":[]}],"id":"07bc0962-60da-087b-c3ab-f2a6ab84d81c","last_modified":1482945809021},{"guid":"royal@facebook.com","prefs":[],"schema":1482945112982,"blockID":"i64","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=725777","who":"All Firefox users who have installed this add-on.","why":"Malicious add-on posing as a Facebook tool.","name":"Facebook ! (malware)","created":"2012-02-09T13:24:23Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"dd1d2623-0d15-c93e-8fbd-ba07b0299a44","last_modified":1482945808997},{"guid":"{28bfb930-7620-11e1-b0c4-0800200c9a66}","prefs":[],"schema":1482945112982,"blockID":"i108","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=766852","who":"All Firefox user who have this add-on installed.","why":"This is malware disguised as an Adobe product. It spams Facebook pages.","name":"Aplicativo (malware)","created":"2012-06-21T09:24:11Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"908dc4fb-ebc9-cea1-438f-55e4507ba834","last_modified":1482945808973},{"guid":"socialnetworktools@mozilla.doslash.org","prefs":[],"schema":1482945112982,"blockID":"i78","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=739441","who":"All Firefox users who have installed this add-on.","why":"This add-on hijacks the Facebook UI and adds scripts to track users.","name":"Social Network Tools (malware)","created":"2012-03-26T16:46:55Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1064cd25-3b87-64bb-b0a6-2518ad281574","last_modified":1482945808950},{"guid":"youtubeeing@youtuberie.com","prefs":[],"schema":1482945112982,"blockID":"i98","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=759663","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware disguised as a Youtube add-on.","name":"Youtube Video Player (malware)","created":"2012-05-30T09:30:14Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3484f860-56e1-28e8-5a70-cdcd5ab9d6ee","last_modified":1482945808927},{"guid":"{3a12052a-66ef-49db-8c39-e5b0bd5c83fa}","prefs":[],"schema":1482945112982,"blockID":"i101","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=761874","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware disguised as a Facebook timeline remover.","name":"Timeline Remove (malware)","created":"2012-06-05T18:37:42Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b01b321b-6628-7166-bd15-52f21a04d8bd","last_modified":1482945808904},{"guid":"pfzPXmnzQRXX6@2iABkVe.com","prefs":[],"schema":1482945112982,"blockID":"i99","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=759950","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware disguised as a Flash Player update.","name":"Flash Player (malware)","created":"2012-05-30T17:10:18Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"29cc4abc-4f52-01f1-eb0b-cad84ba4db13","last_modified":1482945808881},{"guid":"/^(@pluginscribens_firefox|extension@vidscrab.com|firefox@jjj.ee|firefox@shop-reward.de|FxExtPasteNGoHtk@github.lostdj|himanshudotrai@gmail.com|jid0-bigoD0uivzAMmt07zrf3OHqa418@jetpack|jid0-iXbAR01tjT2BsbApyS6XWnjDhy8@jetpack)$/","prefs":[],"schema":1482341309012,"blockID":"i1423","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1325060","who":"All users who have any of the affected versions installed.","why":"A security vulnerability was discovered in old versions of the Add-ons SDK, which is exposed by certain old versions of add-ons. In the case of some add-ons that haven't been updated for a long time, all versions are being blocked.","name":"Various vulnerable add-on versions","created":"2016-12-21T17:21:10Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a58a2836-e4e7-74b5-c109-fa3d41e9ed56","last_modified":1482343886390},{"guid":"/^(pdftoword@addingapps.com|jid0-EYTXLS0GyfQME5irGbnD4HksnbQ@jetpack|jid1-ZjJ7t75BAcbGCX@jetpack)$/","prefs":[],"schema":1482341309012,"blockID":"i1425","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1325060","who":"All users who have any of the affected versions installed.","why":"A security vulnerability was discovered in old versions of the Add-ons SDK, which is exposed by certain old versions of add-ons. In the case of some add-ons that haven't been updated for a long time, all versions are being blocked.","name":"Various vulnerable add-on versions","created":"2016-12-21T17:23:14Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"150e639f-c832-63d0-a775-59313b2e1bf9","last_modified":1482343886365},{"guid":"{cc8f597b-0765-404e-a575-82aefbd81daf}","prefs":[],"schema":1480349193877,"blockID":"i380","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=866332","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts and performs unwanted actions on behalf of the user.","name":"Update My Browser (malware)","created":"2013-06-19T13:03:00Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4950d7aa-c602-15f5-a7a2-d844182d5cbd","last_modified":1480349217152},{"guid":"extension@FastFreeConverter.com","prefs":[],"schema":1480349193877,"blockID":"i470","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935779","who":"All Firefox users who have this add-on installed.","why":"This add-on is part of a malicious Firefox installer bundle.","name":"Installer bundle (malware)","created":"2013-11-07T15:38:26Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"649dd933-debf-69b7-020f-496c2c9f99c8","last_modified":1480349217071},{"guid":"59D317DB041748fdB89B47E6F96058F3@jetpack","prefs":[],"schema":1480349193877,"blockID":"i694","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1053540","who":"All Firefox users who have this add-ons installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This is a suspicious add-on that appears to be installed without user consent, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"JsInjectExtension","created":"2014-08-21T13:46:30Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"75692bd4-18e5-a9be-7ec3-9327e159ef68","last_modified":1480349217005},{"guid":"/^({bfec236d-e122-4102-864f-f5f19d897f5e}|{3f842035-47f4-4f10-846b-6199b07f09b8}|{92ed4bbd-83f2-4c70-bb4e-f8d3716143fe})$/","prefs":[],"schema":1480349193877,"blockID":"i527","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949566","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> by making changes that can't be easily reverted and uses multiple IDs.","name":"KeyBar add-on","created":"2013-12-20T14:13:38Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6d68dd97-7965-0a84-8ca7-435aac3c8040","last_modified":1480349216927},{"guid":"support@vide1flash2.com","prefs":[],"schema":1480349193877,"blockID":"i246","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=830159","who":"All Firefox users who have this add-on installed.","why":"This is an add-on that poses as the Adobe Flash Player and runs malicious code in the user's system.","name":"Lastest Adobe Flash Player (malware)","created":"2013-01-14T09:17:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2004fba1-74bf-a072-2a59-6e0ba827b541","last_modified":1480349216871},{"guid":"extension21804@extension21804.com","prefs":[],"schema":1480349193877,"blockID":"i312","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=835665","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our <a href=\"https://developer.mozilla.org/en-US/docs/Addons/Add-on_guidelines\">Add-on Guidelines</a>, bypassing our third party install opt-in screen. Users who wish to continue using this extension can enable it in the Add-ons Manager.","name":"Coupon Companion","created":"2013-03-06T14:14:05Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b2cf1256-dadd-6501-1f4e-25902d408692","last_modified":1480349216827},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i602","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:18:05Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.8.*","minVersion":"3.15.8","targetApplication":[]}],"id":"b2b4236d-5d4d-82b2-99cd-00ff688badf1","last_modified":1480349216765},{"guid":"nosquint@urandom.ca","prefs":[],"schema":1480349193877,"blockID":"i1232","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1279561","who":"Users on Firefox 47, and higher, using version 2.1.9.1, and earlier, of this add-on. If you wish to continue using it, you can enable it in the Add-ons Manager.","why":"The add-on is breaking the in-built zoom functionality on Firefox 47.","name":"NoSquint","created":"2016-06-10T17:12:55Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.1.9.1-signed.1-signed","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"47"}]}],"id":"30e0a35c-056a-054b-04f3-ade68b83985a","last_modified":1480349216711},{"guid":"{FE1DEEEA-DB6D-44b8-83F0-34FC0F9D1052}","prefs":[],"schema":1480349193877,"blockID":"i364","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=867670","who":"All Firefox users who have this add-on installed. Users who want to enable the add-on again can do so in the Add-ons Manager.","why":"This add-on is side-installed with other software, and blocks setting reversions attempted by users who want to recover their settings after they are hijacked by other add-ons.","name":"IB Updater","created":"2013-06-10T16:14:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a59b967c-66ca-7ad9-2dc6-d0ad37ded5fd","last_modified":1480349216652},{"guid":"vpyekkifgv@vpyekkifgv.org","prefs":[],"schema":1480349193877,"blockID":"i352","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=872211","who":"All Firefox users who have this add-on installed.","why":"Uses a deceptive name and injects ads into pages without user consent.","name":"SQLlite Addon (malware)","created":"2013-05-14T13:42:04Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8fd981ab-7ee0-e367-d804-0efe29d63178","last_modified":1480349216614},{"guid":"/^firefox@(albrechto|swiftbrowse|springsmart|storimbo|squirrelweb|betterbrowse|lizardlink|rolimno|browsebeyond|clingclang|weblayers|kasimos|higher-aurum|xaven|bomlabio)\\.(com?|net|org|info|biz)$/","prefs":[],"schema":1480349193877,"blockID":"i549","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=937405","who":"All Firefox users who have one or more of these add-ons installed. If you wish to continue using any of these add-ons, they can be enabled in the Add-ons Manager.","why":"A large amount of add-ons developed by Yontoo are known to be silently installed and otherwise violate the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Yontoo add-ons","created":"2014-01-30T15:08:04Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3a124164-b177-805b-06f7-70a358b37e08","last_modified":1480349216570},{"guid":"thefoxonlybetter@quicksaver","prefs":[],"schema":1480349193877,"blockID":"i702","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1053469","who":"All Firefox users who have any of these versions of the add-on installed.","why":"Certain versions of The Fox, Only Better weren't developed by the original developer, and are likely malicious in nature. This violates the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> for reusing an already existent ID.","name":"The Fox, Only Better (malicious versions)","created":"2014-08-27T10:05:31Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"1.10","targetApplication":[]}],"id":"60e54f6a-1b10-f889-837f-60a76a98fccc","last_modified":1480349216512},{"guid":"/@(ft|putlocker|clickmovie|m2k|sharerepo|smarter-?)downloader\\.com$/","prefs":[],"schema":1480349193877,"blockID":"i396","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=881454","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This group of add-ons is silently installed, bypassing our install opt-in screen. This violates our <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"PutLockerDownloader and related","created":"2013-06-25T12:48:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e98ba6e3-f2dd-fdee-b106-3e0d2a03cda4","last_modified":1480349216487},{"guid":"my7thfakeid@gmail.com","prefs":[],"schema":1480349193877,"blockID":"i1262","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1295616","who":"Anyone who has this add-on installed.","why":"This add-on is a keylogger that sends the data to a remote server, and goes under the name Real_player.addon.","name":"Remote Keylogger test 0 addon","created":"2016-08-17T10:54:59Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"81b380c0-8092-ea5e-11cd-54c7f563ff5a","last_modified":1480349216460},{"guid":"{f0e59437-6148-4a98-b0a6-60d557ef57f4}","prefs":[],"schema":1480349193877,"blockID":"i304","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=845975","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our <a href=\"https://developer.mozilla.org/en-US/docs/Addons/Add-on_guidelines\">installation guidelines</a> and is dropped silently into user's profiles.","name":"WhiteSmoke B","created":"2013-02-27T13:10:18Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0469e643-1a90-f9be-4aad-b347469adcbe","last_modified":1480349216402},{"os":"Darwin,Linux","guid":"firebug@software.joehewitt.com","prefs":[],"schema":1480349193877,"blockID":"i75","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=718831","who":"All Firefox 9 users on Mac OS X or Linux who have Firebug 1.9.0 installed.","why":"Firebug 1.9.0 creates stability problems on Firefox 9, on Mac OS X and Linux. Upgrading to Firefox 10 or later, or upgrading to Firebug 1.9.1 or later fixes this problem.","name":"Firebug","created":"2012-03-21T16:00:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.9.0","minVersion":"1.9.0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"9.*","minVersion":"9.0a1"}]}],"id":"a1f9f055-ef34-1412-c39f-35605a70d031","last_modified":1480349216375},{"guid":"xz123@ya456.com","prefs":[],"schema":1480349193877,"blockID":"i486","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=939254","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be malware and is installed silently in violation of the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"BetterSurf (malware)","created":"2013-11-15T13:34:53Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b9825a25-a96c-407e-e656-46a7948e5745","last_modified":1480349215808},{"guid":"{C7AE725D-FA5C-4027-BB4C-787EF9F8248A}","prefs":[],"schema":1480349193877,"blockID":"i424","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=860641","who":"Users of Firefox 23 or later who have RelevantKnowledge 1.0.0.2 or lower.","why":"Old versions of this add-on are causing startup crashes in Firefox 23, currently on the Beta channel. RelevantKnowledge users on Firefox 23 and above should update to version 1.0.0.3 of the add-on.","name":"RelevantKnowledge 1.0.0.2 and lower","created":"2013-07-01T10:45:20Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0.0.2","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"23.0a1"}]}],"id":"c888d167-7970-4b3f-240f-2d8e6f14ded4","last_modified":1480349215779},{"guid":"{5C655500-E712-41e7-9349-CE462F844B19}","prefs":[],"schema":1480349193877,"blockID":"i966","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1175425","who":"All users who have this add-on installed.","why":"This add-on is vulnerable to a cross-site scripting attack, putting users at risk when using it in arbitrary websites.","name":"Quick Translator","created":"2015-07-17T13:42:28Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0.1-signed","minVersion":"0","targetApplication":[]}],"id":"f34b00a6-c783-7851-a441-0d80fb1d1031","last_modified":1480349215743},{"guid":"superlrcs@svenyor.net","prefs":[],"schema":1480349193877,"blockID":"i545","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949596","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, you can enable it in the Add-ons Manager.","why":"This add-on is in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>, using multiple add-on IDs and potentially doing other unwanted activities.","name":"SuperLyrics","created":"2014-01-30T11:52:42Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"002cd4fa-4c2b-e28b-9220-4a520f4d9ec6","last_modified":1480349215672},{"guid":"mbrsepone@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i479","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=937331","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook accounts.","name":"Mozilla Lightweight Pack (malware)","created":"2013-11-11T15:42:30Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0549645e-5f50-5089-1f24-6e7d3bfab8e0","last_modified":1480349215645},{"guid":"/^brasilescape.*\\@facebook\\.com$/","prefs":[],"schema":1480349193877,"blockID":"i453","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=918566","who":"All Firefox users who have these add-ons installed.","why":"This is a group of malicious add-ons that use deceitful names like \"Facebook Video Pack\" or \"Mozilla Service Pack\" and hijack Facebook accounts.","name":"Brasil Escape (malware)","created":"2013-09-20T09:54:04Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8e6b1176-1794-2117-414e-f0821443f27b","last_modified":1480349215591},{"guid":"foxyproxy-basic@eric.h.jung","prefs":[],"schema":1480349193877,"blockID":"i952","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1183890","who":"All users who have this add-on installed on Thunderbird 38 and above.","why":"This add-on is causing consistent startup crashes on Thunderbird 38 and above.","name":"FoxyProxy Basic for Thunderbird","created":"2015-07-15T09:35:50Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.5.5","minVersion":"0","targetApplication":[{"guid":"{3550f703-e582-4d05-9a08-453d09bdfdc6}","maxVersion":"*","minVersion":"38.0a2"},{"guid":"{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}","maxVersion":"*","minVersion":"2.35"}]}],"id":"81658491-feda-2ed3-3c6c-8e60c2b73aee","last_modified":1480349215536},{"guid":"mbroctone@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i476","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=936590","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks the users' Facebook account.","name":"Mozilla Storage Service (malware)","created":"2013-11-08T15:32:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"92198396-8756-8d09-7f18-a68d29894f71","last_modified":1480349215504},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i616","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:24:20Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.28.*","minVersion":"3.15.28","targetApplication":[]}],"id":"f11b485f-320e-233c-958b-a63377024fad","last_modified":1480349215479},{"guid":"/^({e9df9360-97f8-4690-afe6-996c80790da4}|{687578b9-7132-4a7a-80e4-30ee31099e03}|{46a3135d-3683-48cf-b94c-82655cbc0e8a}|{49c795c2-604a-4d18-aeb1-b3eba27e5ea2}|{7473b6bd-4691-4744-a82b-7854eb3d70b6}|{96f454ea-9d38-474f-b504-56193e00c1a5})$/","prefs":[],"schema":1480349193877,"blockID":"i494","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=776404","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on changes search settings without user interaction, and fails to reset them after it is removed. It also uses multiple add-on IDs for no apparent reason. This violates our <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"uTorrent and related","created":"2013-12-02T14:52:32Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"485210d0-8e69-3436-536f-5d1deeea4167","last_modified":1480349215454},{"guid":"{EB7508CA-C7B2-46E0-8C04-3E94A035BD49}","prefs":[],"schema":1480349193877,"blockID":"i162","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=799266","who":"All Firefox users who have installed any of these add-ons.","why":"This block covers a number of malicious add-ons that deceive users, using names like \"Mozilla Safe Browsing\" and \"Translate This!\", and claiming they are developed by \"Mozilla Corp.\". They hijack searches and redirects users to pages they didn't intend to go to.\r\n\r\nNote: this block won't be active until bug 799266 is fixed.","name":"Mozilla Safe Browsing and others (Medfos malware)","created":"2012-10-11T12:25:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"07566aa3-4ff9-ac4f-9de9-71c77454b4da","last_modified":1480349215428},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i614","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:23:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.26.*","minVersion":"3.15.26","targetApplication":[]}],"id":"ede541f3-1748-7b33-9bd6-80e2f948e14f","last_modified":1480349215399},{"guid":"/^({976cd962-e0ca-4337-aea7-d93fae63a79c}|{525ba996-1ce4-4677-91c5-9fc4ead2d245}|{91659dab-9117-42d1-a09f-13ec28037717}|{c1211069-1163-4ba8-b8b3-32fc724766be})$/","prefs":[],"schema":1480349193877,"blockID":"i522","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947485","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> by being silently installed and using multiple add-on IDs.","name":"appbario7","created":"2013-12-20T13:15:33Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"580aed26-dc3b-eef8-fa66-a0a402447b7b","last_modified":1480349215360},{"guid":"jid0-O6MIff3eO5dIGf5Tcv8RsJDKxrs@jetpack","prefs":[],"schema":1480349193877,"blockID":"i552","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=974041","who":"All Firefox users who have this extension installed.","why":"This extension is malware that attempts to make it impossible for a second extension and itself to be disabled, and also forces the new tab page to have a specific URL.","name":"Extension_Protected (malware)","created":"2014-02-19T15:26:37Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e53063b4-5702-5b66-c860-d368cba4ccb6","last_modified":1480349215327},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i604","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:18:58Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.11.*","minVersion":"3.15.10","targetApplication":[]}],"id":"b910f779-f36e-70e1-b17a-8afb75988c03","last_modified":1480349215302},{"guid":"brasilescapefive@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i483","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=938473","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook accounts.","name":"Facebook Video Pack (malware)","created":"2013-11-14T09:37:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"85ee7840-f262-ad30-eb91-74b3248fd13d","last_modified":1480349215276},{"guid":"brasilescapeeight@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i482","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=938476","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook accounts.","name":"Mozilla Security Pack (malware)","created":"2013-11-14T09:36:55Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"457a5722-be90-5a9f-5fa0-4c753e9f324c","last_modified":1480349215249},{"guid":"happylyrics@hpyproductions.net","prefs":[],"schema":1480349193877,"blockID":"i370","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=881815","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into Firefox without the users' consent, violating our <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Happy Lyrics","created":"2013-06-11T15:42:24Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"730e616d-94a7-df0c-d31a-98b7875d60c2","last_modified":1480349215225},{"guid":"search-snacks@search-snacks.com","prefs":[],"schema":1480349193877,"blockID":"i872","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1082733","who":"All users who have this add-on installed. Users who wish to continue using the add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of our <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Search Snacks","created":"2015-03-04T14:37:33Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"7567b06f-98fb-9400-8007-5d0357c345d9","last_modified":1480349215198},{"os":"WINNT","guid":"{ABDE892B-13A8-4d1b-88E6-365A6E755758}","prefs":[],"schema":1480349193877,"blockID":"i107","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=764210","who":"All Firefox users on Windows who have the RealPlayer Browser Record extension installed.","why":"The RealPlayer Browser Record extension is causing significant problems on Flash video sites like YouTube. This block automatically disables the add-on, but users can re-enable it from the Add-ons Manager if necessary.\r\n\r\nThis block shouldn't disable any other RealPlayer plugins, so watching RealPlayer content on the web should be unaffected.\r\n\r\nIf you still have problems playing videos on YouTube or elsewhere, please visit our <a href=\"http://support.mozilla.com/\">support site</a> for help.","name":"RealPlayer Browser Record Plugin","created":"2012-06-14T13:54:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"15.0.5","minVersion":"0","targetApplication":[]}],"id":"e3b89e55-b35f-8694-6f0e-f856e57a191d","last_modified":1480349215173},{"guid":"/(\\{7aeae561-714b-45f6-ace3-4a8aed6e227b\\})|(\\{01e86e69-a2f8-48a0-b068-83869bdba3d0\\})|(\\{77f5fe49-12e3-4cf5-abb4-d993a0164d9e\\})/","prefs":[],"schema":1480349193877,"blockID":"i436","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=891606","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>, changing Firefox default settings and not reverting them on uninstall. If you want to continue using this add-on, it can be enabled in the Add-ons Manager.","name":"Visual Bee","created":"2013-08-09T15:04:44Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ad6dc811-ab95-46fa-4bff-42186c149980","last_modified":1480349215147},{"guid":"amo-validator-bypass@example.com","prefs":[],"schema":1480349193877,"blockID":"i1058","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1227605","who":"All users who install this add-on.","why":"This add-on is a proof of concept of a malicious add-on that bypasses the code validator.","name":" AMO Validator Bypass","created":"2015-11-24T09:03:01Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"86e38e3e-a729-b5a2-20a8-4738b376eea6","last_modified":1480349214743},{"guid":"6lIy@T.edu","prefs":[],"schema":1480349193877,"blockID":"i852","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128269","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and performs unwanted actions, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"unIsaless","created":"2015-02-09T15:30:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"39798bc2-9c75-f172-148b-13f3ca1dde9b","last_modified":1480349214613},{"guid":"{394DCBA4-1F92-4f8e-8EC9-8D2CB90CB69B}","prefs":[],"schema":1480349193877,"blockID":"i100","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=761339","who":"All Firefox users who have Lightshot 2.5.0 installed.","why":"The Lightshot add-on, version 2.5.0, is causing widespread and frequent crashes in Firefox. Lightshot users are strongly recommended to update to version 2.6.0 as soon as possible.","name":"Lightshot","created":"2012-06-05T09:24:51Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.5.0","minVersion":"2.5.0","targetApplication":[]}],"id":"57829ea2-5a95-1b6e-953c-7c4a7b3b21ac","last_modified":1480349214568},{"guid":"{a7f2cb14-0472-42a1-915a-8adca2280a2c}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i686","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1033809","who":"All users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-on Manager.","why":"This add-on is silently installed into users' systems, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"HomeTab","created":"2014-08-06T16:35:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"33a8f403-b2c8-cadf-e1ba-40b39edeaf18","last_modified":1480349214537},{"guid":"{CA8C84C6-3918-41b1-BE77-049B2BDD887C}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i862","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1131230","who":"All users who have this add-on installed. Users who wish to continue using the add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of our <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Ebay Shopping Assistant by Spigot","created":"2015-02-26T12:51:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9a9d6da2-90a1-5b71-8b24-96492d57dfd1","last_modified":1480349214479},{"guid":"update@firefox.com","prefs":[],"schema":1480349193877,"blockID":"i374","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=781088","who":"All Firefox users who have this add-on installed.","why":"This is a malicious extension that hijacks Facebook accounts.","name":"Premium Update (malware)","created":"2013-06-18T13:58:38Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bb388413-60ea-c9d6-9a3b-c90df950c319","last_modified":1480349214427},{"guid":"sqlmoz@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i350","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=871610","who":"All Firefox users who have this extension installed.","why":"This extension is malware posing as Mozilla software. It hijacks Facebook accounts and spams other Facebook users.","name":"Mozilla Service Pack (malware)","created":"2013-05-13T09:43:07Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"715082e8-7a30-b27b-51aa-186c38e078f6","last_modified":1480349214360},{"guid":"iobitapps@mybrowserbar.com","prefs":[],"schema":1480349193877,"blockID":"i562","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=948695","who":"All Firefox users who have this add-on installed. If you wish to continue using it, it can be enabled in the Add-ons Manager.","why":"This add-on is installed silently and changes users settings without reverting them, in violation of the <a href=\"https://developer.mozilla.org/en-US/docs/Addons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"IObit Apps Toolbar","created":"2014-02-27T10:00:54Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"be9a54f6-20c1-7dee-3aea-300b336b2ae5","last_modified":1480349214299},{"guid":"{9e09ac65-43c0-4b9d-970f-11e2e9616c55}","prefs":[],"schema":1480349193877,"blockID":"i376","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=857847","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware that hijacks Facebook accounts and posts content on it.","name":"The Social Networks (malware)","created":"2013-06-18T14:16:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"753638b4-65ca-6d71-f1f5-ce32ba2edf3b","last_modified":1480349214246},{"guid":"mozillahmpg@mozilla.org","prefs":[],"schema":1480349193877,"blockID":"i140","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=791867","who":"All Firefox users who have installed this add-on.","why":"This is a malicious add-on that tries to monetize on its users by embedding unauthorized affiliate codes on shopping websites, and sometimes redirecting users to alternate sites that could be malicious in nature.","name":"Google YouTube HD Player (malware)","created":"2012-09-17T16:04:10Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"98150e2e-cb45-1fee-8458-28d3602ec2ec","last_modified":1480349214216},{"guid":"astrovia@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i489","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=942699","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook accounts.","name":"Facebook Security Service (malware)","created":"2013-11-25T12:40:30Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6f365ff4-e48f-8a06-d19d-55e19fba81f4","last_modified":1480349214157},{"guid":"{bbea93c6-64a3-4a5a-854a-9cc61c8d309e}","prefs":[],"schema":1480349193877,"blockID":"i1126","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251940","who":"All users who have this add-on installed.","why":"This is a malicious add-on that disables various security checks in Firefox.","name":"Tab Extension (malware)","created":"2016-02-29T21:58:10Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5acb9dcc-59d4-46d1-2a11-1194c4948239","last_modified":1480349214066},{"guid":"ffxtlbr@iminent.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i628","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=866943","who":"All Firefox users who have any of these add-ons installed. Users who wish to continue using them can enable them in the Add-ons Manager.","why":"These add-ons have been silently installed repeatedly, and change settings without user consent, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Iminent Minibar","created":"2014-06-26T15:47:15Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4387ad94-8500-d74d-68e3-20564a9aac9e","last_modified":1480349214036},{"guid":"{28387537-e3f9-4ed7-860c-11e69af4a8a0}","prefs":[],"schema":1480349193877,"blockID":"i40","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=665775","who":"Users of MediaBar versions 4.3.1.00 and below in all versions of Firefox.","why":"This add-on causes a high volume of crashes and is incompatible with certain versions of Firefox.","name":"MediaBar (2)","created":"2011-07-19T10:19:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"4.3.1.00","minVersion":"0.1","targetApplication":[]}],"id":"ff95664b-93e4-aa73-ac20-5ffb7c87d8b7","last_modified":1480349214002},{"guid":"{41e5ef7a-171d-4ab5-8351-951c65a29908}","prefs":[],"schema":1480349193877,"blockID":"i784","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"HelpSiteExpert","created":"2014-11-14T14:37:56Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0c05a0bb-30b4-979e-33a7-9f3955eba17d","last_modified":1480349213962},{"guid":"/^({2d7886a0-85bb-4bf2-b684-ba92b4b21d23}|{2fab2e94-d6f9-42de-8839-3510cef6424b}|{c02397f7-75b0-446e-a8fa-6ef70cfbf12b}|{8b337819-d1e8-48d3-8178-168ae8c99c36}|firefox@neurowise.info|firefox@allgenius.info)$/","prefs":[],"schema":1480349193877,"blockID":"i762","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1082599","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"These add-ons are silently installed into users' systems, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"SaveSense, neurowise, allgenius","created":"2014-10-17T16:58:10Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c5439f55-ace5-ad73-1270-017c0ba7b2ce","last_modified":1480349213913},{"guid":"{462be121-2b54-4218-bf00-b9bf8135b23f}","prefs":[],"schema":1480349193877,"blockID":"i226","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=812303","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently side-installed by other software, and doesn't do much more than changing the users' settings, without reverting them on removal.","name":"WhiteSmoke","created":"2012-11-29T16:27:36Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"994c6084-e864-0e4e-ac91-455083ee46c7","last_modified":1480349213879},{"guid":"firefox@browsefox.com","prefs":[],"schema":1480349193877,"blockID":"i546","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=936244","who":"All Firefox users who have this add-on installed. If you want to continue using it, it can be enabled in the Add-ons Manager.","why":"This add-on is silently installed, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"BrowseFox","created":"2014-01-30T12:26:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"407d8c84-8939-cd28-b284-9b680e529bf6","last_modified":1480349213853},{"guid":"{6926c7f7-6006-42d1-b046-eba1b3010315}","prefs":[],"schema":1480349193877,"blockID":"i382","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=844956","who":"All Firefox users who have this add-on installed. Those who wish to continue using it can enable it again in the Add-ons Manager.","why":"This add-on is silently installed, bypassing the Firefox opt-in screen and violating our <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"appbario7","created":"2013-06-25T12:05:34Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2367bd94-2bdd-c615-de89-023ba071a443","last_modified":1480349213825},{"guid":"faststartff@gmail.com","prefs":[],"schema":1480349193877,"blockID":"i866","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1131217","who":"All users who have this add-on installed. Users who wish to continue using the add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of our <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Fast Start","created":"2015-02-26T13:12:47Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9e730bca-c7d1-da82-64f6-c74de216cb7d","last_modified":1480349213799},{"guid":"05dd836e-2cbd-4204-9ff3-2f8a8665967d@a8876730-fb0c-4057-a2fc-f9c09d438e81.com","prefs":[],"schema":1480349193877,"blockID":"i468","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935135","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be part of a <a href=\"https://www.drwebhk.com/en/virus_techinfo/Trojan.DownLoader9.50268.html\">Trojan software</a> package.","name":"Trojan.DownLoader9.50268 (malware)","created":"2013-11-07T14:43:39Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2fd53d9b-7096-f1fb-fbcb-2b40a6193894","last_modified":1480349213774},{"guid":"jid1-0xtMKhXFEs4jIg@jetpack","prefs":[],"schema":1480349193877,"blockID":"i586","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1011286","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be malware installed without user consent.","name":"ep (malware)","created":"2014-06-03T15:50:19Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"50ca2179-83ab-1817-163d-39ed2a9fbd28","last_modified":1480349213717},{"guid":"/^({16e193c8-1706-40bf-b6f3-91403a9a22be}|{284fed43-2e13-4afe-8aeb-50827d510e20}|{5e3cc5d8-ed11-4bed-bc47-35b4c4bc1033}|{7429e64a-1fd4-4112-a186-2b5630816b91}|{8c9980d7-0f09-4459-9197-99b3e559660c}|{8f1d9545-0bb9-4583-bb3c-5e1ac1e2920c})$/","prefs":[],"schema":1480349193877,"blockID":"i517","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947509","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> by silently installing the add-on, and using multiple add-on IDs.","name":"Re-markit","created":"2013-12-20T12:54:33Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e88a28ab-5569-f06d-b0e2-15c51bb2a4b7","last_modified":1480349213344},{"guid":"safebrowse@safebrowse.co","prefs":[],"schema":1480349193877,"blockID":"i782","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1097696","who":"All Firefox users who have this add-on installed.","why":"This add-on loads scripts with malicious code that appears intended to steal usernames, passwords, and other private information.","name":"SafeBrowse","created":"2014-11-12T14:20:44Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"edd81c91-383b-f041-d8f6-d0b9a90230bd","last_modified":1480349213319},{"guid":"{af95cc15-3b9b-45ae-8d9b-98d08eda3111}","prefs":[],"schema":1480349193877,"blockID":"i492","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=945126","who":"All Firefox users who have this add-on installed.","why":"This is a malicious Firefox extension that uses a deceptive name and hijacks users' Facebook accounts.","name":"Facebook (malware)","created":"2013-12-02T12:45:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"7064e9e2-fba4-7b57-86d7-6f4afbf6f560","last_modified":1480349213294},{"guid":"{84a93d51-b7a9-431e-8ff8-d60e5d7f5df1}","prefs":[],"schema":1480349193877,"blockID":"i744","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080817","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on appears to be silently installed into users' systems, and changes settings without consent, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Spigot Shopping Assistant","created":"2014-10-17T15:47:06Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"dbc7ef8b-2c48-5dae-73a0-f87288c669f0","last_modified":1480349213264},{"guid":"{C3949AC2-4B17-43ee-B4F1-D26B9D42404D}","prefs":[],"schema":1480349193877,"blockID":"i918","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1170633","who":"All Firefox users who have this add-on installed in Firefox 39 and above.\r\n","why":"Certain versions of this extension are causing startup crashes in Firefox 39 and above.\r\n","name":"RealPlayer Browser Record Plugin","created":"2015-06-02T09:58:16Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"7f2a68f3-aa8a-ae41-1e48-d1f8f63d53c7","last_modified":1480349213231},{"guid":"831778-poidjao88DASfsAnindsd@jetpack","prefs":[],"schema":1480349193877,"blockID":"i972","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1190962","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Video patch (malware)","created":"2015-08-04T15:18:03Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"39471221-6926-e11b-175a-b28424d49bf6","last_modified":1480349213194},{"guid":"lbmsrvfvxcblvpane@lpaezhjez.org","prefs":[],"schema":1480349193877,"blockID":"i342","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=863385","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our <a href=\"https://developer.mozilla.org/en-US/docs/Addons/Add-on_guidelines\">Add-on Guidelines</a>. It also appears to install itself both locally and globally, producing a confusing uninstall experience.","name":"RapidFinda","created":"2013-05-06T16:18:14Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"98fb4536-07a4-d03a-f7c5-945acecc8203","last_modified":1480349213128},{"guid":"{babb9931-ad56-444c-b935-38bffe18ad26}","prefs":[],"schema":1480349193877,"blockID":"i499","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=946086","who":"All Firefox users who have this add-on installed.","why":"This is a malicious Firefox extension that uses a deceptive name and hijacks users' Facebook accounts.","name":"Facebook Credits (malware)","created":"2013-12-04T15:22:02Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"be1d19fa-1662-322a-13e6-5fa5474f33a7","last_modified":1480349213100},{"guid":"{18d5a8fe-5428-485b-968f-b97b05a92b54}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i802","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080839","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and is considered malware, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Astromenda Search Addon","created":"2014-12-15T10:52:49Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bc846147-cdc1-141f-5846-b705c48bd6ed","last_modified":1480349213074},{"guid":"{b6ef1336-69bb-45b6-8cba-e578fc0e4433}","prefs":[],"schema":1480349193877,"blockID":"i780","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Power-SW","created":"2014-11-12T14:00:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3b080157-2900-d071-60fe-52b0aa376cf0","last_modified":1480349213024},{"guid":"info@wxdownloadmanager.com","prefs":[],"schema":1480349193877,"blockID":"i196","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806451","who":"All Firefox users who have these add-ons installed.","why":"These are malicious add-ons that are distributed with a trojan and negatively affect web browsing.","name":"Codec (malware)","created":"2012-11-05T09:24:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b62597d0-d2cb-d597-7358-5143a1d13658","last_modified":1480349212999},{"os":"WINNT","guid":"{C3949AC2-4B17-43ee-B4F1-D26B9D42404D}","prefs":[],"schema":1480349193877,"blockID":"i111","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=771802","who":"All Firefox users on Windows who have the RealPlayer Browser Record extension installed.","why":"The RealPlayer Browser Record extension is causing significant problems on Flash video sites like YouTube. This block automatically disables the add-on, but users can re-enable it from the Add-ons Manager if necessary.\r\n\r\nThis block shouldn't disable any other RealPlayer plugins, so watching RealPlayer content on the web should be unaffected.\r\n\r\nIf you still have problems playing videos on YouTube or elsewhere, please visit our <a href=\"http://support.mozilla.com/\">support site</a> for help.","name":"RealPlayer Browser Record Plugin","created":"2012-07-10T15:28:16Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"15.0.5","minVersion":"0","targetApplication":[]}],"id":"d3f96257-7635-555f-ef48-34d426322992","last_modified":1480349212971},{"guid":"l@AdLJ7uz.net","prefs":["browser.startup.homepage"],"schema":1480349193877,"blockID":"i728","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1076771","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed and changes user settings without consent, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>","name":"GGoSavee","created":"2014-10-16T16:34:54Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e6bfa340-7d8a-1627-5cdf-40c0c4982e9d","last_modified":1480349212911},{"guid":"{6b2a75c8-6e2e-4267-b955-43e25b54e575}","prefs":[],"schema":1480349193877,"blockID":"i698","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1052611","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"BrowserShield","created":"2014-08-21T15:46:31Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"492e4e43-f89f-da58-9c09-d99528ee9ca9","last_modified":1480349212871},{"guid":"/^({65f9f6b7-2dae-46fc-bfaf-f88e4af1beca}|{9ed31f84-c8b3-4926-b950-dff74047ff79}|{0134af61-7a0c-4649-aeca-90d776060cb3}|{02edb56b-9b33-435b-b7df-b2843273a694}|{da51d4f6-3e7e-4ef8-b400-9198e0874606}|{b24577db-155e-4077-bb37-3fdd3c302bb5})$/","prefs":[],"schema":1480349193877,"blockID":"i525","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949566","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> by making changes that can't be easily reverted and using multiple IDs.","name":"KeyBar add-on","created":"2013-12-20T14:11:14Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"78562d79-9a64-c259-fb63-ce24e29bb141","last_modified":1480349212839},{"guid":"adsremoval@adsremoval.net","prefs":[],"schema":1480349193877,"blockID":"i560","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=962793","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, you can enable it in the Add-ons Manager.","why":"This add-on is silently installed and changes various user settings, in violation of the <a href=\"https://developer.mozilla.org/en-US/docs/Addons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Ad Removal","created":"2014-02-27T09:57:31Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4d150ad4-dc22-9790-07a9-36e0a23f857f","last_modified":1480349212798},{"guid":"firefoxaddon@youtubeenhancer.com","prefs":[],"schema":1480349193877,"blockID":"i445","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=911966","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that imitates a popular video downloader extension, and attempts to hijack Facebook accounts. The add-on available in the add-ons site is safe to use.","name":"YouTube Enhancer Plus (malware)","created":"2013-09-04T16:53:37Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"208.7.0","minVersion":"208.7.0","targetApplication":[]}],"id":"41d75d3f-a57e-d5ad-b95b-22f5fa010b4e","last_modified":1480349212747},{"guid":"suchpony@suchpony.de","prefs":[],"schema":1480349193877,"blockID":"i1264","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have version 1.6.7 or less of this add-on installed.","why":"Old versions of this add-on contained code from YouTube Unblocker, which was <a href=\"https://addons.mozilla.org/firefox/blocked/i1129\">originally blocked</a> due to malicious activity.  Version 1.6.8 is now okay.","name":"Suchpony (pre 1.6.8)","created":"2016-08-24T10:48:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"1.6.7","minVersion":"0","targetApplication":[]}],"id":"1bbf00f3-53b5-3777-43c7-0a0b11f9c433","last_modified":1480349212719},{"guid":"{336D0C35-8A85-403a-B9D2-65C292C39087}","prefs":[],"schema":1480349193877,"blockID":"i224","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=812292","who":"All Firefox users who have this add-on installed.","why":"This add-on is side-installed with other software, and blocks setting reversions attempted by users who want to recover their settings after they are hijacked by other add-ons.","name":"IB Updater","created":"2012-11-29T16:22:49Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c87666e6-ec9a-2f1e-ad03-a722d2fa2a25","last_modified":1480349212655},{"guid":"G4Ce4@w.net","prefs":["browser.startup.homepage"],"schema":1480349193877,"blockID":"i718","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1076771","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems and changes settings without consent, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"YoutUbeAdBlaocke","created":"2014-10-02T12:21:22Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3e1e9322-93e9-4ce1-41f5-46ad4ef1471b","last_modified":1480349212277},{"guid":"extension@Fast_Free_Converter.com","prefs":[],"schema":1480349193877,"blockID":"i533","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949597","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> by silently installing it.","name":"FastFreeConverter","created":"2013-12-20T15:04:18Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"726f5645-c0bf-66dc-a97a-d072b46e63e7","last_modified":1480349212247},{"guid":"@stopad","prefs":[],"schema":1480349193877,"blockID":"i1266","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1298780","who":"Users who have version 0.0.4 and earlier of the add-on installed.","why":"Stop Ads sends each visited url to a third party server which is not necessary for the add-on to work or disclosed in a privacy policy or user opt-in.  Versions 0.0.4 and earlier are affected.","name":"Stop Ads Addon","created":"2016-08-30T12:24:20Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.0.4","minVersion":"0","targetApplication":[]}],"id":"3d1893dd-2092-d1f7-03f3-9629b7d7139e","last_modified":1480349212214},{"guid":"703db0db-5fe9-44b6-9f53-c6a91a0ad5bd@7314bc82-969e-4d2a-921b-e5edd0b02cf1.com","prefs":[],"schema":1480349193877,"blockID":"i519","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947509","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> by silently installing the add-on, and using multiple add-on IDs.","name":"Re-markit","created":"2013-12-20T12:57:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a27d0f9f-7708-3d5f-82e1-e3f29e6098a0","last_modified":1480349212183},{"guid":"imbaty@taringamp3.com","prefs":[],"schema":1480349193877,"blockID":"i662","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that attempts to hide itself by impersonating the Adobe Flash plugin.","name":"Taringa MP3 / Adobe Flash","created":"2014-07-10T15:39:44Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f43859d4-46b7-c028-4738-d40a73ddad7b","last_modified":1480349212157},{"guid":"{13c9f1f9-2322-4d5c-81df-6d4bf8476ba4}","prefs":[],"schema":1480349193877,"blockID":"i348","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=867359","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our <a href=\"https://developer.mozilla.org/en-US/docs/Addons/Add-on_guidelines\">Add-on Guidelines</a>. It also fails to revert settings changes on removal.\r\n\r\nUsers who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"mywebsearch","created":"2013-05-08T15:55:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"372cf3df-0810-85d8-b5d7-faffff309a11","last_modified":1480349212102},{"guid":"{a6e67e6f-8615-4fe0-a599-34a73fc3fba5}","prefs":[],"schema":1480349193877,"blockID":"i346","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=867333","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our <a href=\"https://developer.mozilla.org/en-US/docs/Addons/Add-on_guidelines\">Add-on Guidelines</a>. Also, it doesn't reset its settings changes on uninstall.\r\n\r\nUsers who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Startnow","created":"2013-05-06T17:06:06Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1caf911c-ff2f-b0f6-0d32-29ef74be81bb","last_modified":1480349212077},{"guid":"garg_sms@yahoo.in","prefs":[],"schema":1480349193877,"blockID":"i652","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the Save My YouTube Day! extension weren't developed by the original developer, and are likely malicious in nature. This violates the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> for reusing an already existent ID.","name":"Save My YouTube Day!, version 67.9","created":"2014-07-10T15:17:38Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"67.9","minVersion":"67.9","targetApplication":[]}],"id":"e50c0189-a7cd-774d-702b-62eade1bf18e","last_modified":1480349212044},{"guid":"9518042e-7ad6-4dac-b377-056e28d00c8f@f1cc0a13-4df1-4d66-938f-088db8838882.com","prefs":[],"schema":1480349193877,"blockID":"i308","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=846455","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed, bypassing our third-party opt-in screen, in violation of our <a href=\"https://developer.mozilla.org/en-US/docs/Addons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Solid Savings","created":"2013-02-28T13:48:32Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"df25ee07-74d4-ccd9-dbbe-7eb053015144","last_modified":1480349212020},{"guid":"jufa098j-LKooapd9jasJ9jliJsd@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1000","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1201163","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Secure Video (malware)","created":"2015-09-07T14:00:20Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c3a98025-0f4e-3bb4-b475-97329e7b1426","last_modified":1480349211979},{"guid":"{46eddf51-a4f6-4476-8d6c-31c5187b2a2f}","prefs":[],"schema":1480349193877,"blockID":"i750","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963788","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Slick Savings","created":"2014-10-17T16:17:47Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9b4ef650-e1ad-d55f-c420-4f26dbb4139c","last_modified":1480349211953},{"guid":"{DAC3F861-B30D-40dd-9166-F4E75327FAC7}","prefs":[],"schema":1480349193877,"blockID":"i924","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1173154","who":"All Firefox users who have this add-on installed in Firefox 39 and above.\r\n","why":"Certain versions of this extension are causing startup crashes in Firefox 39 and above.\r\n","name":"RealPlayer Browser Record Plugin","created":"2015-06-09T15:28:17Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"be57998b-9e4d-1040-e6bb-ed9de056338d","last_modified":1480349211896},{"guid":"JMLv@njMaHh.org","prefs":[],"schema":1480349193877,"blockID":"i790","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1103516","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"YouttubeAdBlocke","created":"2014-11-24T14:14:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"070d5747-137d-8500-8713-cfc6437558a3","last_modified":1480349211841},{"guid":"istart_ffnt@gmail.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i888","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1152553","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-on Manager.","why":"This add-on appears to be malware, being silently installed and hijacking user settings, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Istart","created":"2015-04-10T16:27:47Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"32fad759-38d9-dad9-2295-e44cc6887040","last_modified":1480349211785},{"guid":"gystqfr@ylgga.com","prefs":[],"schema":1480349193877,"blockID":"i449","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=912742","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>. It is installed bypassing the Firefox opt-in screen, and manipulates settings without reverting them on removal. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Define Ext","created":"2013-09-13T16:19:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8fe8f509-c530-777b-dccf-d10d58ae78cf","last_modified":1480349211748},{"guid":"e9d197d59f2f45f382b1aa5c14d82@8706aaed9b904554b5cb7984e9.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i844","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128324","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and attempts to change user settings like the home page and default search, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Sense","created":"2015-02-06T15:01:47Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f8f8695c-a356-a1d6-9291-502b377c63c2","last_modified":1480349211713},{"guid":"{184AA5E6-741D-464a-820E-94B3ABC2F3B4}","prefs":[],"schema":1480349193877,"blockID":"i968","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1164243","who":"All users who have this add-on installed.","why":"This is a malicious add-on that poses as a Java extension.","name":"Java String Helper (malware)","created":"2015-08-04T09:41:27Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"fac1d2cb-eed7-fcef-5d5a-43c556371bd7","last_modified":1480349211687},{"guid":"7d51fb17-b199-4d8f-894e-decaff4fc36a@a298838b-7f50-4c7c-9277-df6abbd42a0c.com","prefs":[],"schema":1480349193877,"blockID":"i455","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=919792","who":"All Firefox users who have this add-on installed.","why":"This is a malicious extension that hijacks Facebook accounts and posts spam to the users' friends.","name":"Video Console (malware)","created":"2013-09-25T10:28:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"dd4d2e17-4ce6-36b0-3035-93e9cc5846d4","last_modified":1480349211660},{"guid":"prositez@prz.com","prefs":[],"schema":1480349193877,"blockID":"i764","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"ProfSitez","created":"2014-10-29T16:43:15Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"684ad4fd-2cbd-ce2a-34cd-bc66b20ac8af","last_modified":1480349211628},{"guid":"/^toolbar[0-9]*@findwide\\.com$/","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i874","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1082758","who":"All users who have this add-on installed. Users who wish to continue using the add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of our <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.\r\n","name":"FindWide Toolbars","created":"2015-03-04T14:54:10Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a317ad9f-af4d-e086-4afd-cd5eead1ed62","last_modified":1480349211601},{"guid":"{25D77636-38B1-1260-887C-2D4AFA92D6A4}","prefs":[],"schema":1480349193877,"blockID":"i536","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=959279","who":"All Firefox users who have this extension installed.","why":"This is a malicious extension that is installed alongside a trojan. It hijacks searches on selected sites.","name":"Microsoft DirectInput Object (malware)","created":"2014-01-13T10:36:05Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cd174588-940e-f5b3-12ea-896c957bd4b3","last_modified":1480349211555},{"guid":"fdm_ffext@freedownloadmanager.org","prefs":[],"schema":1480349193877,"blockID":"i216","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=789700","who":"All Firefox users who have installed version 1.5.7.5 of the Free Download Manager extension.","why":"Version 1.5.7.5 of the Free Download Manager extension is causing frequent crashes in recent versions of Firefox. Version 1.5.7.6 corrects this problem, but it is currently not available on addons.mozilla.org. We recommend all users to update to the new version once it becomes available.","name":"Free Download Manager","created":"2012-11-27T12:47:51Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.5.7.5","minVersion":"1.5.7.5","targetApplication":[]}],"id":"736417a2-6161-9973-991a-aff566314733","last_modified":1480349211163},{"guid":"{badea1ae-72ed-4f6a-8c37-4db9a4ac7bc9}","prefs":[],"schema":1480349193877,"blockID":"i543","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963809","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, you can enable it in the Add-ons Manager.","why":"This add-on is apparently malware that is silently installed into users' systems, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Address Bar Search","created":"2014-01-28T14:28:18Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8c1dd68e-7df6-0c37-2f41-107745a7be54","last_modified":1480349211119},{"guid":"addon@gemaoff","prefs":[],"schema":1480349193877,"blockID":"i1230","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have this add-on installed.","why":"These add-ons are copies of YouTube Unblocker, which was <a href=\"https://addons.mozilla.org/firefox/blocked/i1129\">originally blocked</a> due to malicious activity.","name":"YouTube Unblocker (addon@gemaoff)","created":"2016-06-08T16:15:11Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6bc49e9f-322f-9952-15a6-0a723a61c2d9","last_modified":1480349211044},{"guid":"{d87d56b2-1379-49f4-b081-af2850c79d8e}","prefs":[],"schema":1480349193877,"blockID":"i726","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080835","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Website Xplorer Lite","created":"2014-10-13T16:01:03Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"7b0895b4-dd4f-1c91-f4e3-31afdbdf3178","last_modified":1480349211007},{"guid":"OKitSpace@OKitSpace.es","prefs":[],"schema":1480349193877,"blockID":"i469","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935779","who":"All Firefox users who have this add-on installed.","why":"This add-on is part of a malicious Firefox installer bundle.","name":"Installer bundle (malware)","created":"2013-11-07T15:35:01Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6a11aa68-0dae-5524-cc96-a5053a31c466","last_modified":1480349210982},{"guid":"{c96d1ae6-c4cf-4984-b110-f5f561b33b5a}","prefs":[],"schema":1480349193877,"blockID":"i808","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Better Web","created":"2014-12-19T09:36:52Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0413d46b-8205-d9e0-65df-4caa3e6355c4","last_modified":1480349210956},{"guid":"lightningnewtab@gmail.com","prefs":[],"schema":1480349193877,"blockID":"i554","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=974041","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, it can be enabled in the Add-ons Manager.","why":"This add-on is silently installed in Firefox and includes a companion extension that also performs malicious actions.","name":"Lightning SpeedDial","created":"2014-02-19T15:28:24Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"875513e1-e6b1-a383-2ec5-eb4deb87eafc","last_modified":1480349210931},{"guid":"/^ext@bettersurfplus/","prefs":[],"schema":1480349193877,"blockID":"i506","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=939254","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be malware and is installed silently in violation of the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"BetterSurf (malware)","created":"2013-12-10T15:10:31Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b4da06d2-a0fd-09b6-aadb-7e3b29c3be3a","last_modified":1480349210905},{"guid":"thefoxonlybetter@quicksaver","prefs":[],"schema":1480349193877,"blockID":"i706","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1053469","who":"All Firefox users who have any of these versions of the add-on installed.","why":"Certain versions of The Fox, Only Better weren't developed by the original developer, and are likely malicious in nature. This violates the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> for reusing an already existent ID.","name":"The Fox, Only Better (malicious versions)","created":"2014-08-27T14:50:32Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"1.6.160","minVersion":"1.6.160","targetApplication":[]}],"id":"bb2b2114-f8e7-511d-04dc-abc8366712cc","last_modified":1480349210859},{"guid":"CortonExt@ext.com","prefs":[],"schema":1480349193877,"blockID":"i336","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=864551","who":"All Firefox users who have this add-on installed.","why":"This add-on is reported to be installed without user consent, with a non-descriptive name, and ties a number of browser features to Amazon URLs, probably monetizing on affiliate codes.","name":"CortonExt","created":"2013-04-22T16:10:17Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a5bdd05d-eb4c-ce34-9909-a677b4322384","last_modified":1480349210805},{"guid":"1chtw@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i430","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=901770","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that uses a deceptive name and hijacks social networks.","name":" Mozilla Service Pack (malware)","created":"2013-08-05T16:42:24Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bf1e31c7-ba50-1075-29ae-47368ac1d6de","last_modified":1480349210773},{"guid":"lrcsTube@hansanddeta.com","prefs":[],"schema":1480349193877,"blockID":"i344","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=866944","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our <a href=\"https://developer.mozilla.org/en-US/docs/Addons/Add-on_guidelines\">Add-on Guidelines</a>.\r\n\r\nUsers who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"LyricsTube","created":"2013-05-06T16:44:04Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"424b9f39-d028-b1fb-d011-d8ffbbd20fe9","last_modified":1480349210718},{"guid":"{341f4dac-1966-47ff-aacf-0ce175f1498a}","prefs":[],"schema":1480349193877,"blockID":"i356","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=868129","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our <a href=\"https://developer.mozilla.org/en-US/docs/Addons/Add-on_guidelines\">Add-on Guidelines</a>.\r\n\r\nUsers who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"MyFreeGames","created":"2013-05-23T14:45:35Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"560e08b1-3471-ad34-8ca9-463f5ca5328c","last_modified":1480349210665},{"guid":"/^({d6e79525-4524-4707-9b97-1d70df8e7e59}|{ddb4644d-1a37-4e6d-8b6e-8e35e2a8ea6c}|{e55007f4-80c5-418e-ac33-10c4d60db01e}|{e77d8ca6-3a60-4ae9-8461-53b22fa3125b}|{e89a62b7-248e-492f-9715-43bf8c507a2f}|{5ce3e0cb-aa83-45cb-a7da-a2684f05b8f3})$/","prefs":[],"schema":1480349193877,"blockID":"i518","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947509","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> by silently installing the add-on, and using multiple add-on IDs.","name":"Re-markit","created":"2013-12-20T12:56:17Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"145b0f22-501e-39eb-371e-ec8342a5add9","last_modified":1480349210606},{"guid":"{72b98dbc-939a-4e0e-b5a9-9fdbf75963ef}","prefs":[],"schema":1480349193877,"blockID":"i772","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"SitezExpert","created":"2014-10-31T16:15:26Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"386cb2c9-e674-ce2e-345f-d30a785f90c5","last_modified":1480349210536},{"guid":"hha8771ui3-Fo9j9h7aH98jsdfa8sda@jetpack","prefs":[],"schema":1480349193877,"blockID":"i970","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1190963","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Video fix (malware)","created":"2015-08-04T15:15:07Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3ca577d8-3685-4ba9-363b-5b2d8d8dd608","last_modified":1480349210477},{"guid":"{7e8a1050-cf67-4575-92df-dcc60e7d952d}","prefs":[],"schema":1480349193877,"blockID":"i478","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935796","who":"All Firefox users who have this add-on installed.","why":"This add-on violates the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"SweetPacks","created":"2013-11-08T15:42:28Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1519eb45-fcaa-b531-490d-fe366490ed45","last_modified":1480349210416},{"guid":"/^({66b103a7-d772-4fcd-ace4-16f79a9056e0}|{6926c7f7-6006-42d1-b046-eba1b3010315}|{72cabc40-64b2-46ed-8648-26d831761150}|{73ee2cf2-7b76-4c49-b659-c3d8cf30825d}|{ca6446a5-73d5-4c35-8aa1-c71dc1024a18}|{5373a31d-9410-45e2-b299-4f61428f0be4})$/","prefs":[],"schema":1480349193877,"blockID":"i521","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947485","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> by being silently installed and using multiple add-on IDs.","name":"appbario7","created":"2013-12-20T13:14:29Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"983cb7fe-e0b4-6a2e-f174-d2670876b2cd","last_modified":1480349210351},{"guid":"{dd6b651f-dfb9-4142-b0bd-09912ad22674}","prefs":[],"schema":1480349193877,"blockID":"i400","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=835678","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This group of add-ons is silently installed, bypassing our install opt-in screen. This violates our <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Searchqu","created":"2013-06-25T15:16:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"975d2126-f727-f5b9-ca01-b83345b80c56","last_modified":1480349210301},{"guid":"25p@9eAkaLq.net","prefs":["browser.startup.homepage"],"schema":1480349193877,"blockID":"i730","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1076771","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed and changes user settings without consent, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>\r\n","name":"YYOutoubeAdBlocke","created":"2014-10-16T16:35:35Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5a0c5818-693f-43ae-f85a-c6928d9c2cc4","last_modified":1480349210275},{"os":"Darwin","guid":"thunder@xunlei.com","prefs":[],"schema":1480349193877,"blockID":"i568","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=988490","who":"All Firefox users who have versions 2.0.6 or lower of the Thunder add-on installed on Mac OS.","why":"Versions 2.0.6 and lower of the Thunder add-on are causing startup crashes on Mac OS.","name":"Thunder, 2.0.6 and lower","created":"2014-03-28T15:48:38Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.0.6","minVersion":"0","targetApplication":[]}],"id":"cee484f6-2d5d-f708-88be-cd12d825a79a","last_modified":1480349210242},{"guid":"tmbepff@trendmicro.com","prefs":[],"schema":1480349193877,"blockID":"i1222","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1275245","who":"All users of this add-on. If you wish to continue using it, you can enable it in the Add-ons Manager.","why":"Add-on  is causing a high-frequency crash in Firefox","name":"Trend Micro BEP 9.1.0.1035 and lower","created":"2016-05-24T12:10:34Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"9.1.0.1035","minVersion":"0","targetApplication":[]}],"id":"8045c799-486a-927c-b972-b9da1c2dab2f","last_modified":1480349209818},{"guid":"pricepeep@getpricepeep.com","prefs":[],"schema":1480349193877,"blockID":"i220","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=811433","who":"All Firefox users who have Pricepeed below 2.1.0.20 installed.","why":"Versions older than 2.1.0.20 of the PricePeep add-on were silently side-installed with other software, injecting advertisements in Firefox. Versions 2.1.0.20 and above don't have the install problems are not blocked.","name":"PricePeep","created":"2012-11-29T16:18:26Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.1.0.19.99","minVersion":"0","targetApplication":[]}],"id":"227b9a8d-c18d-239c-135e-d79e614fe392","last_modified":1480349209794},{"guid":"ytd@mybrowserbar.com","prefs":[],"schema":1480349193877,"blockID":"i360","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=845969","who":"All Firefox users who have this add-on installed. Users who want to enable the add-on again can do so in the Add-ons Manager tab.","why":"The installer that includes this add-on performs Firefox settings changes separately from the add-on install, making it very difficult to opt-out to these changes.","name":"YouTube Downloader","created":"2013-06-06T12:29:13Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"63669524-93fe-4823-95ba-37cf6cbd4914","last_modified":1480349209770},{"guid":"hoverst@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i498","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=946029","who":"All Firefox users who have this add-on installed.","why":"This is a malicious Firefox extension that uses a deceptive name and hijacks users' Facebook accounts.","name":"Adobe Flash Player (malware)","created":"2013-12-04T15:17:58Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2b25ba3e-45db-0e6c-965a-3acda1a44117","last_modified":1480349209745},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i606","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:20:07Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.13.*","minVersion":"3.15.13","targetApplication":[]}],"id":"c3d88e22-386a-da3b-8aba-3cb526e08053","last_modified":1480349209713},{"guid":"advance@windowsclient.com","prefs":[],"schema":1480349193877,"blockID":"i508","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=950773","who":"All Firefox users who have this add-on installed.","why":"This is not the <a href=\"https://addons.mozilla.org/addon/microsoft-net-framework-assist/\">Microsoft .NET Framework Assistant</a> created and distributed by Microsoft. It is a malicious extension that is distributed under the same name to trick users into installing it, and turns users into a botnet that conducts SQL injection attacks on visited websites.","name":"Microsoft .NET Framework Assistant (malware)","created":"2013-12-16T10:15:01Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e5d30a74-732e-c3fa-f13b-097ee28d4b27","last_modified":1480349209674},{"guid":"{5eeb83d0-96ea-4249-942c-beead6847053}","prefs":[],"schema":1480349193877,"blockID":"i756","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080846","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"SmarterPower","created":"2014-10-17T16:30:30Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e101dbc0-190c-f6d8-e168-0c1380581cc9","last_modified":1480349209625},{"guid":"/^({7e8a1050-cf67-4575-92df-dcc60e7d952d}|{b3420a9c-a397-4409-b90d-bcf22da1a08a}|{eca6641f-2176-42ba-bdbe-f3e327f8e0af}|{707dca12-3f99-4d94-afea-06dcc0ae0108}|{aea20431-87fc-40be-bc5b-18066fe2819c}|{30ee6676-1ba6-455a-a7e8-298fa863a546})$/","prefs":[],"schema":1480349193877,"blockID":"i523","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947481","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> by making changes that can't be easily reverted.","name":"SweetPacks","created":"2013-12-20T13:42:15Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a3a6bc8e-46a1-b3d5-1b20-58b90ba099c3","last_modified":1480349209559},{"guid":"{e0352044-1439-48ba-99b6-b05ed1a4d2de}","prefs":[],"schema":1480349193877,"blockID":"i710","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Site Counselor","created":"2014-09-30T15:28:14Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b8fedf07-dcaf-f0e3-b42b-32db75c4c304","last_modified":1480349209491},{"guid":"{bee6eb20-01e0-ebd1-da83-080329fb9a3a}","prefs":[],"schema":1480349193877,"blockID":"i642","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the Flash and Video Download extension weren't developed by the original developer, and are likely malicious in nature. This violates the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> for reusing an already existent ID.","name":"Flash and Video Download, between 40.10.1 and 44.10.1","created":"2014-07-10T15:02:26Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"44.10.1","minVersion":"40.10.1","targetApplication":[]}],"id":"16db0c85-02ec-4f7c-24a3-a504fbce902d","last_modified":1480349209443},{"guid":"addlyrics@addlyrics.net","prefs":[],"schema":1480349193877,"blockID":"i426","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=891605","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our <a href=\"https://developer.mozilla.org/en-US/docs/Addons/Add-on_guidelines\">Add-on Guidelines</a>.\r\n\r\nUsers who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Add Lyrics","created":"2013-07-09T15:25:30Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"81678e9e-ebf0-47d6-e409-085c25e67c7e","last_modified":1480349209383},{"guid":"{7b1bf0b6-a1b9-42b0-b75d-252036438bdc}","prefs":[],"schema":1480349193877,"blockID":"i638","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036137","who":"All Firefox users who have this version of the add-on installed.","why":"Versions 27.8 and 27.9 of the YouTube High Definition extension weren't developed by the original developer, and are likely malicious in nature. It violates the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> for reusing an already existent ID.","name":"YouTube High Definition 27.8 and 27.9","created":"2014-07-08T16:07:56Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"27.9","minVersion":"27.8","targetApplication":[]}],"id":"ffdc8ba0-d548-dc5b-d2fd-79a20837124b","last_modified":1480349209260},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i610","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:21:47Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.22.*","minVersion":"3.15.22","targetApplication":[]}],"id":"935dfec3-d017-5660-db5b-94ae7cea6e5f","last_modified":1480349209128},{"guid":"info@allpremiumplay.info","prefs":[],"schema":1480349193877,"blockID":"i163","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806451","who":"All Firefox users who have these add-ons installed.","why":"These are malicious add-ons that are distributed with a trojan and negatively affect web browsing.","name":"Codec-C (malware)","created":"2012-10-29T16:40:07Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6afbf9b8-ae3a-6a48-0f6c-7a3e065ec043","last_modified":1480349209076},{"guid":"now.msn.com@services.mozilla.org","prefs":[],"schema":1480349193877,"blockID":"i490","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=926378","who":"All Firefox users who have this add-on installed.","why":"As part of their ongoing work to fine-tune their editorial mix, msnNOW has decided that msnNOW will stop publishing on Dec. 3, 2013. Rather than having a single home for trending content, they will continue integrating that material throughout all MSN channels. A big thank you to everyone who followed msnNOW stories using the Firefox sidebar","name":"MSNNow (discontinued social provider)","created":"2013-11-27T08:06:04Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"de7d699d-016d-d973-5e39-52568de6ffde","last_modified":1480349209021},{"guid":"fftoolbar2014@etech.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i858","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1131078","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and changes users' settings, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"FF Toolbar","created":"2015-02-11T15:32:36Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6877bf40-9e45-7017-4dac-14d09e7f0ef6","last_modified":1480349208988},{"guid":"mbrnovone@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i477","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=936249","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook accounts.","name":"Mozilla Security Service (malware)","created":"2013-11-08T15:35:51Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"758c2503-766d-a2f5-4c58-7cea93acfe05","last_modified":1480349208962},{"guid":"{739df940-c5ee-4bab-9d7e-270894ae687a}","prefs":[],"schema":1480349193877,"blockID":"i530","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949558","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> by making changes that can't be easily reverted.","name":"WhiteSmoke New","created":"2013-12-20T14:49:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f8097aa6-3009-6dfc-59df-353ba6b1142b","last_modified":1480349208933},{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","prefs":[],"schema":1480349193877,"blockID":"i115","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=779014","who":"All Firefox users who have this add-on installed.","why":"This extension is malware that is installed under false pretenses, and it conducts attacks against certain video websites.","name":"Adobe Flash Player (malware)","created":"2012-08-01T13:53:00Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"aef9312d-5f2e-a44d-464d-6113394148e3","last_modified":1480349208904},{"guid":"g99hiaoekjoasiijdkoleabsy278djasi@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1022","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1208708","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"WatchIt (malware)","created":"2015-09-28T15:23:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"25e057ea-f500-67df-d078-ec3f37f99036","last_modified":1480349208877},{"guid":"firefoxaddon@youtubeenhancer.com","prefs":[],"schema":1480349193877,"blockID":"i636","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1033120","who":"All Firefox users who have this version of the add-on installed.","why":"Version 199.7.0 of the YoutubeEnhancer extension isn't developed by the original developer, and is likely malicious in nature. It violates the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> for reusing an already existent ID.","name":"YoutubeEnhancer - Firefox","created":"2014-07-08T15:58:12Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"199.7.0","minVersion":"199.7.0","targetApplication":[]}],"id":"204a074b-da87-2784-f15b-43a9ea9a6b36","last_modified":1480349208851},{"guid":"extacylife@a.com","prefs":[],"schema":1480349193877,"blockID":"i505","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947741","who":"All Firefox users who have this add-on installed.","why":"This is a malicious extension that hijacks users' Facebook accounts.","name":"Facebook Haber (malware)","created":"2013-12-09T15:08:51Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5acadb8d-d3be-e0e0-4656-9107f9de0ea9","last_modified":1480349208823},{"guid":"{746505DC-0E21-4667-97F8-72EA6BCF5EEF}","prefs":[],"schema":1480349193877,"blockID":"i842","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128325","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Shopper-Pro","created":"2015-02-06T14:45:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5f19c5fb-1c78-cbd6-8a03-1678efb54cbc","last_modified":1480349208766},{"guid":"{51c77233-c0ad-4220-8388-47c11c18b355}","prefs":[],"schema":1480349193877,"blockID":"i580","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1004132","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, it can be enabled in the Add-ons Manager.","why":"This add-on is silently installed into Firefox, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Browser Utility","created":"2014-04-30T13:55:35Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.1.9999999","minVersion":"0","targetApplication":[]}],"id":"daa2c60a-5009-2c65-a432-161d50bef481","last_modified":1480349208691},{"guid":"{a2bfe612-4cf5-48ea-907c-f3fb25bc9d6b}","prefs":[],"schema":1480349193877,"blockID":"i712","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Website Xplorer","created":"2014-09-30T15:28:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"13450534-93d7-f2a2-7f0a-e4e3948c4dc1","last_modified":1480349208027},{"guid":"ScorpionSaver@jetpack","prefs":[],"schema":1480349193877,"blockID":"i539","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963826","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, you can enable it in the Add-ons Manager.","why":"This add-on is being silently installed, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>","name":"ScorpionSaver","created":"2014-01-28T14:00:30Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3499c968-6e8b-37f1-5f6e-2384807c2a6d","last_modified":1480349207972},{"guid":"unblocker20@unblocker.yt","prefs":[],"schema":1480349193877,"blockID":"i1212","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have this add-on installed.","why":"This add-on is a copy of YouTube Unblocker, which was <a href=\"https://addons.mozilla.org/firefox/blocked/i1129\">originally blocked</a> due to malicious activity.","name":"YouTube Unblocker 2.0","created":"2016-05-05T18:13:29Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"2.0.0","minVersion":"0","targetApplication":[]}],"id":"57785030-909f-e985-2a82-8bd057781227","last_modified":1480349207912},{"guid":"{D19CA586-DD6C-4a0a-96F8-14644F340D60}","prefs":[],"schema":1480349193877,"blockID":"i42","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=690184","who":"Users of McAfee ScriptScan versions 14.4.0 and below for all versions of Firefox and SeaMonkey.","why":"This add-on causes a high volume of crashes.","name":"McAfee ScriptScan","created":"2011-10-03T09:38:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"14.4.0","minVersion":"0.1","targetApplication":[]}],"id":"1d35ac9d-49df-23cf-51f5-f3c228ad0dc9","last_modified":1480349207877},{"guid":"gjhrjenrengoe@jfdnkwelfwkm.com","prefs":[],"schema":1480349193877,"blockID":"i1042","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1212174","who":"All users who have this add-on installed.","why":"This is a malicious add-on that takes over Facebook accounts.","name":"Avant Player (malware)","created":"2015-10-07T13:12:54Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d6453893-becc-7617-2050-0db284e0e0db","last_modified":1480349207840},{"guid":"/^(@9338379C-DD5C-4A45-9A36-9733DC806FAE|9338379C-DD5C-4A45-9A36-9733DC806FAE|@EBC7B466-8A28-4061-81B5-10ACC05FFE53|@bd6a97c0-4b18-40ed-bce7-3b7d3309e3c4222|@bd6a97c0-4b18-40ed-bce7-3b7d3309e3c4|@b2d6a97c0-4b18-40ed-bce7-3b7d3309e3c4222)$/","prefs":[],"schema":1480349193877,"blockID":"i1079","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1240597","who":"All Firefox users who have these add-ons installed.","why":"These add-ons are malicious, manipulating registry and search settings for users.","name":"Default SearchProtected (malware)","created":"2016-01-18T12:32:32Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ddc5237e-42e4-1bf1-54d3-a5e5799dd828","last_modified":1480349207815},{"guid":"{33e0daa6-3af3-d8b5-6752-10e949c61516}","prefs":[],"schema":1480349193877,"blockID":"i282","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=835683","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on violates our <a href=\"https://developer.mozilla.org/en-US/docs/Addons/Add-on_guidelines\">add-on guidelines</a>, bypassing the third party opt-in screen.","name":"Complitly","created":"2013-02-15T12:19:26Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.1.999","minVersion":"0","targetApplication":[]}],"id":"1f94bc8d-9d5f-c8f5-45c0-ad1f6e147c71","last_modified":1480349207789},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i608","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:20:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.20.*","minVersion":"3.15.18","targetApplication":[]}],"id":"e7d50ff2-5948-d571-6711-37908ccb863f","last_modified":1480349207761},{"guid":"chiang@programmer.net","prefs":[],"schema":1480349193877,"blockID":"i340","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=867156","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that logs keyboard input and sends it to a remote server.","name":"Cache Manager (malware)","created":"2013-04-30T07:44:09Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d50d0434-78e4-faa7-ce2a-9b0a8bb5120e","last_modified":1480349207736},{"guid":"{63eb5ed4-e1b3-47ec-a253-f8462f205350}","prefs":[],"schema":1480349193877,"blockID":"i786","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"FF-Plugin","created":"2014-11-18T12:33:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ca4558a2-8ce4-3ca0-3d29-63019f680c8c","last_modified":1480349207705},{"guid":"jid1-4vUehhSALFNqCw@jetpack","prefs":[],"schema":1480349193877,"blockID":"i634","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1033002","who":"All Firefox users who have this version of the add-on installed.","why":"Version 99.7 of the YouTube Plus Plus extension isn't developed by the original developer, and is likely malicious in nature. It violates the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> for reusing an already existent ID.","name":"YouTube Plus Plus 99.7","created":"2014-07-04T14:13:57Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"99.7","minVersion":"99.7","targetApplication":[]}],"id":"a6d017cb-e33f-2239-4e42-ab4e7cfb19fe","last_modified":1480349207680},{"guid":"{aab02ab1-33cf-4dfa-8a9f-f4e60e976d27}","prefs":[],"schema":1480349193877,"blockID":"i820","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems without their consent, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Incredible Web","created":"2015-01-13T09:27:49Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"847ecc6e-1bc1-f7ff-e1d5-a76e6b8447d2","last_modified":1480349207654},{"guid":"torntv@torntv.com","prefs":[],"schema":1480349193877,"blockID":"i320","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=845610","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our <a href=\"https://developer.mozilla.org/en-US/docs/Addons/Add-on_guidelines\">Add-on Guidelines</a>, bypassing our third party install opt-in screen. Users who wish to continue using this extension can enable it in the Add-ons Manager.","name":"TornTV","created":"2013-03-20T16:35:24Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cdd492b8-8101-74a9-5760-52ff709fd445","last_modified":1480349207608},{"guid":"crossriderapp12555@crossrider.com","prefs":[],"schema":1480349193877,"blockID":"i674","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=877836","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"The add-on is silently installed, in violation of our <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"JollyWallet","created":"2014-07-22T16:26:19Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d4467e20-0f71-f0e0-8cd6-40c82b6c7379","last_modified":1480349207561},{"guid":"pluggets@gmail.com","prefs":[],"schema":1480349193877,"blockID":"i435","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=903544","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks users' Facebook accounts and posts spam on their behalf. ","name":"Facebook Pluggets Plugin (malware)","created":"2013-08-09T13:12:14Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3a63fd92-9290-02fb-a2e8-bc1b4424201a","last_modified":1480349207535},{"guid":"344141-fasf9jas08hasoiesj9ia8ws@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1038","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1211169","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Video Plugin (malware)","created":"2015-10-05T16:42:09Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f7986b7b-9b5a-d372-8147-8b4bd6f5a29b","last_modified":1480349207485},{"guid":"meOYKQEbBBjH5Ml91z0p9Aosgus8P55bjTa4KPfl@jetpack","prefs":[],"schema":1480349193877,"blockID":"i998","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1201164","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Smooth Player (malware)","created":"2015-09-07T13:54:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"30c3e511-9e8d-15ee-0867-d61047e56515","last_modified":1480349207370},{"guid":"{8dc5c42e-9204-2a64-8b97-fa94ff8a241f}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i770","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1088726","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and is considered malware, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Astrmenda Search","created":"2014-10-30T14:52:52Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8a9c7702-0349-70d6-e64e-3a666ab084c6","last_modified":1480349207320},{"guid":"savingsslider@mybrowserbar.com","prefs":[],"schema":1480349193877,"blockID":"i752","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963788","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Slick Savings","created":"2014-10-17T16:18:12Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9b1faf30-5725-7847-d993-b5cdaabc9829","last_modified":1480349207290},{"guid":"youtubeunblocker__web@unblocker.yt","prefs":[],"schema":1480349193877,"blockID":"i1129","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have this add-on installed.","why":"The add-on has a mechanism that updates certain configuration files from the developer\u2019s website. This mechanism has a vulnerability that is being exploited through this website (unblocker.yt) to change security settings in Firefox and install malicious add-ons.","name":"YouTube Unblocker","created":"2016-03-01T21:20:05Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"aa246b36-0a80-81e3-2129-4847e872d5fe","last_modified":1480349207262},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i612","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:23:00Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.24.*","minVersion":"3.15.24","targetApplication":[]}],"id":"e0ff9df4-60e4-dbd0-8018-57f395e6610a","last_modified":1480349206818},{"guid":"{1e4ea5fc-09e5-4f45-a43b-c048304899fc}","prefs":[],"schema":1480349193877,"blockID":"i812","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Great Finder","created":"2015-01-06T13:22:39Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1ea40b9f-2423-a2fd-a5e9-4ec1df2715f4","last_modified":1480349206784},{"guid":"psid-vhvxQHMZBOzUZA@jetpack","prefs":[],"schema":1480349193877,"blockID":"i70","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=730059","who":"All Firefox users who have installed this add-on.","why":"Add-on spams Facebook accounts and blocks Facebook warnings.","name":"PublishSync (malware)","created":"2012-02-23T13:44:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f1528b02-7cef-0e80-f747-8bbf1f0f2f06","last_modified":1480349206758},{"guid":"{B18B1E5C-4D81-11E1-9C00-AFEB4824019B}","prefs":[],"schema":1480349193877,"blockID":"i447","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=788838","who":"All Firefox users who have this add-on installed. The add-on can be enabled again in the Add-ons Manager.","why":"This add-on is installed silently, in violation of our <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"My Smart Tabs","created":"2013-09-06T16:00:19Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"40332fae-0444-a141-ade9-8d9e50370f56","last_modified":1480349206733},{"guid":"crossriderapp8812@crossrider.com","prefs":[],"schema":1480349193877,"blockID":"i314","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=835665","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our <a href=\"https://developer.mozilla.org/en-US/docs/Addons/Add-on_guidelines\">Add-on Guidelines</a>, bypassing our third party install opt-in screen. Users who wish to continue using this extension can enable it in the Add-ons Manager.","name":"Coupon Companion","created":"2013-03-06T14:14:51Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"06c07e28-0a34-e5ee-e724-491a2f6ce586","last_modified":1480349206708},{"guid":"/^(ffxtlbr@mixidj\\.com|{c0c2693d-2ee8-47b4-9df7-b67a0ee31988}|{67097627-fd8e-4f6b-af4b-ecb65e50112e}|{f6f0f973-a4a3-48cf-9a7a-b7a69c30d71a}|{a3d0e35f-f1da-4ccb-ae77-e9d27777e68d}|{1122b43d-30ee-403f-9bfa-3cc99b0caddd})$/","prefs":[],"schema":1480349193877,"blockID":"i540","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963819","who":"All Firefox users who have this add-on installed.","why":"This add-on has been repeatedly blocked before and keeps showing up with new add-on IDs, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"MixiDJ (malware)","created":"2014-01-28T14:07:56Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4c03ddda-bb3f-f097-0a7b-b7b77b050584","last_modified":1480349206678},{"guid":"hansin@topvest.id","prefs":[],"schema":1480349193877,"blockID":"i836","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1130406","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Inside News (malware)","created":"2015-02-06T14:17:39Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0945a657-f28d-a02c-01b2-5115b3f90d7a","last_modified":1480349206628},{"guid":"lfind@nijadsoft.net","prefs":[],"schema":1480349193877,"blockID":"i358","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=874131","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our <a href=\"https://developer.mozilla.org/en-US/docs/Addons/Add-on_guidelines\">Add-on Guidelines</a>.\r\n\r\nUsers who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Lyrics Finder","created":"2013-05-24T14:09:47Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2307f11c-6216-0dbf-a464-b2921055ce2b","last_modified":1480349206603},{"guid":"plugin@getwebcake.com","prefs":[],"schema":1480349193877,"blockID":"i484","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=938264","who":"All Firefox users who have this add-on installed.","why":"This add-on violates the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> and is broadly considered to be malware. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"WebCake","created":"2013-11-14T09:55:24Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2865addd-da1c-20c4-742f-6a2270da2e78","last_modified":1480349206578},{"guid":"{c0c2693d-2ee8-47b4-9df7-b67a0ee31988}","prefs":[],"schema":1480349193877,"blockID":"i354","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=837838","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our <a href=\"https://developer.mozilla.org/en-US/docs/Addons/Add-on_guidelines\">Add-on Guidelines</a>.\r\n\r\nUsers who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Mixi DJ","created":"2013-05-23T14:31:21Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"03a745c3-0ee7-e262-ba31-62d4f78ddb62","last_modified":1480349206525},{"guid":"/^({7316e43a-3ebd-4bb4-95c1-9caf6756c97f}|{0cc09160-108c-4759-bab1-5c12c216e005}|{ef03e721-f564-4333-a331-d4062cee6f2b}|{465fcfbb-47a4-4866-a5d5-d12f9a77da00}|{7557724b-30a9-42a4-98eb-77fcb0fd1be3}|{b7c7d4b0-7a84-4b73-a7ef-48ef59a52c3b})$/","prefs":[],"schema":1480349193877,"blockID":"i520","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947485","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> by being silently installed and using multiple add-on IDs.","name":"appbario7","created":"2013-12-20T13:11:46Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e3901c48-9c06-fecb-87d3-efffd9940c22","last_modified":1480349206491},{"guid":"{354dbb0a-71d5-4e9f-9c02-6c88b9d387ba}","prefs":[],"schema":1480349193877,"blockID":"i538","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=964081","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Show Mask ON (malware)","created":"2014-01-27T10:13:17Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"aad90253-8921-b5df-3658-45a70d75f3d7","last_modified":1480349206465},{"guid":"{8E9E3331-D360-4f87-8803-52DE43566502}","prefs":[],"schema":1480349193877,"blockID":"i461","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=906071","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This is a companion add-on for the SweetPacks Toolbar which is <a href=\"https://addons.mozilla.org/firefox/blocked/i392\">blocked</a> due to guideline violations.","name":"Updater By SweetPacks","created":"2013-10-17T16:10:51Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ae8cca6e-4258-545f-9a69-3d908264a701","last_modified":1480349206437},{"guid":"info@bflix.info","prefs":[],"schema":1480349193877,"blockID":"i172","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806802","who":"All Firefox users who have this add-on installed.","why":"These are malicious add-ons that are distributed with a trojan and negatively affect web browsing.","name":"Bflix (malware)","created":"2012-10-30T13:39:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"7a9062f4-218d-51d2-9b8c-b282e6eada4f","last_modified":1480349206384},{"guid":"{dff137ae-1ffd-11e3-8277-b8ac6f996f26}","prefs":[],"schema":1480349193877,"blockID":"i450","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=917861","who":"All Firefox users who have this add-on installed.","why":"This is add-on is malware that silently redirects popular search queries to a third party.","name":"Addons Engine (malware)","created":"2013-09-18T16:19:34Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8e583fe4-1c09-9bea-2473-faecf3260685","last_modified":1480349206312},{"guid":"12x3q@3244516.com","prefs":[],"schema":1480349193877,"blockID":"i493","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=939254","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be malware and is installed silently in violation of the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"BetterSurf (malware)","created":"2013-12-02T12:49:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"af2a9e74-3753-9ff1-d899-5d1e79ed3dce","last_modified":1480349206286},{"guid":"{20AD702C-661E-4534-8CE9-BA4EC9AD6ECC}","prefs":[],"schema":1480349193877,"blockID":"i626","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1027886","who":"All Firefox users who have this add-on installed.","why":"This add-on is probably silently installed, and is causing significant stability issues for users, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"V-Bates","created":"2014-06-19T15:16:38Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9b9ccabe-8f9a-e3d1-a689-1aefba1f33b6","last_modified":1480349206261},{"guid":"{c5e48979-bd7f-4cf7-9b73-2482a67a4f37}","prefs":[],"schema":1480349193877,"blockID":"i736","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080842","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"ClearThink","created":"2014-10-17T15:22:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6e8b3e4f-2f59-cde3-e6d2-5bc6e216c506","last_modified":1480349206231},{"guid":"{41339ee8-61ed-489d-b049-01e41fd5d7e0}","prefs":[],"schema":1480349193877,"blockID":"i810","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"FireWeb","created":"2014-12-23T10:32:26Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a35f2ca6-aec4-c01d-170e-650258ebcd2c","last_modified":1480349206165},{"guid":"jid0-l9BxpNUhx1UUgRfKigWzSfrZqAc@jetpack","prefs":[],"schema":1480349193877,"blockID":"i640","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036640","who":"All Firefox users who have this add-on installed.","why":"This add-on attempts to gather private user data and send it to a remote location. It doesn't appear to be very effective at it, but its malicious nature is undeniable.","name":"Bitcoin Mining Software","created":"2014-07-09T14:35:40Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8fe3c35e-1a6f-a89a-fa96-81bda3b71db1","last_modified":1480349206133},{"guid":"{845cab51-d8d2-472f-8bd9-2b44642d97c2}","prefs":[],"schema":1480349193877,"blockID":"i460","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=927456","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and handles users' settings, violating some of the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Vafmusic9","created":"2013-10-17T15:50:38Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8538ccb4-3b71-9858-3f6d-c0fff7af58b0","last_modified":1480349205746},{"guid":"SpecialSavings@SpecialSavings.com","prefs":[],"schema":1480349193877,"blockID":"i676","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=881511","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This is add-on is generally considered to be unwanted and is probably silently installed, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"SpecialSavings","created":"2014-07-22T16:31:56Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5e921810-fc3a-0729-6749-47e38ad10a22","last_modified":1480349205688},{"guid":"afurladvisor@anchorfree.com","prefs":[],"schema":1480349193877,"blockID":"i434","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=844945","who":"All Firefox users who have this add-on installed.","why":"This add-on bypasses the external install opt in screen in Firefox, violating the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Hotspot Shield Helper","created":"2013-08-09T11:26:11Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"083585eb-d7e7-e228-5fbf-bf35c52044e4","last_modified":1480349205645},{"guid":"addonhack@mozilla.kewis.ch","prefs":[],"schema":1480349193877,"blockID":"i994","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1200848","who":"All users who have this add-on installed.","why":"This add-on is a proof of concept of malicious behavior in an add-on. In itself it doesn't cause any harm, but it still needs to be blocked for security reasons.","name":"Addon Hack","created":"2015-09-01T15:32:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"81f75571-ca2a-0e50-a925-daf2037ce63c","last_modified":1480349205584},{"guid":"info@thebflix.com","prefs":[],"schema":1480349193877,"blockID":"i174","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806802","who":"All Firefox users who have these add-ons installed.","why":"These are malicious add-ons that are distributed with a trojan and negatively affect web browsing.","name":"Bflix (malware)","created":"2012-10-30T13:40:31Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"811a61d4-9435-133e-6262-fb72486c36b0","last_modified":1480349205526},{"guid":"{EEE6C361-6118-11DC-9C72-001320C79847}","prefs":[],"schema":1480349193877,"blockID":"i392","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=881447","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on changes search settings without user interaction, and fails to reset them after it is removed. This violates our <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"SweetPacks Toolbar","created":"2013-06-25T12:38:45Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c1dc6607-4c0a-4031-9f14-70ef1ae1edcb","last_modified":1480349205455},{"guid":"/^(4cb61367-efbf-4aa1-8e3a-7f776c9d5763@cdece6e9-b2ef-40a9-b178-291da9870c59\\.com|0efc9c38-1ec7-49ed-8915-53a48b6b7600@e7f17679-2a42-4659-83c5-7ba961fdf75a\\.com|6be3335b-ef79-4b0b-a0ba-b87afbc6f4ad@6bbb4d2e-e33e-4fa5-9b37-934f4fb50182\\.com)$/","prefs":[],"schema":1480349193877,"blockID":"i531","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949672","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> by making changes that can't be easily reverted and using multiple IDs.","name":"Feven","created":"2013-12-20T15:01:22Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"46aa79a9-d329-f713-d4f2-07d31fe7071e","last_modified":1480349205287},{"guid":"afext@anchorfree.com","prefs":[],"schema":1480349193877,"blockID":"i466","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=933988","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't respect user choice, violating the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Hotspot Shield Extension","created":"2013-11-07T13:32:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8176f879-bd73-5468-e908-2d7cfc115ac2","last_modified":1480349205108},{"guid":"{FCE04E1F-9378-4f39-96F6-5689A9159E45}","prefs":[],"schema":1480349193877,"blockID":"i920","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1173154","who":"All Firefox users who have this add-on installed in Firefox 39 and above.\r\n","why":"Certain versions of this extension are causing startup crashes in Firefox 39 and above.\r\n","name":"RealPlayer Browser Record Plugin","created":"2015-06-09T15:26:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"eb191ff0-20f4-6e04-4344-d880af4faf51","last_modified":1480349204978},{"guid":"{9CE11043-9A15-4207-A565-0C94C42D590D}","prefs":[],"schema":1480349193877,"blockID":"i503","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947384","who":"All Firefox users who have this add-on installed.","why":"This is a malicious extension that uses a deceptive name to stay in users' systems.","name":"XUL Cache (malware)","created":"2013-12-06T11:58:38Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"dcdae267-8d3a-5671-dff2-f960febbbb20","last_modified":1480349204951},{"guid":"/^[a-z0-9]+@foxysecure[a-z0-9]*\\.com$/","prefs":[],"schema":1480349193877,"blockID":"i766","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1088615","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Fox Sec 7","created":"2014-10-30T14:22:18Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"503fbd7c-04cd-65f3-9d0e-3ecf427b4a8f","last_modified":1480349204925},{"guid":"/^(jid1-W4CLFIRExukJIFW@jetpack|jid1-W4CLFIRExukJIFW@jetpack_1|jid1-W3CLwrP[a-z]+@jetpack)$/","prefs":[],"schema":1480349193877,"blockID":"i1078","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1240561","who":"All Firefox users who have this add-on installed.","why":"This is a malicious extension that tries to pass itself for the Adobe Flash Player and hides itself in the Add-ons Manager.","name":"Adobe Flash Player (malware)","created":"2016-01-18T10:31:51Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b026fe67-ec77-a240-2fa1-e78f581a6fe4","last_modified":1480349204899},{"guid":"{0153E448-190B-4987-BDE1-F256CADA672F}","prefs":[],"schema":1480349193877,"blockID":"i914","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1170633","who":"All Firefox users who have this add-on installed in Firefox 39 and above.","why":"Certain versions of this extension are causing startup crashes in Firefox 39 and above.","name":"RealPlayer Browser Record Plugin","created":"2015-06-02T09:56:58Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"2bfe0d89-e458-9d0e-f944-ddeaf8c4db6c","last_modified":1480349204871},{"guid":"{77beece6-3997-403a-92fa-0055bfcf88e5}","prefs":[],"schema":1480349193877,"blockID":"i452","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=916966","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>, manipulating settings without reverting them on removal. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Entrusted11","created":"2013-09-18T16:34:58Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d348f91f-caeb-a803-dfd9-fd5d285aa0fa","last_modified":1480349204844},{"guid":"dealcabby@jetpack","prefs":[],"schema":1480349193877,"blockID":"i222","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=811435","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently side-installed with other software, injecting advertisements in Firefox.","name":"DealCabby","created":"2012-11-29T16:20:24Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6585f0bd-4f66-71e8-c565-d9762c5c084a","last_modified":1480349204818},{"guid":"{3c9a72a0-b849-40f3-8c84-219109c27554}","prefs":[],"schema":1480349193877,"blockID":"i510","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=951301","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks users' Facebook accounts.","name":"Facebook Haber (malware)","created":"2013-12-17T14:27:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"7cfa3d0b-0ab2-5e3a-8143-1031c180e32f","last_modified":1480349204778},{"guid":"{4ED1F68A-5463-4931-9384-8FFF5ED91D92}","prefs":[],"schema":1480349193877,"blockID":"i1245","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1286368","who":"All users who have McAfee SiteAdvisor lower than 4.0. \r\n\r\nTo resolve this issue, users will need to uninstall McAfee SiteAdvisor/WebAdvisor, reboot the computer, and then reinstall McAfee SiteAdvisor/WebAdvisor. \r\n\r\nFor detailed instructions, please refer to the <a href=\"https://service.mcafee.com/webcenter/portal/cp/home/articleview?locale=en-CA&articleId=TS102554\">McAfee support knowledge base</a>.","why":"Old versions of McAfee SiteAdvisor cause startup crashes starting with Firefox 48.0 beta.","name":"McAfee SiteAdvisor lower than 4.0","created":"2016-07-14T21:24:02Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.9.9","minVersion":"0","targetApplication":[]}],"id":"d727d8c5-3329-c98a-7c7e-38b0813ca516","last_modified":1480349204748},{"guid":"{2aab351c-ad56-444c-b935-38bffe18ad26}","prefs":[],"schema":1480349193877,"blockID":"i500","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=946087","who":"All Firefox users who have this add-on installed.","why":"This is a malicious Firefox extension that uses a deceptive name and hijacks users' Facebook accounts.","name":"Adobe Photo (malware)","created":"2013-12-04T15:29:44Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f7a76d34-ddcd-155e-9fae-5967bd796041","last_modified":1480349204716},{"guid":"jid1-4P0kohSJxU1qGg@jetpack","prefs":[],"schema":1480349193877,"blockID":"i488","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=942935","who":"All Firefox users who have version 1.2.50 of the Hola extension. Updating to the latest version should remove the block.","why":"Version 1.2.50 of the Hola extension is causing frequent crashes in Firefox. All users are strongly recommended to update to the latest version, which shouldn't have this problem.","name":"Hola, version 1.2.50","created":"2013-11-25T12:14:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.2.50","minVersion":"1.2.50","targetApplication":[]}],"id":"5c7f1635-b39d-4278-5f95-9042399c776e","last_modified":1480349204668},{"guid":"{0A92F062-6AC6-8180-5881-B6E0C0DC2CC5}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i864","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1131220","who":"All users who have this add-on installed. Users who wish to continue using the add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems and makes unwanted settings changes, in violation of our <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"BlockAndSurf","created":"2015-02-26T12:56:19Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"acb16d1c-6274-93a3-7c1c-7ed36ede64a9","last_modified":1480349204612},{"guid":"jid0-Y6TVIzs0r7r4xkOogmJPNAGFGBw@jetpack","prefs":[],"schema":1480349193877,"blockID":"i322","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=847018","who":"All users who have this add-on installed.","why":"This extension is malware, installed pretending to be the Flash Player plugin.","name":"Flash Player (malware)","created":"2013-03-22T14:39:40Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"54df22cd-19ce-a7f0-63cc-ffe3113748b9","last_modified":1480349204532},{"guid":"trackerbird@bustany.org","prefs":[],"schema":1480349193877,"blockID":"i986","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1189264","who":"All Thunderbird users who have this version of the add-on installed on Thunderbird 38.0a2 and above.","why":"This add-on is causing consistent crashes on Thunderbird 38.0a2 and above.","name":"trackerbird 1.2.6","created":"2015-08-17T15:56:04Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.2.6","minVersion":"1.2.6","targetApplication":[{"guid":"{3550f703-e582-4d05-9a08-453d09bdfdc6}","maxVersion":"*","minVersion":"38.0a2"}]}],"id":"bb1c699e-8790-4528-0b6d-4f83b7a3152d","last_modified":1480349204041},{"guid":"{0134af61-7a0c-4649-aeca-90d776060cb3}","prefs":[],"schema":1480349193877,"blockID":"i448","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=912746","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our Add-on Guidelines. It manipulates settings without reverting them on removal. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"KeyBar add-on","created":"2013-09-13T16:15:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cf428416-4974-8bb4-7928-c0cb2cfe7957","last_modified":1480349203968},{"guid":"/^(firefox@vebergreat\\.net|EFGLQA@78ETGYN-0W7FN789T87\\.COM)$/","prefs":[],"schema":1480349193877,"blockID":"i564","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=974104","who":"All Firefox users who have these add-ons installed. If you wish to continue using these add-ons, you can enable them in the Add-ons Manager.","why":"These add-ons are silently installed by the Free Driver Scout installer, in violation of our <a href=\"https://developer.mozilla.org/en-US/docs/Addons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"veberGreat and vis (Free Driver Scout bundle)","created":"2014-03-05T13:02:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"487538f1-698e-147e-6395-986759ceed7e","last_modified":1480349203902},{"guid":"69ffxtbr@PackageTracer_69.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i882","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1153001","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on appears to be malware, hijacking user's settings, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"PackageTracer","created":"2015-04-10T16:18:35Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0d37b4e0-3c60-fdad-dd8c-59baff6eae87","last_modified":1480349203836},{"guid":"{ACAA314B-EEBA-48e4-AD47-84E31C44796C}","prefs":[],"schema":1480349193877,"blockID":"i496","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=945530","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> by making settings changes that can't be easily reverted.","name":"DVDVideoSoft Menu","created":"2013-12-03T16:07:59Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"70d2c912-8d04-8065-56d6-d793b13d5f67","last_modified":1480349203779},{"guid":"jid1-4vUehhSALFNqCw@jetpack","prefs":[],"schema":1480349193877,"blockID":"i632","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1033002","who":"All Firefox users who have this version of the add-on installed.","why":"Version 100.7 of the YouTube Plus Plus extension isn't developed by the original developer, and is likely malicious in nature. It violates the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> for reusing an already existent ID.","name":"YouTube Plus Plus 100.7","created":"2014-07-01T13:16:55Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"100.7","minVersion":"100.7","targetApplication":[]}],"id":"8bef6026-6697-99cd-7c1f-812877c4211d","last_modified":1480349203658},{"guid":"{a9bb9fa0-4122-4c75-bd9a-bc27db3f9155}","prefs":[],"schema":1480349193877,"blockID":"i404","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=835678","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This group of add-ons is silently installed, bypassing our install opt-in screen. This violates our <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Searchqu","created":"2013-06-25T15:16:43Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"fb7a1dc7-16a0-4f70-8289-4df494e0d0fa","last_modified":1480349203633},{"guid":"P2@D.edu","prefs":[],"schema":1480349193877,"blockID":"i850","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128269","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and performs unwanted actions, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"unIsaless","created":"2015-02-09T15:29:21Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"49536a29-fc7e-9fd0-f415-e15ac090fa56","last_modified":1480349203605},{"guid":"linksicle@linksicle.com","prefs":[],"schema":1480349193877,"blockID":"i472","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935779","who":"All Firefox users who have this add-on installed.","why":"This add-on is part of a malicious Firefox installer bundle.","name":"Installer bundle (malware)","created":"2013-11-07T15:38:38Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9b5b15b3-6da7-cb7c-3c44-30b4fe079d52","last_modified":1480349203581},{"guid":"{377e5d4d-77e5-476a-8716-7e70a9272da0}","prefs":[],"schema":1480349193877,"blockID":"i398","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=835678","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This group of add-ons is silently installed, bypassing our install opt-in screen. This violates our <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Searchqu","created":"2013-06-25T15:15:46Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ea94df32-2a85-23da-43f7-3fc5714530ec","last_modified":1480349203519},{"guid":"{4933189D-C7F7-4C6E-834B-A29F087BFD23}","prefs":[],"schema":1480349193877,"blockID":"i437","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=900695","who":"All Firefox users.","why":"This add-on is widely reported to be malware.","name":"Win32.SMSWebalta (malware)","created":"2013-08-09T15:14:27Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cbef1357-d6bc-c8d3-7a82-44af6b1c390f","last_modified":1480349203486},{"guid":"{ADFA33FD-16F5-4355-8504-DF4D664CFE10}","prefs":[],"schema":1480349193877,"blockID":"i306","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=844972","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed, bypassing our third-party opt-in screen, in violation of our <a href=\"https://developer.mozilla.org/en-US/docs/Addons/Add-on_guidelines\">Add-on Guidelines</a>. It's also possible that it changes user settings without their consent.","name":"Nation Toolbar","created":"2013-02-28T12:56:48Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"017fd151-37ca-4646-4763-1d303fb918fa","last_modified":1480349203460},{"guid":"detgdp@gmail.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i884","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1152614","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be malware, hijacking user settings, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Security Protection (malware)","created":"2015-04-10T16:21:34Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1b5cc88e-499d-2a47-d793-982d4c05e6ee","last_modified":1480349203433},{"guid":"/^(67314b39-24e6-4f05-99f3-3f88c7cddd17@6c5fa560-13a3-4d42-8e90-53d9930111f9\\.com|ffxtlbr@visualbee\\.com|{7aeae561-714b-45f6-ace3-4a8aed6e227b}|{7093ee04-f2e4-4637-a667-0f730797b3a0}|{53c4024f-5a2e-4f2a-b33e-e8784d730938})$/","prefs":[],"schema":1480349193877,"blockID":"i514","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947473","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> by using multiple add-on IDs and making unwanted settings changes.","name":"VisualBee Toolbar","created":"2013-12-20T12:25:50Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5f91eee1-7303-3f97-dfe6-1e897a156c7f","last_modified":1480349203408},{"guid":"FXqG@xeeR.net","prefs":["browser.startup.homepage"],"schema":1480349193877,"blockID":"i720","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1076771","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems and changes settings without consent, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"GoSSave","created":"2014-10-02T12:23:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8ebbc061-a4ff-b75b-ec42-eb17c42a2956","last_modified":1480349203341},{"guid":"{87934c42-161d-45bc-8cef-ef18abe2a30c}","prefs":[],"schema":1480349193877,"blockID":"i547","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=798621","who":"All Firefox users who have this add-on installed. If you wish to continue using it, it can be enabled in the Add-ons Manager.","why":"This add-on is silently installed and makes various unwanted changes, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Ad-Aware Security Toolbar","created":"2014-01-30T12:42:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.7.9999999999","minVersion":"0","targetApplication":[]}],"id":"bcfbc502-24c2-4699-7435-e4837118f05a","last_modified":1480349203310},{"guid":"kallow@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i495","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=945426","who":"All Firefox users who have this add-on installed.","why":"This is a malicious Firefox extension that uses a deceptive name and hijacks users' Facebook accounts.","name":"Facebook Security Service (malware)","created":"2013-12-02T15:09:42Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1a2c37a9-e7cc-2d03-2043-098d36b8aca2","last_modified":1480349203247},{"guid":"support@lastpass.com","prefs":[],"schema":1480349193877,"blockID":"i1261","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1289907","who":"All users who install affected versions of this add-on - beta versions 4.0 to 4.1.20a from addons.mozilla.org or lastpass.com.","why":"LastPass have announced there are security issues that would allow a malicious website to perform some actions (e.g. deleting passwords) without the user's knowledge.  Beta versions 4.0 to 4.1.20a of their add-on that were available from addons.mozilla.org are affected and Lastpass also distributed these versions direct from their website.","name":"LastPass addon","created":"2016-07-29T14:17:31Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"4.1.20a","minVersion":"4.0.0a","targetApplication":[]}],"id":"ffe94023-b4aa-87ac-962c-5beabe34b1a0","last_modified":1480349203208},{"guid":"008abed2-b43a-46c9-9a5b-a771c87b82da@1ad61d53-2bdc-4484-a26b-b888ecae1906.com","prefs":[],"schema":1480349193877,"blockID":"i528","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949565","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> by being silently installed.","name":"weDownload Manager Pro","created":"2013-12-20T14:40:58Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"da46065f-1c68-78f7-80fc-8ae07b5df68d","last_modified":1480349203131},{"guid":"{25dd52dc-89a8-469d-9e8f-8d483095d1e8}","prefs":[],"schema":1480349193877,"blockID":"i714","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Web Counselor","created":"2014-10-01T15:36:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e46c31ad-0ab3-e48a-47aa-9fa91b675fda","last_modified":1480349203066},{"guid":"{B1FC07E1-E05B-4567-8891-E63FBE545BA8}","prefs":[],"schema":1480349193877,"blockID":"i926","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1173154","who":"All Firefox users who have this add-on installed in Firefox 39 and above.\r\n","why":"Certain versions of this extension are causing startup crashes in Firefox 39 and above.\r\n","name":"RealPlayer Browser Record Plugin","created":"2015-06-09T15:28:46Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"09868783-261a-ac24-059d-fc772218c1ba","last_modified":1480349202708},{"guid":"/^(torntv@torntv\\.com|trtv3@trtv\\.com|torntv2@torntv\\.com|e2fd07a6-e282-4f2e-8965-85565fcb6384@b69158e6-3c3b-476c-9d98-ae5838c5b707\\.com)$/","prefs":[],"schema":1480349193877,"blockID":"i529","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949559","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> by being silently installed.","name":"TornTV","created":"2013-12-20T14:46:03Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"040e5ec2-ea34-816a-f99f-93296ce845e8","last_modified":1480349202677},{"guid":"249911bc-d1bd-4d66-8c17-df533609e6d8@c76f3de9-939e-4922-b73c-5d7a3139375d.com","prefs":[],"schema":1480349193877,"blockID":"i532","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949672","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> by making changes that can't be easily reverted and using multiple IDs.","name":"Feven","created":"2013-12-20T15:02:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d32b850d-82d5-b63d-087c-fb2041b2c232","last_modified":1480349202631},{"guid":"thefoxonlybetter@quicksaver","prefs":[],"schema":1480349193877,"blockID":"i704","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1053469","who":"All Firefox users who have any of these versions of the add-on installed.","why":"Certain versions of The Fox, Only Better weren't developed by the original developer, and are likely malicious in nature. This violates the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> for reusing an already existent ID.","name":"The Fox, Only Better (malicious versions)","created":"2014-08-27T14:49:02Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"0.*","minVersion":"0","targetApplication":[]}],"id":"79ea6621-b414-17a4-4872-bfc4af7fd428","last_modified":1480349202588},{"guid":"{B40794A0-7477-4335-95C5-8CB9BBC5C4A5}","prefs":[],"schema":1480349193877,"blockID":"i429","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=899178","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that spreads spam through Facebook.","name":"Video Player 1.3 (malware)","created":"2013-07-30T14:31:17Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d98b2b76-4082-3387-ae33-971d973fa278","last_modified":1480349202541},{"guid":"firefoxaddon@youtubeenhancer.com","prefs":[],"schema":1480349193877,"blockID":"i648","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the YouTube Enhancer Plus extension weren't developed by the original developer, and are likely malicious in nature. This violates the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> for reusing an already existent ID.","name":"YouTube Enhancer Plus, versions between 199.7.0 and 208.7.0","created":"2014-07-10T15:12:48Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"208.7.0","minVersion":"199.7.0","targetApplication":[]}],"id":"7e64d7fc-ff16-8687-dbd1-bc4c7dfc5097","last_modified":1480349202462},{"guid":"addon@defaulttab.com","prefs":[],"schema":1480349193877,"blockID":"i362","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=863387","who":"All users who have this add-on installed. Users who wish to enable it again can do so in the Add-ons Manager tab.","why":"Old versions of this add-on had been silently installed into users' systems, without showing the opt-in install page that is built into Firefox.","name":"Default Tab","created":"2013-06-06T12:57:29Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.4.4","minVersion":"0","targetApplication":[]}],"id":"df3fe753-5bae-bfb4-022b-6b6bfc534937","last_modified":1480349202429},{"guid":"{7D4F1959-3F72-49d5-8E59-F02F8AA6815D}","prefs":[],"schema":1480349193877,"blockID":"i394","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=881447","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This is a companion add-on for the SweetPacks Toolbar which <a href=\"https://addons.mozilla.org/en-US/firefox/blocked/i392\">is blocked</a> due to guideline violations.","name":"Updater By SweetPacks","created":"2013-06-25T12:40:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"851c2b8e-ea19-3a63-eac5-f931a8da5d6e","last_modified":1480349202341},{"guid":"g@uzcERQ6ko.net","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i776","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1076771","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed and changes user settings without consent, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>","name":"GoSave","created":"2014-10-31T16:23:36Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ee1e1a44-b51b-9f12-819d-64c3e515a147","last_modified":1480349202307},{"guid":"ffxtlbr@incredibar.com","prefs":[],"schema":1480349193877,"blockID":"i318","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=812264","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our <a href=\"https://developer.mozilla.org/en-US/docs/Addons/Add-on_guidelines\">Add-on Guidelines</a>, bypassing our third party install opt-in screen. Users who wish to continue using this extension can enable it in the Add-ons Manager.","name":"IncrediBar","created":"2013-03-20T14:40:32Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9e84b07c-84d5-c932-85f2-589713d7e380","last_modified":1480349202280},{"guid":"M1uwW0@47z8gRpK8sULXXLivB.com","prefs":[],"schema":1480349193877,"blockID":"i870","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1131159","who":"All users who have this add-on installed.","why":"This is a malicious add-on that goes by the the name \"Flash Player 11\".","name":"Flash Player 11 (malware)","created":"2015-03-04T14:34:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"71d961b2-37d1-d393-76f5-3afeef57e749","last_modified":1480349202252},{"guid":"jid1-qj0w91o64N7Eeg@jetpack","prefs":[],"schema":1480349193877,"blockID":"i650","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the YouTube ALL HTML5 extension weren't developed by the original developer, and are likely malicious in nature. This violates the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> for reusing an already existent ID.","name":"YouTube ALL HTML5, versions between 39.5.1 and 47.0.4","created":"2014-07-10T15:14:26Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"47.0.4","minVersion":"39.5.1","targetApplication":[]}],"id":"b30b1f7a-2a30-a6cd-fc20-6c9cb23c7198","last_modified":1480349202186},{"guid":"4zffxtbr-bs@VideoDownloadConverter_4z.com","prefs":[],"schema":1480349193877,"blockID":"i507","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949266","who":"All Firefox users who have this add-on installed.","why":"Certain versions of this add-on contains an executable that is flagged by multiple tools as malware. Newer versions no longer use it.","name":"VideoDownloadConverter","created":"2013-12-12T15:37:23Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"5.75.3.25126","minVersion":"0","targetApplication":[]}],"id":"0a0f106a-ecc6-c537-1818-b36934943e91","last_modified":1480349202156},{"guid":"hdv@vovcacik.addons.mozilla.org","prefs":[],"schema":1480349193877,"blockID":"i656","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the High Definition Video extension weren't developed by the original developer, and are likely malicious in nature. This violates the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> for reusing an already existent ID.","name":"High Definition Video, version 102.0","created":"2014-07-10T15:22:59Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"102.0","minVersion":"102.0","targetApplication":[]}],"id":"972249b2-bba8-b508-2ead-c336631135ac","last_modified":1480349202125},{"guid":"@video_downloader_pro","prefs":[],"schema":1480349193877,"blockID":"i1265","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1298335","who":"Users of versions of 1.2.1 to 1.2.5 inclusive.","why":"Versions 1.2.1 to 1.2.5 of Video Downloader Pro included code that violated our polices - affected versions send every visited url to a remote server without the user's consent.  Versions older than 1.2.1 and more recent than 1.2.5 are okay.","name":"Video Downloader Pro","created":"2016-08-26T18:26:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.2.5","minVersion":"1.2.1","targetApplication":[]}],"id":"ff9c8def-7d50-66b4-d42a-f9a4b04bd224","last_modified":1480349202099},{"guid":"contato@facefollow.net","prefs":[],"schema":1480349193877,"blockID":"i509","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=950846","who":"All Firefox users who have this add-on installed.","why":"This add-on spams users' Facebook accounts.","name":"Face follow","created":"2013-12-16T16:15:15Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"56f15747-af8c-342c-6877-a41eeacded84","last_modified":1480349202067},{"guid":"wecarereminder@bryan","prefs":[],"schema":1480349193877,"blockID":"i666","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=818614","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is being silently installed by various software packages, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"We-Care Reminder","created":"2014-07-10T16:18:36Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"51e0ead7-144c-c1f4-32f2-25fc5fcde870","last_modified":1480349202039},{"guid":"/^({83a8ce1b-683c-4784-b86d-9eb601b59f38}|{ef1feedd-d8da-4930-96f1-0a1a598375c6}|{79ff1aae-701f-4ca5-aea3-74b3eac6f01b}|{8a184644-a171-4b05-bc9a-28d75ffc9505}|{bc09c55d-0375-4dcc-836e-0e3c8addfbda}|{cef81415-2059-4dd5-9829-1aef3cf27f4f})$/","prefs":[],"schema":1480349193877,"blockID":"i526","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949566","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> by making changes that can't be easily reverted and uses multiple IDs.","name":"KeyBar add-on","created":"2013-12-20T14:12:31Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9dfa4e92-bbf2-66d1-59a9-51402d1d226c","last_modified":1480349202010},{"guid":"{d9284e50-81fc-11da-a72b-0800200c9a66}","prefs":[],"schema":1480349193877,"blockID":"i806","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1106948","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable the add-on in the Add-on Manager.","why":"Starting with Firefox 34, current versions of the Yoono add-on cause all tabs to appear blank.","name":"Yoono","created":"2014-12-16T08:35:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"7.7.34","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"34.0a1"}]}],"id":"ccdceb04-3083-012f-9d9f-aac85f10b494","last_modified":1480349201976},{"guid":"{f2548724-373f-45fe-be6a-3a85e87b7711}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i768","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1088726","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and is considered malware, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Astro New Tab","created":"2014-10-30T14:52:09Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8510e9e2-c7d8-90d0-a2ff-eb09293acc6e","last_modified":1480349201854},{"guid":"KSqOiTeSJEDZtTGuvc18PdPmYodROmYzfpoyiCr2@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1032","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1211172","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Video Player (malware)","created":"2015-10-05T16:22:58Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3d9188ac-235f-773a-52a2-261b3ea9c03c","last_modified":1480349201504},{"guid":"{849ded12-59e9-4dae-8f86-918b70d213dc}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i708","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1047102","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed and changes homepage and search settings without the user's consent, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Astromenda New Tab","created":"2014-09-02T16:29:08Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a319bfee-464f-1c33-61ad-738c52842fbd","last_modified":1480349201453},{"guid":"grjkntbhr@hgergerherg.com","prefs":[],"schema":1480349193877,"blockID":"i1018","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1208196","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"GreenPlayer (malware)","created":"2015-09-24T16:04:53Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9c47d940-bdd9-729f-e32e-1774d87f24b5","last_modified":1480349201425},{"guid":"quick_start@gmail.com","prefs":[],"schema":1480349193877,"blockID":"i588","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1011316","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be malware that is installed without user consent.","name":"Quick Start (malware)","created":"2014-06-03T15:53:15Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2affbebe-8776-3edb-28b9-237cb8b85f97","last_modified":1480349201398},{"guid":"/^(matchersite(pro(srcs?)?)?\\@matchersite(pro(srcs?)?)?\\.com)|((pro)?sitematcher(_srcs?|pro|site|sitesrc|-generic)?\\@(pro)?sitematcher(_srcs?|pro|site|sitesrc|-generic)?\\.com)$/","prefs":[],"schema":1480349193877,"blockID":"i668","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1039892","who":"All Firefox users who have any of these add-ons installed. User who wish to continue using these add-ons can enable them in the Add-ons Manager.","why":"This is a group of add-ons that are being distributed under multiple different IDs and likely being silently installed, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Site Matcher","created":"2014-07-17T14:35:14Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"52e1a2de-ab35-be27-4810-334f681ccc4a","last_modified":1480349201372},{"guid":"{EEF73632-A085-4fd3-A778-ECD82C8CB297}","prefs":[],"schema":1480349193877,"blockID":"i165","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806451","who":"All Firefox users who have these add-ons installed.","why":"These are malicious add-ons that are distributed with a trojan and negatively affect web browsing.","name":"Codec-M (malware)","created":"2012-10-29T16:41:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e5ecd02a-20ee-749b-d5cf-3d74d1173a1f","last_modified":1480349201262},{"guid":"firefox-extension@mozilla.org","prefs":[],"schema":1480349193877,"blockID":"i688","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1049533","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that hides itself under the name Java_plugin, among others.","name":"FinFisher (malware)","created":"2014-08-06T17:13:00Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"98aca74a-69c7-9960-cccc-096a4a4adc6c","last_modified":1480349201235},{"guid":"jid1-vW9nopuIAJiRHw@jetpack","prefs":[],"schema":1480349193877,"blockID":"i570","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=990291","who":"All Firefox users who have this add-on installed. Those who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed, reverts settings changes to enforce its own, and is also causing stability problems in Firefox, all in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"SmileysWeLove","created":"2014-03-31T16:17:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bf2abd66-f910-650e-89aa-cd1d5c2f8a89","last_modified":1480349201204},{"guid":"87aukfkausiopoawjsuifhasefgased278djasi@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1050","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1220461","who":"All users who have this add-on installed.","why":"This is a malicious add-on that poses as a video update and hijacks Facebook accounts.","name":"Trace Video (malware)","created":"2015-11-02T14:53:21Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cb4cfac0-79c2-0fbf-206a-324aa3abbea5","last_modified":1480349201157},{"guid":"{e44a1809-4d10-4ab8-b343-3326b64c7cdd}","prefs":[],"schema":1480349193877,"blockID":"i451","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=916966","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>, manipulating settings without reverting them on removal. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Entrusted","created":"2013-09-18T16:33:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ad5f53ed-7a43-cb1f-cbd7-41808fac1791","last_modified":1480349201128},{"guid":"{21EAF666-26B3-4A3C-ABD0-CA2F5A326744}","prefs":[],"schema":1480349193877,"blockID":"i620","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024752","who":"All Firefox users who have this add-on installed.","why":"This add-on is probably silently installed, and is causing significant stability issues for users, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"V-Bates","created":"2014-06-12T15:27:00Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2d8833db-01a7-a758-080f-19e47abc54cb","last_modified":1480349201096},{"guid":"{1FD91A9C-410C-4090-BBCC-55D3450EF433}","prefs":[],"schema":1480349193877,"blockID":"i338","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=844979","who":"All Firefox users who have this add-on installed.","why":"This extension overrides search settings, and monitors any further changes done to them so that they can be reverted. This violates our <a href=\"https://developer.mozilla.org/en-US/docs/Addons/Add-on_guidelines\">add-on guidelines</a>.","name":"DataMngr (malware)","created":"2013-04-24T11:30:28Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2e35995f-bec6-aa2b-3372-346d3325f72e","last_modified":1480349201059},{"guid":"9598582LLKmjasieijkaslesae@jetpack","prefs":[],"schema":1480349193877,"blockID":"i996","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1201165","who":"All users who have this add-on installed.","why":"This is a malicious add-on that takes over Facebook accounts.","name":"Secure Player (malware)","created":"2015-09-07T13:50:27Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"52f9c6e7-f7d5-f52e-cc35-eb99ef8b4b6a","last_modified":1480349201029},{"guid":"{bf7380fa-e3b4-4db2-af3e-9d8783a45bfc}","prefs":[],"schema":1480349193877,"blockID":"i406","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=776404","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on changes search settings without user interaction, and fails to reset them after it is removed. This violates our <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"uTorrentBar","created":"2013-06-27T10:46:53Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3bcefc4b-110c-f3b8-17ad-f9fc97c1120a","last_modified":1480349201000},{"guid":"{ce7e73df-6a44-4028-8079-5927a588c948}","prefs":[],"schema":1480349193877,"blockID":"i117","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=781269","who":"All Firefox users who have this add-on installed.","why":"The Search By Image (by Google) extension causes very high CPU utilization during regular browsing, often damaging user experience significantly, in a way that is very difficult to associate with the extension.\r\n\r\nUsers who want to continue using the add-on regardless of its performance impact can enable it in the Add-ons Manager.","name":"Search By Image (by Google)","created":"2012-08-10T08:50:52Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0.8","minVersion":"0","targetApplication":[]}],"id":"fb1f9aed-2f1f-3e2c-705d-3b34ca9168b6","last_modified":1480349200972},{"guid":"{424b0d11-e7fe-4a04-b7df-8f2c77f58aaf}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i800","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080839","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and is considered malware, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Astromenda NT","created":"2014-12-15T10:51:56Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"07bdf6aa-cfc8-ed21-6b36-6f90af02b169","last_modified":1480349200939},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i618","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:25:04Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.31.*","minVersion":"3.15.31","targetApplication":[]}],"id":"825feb43-d6c2-7911-4189-6f589f612c34","last_modified":1480349200911},{"guid":"{167d9323-f7cc-48f5-948a-6f012831a69f}","prefs":[],"schema":1480349193877,"blockID":"i262","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=812303","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently side-installed by other software, and doesn't do much more than changing the users' settings, without reverting them on removal.","name":"WhiteSmoke (malware)","created":"2013-01-29T13:33:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a8f249fe-3db8-64b8-da89-7b584337a7af","last_modified":1480349200885},{"guid":"/^({988919ff-0cd8-4d0c-bc7e-60d55a49eb64}|{494b9726-9084-415c-a499-68c07e187244}|{55b95864-3251-45e9-bb30-1a82589aaff1}|{eef3855c-fc2d-41e6-8d91-d368f51b3055}|{90a1b331-c2b4-4933-9f63-ba7b84d60d58}|{d2cf9842-af95-48cd-b873-bfbb48cd7f5e})$/","prefs":[],"schema":1480349193877,"blockID":"i541","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963819","who":"All Firefox users who have this add-on installed","why":"This add-on has been repeatedly blocked before and keeps showing up with new add-on IDs, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"MixiDJ (malware)","created":"2014-01-28T14:09:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"36196aed-9d0d-ebee-adf1-d1f7fadbc48f","last_modified":1480349200819},{"guid":"{29b136c9-938d-4d3d-8df8-d649d9b74d02}","prefs":[],"schema":1480349193877,"blockID":"i598","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1011322","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed, in violation with our <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Mega Browse","created":"2014-06-12T13:21:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"63b1c965-27c3-cd06-1b76-8721add39edf","last_modified":1480349200775},{"guid":"{6e7f6f9f-8ce6-4611-add2-05f0f7049ee6}","prefs":[],"schema":1480349193877,"blockID":"i868","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1086574","who":"All users who have this add-on installed. Users who wish to continue using the add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of our <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Word Proser","created":"2015-02-26T14:58:59Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f54797da-cdcd-351a-c95e-874b64b0d226","last_modified":1480349200690},{"guid":"{02edb56b-9b33-435b-b7df-b2843273a694}","prefs":[],"schema":1480349193877,"blockID":"i438","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=896581","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>. It is installed bypassing the Firefox opt-in screen, and manipulates settings without reverting them on removal. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"KeyBar Toolbar","created":"2013-08-09T15:27:49Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"896710d2-5a65-e9b0-845b-05aa72c2bd51","last_modified":1480349200338},{"guid":"{e1aaa9f8-4500-47f1-9a0a-b02bd60e4076}","prefs":[],"schema":1480349193877,"blockID":"i646","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the Youtube Video Replay extension weren't developed by the original developer, and are likely malicious in nature. This violates the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> for reusing an already existent ID.","name":"Youtube Video Replay, version 178.7.0","created":"2014-07-10T15:10:05Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"178.7.0","minVersion":"178.7.0","targetApplication":[]}],"id":"ac5d1083-6753-bbc1-a83d-c63c35371b22","last_modified":1480349200312},{"guid":"{1cdbda58-45f8-4d91-b566-8edce18f8d0a}","prefs":[],"schema":1480349193877,"blockID":"i724","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080835","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Website Counselor Pro","created":"2014-10-13T16:00:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"7b70bd36-d2f7-26fa-9038-8b8dd132cd81","last_modified":1480349200288},{"guid":"{b12785f5-d8d0-4530-a3ea-5c4263b85bef}","prefs":[],"schema":1480349193877,"blockID":"i988","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1161573","who":"All users who have this add-on installed. Those who wish continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on overrides user's preferences without consent, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Hero Fighter Community Toolbar","created":"2015-08-17T16:04:35Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3e6d73f2-e8e3-af69-866e-30d3977b09e4","last_modified":1480349200171},{"guid":"{c2d64ff7-0ab8-4263-89c9-ea3b0f8f050c}","prefs":[],"schema":1480349193877,"blockID":"i39","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=665775","who":"Users of MediaBar versions 4.3.1.00 and below in all versions of Firefox.","why":"This add-on causes a high volume of crashes and is incompatible with certain versions of Firefox.","name":"MediaBar","created":"2011-07-19T10:18:12Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"4.3.1.00","minVersion":"0.1","targetApplication":[]}],"id":"e928a115-9d8e-86a4-e2c7-de39627bd9bf","last_modified":1480349200047},{"guid":"{9edd0ea8-2819-47c2-8320-b007d5996f8a}","prefs":["browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i684","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1033857","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is believed to be silently installed in Firefox, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"webget","created":"2014-08-06T13:33:33Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d38561f5-370f-14be-1443-a74dad29b1f3","last_modified":1480349199962},{"guid":"/^({ad9a41d2-9a49-4fa6-a79e-71a0785364c8})|(ffxtlbr@mysearchdial\\.com)$/","prefs":["browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i670","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036740","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on has been repeatedly been silently installed into users' systems, and is known for changing the default search without user consent, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"MySearchDial","created":"2014-07-18T15:47:35Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a04075e6-5df2-2e1f-85a6-3a0171247349","last_modified":1480349199927},{"guid":"odtffplugin@ibm.com","prefs":[],"schema":1480349193877,"blockID":"i982","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1190630","who":"All users who have these versions installed. The latest versions of this add-on aren't blocked, so updating to them should be sufficient to fix this problem.","why":"Certain versions of the IBM Remote Control add-on could leave a machine vulnerable to run untrusted code.","name":"IBM Endpoint Manager for Remote Control 9.0.1.1 to 9.0.1.100","created":"2015-08-11T11:25:43Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"9.0.1.100","minVersion":"9.0.1.1","targetApplication":[]}],"id":"f6e3e5d2-9331-1097-ba4b-cf2e484b7187","last_modified":1480349199886},{"guid":"support@todoist.com","prefs":[],"schema":1480349193877,"blockID":"i1030","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1205479","who":"All users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is sending all sites visited by the user to a remote server, additionally doing so in an unsafe way.","name":"Todoist","created":"2015-10-01T16:53:06Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.9","minVersion":"0","targetApplication":[]}],"id":"d0a84aab-0661-b3c5-c184-a2fd3f9dfb9c","last_modified":1480349199850},{"guid":"/^({1f43c8af-e9e4-4e5a-b77a-f51c7a916324}|{3a3bd700-322e-440a-8a6a-37243d5c7f92}|{6a5b9fc2-733a-4964-a96a-958dd3f3878e}|{7b5d6334-8bc7-4bca-a13e-ff218d5a3f17}|{b87bca5b-2b5d-4ae8-ad53-997aa2e238d4}|{bf8e032b-150f-4656-8f2d-6b5c4a646e0d})$/","prefs":[],"schema":1480349193877,"blockID":"i1136","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251940","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hides itself from view and disables various security features in Firefox.","name":"Watcher (malware)","created":"2016-03-04T17:56:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a2d0378f-ebe4-678c-62d8-2e4c6a613c17","last_modified":1480349199818},{"guid":"liiros@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i814","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1119657","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems without their consent and performs unwanted operations.","name":"One Tab (malware)","created":"2015-01-09T12:49:05Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"387c054d-cc9f-7ebd-c814-b4c1fbcb2880","last_modified":1480349199791},{"guid":"youtubeunblocker@unblocker.yt","prefs":[],"schema":1480349193877,"blockID":"i1128","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have this add-on installed.","why":"The add-on has a mechanism that updates certain configuration files from the developer\u2019s website. This mechanism has a vulnerability that is being exploited through this website (unblocker.yt) to change security settings in Firefox and install malicious add-ons.","name":"YouTube Unblocker","created":"2016-03-01T21:18:33Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3395fce1-42dd-e31a-1466-2da3f32456a0","last_modified":1480349199768},{"guid":"{97E22097-9A2F-45b1-8DAF-36AD648C7EF4}","prefs":[],"schema":1480349193877,"blockID":"i916","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1170633","who":"All Firefox users who have this add-on installed in Firefox 39 and above.\r\n","why":"Certain versions of this extension are causing startup crashes in Firefox 39 and above.\r\n","name":"RealPlayer Browser Record Plugin","created":"2015-06-02T09:57:38Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"94fba774-c4e6-046a-bc7d-ede787a9d0fe","last_modified":1480349199738},{"guid":"{b64982b1-d112-42b5-b1e4-d3867c4533f8}","prefs":[],"schema":1480349193877,"blockID":"i167","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=805973","who":"All Firefox users who have this add-on installed.","why":"This add-on is a frequent cause for browser crashes and other problems.","name":"Browser Manager","created":"2012-10-29T17:17:46Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"00bbe501-2d27-7a1c-c344-6eea1c707473","last_modified":1480349199673},{"guid":"{58bd07eb-0ee0-4df0-8121-dc9b693373df}","prefs":[],"schema":1480349193877,"blockID":"i286","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=842206","who":"All Firefox users who have this extension installed.","why":"This extension is malicious and is installed under false pretenses, causing problems for many Firefox users. Note that this is not the same <a href=\"https://addons.mozilla.org/firefox/addon/browserprotect/\">BrowserProtect extension</a> that is listed on our add-ons site. That one is safe to use.","name":"Browser Protect / bProtector (malware)","created":"2013-02-18T10:54:28Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b40a60d3-b9eb-09eb-bb02-d50b27aaac9f","last_modified":1480349199619},{"guid":"trtv3@trtv.com","prefs":[],"schema":1480349193877,"blockID":"i465","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=845610","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our <a href=\"https://developer.mozilla.org/en-US/docs/Addons/Add-on_guidelines\">Add-on Guidelines</a>, bypassing our third party install opt-in screen. Users who wish to continue using this extension can enable it in the Add-ons Manager.","name":"TornTV","created":"2013-11-01T15:21:49Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3d4d8a33-2eff-2556-c699-9be0841a8cd4","last_modified":1480349199560},{"guid":"youtube@downloader.yt","prefs":[],"schema":1480349193877,"blockID":"i1231","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1278932","who":"All users who have this add-on installed.","why":"The add-on has a mechanism that updates certain configuration files from the developer\u2019s website. This mechanism has a vulnerability that can being exploited through this website (downloader.yt) to change security settings in Firefox and/or install malicious add-ons. \r\n","name":"YouTube downloader","created":"2016-06-09T14:50:27Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8514eaee-850c-e27a-a058-8badeeafc26e","last_modified":1480349199528},{"guid":"low_quality_flash@pie2k.com","prefs":[],"schema":1480349193877,"blockID":"i658","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the Low Quality Flash extension weren't developed by the original developer, and are likely malicious in nature. This violates the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> for reusing an already existent ID.","name":"Low Quality Flash, versions between 46.2 and 47.1","created":"2014-07-10T15:27:51Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"47.1","minVersion":"46.2","targetApplication":[]}],"id":"b869fae6-c18c-0d39-59a2-603814656404","last_modified":1480349199504},{"guid":"{d2cf9842-af95-48cd-b873-bfbb48cd7f5e}","prefs":[],"schema":1480349193877,"blockID":"i439","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=902569","who":"All Firefox users who have this add-on installed.","why":"This is another instance of the <a href=\"https://addons.mozilla.org/en-US/firefox/blocked/i354\">previously blocked</a> Mixi DJ add-on, which doesn't follow our <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>. If you wish to continue using it, it can be enabled in the Add-ons Manager.","name":"Mixi DJ V45","created":"2013-08-09T16:08:18Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e81c31fc-265e-61b9-d4c1-0e2f31f1652e","last_modified":1480349199478},{"guid":"/^({b95faac1-a3d7-4d69-8943-ddd5a487d966}|{ecce0073-a837-45a2-95b9-600420505f7e}|{2713b394-286f-4d7c-89ea-4174eeab9f5a}|{da7a20cf-bef4-4342-ad78-0240fdf87055})$/","prefs":[],"schema":1480349193877,"blockID":"i624","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947482","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is known to change user settings without their consent, is distributed under multiple add-on IDs, and is also correlated with reports of tab functions being broken in Firefox, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.\r\n","name":"WiseConvert","created":"2014-06-18T13:50:38Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ed57d7a6-5996-c7da-8e07-1ad125183e84","last_modified":1480349199446},{"guid":"{f894a29a-f065-40c3-bb19-da6057778493}","prefs":[],"schema":1480349193877,"blockID":"i742","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080817","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on appears to be silently installed into users' systems, and changes settings without consent, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Spigot Shopping Assistant","created":"2014-10-17T15:46:59Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"39d8334e-4b7c-4336-2d90-e6aa2d783967","last_modified":1480349199083},{"guid":"plugin@analytic-s.com","prefs":[],"schema":1480349193877,"blockID":"i467","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935797","who":"All Firefox users who have this add-on installed.","why":"This add-on bypasses the external install opt in screen in Firefox, violating the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Analytics","created":"2013-11-07T14:08:48Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ffbed3f3-e5c9-bc6c-7530-f68f47b7efd6","last_modified":1480349199026},{"guid":"{C4A4F5A0-4B89-4392-AFAC-D58010E349AF}","prefs":[],"schema":1480349193877,"blockID":"i678","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=895668","who":"All Firefox users who have this add-on installed. If you wish to continue using it, you can enable it in the Add-ons Manager.","why":"This add-on is generally silently installed, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"DataMngr","created":"2014-07-23T14:12:23Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"151021fc-ce4e-a734-e075-4ece19610f64","last_modified":1480349198947},{"guid":"HxLVJK1ioigz9WEWo8QgCs3evE7uW6LEExAniBGG@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1036","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1211170","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Mega Player (malware)","created":"2015-10-05T16:37:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"32e34b41-a73c-72d4-c96c-136917ad1d4d","last_modified":1480349198894},{"guid":"{6af08a71-380e-42dd-9312-0111d2bc0630}","prefs":[],"schema":1480349193877,"blockID":"i822","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1126353","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be malware, hiding itself in the Add-ons Manager, and keeping track of certain user actions.","name":"{6af08a71-380e-42dd-9312-0111d2bc0630} (malware)","created":"2015-01-27T09:50:40Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"96d0c12b-a6cf-4539-c1cf-a1c75c14ff24","last_modified":1480349198826},{"guid":"colmer@yopmail.com","prefs":[],"schema":1480349193877,"blockID":"i550","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=968445","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook accounts.","name":"Video Plugin Facebook (malware)","created":"2014-02-06T15:49:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c394d10b-384e-cbd0-f357-9c521715c373","last_modified":1480349198744},{"guid":"fplayer@adobe.flash","prefs":[],"schema":1480349193877,"blockID":"i444","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=909433","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware disguised as the Flash Player plugin.","name":"Flash Player (malware)","created":"2013-08-26T14:49:48Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c6557989-1b59-72a9-da25-b816c4a4c723","last_modified":1480349198667},{"guid":"ascsurfingprotection@iobit.com","prefs":[],"schema":1480349193877,"blockID":"i740","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963776","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Advanced SystemCare Surfing Protection","created":"2014-10-17T15:39:59Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4405f99d-c9b7-c496-1b45-268163ce29b7","last_modified":1480349198637},{"guid":"{6E19037A-12E3-4295-8915-ED48BC341614}","prefs":[],"schema":1480349193877,"blockID":"i24","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=615518","who":"Users of RelevantKnowledge version 1.3.328.4 and older in Firefox 4 and later.","why":"This add-on causes a high volume of Firefox crashes.","name":"comScore RelevantKnowledge","created":"2011-03-02T17:42:56Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.3.328.4","minVersion":"0.1","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.7a1pre"}]}],"id":"7c189c5e-f95b-0aef-e9e3-8e879336503b","last_modified":1480349198606},{"guid":"crossriderapp4926@crossrider.com","prefs":[],"schema":1480349193877,"blockID":"i91","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=754648","who":"All Firefox users who have installed this add-on.","why":"Versions of this add-on prior to 0.81.44 automatically post message to users' walls and hide them from their view. Version 0.81.44 corrects this.","name":"Remove My Timeline (malware)","created":"2012-05-14T14:16:43Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.81.43","minVersion":"0","targetApplication":[]}],"id":"5ee3e72e-96fb-c150-fc50-dd581e960963","last_modified":1480349198547},{"guid":"/^(93abedcf-8e3a-4d02-b761-d1441e437c09@243f129d-aee2-42c2-bcd1-48858e1c22fd\\.com|9acfc440-ac2d-417a-a64c-f6f14653b712@09f9a966-9258-4b12-af32-da29bdcc28c5\\.com|58ad0086-1cfb-48bb-8ad2-33a8905572bc@5715d2be-69b9-4930-8f7e-64bdeb961cfd\\.com)$/","prefs":[],"schema":1480349193877,"blockID":"i544","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949596","who":"All Firefox users who have this add-on installed. If you wish to continue using it, it can be enabled in the Add-ons Manager.","why":"This add-on is in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>, using multiple add-on IDs and potentially doing other unwanted activities.","name":"SuperLyrics","created":"2014-01-30T11:51:19Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d8d25967-9814-3b65-0787-a0525c16e11e","last_modified":1480349198510},{"guid":"wHO@W9.net","prefs":[],"schema":1480349193877,"blockID":"i980","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1192468","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"BestSavEFOrYoU (malware)","created":"2015-08-11T11:20:01Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4beb917f-68f2-1f91-beed-dff6d83006f8","last_modified":1480349198483},{"guid":"frhegnejkgner@grhjgewfewf.com","prefs":[],"schema":1480349193877,"blockID":"i1040","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1212451","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Async Codec (malware)","created":"2015-10-07T13:03:37Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"fb6ab4ce-5517-bd68-2cf7-a93a109a528a","last_modified":1480349198458},{"guid":"firefox@luckyleap.net","prefs":[],"schema":1480349193877,"blockID":"i471","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935779","who":"All Firefox users who have this add-on installed.","why":"This add-on is part of a malicious Firefox installer bundle.","name":"Installer bundle (malware)","created":"2013-11-07T15:38:33Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3a9e04c7-5e64-6297-8442-2816915aad77","last_modified":1480349198433},{"guid":"auto-plugin-checker@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1210","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1270175","who":"All users of this add-on. If you wish to continue using it, you can enable it in the Add-ons Manager.","why":"This add-on reports every visited URL to a third party without disclosing it to the user.","name":"auto-plugin-checker","created":"2016-05-04T16:25:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3e202419-5318-2025-b579-c828af24a06e","last_modified":1480349198401},{"guid":"lugcla21@gmail.com","prefs":[],"schema":1480349193877,"blockID":"i432","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=902072","who":"All Firefox users who have this add-on installed.","why":"This add-on includes malicious code that spams users' Facebook accounts with unwanted messages.","name":"FB Color Changer (malware)","created":"2013-08-06T13:16:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b6943f35-9429-1f8e-bf8e-fe37979fe183","last_modified":1480349198372},{"guid":"{99079a25-328f-4bd4-be04-00955acaa0a7}","prefs":[],"schema":1480349193877,"blockID":"i402","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=835678","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This group of add-ons is silently installed, bypassing our install opt-in screen. This violates our <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Searchqu","created":"2013-06-25T15:16:17Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"16008331-8b47-57c8-a6f7-989914d1cb8a","last_modified":1480349198341},{"guid":"{81b13b5d-fba1-49fd-9a6b-189483ac548a}","prefs":[],"schema":1480349193877,"blockID":"i473","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935779","who":"All Firefox users who have this add-on installed.","why":"This add-on is part of a malicious Firefox installer bundle.","name":"Installer bundle (malware)","created":"2013-11-07T15:38:43Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"76debc7b-b875-6da4-4342-1243cbe437f6","last_modified":1480349198317},{"guid":"{e935dd68-f90d-46a6-b89e-c4657534b353}","prefs":[],"schema":1480349193877,"blockID":"i732","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Sites Pro","created":"2014-10-16T16:38:24Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"97fdc235-ac1a-9f20-1b4a-17c2f0d89ad1","last_modified":1480349198260},{"guid":"{32da2f20-827d-40aa-a3b4-2fc4a294352e}","prefs":[],"schema":1480349193877,"blockID":"i748","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963787","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Start Page","created":"2014-10-17T16:02:20Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6c980c8e-4a3c-7912-4a3a-80add457575a","last_modified":1480349198223},{"guid":"chinaescapeone@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i431","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=901770","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that uses a deceptive name and hijacks social networks.","name":"F-Secure Security Pack (malware)","created":"2013-08-05T16:43:24Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"fbd89a9d-9c98-8481-e4cf-93e327ca8be1","last_modified":1480349198192},{"guid":"{cc6cc772-f121-49e0-b1f0-c26583cb0c5e}","prefs":[],"schema":1480349193877,"blockID":"i716","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Website Counselor","created":"2014-10-02T12:12:34Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"debcd28c-884b-ca42-d983-6fabf91034dd","last_modified":1480349198148},{"guid":"{906000a4-88d9-4d52-b209-7a772970d91f}","prefs":[],"schema":1480349193877,"blockID":"i474","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935779","who":"All Firefox users who have this add-on installed.","why":"This add-on is part of a malicious Firefox installer bundle.","name":"Installer bundle (malware)","created":"2013-11-07T15:38:48Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"326d05b9-ace7-67c6-b094-aad926c185a5","last_modified":1480349197744},{"guid":"{A34CAF42-A3E3-11E5-945F-18C31D5D46B0}","prefs":["security.csp.enable","security.fileuri.strict_origin_policy","security.mixed_content.block_active_content"],"schema":1480349193877,"blockID":"i1227","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1274995","who":"All users of this add-on. If you wish to continue using it, you can enable it in the Add-ons Manager.","why":"This add-on downgrades the security of all iframes from https to http and changes important Firefox security preferences.","name":"Mococheck WAP browser","created":"2016-05-31T15:45:53Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2230a5ce-a8f8-a20a-7974-3b960a03aba9","last_modified":1480349197699},{"guid":"{AB2CE124-6272-4b12-94A9-7303C7397BD1}","prefs":[],"schema":1480349193877,"blockID":"i20","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=627278","who":"Users of Skype extension versions below 5.2.0.7165 for all versions of Firefox.","why":"This add-on causes a high volume of Firefox crashes and introduces severe performance issues. Please <a href=\"http://www.skype.com/intl/en/get-skype/on-your-computer/click-and-call/\">update to the latest version</a>. For more information, please <a href=\"http://blog.mozilla.com/addons/2011/01/20/blocking-the-skype-toolbar-in-firefox/\">read our announcement</a>.","name":"Skype extension","created":"2011-01-20T18:39:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"5.2.0.7164","minVersion":"0.1","targetApplication":[]}],"id":"60e16015-1803-197a-3241-484aa961d18f","last_modified":1480349197667},{"guid":"f6682b47-e12f-400b-9bc0-43b3ccae69d1@39d6f481-b198-4349-9ebe-9a93a86f9267.com","prefs":[],"schema":1480349193877,"blockID":"i682","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1043017","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is being silently installed, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"enformation","created":"2014-08-04T16:07:20Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a7ae65cd-0869-67e8-02f8-6d22c56a83d4","last_modified":1480349197636},{"guid":"rally_toolbar_ff@bulletmedia.com","prefs":[],"schema":1480349193877,"blockID":"i537","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=950267","who":"All Firefox users who have this extension installed. If you want to continue using it, you can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a> by silently installing it.","name":"Rally Toolbar","created":"2014-01-23T15:51:48Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4ac6eb63-b51a-3296-5b02-bae77f424032","last_modified":1480349197604},{"guid":"x77IjS@xU.net","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i774","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1076771","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed and changes user settings without consent, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>\r\n","name":"YoutubeAdBlocke","created":"2014-10-31T16:22:53Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4771da14-bcf2-19b1-3d71-bc61a1c7d457","last_modified":1480349197578},{"guid":"{49c53dce-afa0-49a1-a08b-2eb8e8444128}","prefs":[],"schema":1480349193877,"blockID":"i441","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=844985","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"ytbyclick","created":"2013-08-09T16:58:50Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5f08d720-58c2-6acb-78ad-7af45c82c90b","last_modified":1480349197550},{"guid":"searchengine@gmail.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i886","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1152555","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-on Manager.","why":"This add-on appears to be malware, being silently installed and hijacking user settings, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"Search Enginer","created":"2015-04-10T16:25:21Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"46de4f6e-2b29-7334-ebbb-e0048f114f7b","last_modified":1480349197525},{"guid":"{bb7b7a60-f574-47c2-8a0b-4c56f2da9802}","prefs":[],"schema":1480349193877,"blockID":"i754","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080850","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"AdvanceElite","created":"2014-10-17T16:27:32Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f222ceb2-9b69-89d1-8dce-042d8131a12e","last_modified":1480349197500},{"guid":"/^(test3@test.org|test2@test.org|test@test.org|support@mozilla.org)$/","prefs":[],"schema":1480349193877,"blockID":"i1119","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1242721","who":"All users who have these add-ons installed.","why":"These add-ons are malicious, or at least attempts at being malicious, using misleading names and including risky code.","name":"test.org add-ons (malware)","created":"2016-01-25T13:31:43Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"afd2a0d7-b050-44c9-4e45-b63696d9b22f","last_modified":1480349197468},{"guid":"/^((34qEOefiyYtRJT@IM5Munavn\\.com)|(Mro5Fm1Qgrmq7B@ByrE69VQfZvZdeg\\.com)|(KtoY3KGxrCe5ie@yITPUzbBtsHWeCdPmGe\\.com)|(9NgIdLK5Dq4ZMwmRo6zk@FNt2GCCLGyUuOD\\.com)|(NNux7bWWW@RBWyXdnl6VGls3WAwi\\.com)|(E3wI2n@PEHTuuNVu\\.com)|(2d3VuWrG6JHBXbQdbr@3BmSnQL\\.com))$/","prefs":[],"schema":1480349193877,"blockID":"i324","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=841791","who":"All users who have this add-on installed.","why":"This extension is malware, installed pretending to be the Flash Player plugin.","name":"Flash Player (malware)","created":"2013-03-22T14:48:00Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5be3a399-af3e-644e-369d-628273b3fdc2","last_modified":1480349197432},{"guid":"axtara__web@axtara.com","prefs":[],"schema":1480349193877,"blockID":"i1263","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have version 1.1.1 or less of this add-on installed.","why":"Old versions of this add-on contained code from YouTube Unblocker, which was <a href=\"https://addons.mozilla.org/firefox/blocked/i1129\">originally blocked</a> due to malicious activity.  Version 1.1.2 is now okay.","name":"AXTARA Search (pre 1.1.2)","created":"2016-08-17T16:47:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"1.1.1","minVersion":"0","targetApplication":[]}],"id":"c58be1c9-3d63-a948-219f-e3225e1eec8e","last_modified":1480349197404},{"guid":"{8f894ed3-0bf2-498e-a103-27ef6e88899f}","prefs":[],"schema":1480349193877,"blockID":"i792","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the <a href=\"https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines\">Add-on Guidelines</a>.","name":"ExtraW","created":"2014-11-26T13:49:30Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bebc9e15-59a1-581d-0163-329d7414edff","last_modified":1480349197368},{"guid":&