From e753e09155b896347e3067639727dfa386704c5d Mon Sep 17 00:00:00 2001 From: Nicolas Chevobbe Date: Wed, 19 Dec 2018 21:01:25 +0000 Subject: [PATCH 01/39] Bug 1514815 - Add an `onReady` prop to the SmartTrace component; r=bgrins. Since the component renders asynchronously, consumers might want to hook up to the actual first rendering. We provide an `onRender` prop that will be called once, when the component is ready. Differential Revision: https://phabricator.services.mozilla.com/D14999 --HG-- extra : moz-landing-system : lando --- .../client/shared/components/SmartTrace.js | 15 ++++++++++++ .../test_smart-trace-source-maps.html | 24 ++++++++++++++++++- .../test/mochitest/test_smart-trace.html | 7 ++++++ 3 files changed, 45 insertions(+), 1 deletion(-) diff --git a/devtools/client/shared/components/SmartTrace.js b/devtools/client/shared/components/SmartTrace.js index db040cb4d1a2..c05595f4e63c 100644 --- a/devtools/client/shared/components/SmartTrace.js +++ b/devtools/client/shared/components/SmartTrace.js @@ -24,6 +24,9 @@ class SmartTrace extends Component { sourceMapService: PropTypes.object, initialRenderDelay: PropTypes.number, onSourceMapResultDebounceDelay: PropTypes.number, + // Function that will be called when the SmartTrace is ready, i.e. once it was + // rendered. + onReady: PropTypes.func, }; } @@ -83,6 +86,12 @@ class SmartTrace extends Component { } } + componentDidMount() { + if (this.props.onReady && this.state.ready) { + this.props.onReady(); + } + } + shouldComponentUpdate(_, nextState) { if (this.state.ready === false && nextState.ready === true) { return true; @@ -95,6 +104,12 @@ class SmartTrace extends Component { return false; } + componentDidUpdate(_, previousState) { + if (this.props.onReady && !previousState.ready && this.state.ready) { + this.props.onReady(); + } + } + componentWillUnmount() { if (this.initialRenderDelayTimeoutId) { clearTimeout(this.initialRenderDelayTimeoutId); diff --git a/devtools/client/shared/components/test/mochitest/test_smart-trace-source-maps.html b/devtools/client/shared/components/test/mochitest/test_smart-trace-source-maps.html index b22e48d4bd1f..2e8bff2e8318 100644 --- a/devtools/client/shared/components/test/mochitest/test_smart-trace-source-maps.html +++ b/devtools/client/shared/components/test/mochitest/test_smart-trace-source-maps.html @@ -39,11 +39,15 @@ window.onload = function() { }, ]; + let onReadyCount = 0; const props = { stacktrace, initialRenderDelay: 2000, onViewSourceInDebugger: () => {}, onViewSourceInScratchpad: () => {}, + onReady: () => { + onReadyCount++; + }, // A mock source map service. sourceMapService: { subscribe: function (url, line, column, callback) { @@ -79,6 +83,8 @@ window.onload = function() { location: "original.js:22", tooltip: "View source in Debugger → https://bugzilla.mozilla.org/original.js:22", }); + + is(onReadyCount, 1, "onReady was called once"); }); add_task(async function testSlowSourcemapService() { @@ -99,12 +105,16 @@ window.onload = function() { const sourcemapTimeout = 2000; const initialRenderDelay = 300; + let onReadyCount = 0; const props = { stacktrace, initialRenderDelay, onViewSourceInDebugger: () => {}, onViewSourceInScratchpad: () => {}, + onReady: () => { + onReadyCount++; + }, // A mock source map service. sourceMapService: { subscribe: function (url, line, column, callback) { @@ -123,6 +133,7 @@ window.onload = function() { let traceEl = ReactDOM.findDOMNode(trace); ok(!traceEl, "Nothing was rendered at first"); + is(onReadyCount, 0, "onReady isn't called if SmartTrace isn't rendered"); info("Wait for the initial delay to be over"); await new Promise(res => setTimeout(res, initialRenderDelay)); @@ -149,6 +160,8 @@ window.onload = function() { tooltip: "View source in Debugger → http://myfile.com/bundle.js:2", }); + is(onReadyCount, 1, "onReady was called once"); + info("Check the the sourcemapped version is rendered after the sourcemapTimeout"); await waitFor(() => !!traceEl.querySelector(".group")); @@ -158,6 +171,8 @@ window.onload = function() { const groups = Array.from(traceEl.querySelectorAll(".group")); is(groups.length, 1, "SmartTrace has a group"); is(groups[0].textContent, "last2React", "A collapsed React group is displayed"); + + is(onReadyCount, 1, "onReady was only called once"); }); add_task(async function testFlakySourcemapService() { @@ -184,6 +199,7 @@ window.onload = function() { const initialRenderDelay = 300; const onSourceMapResultDebounceDelay = 50; + let onReadyCount = 0; const props = { stacktrace, @@ -191,6 +207,9 @@ window.onload = function() { onSourceMapResultDebounceDelay, onViewSourceInDebugger: () => {}, onViewSourceInScratchpad: () => {}, + onReady: () => { + onReadyCount++; + }, // A mock source map service. sourceMapService: { subscribe: function (url, line, column, callback) { @@ -212,6 +231,7 @@ window.onload = function() { let traceEl = ReactDOM.findDOMNode(trace); ok(!traceEl, "Nothing was rendered at first"); + is(onReadyCount, 0, "onReady isn't called if SmartTrace isn't rendered"); info("Wait for the initial delay + debounce to be over"); await waitFor(() => { @@ -224,7 +244,7 @@ window.onload = function() { let frameEls = Array.from(traceEl.querySelectorAll(".frame")); ok(frameEls, "Rendered SmartTrace has frames"); - is(frameEls.length, 3, "SmartTrace has 2 frames"); + is(frameEls.length, 3, "SmartTrace has 3 frames"); info("Check that the original frames are displayed even if there's no sourcemap " + "response for some frames"); @@ -248,6 +268,8 @@ window.onload = function() { location: "file-3.js:33", tooltip: "View source in Debugger → http://myfile.com/file-3.js:33", }); + + is(onReadyCount, 1, "onReady was only called once"); }); }; diff --git a/devtools/client/shared/components/test/mochitest/test_smart-trace.html b/devtools/client/shared/components/test/mochitest/test_smart-trace.html index cc3b39f9dca6..6edf7fb2e24d 100644 --- a/devtools/client/shared/components/test/mochitest/test_smart-trace.html +++ b/devtools/client/shared/components/test/mochitest/test_smart-trace.html @@ -40,10 +40,15 @@ window.onload = function() { }, ]; + let onReadyCount = 0; + const props = { stacktrace, onViewSourceInDebugger: () => {}, onViewSourceInScratchpad: () => {}, + onReady: () => { + onReadyCount++; + } }; const trace = ReactDOM.render(SmartTrace(props), window.document.body); @@ -70,6 +75,8 @@ window.onload = function() { location: "http://myfile.com/loadee.js:10", tooltip: "View source in Debugger → http://myfile.com/loadee.js:10", }); + + is(onReadyCount, 1, "onReady was called once"); }); }; From ece2924f8d059c407904299bc824ff8735c7b7bd Mon Sep 17 00:00:00 2001 From: Nicolas Chevobbe Date: Wed, 19 Dec 2018 21:06:40 +0000 Subject: [PATCH 02/39] Bug 1514815 - Keep console scrolled to bottom when rendering SmartTrace; r=bgrins. Depends on D14999 Differential Revision: https://phabricator.services.mozilla.com/D15010 --HG-- extra : moz-landing-system : lando --- .../webconsole/components/ConsoleOutput.js | 6 ++ .../webconsole/components/GripMessageBody.js | 3 + .../client/webconsole/components/Message.js | 2 + .../message-types/ConsoleApiCall.js | 6 ++ .../message-types/ConsoleCommand.js | 3 + .../message-types/EvaluationResult.js | 4 + .../components/message-types/PageError.js | 3 + .../mochitest/browser_webconsole_scroll.js | 74 ++++++++++++++----- .../webconsole/utils/object-inspector.js | 1 + 9 files changed, 85 insertions(+), 17 deletions(-) diff --git a/devtools/client/webconsole/components/ConsoleOutput.js b/devtools/client/webconsole/components/ConsoleOutput.js index 2d06c1e8d6d6..1b9cceff544c 100644 --- a/devtools/client/webconsole/components/ConsoleOutput.js +++ b/devtools/client/webconsole/components/ConsoleOutput.js @@ -67,6 +67,7 @@ class ConsoleOutput extends Component { constructor(props) { super(props); this.onContextMenu = this.onContextMenu.bind(this); + this.maybeScrollToBottom = this.maybeScrollToBottom.bind(this); } componentDidMount() { @@ -125,6 +126,10 @@ class ConsoleOutput extends Component { } componentDidUpdate() { + this.maybeScrollToBottom(); + } + + maybeScrollToBottom() { if (this.shouldScrollBottom) { scrollToBottom(this.outputNode); } @@ -177,6 +182,7 @@ class ConsoleOutput extends Component { pausedExecutionPoint, getMessage: () => messages.get(messageId), isPaused: pausedMessage && pausedMessage.id == messageId, + maybeScrollToBottom: this.maybeScrollToBottom, })); return ( diff --git a/devtools/client/webconsole/components/GripMessageBody.js b/devtools/client/webconsole/components/GripMessageBody.js index 0a8ff4db4ba0..46d777e9bc7d 100644 --- a/devtools/client/webconsole/components/GripMessageBody.js +++ b/devtools/client/webconsole/components/GripMessageBody.js @@ -36,6 +36,7 @@ GripMessageBody.propTypes = { escapeWhitespace: PropTypes.bool, type: PropTypes.string, helperType: PropTypes.string, + maybeScrollToBottom: PropTypes.func, }; GripMessageBody.defaultProps = { @@ -51,6 +52,7 @@ function GripMessageBody(props) { escapeWhitespace, mode = MODE.LONG, dispatch, + maybeScrollToBottom, } = props; let styleObject; @@ -61,6 +63,7 @@ function GripMessageBody(props) { const objectInspectorProps = { autoExpandDepth: shouldAutoExpandObjectInspector(props) ? 1 : 0, mode, + maybeScrollToBottom, // TODO: we disable focus since the tabbing trail is a bit weird in the output (e.g. // location links are not focused). Let's remove the property below when we found and // fixed the issue (See Bug 1456060). diff --git a/devtools/client/webconsole/components/Message.js b/devtools/client/webconsole/components/Message.js index 8899aaf33064..93e1af35d9fd 100644 --- a/devtools/client/webconsole/components/Message.js +++ b/devtools/client/webconsole/components/Message.js @@ -70,6 +70,7 @@ class Message extends Component { frame: PropTypes.any, })), isPaused: PropTypes.bool, + maybeScrollToBottom: PropTypes.func, }; } @@ -210,6 +211,7 @@ class Message extends Component { onViewSourceInScratchpad: serviceContainer.onViewSourceInScratchpad || serviceContainer.onViewSource, onViewSource: serviceContainer.onViewSource, + onReady: this.props.maybeScrollToBottom, sourceMapService: serviceContainer.sourceMapService, }), ); diff --git a/devtools/client/webconsole/components/message-types/ConsoleApiCall.js b/devtools/client/webconsole/components/message-types/ConsoleApiCall.js index bfcf2991e3b5..72db471c7b40 100644 --- a/devtools/client/webconsole/components/message-types/ConsoleApiCall.js +++ b/devtools/client/webconsole/components/message-types/ConsoleApiCall.js @@ -24,6 +24,7 @@ ConsoleApiCall.propTypes = { open: PropTypes.bool, serviceContainer: PropTypes.object.isRequired, timestampsVisible: PropTypes.bool.isRequired, + maybeScrollToBottom: PropTypes.func, }; ConsoleApiCall.defaultProps = { @@ -41,6 +42,7 @@ function ConsoleApiCall(props) { repeat, pausedExecutionPoint, isPaused, + maybeScrollToBottom, } = props; const { id: messageId, @@ -66,6 +68,7 @@ function ConsoleApiCall(props) { userProvidedStyles, serviceContainer, type, + maybeScrollToBottom, }; if (type === "trace") { @@ -137,6 +140,7 @@ function ConsoleApiCall(props) { timeStamp, timestampsVisible, parameters, + maybeScrollToBottom, }); } @@ -150,6 +154,7 @@ function formatReps(options = {}) { serviceContainer, userProvidedStyles, type, + maybeScrollToBottom, } = options; return ( @@ -166,6 +171,7 @@ function formatReps(options = {}) { loadedObjectProperties, loadedObjectEntries, type, + maybeScrollToBottom, })) // Interleave spaces. .reduce((arr, v, i) => { diff --git a/devtools/client/webconsole/components/message-types/ConsoleCommand.js b/devtools/client/webconsole/components/message-types/ConsoleCommand.js index 0aa9e3ec8ca5..2fcbea2cf046 100644 --- a/devtools/client/webconsole/components/message-types/ConsoleCommand.js +++ b/devtools/client/webconsole/components/message-types/ConsoleCommand.js @@ -17,6 +17,7 @@ ConsoleCommand.propTypes = { message: PropTypes.object.isRequired, timestampsVisible: PropTypes.bool.isRequired, serviceContainer: PropTypes.object, + maybeScrollToBottom: PropTypes.func, }; /** @@ -27,6 +28,7 @@ function ConsoleCommand(props) { message, timestampsVisible, serviceContainer, + maybeScrollToBottom, } = props; const { @@ -51,6 +53,7 @@ function ConsoleCommand(props) { indent, timeStamp, timestampsVisible, + maybeScrollToBottom, }); } diff --git a/devtools/client/webconsole/components/message-types/EvaluationResult.js b/devtools/client/webconsole/components/message-types/EvaluationResult.js index d4837af963cb..497a3b67e550 100644 --- a/devtools/client/webconsole/components/message-types/EvaluationResult.js +++ b/devtools/client/webconsole/components/message-types/EvaluationResult.js @@ -19,6 +19,7 @@ EvaluationResult.propTypes = { message: PropTypes.object.isRequired, timestampsVisible: PropTypes.bool.isRequired, serviceContainer: PropTypes.object, + maybeScrollToBottom: PropTypes.func, }; function EvaluationResult(props) { @@ -27,6 +28,7 @@ function EvaluationResult(props) { message, serviceContainer, timestampsVisible, + maybeScrollToBottom, } = props; const { @@ -63,6 +65,7 @@ function EvaluationResult(props) { escapeWhitespace: false, type, helperType, + maybeScrollToBottom, }); } @@ -83,6 +86,7 @@ function EvaluationResult(props) { parameters, notes, timestampsVisible, + maybeScrollToBottom, }); } diff --git a/devtools/client/webconsole/components/message-types/PageError.js b/devtools/client/webconsole/components/message-types/PageError.js index 3c5fcf281424..71dfed37f4fb 100644 --- a/devtools/client/webconsole/components/message-types/PageError.js +++ b/devtools/client/webconsole/components/message-types/PageError.js @@ -18,6 +18,7 @@ PageError.propTypes = { open: PropTypes.bool, timestampsVisible: PropTypes.bool.isRequired, serviceContainer: PropTypes.object, + maybeScrollToBottom: PropTypes.func, }; PageError.defaultProps = { @@ -33,6 +34,7 @@ function PageError(props) { serviceContainer, timestampsVisible, isPaused, + maybeScrollToBottom, } = props; const { id: messageId, @@ -77,6 +79,7 @@ function PageError(props) { timeStamp, notes, timestampsVisible, + maybeScrollToBottom, }); } diff --git a/devtools/client/webconsole/test/mochitest/browser_webconsole_scroll.js b/devtools/client/webconsole/test/mochitest/browser_webconsole_scroll.js index 49ef23d7db64..91eba671d79f 100644 --- a/devtools/client/webconsole/test/mochitest/browser_webconsole_scroll.js +++ b/devtools/client/webconsole/test/mochitest/browser_webconsole_scroll.js @@ -8,9 +8,16 @@ const TEST_URI = `data:text/html;charset=utf-8,

Web Console test for scroll.

`; add_task(async function() { @@ -23,6 +30,10 @@ add_task(async function() { ok(hasVerticalOverflow(outputContainer), "There is a vertical overflow"); ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); + info("Wait until all stacktraces are rendered"); + await waitFor(() => outputContainer.querySelectorAll(".frames").length === 10); + ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); + await refreshTab(); info("Console should be scrolled to bottom after refresh from page logs"); @@ -30,39 +41,68 @@ add_task(async function() { ok(hasVerticalOverflow(outputContainer), "There is a vertical overflow"); ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); + info("Wait until all stacktraces are rendered"); + await waitFor(() => outputContainer.querySelectorAll(".frames").length === 10); + ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); + info("Scroll up"); outputContainer.scrollTop = 0; - info("Add a message to check that the scroll isn't impacted"); - let receievedMessages = waitForMessages({hud, messages: [{ - text: "stay", - }]}); + info("Add a console.trace message to check that the scroll isn't impacted"); + let onMessage = waitForMessage(hud, "trace in C"); ContentTask.spawn(gBrowser.selectedBrowser, {}, function() { - content.wrappedJSObject.console.log("stay"); + content.wrappedJSObject.c(); }); - await receievedMessages; + let message = await onMessage; ok(hasVerticalOverflow(outputContainer), "There is a vertical overflow"); is(outputContainer.scrollTop, 0, "The console stayed scrolled to the top"); + info("Wait until the stacktrace is rendered"); + await waitFor(() => message.node.querySelector(".frame")); + is(outputContainer.scrollTop, 0, "The console stayed scrolled to the top"); + info("Evaluate a command to check that the console scrolls to the bottom"); - receievedMessages = waitForMessages({hud, messages: [{ - text: "42", - }]}); + onMessage = waitForMessage(hud, "42"); ui.jsterm.execute("21 + 21"); - await receievedMessages; + await onMessage; ok(hasVerticalOverflow(outputContainer), "There is a vertical overflow"); ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); info("Add a message to check that the console do scroll since we're at the bottom"); - receievedMessages = waitForMessages({hud, messages: [{ - text: "scroll", - }]}); + onMessage = waitForMessage(hud, "scroll"); ContentTask.spawn(gBrowser.selectedBrowser, {}, function() { content.wrappedJSObject.console.log("scroll"); }); - await receievedMessages; + await onMessage; ok(hasVerticalOverflow(outputContainer), "There is a vertical overflow"); ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); + + info("Evaluate an Error object to check that the console scrolls to the bottom"); + onMessage = waitForMessage(hud, "myErrorObject", ".message.result"); + ui.jsterm.execute(` + x = new Error("myErrorObject"); + x.stack = "a@b/c.js:1:2\\nd@e/f.js:3:4"; + x;` + ); + message = await onMessage; + ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); + + info("Wait until the stacktrace is rendered and check the console is scrolled"); + await waitFor(() => message.node.querySelector(".objectBox-stackTrace .frame")); + ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); + + info("Add a console.trace message to check that the console stays scrolled to bottom"); + onMessage = waitForMessage(hud, "trace in C"); + ContentTask.spawn(gBrowser.selectedBrowser, {}, function() { + content.wrappedJSObject.c(); + }); + message = await onMessage; + ok(hasVerticalOverflow(outputContainer), "There is a vertical overflow"); + ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); + + info("Wait until the stacktrace is rendered"); + await waitFor(() => message.node.querySelector(".frame")); + ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); }); function hasVerticalOverflow(container) { diff --git a/devtools/client/webconsole/utils/object-inspector.js b/devtools/client/webconsole/utils/object-inspector.js index d0a725cc8432..c6bda44f64e7 100644 --- a/devtools/client/webconsole/utils/object-inspector.js +++ b/devtools/client/webconsole/utils/object-inspector.js @@ -62,6 +62,7 @@ function getObjectInspector(grip, serviceContainer, override = {}) { ? serviceContainer.onViewSourceInScratchpad || serviceContainer.onViewSource : null, onViewSource: serviceContainer.onViewSource, + onReady: override.maybeScrollToBottom, sourceMapService: serviceContainer ? serviceContainer.sourceMapService : null, }), }; From 0d4c03a3078d514ea55690e03abdf2d66219e13e Mon Sep 17 00:00:00 2001 From: Jonathan Kingston Date: Thu, 20 Dec 2018 12:17:45 +0000 Subject: [PATCH 03/39] Bug 1508642 - Add in session history triggering principal to nsSHistory. r=ckerschb Differential Revision: https://phabricator.services.mozilla.com/D14976 --HG-- extra : moz-landing-system : lando --- docshell/shistory/nsSHistory.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docshell/shistory/nsSHistory.cpp b/docshell/shistory/nsSHistory.cpp index 61d1082dddd8..c92cab6285f9 100644 --- a/docshell/shistory/nsSHistory.cpp +++ b/docshell/shistory/nsSHistory.cpp @@ -1487,8 +1487,9 @@ nsresult nsSHistory::InitiateLoad(nsISHEntry* aFrameEntry, nsCOMPtr newURI = aFrameEntry->GetURI(); loadState->SetURI(newURI); loadState->SetLoadFlags(nsIWebNavigation::LOAD_FLAGS_NONE); - // TODO fix principal here in Bug 1508642 - loadState->SetTriggeringPrincipal(nsContentUtils::GetSystemPrincipal()); + nsCOMPtr triggeringPrincipal = + aFrameEntry->GetTriggeringPrincipal(); + loadState->SetTriggeringPrincipal(triggeringPrincipal); loadState->SetFirstParty(false); // Time to initiate a document load From 01635e66751ad607fa03aa857bf7dd779c562cff Mon Sep 17 00:00:00 2001 From: Bel?n Albeza Date: Wed, 19 Dec 2018 13:14:51 +0000 Subject: [PATCH 04/39] Bug 1488502 - Disable service workers debugging when in multi e10s. r=jdescottes,daisuke Differential Revision: https://phabricator.services.mozilla.com/D14540 --HG-- extra : moz-landing-system : lando --- .../aboutdebugging-new/aboutdebugging.js | 14 +++++ .../aboutdebugging-new/src/actions/ui.js | 8 +++ .../client/aboutdebugging-new/src/base.css | 4 ++ .../components/debugtarget/InspectAction.js | 4 ++ .../debugtarget/ServiceWorkerAction.js | 23 ++++++-- .../aboutdebugging-new/src/constants.js | 1 + .../aboutdebugging-new/src/create-store.js | 3 +- .../src/reducers/ui-state.js | 10 +++- .../components/workers/Panel.js | 37 ++++--------- devtools/client/shared/moz.build | 1 + devtools/client/shared/multi-e10s-helper.js | 53 +++++++++++++++++++ 11 files changed, 124 insertions(+), 34 deletions(-) create mode 100644 devtools/client/shared/multi-e10s-helper.js diff --git a/devtools/client/aboutdebugging-new/aboutdebugging.js b/devtools/client/aboutdebugging-new/aboutdebugging.js index fc9dfc1eb29c..e1d33fc40a08 100644 --- a/devtools/client/aboutdebugging-new/aboutdebugging.js +++ b/devtools/client/aboutdebugging-new/aboutdebugging.js @@ -32,6 +32,12 @@ const { removeUSBRuntimesObserver, } = require("./src/modules/usb-runtimes"); +const { + addMultiE10sListener, + isMultiE10s, + removeMultiE10sListener, +} = require("devtools/client/shared/multi-e10s-helper"); + loader.lazyRequireGetter(this, "adbAddon", "devtools/shared/adb/adb-addon", true); const Router = createFactory(require("devtools/client/shared/vendor/react-router-dom").HashRouter); @@ -48,6 +54,7 @@ const AboutDebugging = { this.onAdbAddonUpdated = this.onAdbAddonUpdated.bind(this); this.onNetworkLocationsUpdated = this.onNetworkLocationsUpdated.bind(this); this.onUSBRuntimesUpdated = this.onUSBRuntimesUpdated.bind(this); + this.onMultiE10sUpdated = this.onMultiE10sUpdated.bind(this); this.store = configureStore(); this.actions = bindActionCreators(actions, this.store.dispatch); @@ -84,6 +91,12 @@ const AboutDebugging = { // Remove deprecated remote debugging extensions. await adbAddon.uninstallUnsupportedExtensions(); + + addMultiE10sListener(this.onMultiE10sUpdated); + }, + + onMultiE10sUpdated() { + this.actions.updateMultiE10sStatus(isMultiE10s()); }, onAdbAddonUpdated() { @@ -111,6 +124,7 @@ const AboutDebugging = { // Remove all client listeners. this.actions.removeRuntimeListeners(); + removeMultiE10sListener(this.onMultiE10sUpdated); removeNetworkLocationsObserver(this.onNetworkLocationsUpdated); removeUSBRuntimesObserver(this.onUSBRuntimesUpdated); adbAddon.off("update", this.onAdbAddonUpdated); diff --git a/devtools/client/aboutdebugging-new/src/actions/ui.js b/devtools/client/aboutdebugging-new/src/actions/ui.js index 5c9465255387..da02c15535d9 100644 --- a/devtools/client/aboutdebugging-new/src/actions/ui.js +++ b/devtools/client/aboutdebugging-new/src/actions/ui.js @@ -13,6 +13,7 @@ const { ADB_ADDON_UNINSTALL_FAILURE, ADB_ADDON_STATUS_UPDATED, DEBUG_TARGET_COLLAPSIBILITY_UPDATED, + MULTI_E10S_UPDATED, NETWORK_LOCATIONS_UPDATED, PAGE_SELECTED, PAGE_TYPES, @@ -123,6 +124,12 @@ function scanUSBRuntimes() { }; } +function updateMultiE10sStatus(isMultiE10s) { + return (dispatch, getState) => { + dispatch({ type: MULTI_E10S_UPDATED, isMultiE10s}); + }; +} + module.exports = { addNetworkLocation, installAdbAddon, @@ -132,5 +139,6 @@ module.exports = { uninstallAdbAddon, updateAdbAddonStatus, updateDebugTargetCollapsibility, + updateMultiE10sStatus, updateNetworkLocations, }; diff --git a/devtools/client/aboutdebugging-new/src/base.css b/devtools/client/aboutdebugging-new/src/base.css index 451b8857fb88..1161a3f23ff9 100644 --- a/devtools/client/aboutdebugging-new/src/base.css +++ b/devtools/client/aboutdebugging-new/src/base.css @@ -244,6 +244,10 @@ Form controls background: var(--box-background-hover) } +.default-button:disabled { + opacity: 0.4; +} + /* smaller size for a default button */ .default-button--micro { padding-inline-start: calc(2 * var(--base-distance)); diff --git a/devtools/client/aboutdebugging-new/src/components/debugtarget/InspectAction.js b/devtools/client/aboutdebugging-new/src/components/debugtarget/InspectAction.js index ab0fc0272a87..dc7b92fc566b 100644 --- a/devtools/client/aboutdebugging-new/src/components/debugtarget/InspectAction.js +++ b/devtools/client/aboutdebugging-new/src/components/debugtarget/InspectAction.js @@ -22,6 +22,7 @@ class InspectAction extends PureComponent { return { dispatch: PropTypes.func.isRequired, target: Types.debugTarget.isRequired, + disabled: PropTypes.bool, }; } @@ -31,6 +32,8 @@ class InspectAction extends PureComponent { } render() { + const { disabled } = this.props; + return Localized( { id: "about-debugging-debug-target-inspect-button", @@ -39,6 +42,7 @@ class InspectAction extends PureComponent { { onClick: e => this.inspect(), className: "default-button js-debug-target-inspect-button", + disabled, }, "Inspect" ) diff --git a/devtools/client/aboutdebugging-new/src/components/debugtarget/ServiceWorkerAction.js b/devtools/client/aboutdebugging-new/src/components/debugtarget/ServiceWorkerAction.js index ec96d2ef5593..ca233edade50 100644 --- a/devtools/client/aboutdebugging-new/src/components/debugtarget/ServiceWorkerAction.js +++ b/devtools/client/aboutdebugging-new/src/components/debugtarget/ServiceWorkerAction.js @@ -7,6 +7,7 @@ const { createFactory, PureComponent } = require("devtools/client/shared/vendor/react"); const dom = require("devtools/client/shared/vendor/react-dom-factories"); const PropTypes = require("devtools/client/shared/vendor/react-prop-types"); +const { connect } = require("devtools/client/shared/vendor/react-redux"); const FluentReact = require("devtools/client/shared/vendor/fluent-react"); @@ -24,6 +25,8 @@ class ServiceWorkerAction extends PureComponent { dispatch: PropTypes.func.isRequired, // Provided by wrapping the component with FluentReact.withLocalization. getString: PropTypes.func.isRequired, + // Provided by redux state + isMultiE10s: PropTypes.bool.isRequired, target: Types.debugTarget.isRequired, }; } @@ -39,13 +42,14 @@ class ServiceWorkerAction extends PureComponent { } _renderAction() { - const { dispatch, target } = this.props; + const { dispatch, isMultiE10s, target } = this.props; const { isActive, isRunning } = target.details; if (!isRunning) { const startLabel = this.props.getString("about-debugging-worker-action-start"); return this._renderButton({ className: "default-button", + disabled: isMultiE10s, label: startLabel, onClick: this.start.bind(this), }); @@ -53,24 +57,26 @@ class ServiceWorkerAction extends PureComponent { if (!isActive) { // Only debug button is available if the service worker is not active. - return InspectAction({ dispatch, target }); + return InspectAction({ disabled: isMultiE10s, dispatch, target }); } const pushLabel = this.props.getString("about-debugging-worker-action-push"); return [ this._renderButton({ className: "default-button js-push-button", + disabled: isMultiE10s, label: pushLabel, onClick: this.push.bind(this), }), - InspectAction({ dispatch, target }), + InspectAction({ disabled: isMultiE10s, dispatch, target }), ]; } - _renderButton({ className, label, onClick }) { + _renderButton({ className, disabled, label, onClick }) { return dom.button( { className, + disabled, onClick: e => onClick(), }, label, @@ -87,4 +93,11 @@ class ServiceWorkerAction extends PureComponent { } } -module.exports = FluentReact.withLocalization(ServiceWorkerAction); +const mapStateToProps = state => { + return { + isMultiE10s: state.ui.isMultiE10s, + }; +}; + +module.exports = FluentReact.withLocalization( + connect(mapStateToProps)(ServiceWorkerAction)); diff --git a/devtools/client/aboutdebugging-new/src/constants.js b/devtools/client/aboutdebugging-new/src/constants.js index 2620e681e66b..9e13702a8009 100644 --- a/devtools/client/aboutdebugging-new/src/constants.js +++ b/devtools/client/aboutdebugging-new/src/constants.js @@ -19,6 +19,7 @@ const actionTypes = { DISCONNECT_RUNTIME_FAILURE: "DISCONNECT_RUNTIME_FAILURE", DISCONNECT_RUNTIME_START: "DISCONNECT_RUNTIME_START", DISCONNECT_RUNTIME_SUCCESS: "DISCONNECT_RUNTIME_SUCCESS", + MULTI_E10S_UPDATED: "MULTI_E10S_UPDATED", NETWORK_LOCATIONS_UPDATED: "NETWORK_LOCATIONS_UPDATED", PAGE_SELECTED: "PAGE_SELECTED", REQUEST_EXTENSIONS_FAILURE: "REQUEST_EXTENSIONS_FAILURE", diff --git a/devtools/client/aboutdebugging-new/src/create-store.js b/devtools/client/aboutdebugging-new/src/create-store.js index c78ddb77807d..8ddfd34220c6 100644 --- a/devtools/client/aboutdebugging-new/src/create-store.js +++ b/devtools/client/aboutdebugging-new/src/create-store.js @@ -9,6 +9,7 @@ const Services = require("Services"); const { applyMiddleware, createStore } = require("devtools/client/shared/vendor/redux"); const { thunk } = require("devtools/client/shared/redux/middleware/thunk.js"); const { waitUntilService } = require("devtools/client/shared/redux/middleware/wait-service.js"); +const { isMultiE10s } = require("devtools/client/shared/multi-e10s-helper"); const rootReducer = require("./reducers/index"); const { DebugTargetsState } = require("./reducers/debug-targets-state"); @@ -50,7 +51,7 @@ function getUiState() { const showSystemAddons = Services.prefs.getBoolPref(PREFERENCES.SHOW_SYSTEM_ADDONS, false); return new UiState(locations, collapsibilities, networkEnabled, wifiEnabled, - showSystemAddons); + showSystemAddons, isMultiE10s()); } exports.configureStore = configureStore; diff --git a/devtools/client/aboutdebugging-new/src/reducers/ui-state.js b/devtools/client/aboutdebugging-new/src/reducers/ui-state.js index d63d4f917cfa..e659fa91188d 100644 --- a/devtools/client/aboutdebugging-new/src/reducers/ui-state.js +++ b/devtools/client/aboutdebugging-new/src/reducers/ui-state.js @@ -7,6 +7,7 @@ const { ADB_ADDON_STATUS_UPDATED, DEBUG_TARGET_COLLAPSIBILITY_UPDATED, + MULTI_E10S_UPDATED, NETWORK_LOCATIONS_UPDATED, PAGE_SELECTED, TEMPORARY_EXTENSION_INSTALL_FAILURE, @@ -16,10 +17,12 @@ const { } = require("../constants"); function UiState(locations = [], debugTargetCollapsibilities = {}, - networkEnabled = false, wifiEnabled = false, showSystemAddons = false) { + networkEnabled = false, wifiEnabled = false, + showSystemAddons = false, isMultiE10s = false) { return { adbAddonStatus: null, debugTargetCollapsibilities, + isMultiE10s, isScanningUsb: false, networkEnabled, networkLocations: locations, @@ -45,6 +48,11 @@ function uiReducer(state = UiState(), action) { return Object.assign({}, state, { debugTargetCollapsibilities }); } + case MULTI_E10S_UPDATED: { + const { isMultiE10s } = action; + return Object.assign({}, state, { isMultiE10s }); + } + case NETWORK_LOCATIONS_UPDATED: { const { locations } = action; return Object.assign({}, state, { networkLocations: locations }); diff --git a/devtools/client/aboutdebugging/components/workers/Panel.js b/devtools/client/aboutdebugging/components/workers/Panel.js index 00c78552af32..e5c9dd8c07ff 100644 --- a/devtools/client/aboutdebugging/components/workers/Panel.js +++ b/devtools/client/aboutdebugging/components/workers/Panel.js @@ -11,6 +11,11 @@ const { Component, createFactory } = require("devtools/client/shared/vendor/reac const PropTypes = require("devtools/client/shared/vendor/react-prop-types"); const dom = require("devtools/client/shared/vendor/react-dom-factories"); const Services = require("Services"); +const { + addMultiE10sListener, + isMultiE10s, + removeMultiE10sListener, +} = require("devtools/client/shared/multi-e10s-helper"); const PanelHeader = createFactory(require("../PanelHeader")); const TargetList = createFactory(require("../TargetList")); @@ -30,8 +35,6 @@ const Strings = Services.strings.createBundle( const WorkerIcon = "chrome://devtools/skin/images/debugging-workers.svg"; const MORE_INFO_URL = "https://developer.mozilla.org/en-US/docs/Tools/about%3Adebugging" + "#Service_workers_not_compatible"; -const PROCESS_COUNT_PREF = "dom.ipc.processCount"; -const MULTI_OPTOUT_PREF = "dom.ipc.multiOptOut"; class WorkersPanel extends Component { static get propTypes() { @@ -66,20 +69,7 @@ class WorkersPanel extends Component { client.mainRoot.on("processListChanged", this.updateWorkers); client.addListener("registration-changed", this.updateWorkers); - // Some notes about these observers: - // - nsIPrefBranch.addObserver observes prefixes. In reality, watching - // PROCESS_COUNT_PREF watches two separate prefs: - // dom.ipc.processCount *and* dom.ipc.processCount.web. Because these - // are the two ways that we control the number of content processes, - // that works perfectly fine. - // - The user might opt in or out of multi by setting the multi opt out - // pref. That affects whether we need to show our warning, so we need to - // update our state when that pref changes. - // - In all cases, we don't have to manually check which pref changed to - // what. The platform code in nsIXULRuntime.maxWebProcessCount does all - // of that for us. - Services.prefs.addObserver(PROCESS_COUNT_PREF, this.updateMultiE10S); - Services.prefs.addObserver(MULTI_OPTOUT_PREF, this.updateMultiE10S); + addMultiE10sListener(this.updateMultiE10S); this.updateMultiE10S(); this.updateWorkers(); @@ -95,8 +85,7 @@ class WorkersPanel extends Component { } client.removeListener("registration-changed", this.updateWorkers); - Services.prefs.removeObserver(PROCESS_COUNT_PREF, this.updateMultiE10S); - Services.prefs.removeObserver(MULTI_OPTOUT_PREF, this.updateMultiE10S); + removeMultiE10sListener(this.updateMultiE10S); } get initialState() { @@ -106,7 +95,7 @@ class WorkersPanel extends Component { shared: [], other: [], }, - processCount: 1, + isMultiE10S: isMultiE10s(), // List of ContentProcessTargetFront registered from componentWillMount // from which we listen for worker list changes @@ -115,10 +104,7 @@ class WorkersPanel extends Component { } updateMultiE10S() { - // We watch the pref but set the state based on - // nsIXULRuntime.maxWebProcessCount. - const processCount = Services.appinfo.maxWebProcessCount; - this.setState({ processCount }); + this.setState({ isMultiE10S: isMultiE10s() }); } updateWorkers() { @@ -175,10 +161,7 @@ class WorkersPanel extends Component { render() { const { client, id } = this.props; - const { workers, processCount } = this.state; - - const isE10S = Services.appinfo.browserTabsRemoteAutostart; - const isMultiE10S = isE10S && processCount > 1; + const { workers, isMultiE10S } = this.state; return dom.div( { diff --git a/devtools/client/shared/moz.build b/devtools/client/shared/moz.build index 45f2c651d3da..6148d21de332 100644 --- a/devtools/client/shared/moz.build +++ b/devtools/client/shared/moz.build @@ -37,6 +37,7 @@ DevToolsModules( 'key-shortcuts.js', 'keycodes.js', 'link.js', + 'multi-e10s-helper.js', 'natural-sort.js', 'node-attribute-parser.js', 'options-view.js', diff --git a/devtools/client/shared/multi-e10s-helper.js b/devtools/client/shared/multi-e10s-helper.js new file mode 100644 index 000000000000..b72c13849799 --- /dev/null +++ b/devtools/client/shared/multi-e10s-helper.js @@ -0,0 +1,53 @@ +/* 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"; + +const Services = require("Services"); + +/** + * This helper provides info on whether we are in multi e10s mode or not. + * Since this can be changed on the fly, there are subscribe/unsubscribe functions + * to get notified of this. + * + * The logic to handle this is borrowed from the (old) about:debugging code. + */ + +const PROCESS_COUNT_PREF = "dom.ipc.processCount"; +const MULTI_OPTOUT_PREF = "dom.ipc.multiOptOut"; + +function addMultiE10sListener(listener) { + // Some notes about these observers: + // - nsIPrefBranch.addObserver observes prefixes. In reality, watching + // PROCESS_COUNT_PREF watches two separate prefs: + // dom.ipc.processCount *and* dom.ipc.processCount.web. Because these + // are the two ways that we control the number of content processes, + // that works perfectly fine. + // - The user might opt in or out of multi by setting the multi opt out + // pref. That affects whether we need to show our warning, so we need to + // update our state when that pref changes. + // - In all cases, we don't have to manually check which pref changed to + // what. The platform code in nsIXULRuntime.maxWebProcessCount does all + // of that for us. + Services.prefs.addObserver(PROCESS_COUNT_PREF, listener); + Services.prefs.addObserver(MULTI_OPTOUT_PREF, listener); +} + +function removeMultiE10sListener(listener) { + Services.prefs.removeObserver(PROCESS_COUNT_PREF, listener); + Services.prefs.removeObserver(MULTI_OPTOUT_PREF, listener); +} + +function isMultiE10s() { + const isE10s = Services.appinfo.browserTabsRemoteAutostart; + const processCount = Services.appinfo.maxWebProcessCount; + + return isE10s && processCount > 1; +} + +module.exports = { + addMultiE10sListener, + isMultiE10s, + removeMultiE10sListener, +}; From 1affa5093336f4332c710870c04e128e04787865 Mon Sep 17 00:00:00 2001 From: Luca Greco Date: Wed, 19 Dec 2018 18:40:59 +0000 Subject: [PATCH 05/39] Bug 1514731 - Move to API schema wrappers the webRequestBlocking permission checks for webRequest blocking listeners. r=mixedpuppy This patch includes the following changes: - move into the API schema wrappers the additional checks needed (in the child process) to ensure that we throw a validation error when a webRequest blocking listener is registered by an extension that doesn't have the required webRequestBlocking permission: - define a new webRequestBlockingPermissionRequired postprocessor - add to web_request.json API schema the `"postprocess": "webRequestBlockingPermissionRequired"` property to all the webRequest options types that allows "blocking" as a valid string value (currently OnBeforeRequestOptions, OnBeforeSendHeadersOptions, OnHeadersReceivedOptions and OnAuthRequiredOptions) - add back an additional check for the webRequestBlocking permission in parent/ext-webRequest.js (just in case a new webRequest event is added in the future and we forget to add the postprocess property, so that we still ensure that an extension without the webRequestBlocking permission is not able to register any blocking listener) - tweak the test_no_webRequestBlocking_error test case to use browser.test.assertThrows to explicitly check that the error is thrown and "catchable" by the extension code, and not just logged in the console messages, and extend it to run on all the webRequest API events that can be blocking. Differential Revision: https://phabricator.services.mozilla.com/D14994 --HG-- extra : moz-landing-system : lando --- toolkit/components/extensions/Schemas.jsm | 8 ++++ .../extensions/child/ext-webRequest.js | 38 ------------------- .../extensions/parent/ext-webRequest.js | 18 ++++++++- .../extensions/schemas/web_request.json | 12 ++++-- .../test_ext_webRequest_permission.js | 26 +++++++------ 5 files changed, 47 insertions(+), 55 deletions(-) diff --git a/toolkit/components/extensions/Schemas.jsm b/toolkit/components/extensions/Schemas.jsm index 7fe2315d46c2..b6c3513766fe 100644 --- a/toolkit/components/extensions/Schemas.jsm +++ b/toolkit/components/extensions/Schemas.jsm @@ -233,6 +233,14 @@ const POSTPROCESSORS = { return canvas.toDataURL("image/png"); }, + webRequestBlockingPermissionRequired(string, context) { + if (string === "blocking" && !context.hasPermission("webRequestBlocking")) { + throw new context.cloneScope.Error("Using webRequest.addListener with the " + + "blocking option requires the 'webRequestBlocking' permission."); + } + + return string; + }, }; // Parses a regular expression, with support for the Python extended diff --git a/toolkit/components/extensions/child/ext-webRequest.js b/toolkit/components/extensions/child/ext-webRequest.js index 42c1d8ce6d7b..2cee3b49111f 100644 --- a/toolkit/components/extensions/child/ext-webRequest.js +++ b/toolkit/components/extensions/child/ext-webRequest.js @@ -2,39 +2,6 @@ /* vim: set sts=2 sw=2 et tw=80: */ "use strict"; -var { - ExtensionError, -} = ExtensionUtils; - -function makeWebRequestEvent(context, name) { - return new EventManager({ - context, - name: `webRequest.${name}`, - register: (fire, filter, info) => { - const blockingAllowed = context.extension - .hasPermission("webRequestBlocking"); - - if (info) { - // "blocking" requires webRequestBlocking permission - for (let desc of info) { - if (desc == "blocking" && !blockingAllowed) { - throw new ExtensionError("Using webRequest.addListener with the " + - "blocking option requires the 'webRequestBlocking' permission."); - } - } - } - - const listener = async (...args) => fire.sync(...args); - - let parent = context.childManager.getParentEvent(`webRequest.${name}`); - parent.addListener(listener, filter, info); - return () => { - parent.removeListener(listener); - }; - }, - }).api(); -} - this.webRequest = class extends ExtensionAPI { getAPI(context) { let filters = new WeakSet(); @@ -62,11 +29,6 @@ this.webRequest = class extends ExtensionAPI { filters.add(streamFilter); return streamFilter; }, - onBeforeRequest: makeWebRequestEvent(context, "onBeforeRequest"), - onBeforeSendHeaders: - makeWebRequestEvent(context, "onBeforeSendHeaders"), - onHeadersReceived: makeWebRequestEvent(context, "onHeadersReceived"), - onAuthRequired: makeWebRequestEvent(context, "onAuthRequired"), }, }; } diff --git a/toolkit/components/extensions/parent/ext-webRequest.js b/toolkit/components/extensions/parent/ext-webRequest.js index 1289ca20b72f..065b7be17c56 100644 --- a/toolkit/components/extensions/parent/ext-webRequest.js +++ b/toolkit/components/extensions/parent/ext-webRequest.js @@ -58,13 +58,29 @@ function registerEvent(extension, eventName, fire, filter, info, tabParent = nul let blockingAllowed = extension.hasPermission("webRequestBlocking"); + let info2 = []; + if (info) { + for (let desc of info) { + if (desc == "blocking" && !blockingAllowed) { + // This is usually checked in the child process (based on the API schemas, where these options + // should be checked with the "webRequestBlockingPermissionRequired" postprocess property), + // but it is worth to also check it here just in case a new webRequest has been added and + // it has not yet using the expected postprocess property). + Cu.reportError("Using webRequest.addListener with the blocking option " + + "requires the 'webRequestBlocking' permission."); + } else { + info2.push(desc); + } + } + } + let listenerDetails = { addonId: extension.id, extension: extension.policy, blockingAllowed, }; WebRequest[eventName].addListener( - listener, filter2, info, + listener, filter2, info2, listenerDetails); return { diff --git a/toolkit/components/extensions/schemas/web_request.json b/toolkit/components/extensions/schemas/web_request.json index be34999f53de..b6d7e311495d 100644 --- a/toolkit/components/extensions/schemas/web_request.json +++ b/toolkit/components/extensions/schemas/web_request.json @@ -59,12 +59,14 @@ { "id": "OnBeforeRequestOptions", "type": "string", - "enum": ["blocking", "requestBody"] + "enum": ["blocking", "requestBody"], + "postprocess": "webRequestBlockingPermissionRequired" }, { "id": "OnBeforeSendHeadersOptions", "type": "string", - "enum": ["requestHeaders", "blocking"] + "enum": ["requestHeaders", "blocking"], + "postprocess": "webRequestBlockingPermissionRequired" }, { "id": "OnSendHeadersOptions", @@ -74,12 +76,14 @@ { "id": "OnHeadersReceivedOptions", "type": "string", - "enum": ["blocking", "responseHeaders"] + "enum": ["blocking", "responseHeaders"], + "postprocess": "webRequestBlockingPermissionRequired" }, { "id": "OnAuthRequiredOptions", "type": "string", - "enum": ["responseHeaders", "blocking", "asyncBlocking"] + "enum": ["responseHeaders", "blocking", "asyncBlocking"], + "postprocess": "webRequestBlockingPermissionRequired" }, { "id": "OnResponseStartedOptions", diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_webRequest_permission.js b/toolkit/components/extensions/test/xpcshell/test_ext_webRequest_permission.js index a77a59109deb..e7c1285d950a 100644 --- a/toolkit/components/extensions/test/xpcshell/test_ext_webRequest_permission.js +++ b/toolkit/components/extensions/test/xpcshell/test_ext_webRequest_permission.js @@ -92,8 +92,18 @@ add_task(async function test_permissions() { add_task(async function test_no_webRequestBlocking_error() { function background() { - browser.webRequest.onBeforeRequest - .addListener(details => {}, {urls: [""]}, ["blocking"]); + const expectedError = "Using webRequest.addListener with the blocking option " + + "requires the 'webRequestBlocking' permission."; + + const blockingEvents = [ + "onBeforeRequest", "onBeforeSendHeaders", "onHeadersReceived", "onAuthRequired", + ]; + + for (let eventName of blockingEvents) { + browser.test.assertThrows(() => { + browser.webRequest[eventName].addListener(details => {}, {urls: [""]}, ["blocking"]); + }, expectedError, `Got the expected exception for a blocking webRequest.${eventName} listener`); + } } const extensionData = { @@ -103,14 +113,6 @@ add_task(async function test_no_webRequestBlocking_error() { const extension = ExtensionTestUtils.loadExtension(extensionData); - const {messages} = await promiseConsoleOutput(async () => { - await extension.startup(); - await extension.unload(); - }); - - const errRegex = new RegExp("Using webRequest\.addListener with the " + - "blocking option requires the 'webRequestBlocking' permission\."); - - ok(messages.some(msg => errRegex.test(msg.message)), - "Extension fails when blocking without 'webRequestBlocking' permission"); + await extension.startup(); + await extension.unload(); }); From d22bb6201285d48c1c9b32d9b8549796d90c31a4 Mon Sep 17 00:00:00 2001 From: ffxbld Date: Thu, 20 Dec 2018 13:30:40 +0000 Subject: [PATCH 06/39] No Bug, mozilla-central repo-update HSTS HPKP blocklist remote-settings - a=repo-update r=RyanVM Differential Revision: https://phabricator.services.mozilla.com/D15088 --HG-- extra : moz-landing-system : lando --- browser/app/blocklist.xml | 6 +- security/manager/ssl/StaticHPKPins.h | 2 +- security/manager/ssl/nsSTSPreloadList.inc | 241 +++++++++--------- .../settings/dumps/blocklists/addons.json | 2 +- 4 files changed, 127 insertions(+), 124 deletions(-) diff --git a/browser/app/blocklist.xml b/browser/app/blocklist.xml index e871010b6dd7..d7aef80e9b2b 100644 --- a/browser/app/blocklist.xml +++ b/browser/app/blocklist.xml @@ -1,5 +1,5 @@ - + @@ -2420,6 +2420,10 @@ + + + + diff --git a/security/manager/ssl/StaticHPKPins.h b/security/manager/ssl/StaticHPKPins.h index 562354eb9658..d6e9aa989506 100644 --- a/security/manager/ssl/StaticHPKPins.h +++ b/security/manager/ssl/StaticHPKPins.h @@ -1171,4 +1171,4 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = { static const int32_t kUnknownId = -1; -static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1553515916483000); +static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1553775027377000); diff --git a/security/manager/ssl/nsSTSPreloadList.inc b/security/manager/ssl/nsSTSPreloadList.inc index c6f6330d884e..fae294412177 100644 --- a/security/manager/ssl/nsSTSPreloadList.inc +++ b/security/manager/ssl/nsSTSPreloadList.inc @@ -8,7 +8,7 @@ /*****************************************************************************/ #include -const PRTime gPreloadListExpirationTime = INT64_C(1555935111505000); +const PRTime gPreloadListExpirationTime = INT64_C(1556194222441000); %% 0-1.party, 1 00100010.net, 1 @@ -28,7 +28,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1555935111505000); 007-preisvergleich.de, 1 00770077.net, 1 007kf.com, 1 -0086286.com, 1 00880088.net, 1 00990099.net, 1 00dani.me, 1 @@ -208,6 +207,7 @@ const PRTime gPreloadListExpirationTime = INT64_C(1555935111505000); 1212873467.rsc.cdn77.org, 1 1218641649.rsc.cdn77.org, 1 123.gg, 1 +123110.com, 1 1231212.com, 1 123123q.com, 1 123123qq.com, 1 @@ -216,6 +216,7 @@ const PRTime gPreloadListExpirationTime = INT64_C(1555935111505000); 123bearing.com, 1 123bearing.eu, 1 123comparer.fr, 1 +123djdrop.com, 1 123midterm.com, 1 123nutricion.es, 1 123opstalverzekeringen.nl, 1 @@ -315,6 +316,7 @@ const PRTime gPreloadListExpirationTime = INT64_C(1555935111505000); 19area.cn, 1 19hundert84.de, 1 1a-diamantscheiben.de, 1 +1a-werkstattgeraete.de, 1 1ab-machinery.com, 1 1b1.pl, 1 1c-power.ru, 1 @@ -876,7 +878,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1555935111505000); 576422.com, 1 578380.com, 1 579422.com, 1 -57he.com, 1 57wilkie.net, 1 583422.com, 1 585380.com, 1 @@ -1975,7 +1976,6 @@ advogatech.com.br, 1 advokat-romanov.com, 1 advtran.com, 1 adware.pl, 1 -adwokatkosterka.pl, 1 adwokatzdunek.pl, 1 adws.io, 1 adxperience.com, 1 @@ -2844,6 +2844,7 @@ alphie.me, 1 alphipneux.fr, 1 alpinechaletrental.com, 1 alpinehighlandrealty.com, 1 +alpineplanet.com, 1 alpinepubliclibrary.org, 1 alpinestarmassage.com, 1 alpinetrek.co.uk, 1 @@ -3883,6 +3884,7 @@ art-pix.net, 1 art2web.net, 1 artansoft.com, 1 artboja.com, 1 +artdeco-photo.com, 1 arte-soft.co, 1 artea.ga, 1 arteaga.co.uk, 1 @@ -4079,7 +4081,6 @@ assertion.de, 1 assessoriati.com.br, 1 assetsupervision.com, 1 assetvault.co.za, 1 -assguidesporrentruy.ch, 1 assign-it.co.uk, 1 assistance-personnes-agees.ch, 1 assistcart.com, 1 @@ -4338,7 +4339,6 @@ ausec.ch, 1 ausmwoid.de, 1 auspicacious.org, 1 ausrecord.com, 1 -ausschreibungen-suedtirol.it, 1 aussiefunadvisor.com, 1 aussiegreenmarks.com.au, 1 aussieservicedown.com, 1 @@ -4467,6 +4467,7 @@ ava-software.at, 1 avaaz.org, 1 avabouncehire.co.uk, 1 avacariu.me, 1 +avaemr-development-environment.ca, 1 avaeon.com, 1 availablecastles.com, 1 avalon-island.ru, 1 @@ -4958,7 +4959,6 @@ bambumania.com.br, 1 bamily.rocks, 1 bamtoki.com, 1 bananavapes.com, 1 -bananium.fr, 1 banburybid.com, 1 bancacrs.it, 1 bancaolhares.com.br, 1 @@ -5003,6 +5003,7 @@ banknet.gov, 1 bankofdenton.com, 1 bankofrealty.review, 1 bankpolicies.com, 1 +banksaround.com, 1 banksiaparkcottages.com.au, 1 bankstownapartments.com.au, 1 bankvanbreda.be, 1 @@ -5162,6 +5163,7 @@ baur.de, 1 bausep.de, 1 baustils.com, 1 bauthier-occasions.be, 1 +bautied.de, 1 bauunternehmen-herr.de, 1 bauwens.cloud, 1 bavartec.de, 1 @@ -5247,6 +5249,7 @@ bcpc-ccgpfcheminots.com, 1 bcradio.org, 1 bcrook.com, 1 bcswampcabins.com, 1 +bcvps.com, 1 bcyw56.live, 0 bd2positivo.com, 1 bda-boulevarddesairs.com, 1 @@ -5602,6 +5605,7 @@ bernieware.de, 1 berodes.be, 1 berr.yt, 1 berra.se, 1 +berruezoabogados.com, 1 berrus.com, 1 berry.cat, 1 berrypay.com, 1 @@ -5694,7 +5698,6 @@ bestinver.es, 0 bestjumptrampolines.be, 1 bestkenmoredentists.com, 1 bestlashesandbrows.com, 1 -bestlashesandbrows.hu, 1 bestleftwild.com, 1 bestmotherfucking.website, 1 bestoffert.club, 1 @@ -5807,7 +5810,6 @@ beyondbounce.co.uk, 1 beyondpricing.com, 1 beyondthecode.io, 1 beyondtodaymediagroup.com, 1 -beyondtrust.com, 1 beyondweb.net, 1 beyonic.com, 1 beyours.be, 1 @@ -5935,7 +5937,6 @@ bigsisterchannel.com, 1 bigskylifestylerealestate.com, 1 bigskymontanalandforsale.com, 1 bihub.io, 1 -biilo.com, 1 bijancompany.com, 1 bijoux.com.br, 1 bijouxcherie.com, 1 @@ -6463,6 +6464,7 @@ blogconcours.net, 1 blogcuaviet.com, 1 blogdelosjuguetes.com, 1 blogdeyugioh.com, 1 +blogdimotori.it, 1 blogexpert.ca, 1 bloggermumofthreeboys.com, 1 blogging-life.com, 1 @@ -6477,14 +6479,13 @@ blogreen.org, 1 blogsdna.com, 1 blogthedayaway.com, 1 blogtroterzy.pl, 1 -blok56.nl, 1 blokmy.com, 1 blood4pets.tk, 1 bloodhunt.pl, 1 bloodsports.org, 1 bloody.pw, 1 bloom-avenue.com, 1 -bloom.sh, 1 +bloom.sh, 0 bltc.co.uk, 1 bltc.com, 1 bltc.net, 1 @@ -6607,6 +6608,7 @@ bobkidbob.com, 1 bobkoetsier.nl, 1 bobnbouncedublin.ie, 1 bobobox.net, 1 +boboolo.com, 1 bobstronomie.fr, 1 bocamo.it, 1 bochs.info, 1 @@ -7151,6 +7153,7 @@ brickwerks.io, 1 bricolajeux.ch, 1 brid.gy, 0 bridalshoes.com, 1 +brideandgroomdirect.ie, 1 bridgedirectoutreach.com, 1 bridgeglobalmarketing.com, 1 bridgehomeloans.com, 1 @@ -7334,7 +7337,7 @@ btcp.space, 1 btcpop.co, 1 btcycle.org, 1 btine.tk, 1 -btio.pw, 1 +btio.pw, 0 btku.org, 1 btmstore.com.br, 1 btnissanparts.com, 1 @@ -7342,7 +7345,7 @@ btorrent.xyz, 1 btrb.ml, 1 btsapem.com, 1 btsoft.eu, 1 -btsow.com, 1 +btsow.com, 0 bttc.co.uk, 1 btth.live, 1 btth.pl, 1 @@ -7679,7 +7682,7 @@ c2o-library.net, 1 c2o2.xyz, 1 c3.pm, 1 c3hv.cn, 1 -c3sign.de, 1 +c3sign.de, 0 c3vo.de, 1 c3w.at, 1 c3wien.at, 1 @@ -8152,7 +8155,6 @@ cartadeviajes.mx, 1 cartadeviajes.pe, 1 cartadeviajes.uk, 1 carteirasedistintivos.com.br, 1 -cartelcircuit.com, 1 carterorland.com, 1 carterstad.se, 1 cartertonscouts.org.nz, 1 @@ -8316,6 +8318,8 @@ caughtredhanded.co.nz, 1 caulfieldeastapartments.com.au, 1 caulfieldracecourseapartments.com.au, 1 caulong-ao.net, 1 +causae-fincas.es, 1 +causae.es, 1 cav.ac, 1 cavac.at, 1 cavalierkingcharlesspaniel.com.br, 1 @@ -8366,7 +8370,6 @@ ccu.io, 1 ccu.plus, 1 ccv-deutschland.de, 1 ccv.ch, 1 -ccv.nl, 1 cd-shopware.de, 1 cd-sport.com, 1 cd.search.yahoo.com, 0 @@ -8568,6 +8571,7 @@ cgbilling.com, 1 cgcookiemarkets.com, 1 cgminc.net, 1 cgnparts.com, 1 +cgpe.com, 1 cgsmart.com, 1 cgtx.us, 1 cgurtner.ch, 1 @@ -8621,7 +8625,6 @@ chanddriving.co.uk, 1 chandr1000.ga, 1 chang-feng.info, 1 changecopyright.ru, 1 -changelab.cc, 1 changes.jp, 1 changesfor.life, 1 changethislater.com, 1 @@ -8751,7 +8754,6 @@ chcoc.gov, 1 chcsct.com, 1 chd-expert.fr, 1 chdgaming.xyz, 1 -cheah.xyz, 1 cheap-colleges.com, 1 cheapalarmparts.com.au, 1 cheapcaribbean.com, 1 @@ -8999,7 +9001,6 @@ christec.net, 1 christensenplace.us, 1 christerwaren.fi, 1 christiaanconover.com, 1 -christian-fischer.pictures, 1 christian-folini.ch, 1 christian-gredig.de, 1 christian-host.com, 1 @@ -9052,7 +9053,6 @@ chriswarrick.com, 1 chriswbarry.com, 1 chriswells.io, 1 chromaryu.net, 0 -chromaxa.com, 1 chromcraft-revington.com, 1 chrome, 1 chrome-devtools-frontend.appspot.com, 1 @@ -9070,6 +9070,7 @@ chrpaul.de, 1 chrstn.eu, 1 chrysanthos.net, 1 chrystajewelry.com, 1 +chs.us, 0 chsh.moe, 0 chshouyu.com, 1 chsterz.de, 1 @@ -9109,7 +9110,6 @@ cica.es, 1 cidbot.com, 1 ciderclub.com, 1 cidersus.com.ec, 1 -cie-theatre-montfaucon.ch, 1 ciel.pro, 1 cielbleu.org, 1 cielly.com, 1 @@ -9398,6 +9398,7 @@ cloud.google.com, 1 cloud.gov, 1 cloud42.ch, 0 cloud9bouncycastlehire.com, 1 +cloudalice.net, 1 cloudapps.digital, 1 cloudberlin.goip.de, 1 cloudbleed.info, 1 @@ -9665,6 +9666,7 @@ codific.eu, 1 codigo-bonus-bet.es, 1 codigodelbonusbet365.com, 1 codigosddd.com.br, 1 +codimaker.com, 1 coding-minds.com, 1 coding.lv, 1 coding.net, 1 @@ -9846,7 +9848,6 @@ comicspornos.com, 1 comicspornow.com, 1 comicspornoxxx.com, 1 comicwiki.dk, 1 -comidasperuanas.net, 1 comiq.io, 1 comiteaintriathlon.fr, 1 comm.cx, 1 @@ -9936,7 +9937,6 @@ compservice.in.ua, 1 comptrollerofthecurrency.gov, 1 comptu.com, 1 compubench.com, 1 -compucastell.ch, 1 compucorner.mx, 1 compunetwor.com, 1 compuplast.cz, 1 @@ -10118,7 +10118,6 @@ convergence.fi, 1 convergencela.com, 1 convergnce.com, 1 conversiones.com, 1 -conversionsciences.com, 1 convert.im, 1 convert.zone, 1 converter.ml, 1 @@ -10273,7 +10272,6 @@ cosmeticos-naturales.com, 1 cosmeticosdelivery.com.br, 1 cosmiatria.pe, 1 cosmicnavigator.com, 1 -cosmintataru.ro, 1 cosmodacollection.com, 1 cosmofunnel.com, 1 cosmundi.de, 1 @@ -10455,7 +10453,6 @@ creared.edu.co, 1 create-ls.jp, 1 createcos.com, 1 createme.com.pl, 1 -createursdefilms.com, 1 creatieven.com, 1 creation-contemporaine.com, 1 creations-edita.com, 1 @@ -10659,7 +10656,6 @@ cryptoseb.pw, 1 cryptoshot.pw, 1 cryptoya.io, 1 cryptract.co, 1 -crys.cloud, 1 crys.hu, 1 crystal-zone.com, 1 crystalapp.ca, 1 @@ -10700,7 +10696,6 @@ csinterstargeneve.ch, 1 cskentertainment.co.uk, 1 csmainframe.com, 1 csokolade.hu, 1 -csovek-idomok.hu, 1 csp.ch, 1 cspeti.hu, 1 cspvalidator.org, 1 @@ -11379,6 +11374,7 @@ datastream.re, 0 datasupport-stockholm.se, 1 datasupport.one, 1 dataswamp.org, 1 +datatekniikka.com, 0 datatekniikka.fi, 0 datatekniker.nu, 1 datateknologsektionen.se, 0 @@ -11562,7 +11558,6 @@ ddns-test.de, 1 ddnsweb.com, 1 ddos-mitigation.co.uk, 1 ddos-mitigation.info, 1 -ddoser.cn, 1 ddosolitary.org, 1 ddproxy.cf, 1 ddracepro.net, 1 @@ -11644,7 +11639,6 @@ declivitas.com, 1 decoating.pl, 1 decock-usedcars.be, 1 decodeanddestroy.com, 1 -decoder.link, 1 decompiled.de, 1 decoora.com, 1 decor-d.com, 1 @@ -11760,6 +11754,7 @@ delbrouck.ch, 1 delcopa.gov, 1 deleidscheflesch.nl, 1 delfic.org, 1 +delfino.cr, 1 delhionlinegifts.com, 1 deliacreates.com, 1 deliandiver.org, 1 @@ -12533,6 +12528,7 @@ divinemercyparishvlds.com, 1 diving.photo, 1 divingwithnic.com, 1 divorcelawyersformen.com, 1 +divorciosmurcia.com, 1 diwei.vip, 1 dixi.fi, 1 dixibox.com, 1 @@ -12913,7 +12909,6 @@ dossplumbing.co.za, 1 dostalsecurity.com, 1 dostavkakurierom.ru, 1 dostlar.fr, 1 -dostrece.net, 1 dosvientoselectric.com, 1 dosvientoselectrical.com, 1 dosvientoselectrician.com, 1 @@ -13012,6 +13007,7 @@ dpwsweeps.co.uk, 1 dr-becarelli-philippe.chirurgiens-dentistes.fr, 1 dr-it.co.uk, 1 dr-klotz.info, 1 +dr-knirr.de, 1 dr-krebs.net, 1 dr-marlen-nystroem.de, 1 dr-nystroem.de, 1 @@ -13089,7 +13085,6 @@ drcarolynquist.com, 1 drchrislivingston.com, 1 drchristinehatfield.ca, 1 drchristophepanthier.com, 1 -drdim.ru, 1 drdipilla.com, 1 dreadd.org, 1 dreamaholic.club, 1 @@ -13178,7 +13173,6 @@ driverprofiler.co.uk, 1 driverscollection.com, 1 driving-lessons.co.uk, 1 drivinghorror.com, 1 -drivingtestpro.com, 1 drivinhors.com, 1 drivya.com, 1 drixn.cn, 1 @@ -13194,7 +13188,6 @@ drjulianneil.com, 1 drkhsh.at, 0 drkmtrx.xyz, 1 drlandis.com, 1 -drlangsdon.com, 1 drlinkcheck.com, 1 drlutfi.com, 1 drmayakato.com, 1 @@ -13287,7 +13280,6 @@ dsgvo.name, 1 dshield.org, 1 dsm5.com, 1 dsmjs.com, 1 -dsmstainlessproducts.co.uk, 1 dso-imaging.co.uk, 1 dso-izlake.si, 1 dsol.hu, 1 @@ -13399,6 +13391,7 @@ duoluodeyu.com, 1 duonganhtuan.com, 1 duoquadragintien.fr, 1 dupisces.com.tw, 1 +duploclique.pt, 0 dupree.co, 1 dupree.pe, 1 durand.tf, 1 @@ -13425,7 +13418,6 @@ dustyspokesbnb.ca, 1 dutch.desi, 1 dutch1.nl, 1 dutchdare.nl, 1 -dutchessuganda.com, 1 dutchforkrunners.com, 1 dutchrank.nl, 1 dutchwanderers.nl, 1 @@ -13529,7 +13521,6 @@ dyscalculia-blog.com, 1 dysthymia.com, 1 dyyn.de, 1 dzar.nsupdate.info, 1 -dzeina.ch, 1 dzet.de, 1 dziary.com, 1 dziekonski.com, 1 @@ -13631,6 +13622,7 @@ earthsystemprediction.gov, 1 earticleblog.com, 1 earvinkayonga.com, 0 easelforart.com, 1 +easew.com, 1 easez.net, 1 eashwar.com, 1 eason-yang.com, 1 @@ -14291,7 +14283,7 @@ elfring.eu, 1 elfussports.com, 1 elgalponazo.com.ar, 1 elglobo.com.mx, 0 -elgosblanc.com, 0 +elgosblanc.com, 1 elguadia.faith, 1 elhamadimi.com, 1 elhorizontal.com, 1 @@ -14414,6 +14406,7 @@ emanuel.photography, 1 emanuela-gabriela.co.uk, 1 emanuelduss.ch, 1 emanueleanastasio.com, 1 +emanuelemazzotta.com, 1 emarketingmatters.com, 1 emasex.com, 1 emasex.es, 1 @@ -14819,7 +14812,6 @@ ericloud.tk, 1 erico.jp, 1 ericoc.com, 1 erics.site, 1 -ericschwartzlive.com, 1 ericspeidel.de, 1 ericvaughn-flam.com, 1 ericwie.se, 1 @@ -14889,7 +14881,6 @@ es8888.net, 1 es888999.com, 1 es999.net, 1 es9999.net, 1 -esaborit.ddns.net, 1 esafar.cz, 0 esagente.com, 1 esailinggear.com, 1 @@ -15443,7 +15434,6 @@ examedge.com, 1 examenpilotos.com, 0 exampleessays.com, 1 examplesu.com, 1 -examsmate.in, 1 exaplac.com, 1 exarpy.com, 1 exatmiseis.net, 0 @@ -15608,6 +15598,7 @@ eyenote.gov, 1 eyeonid.com, 1 eyep.me, 1 eyes-berg.ch, 1 +eyes-berg.com, 1 eyesandearsrescue.org, 1 eynio.com, 1 eyona.com, 1 @@ -15626,6 +15617,7 @@ ezhik-din.ru, 1 eznfe.com, 1 ezorgportaal.nl, 1 ezpzdelivery.com, 1 +eztvtorrent.com, 1 ezwritingservice.com, 1 ezzhole.net, 1 f-be.com, 1 @@ -15794,7 +15786,7 @@ falcema.com, 1 falcona.io, 1 falconfrag.com, 1 falconvintners.com, 1 -falcoz.co, 0 +falcoz.co, 1 faldoria.de, 1 falegname-roma.it, 1 falkhusemann.de, 1 @@ -16010,6 +16002,7 @@ fbo.gov, 1 fbsbx.com, 1 fbtholdings.com, 1 fburl.com, 1 +fc.media, 1 fca-tools.com, 1 fcapartsdb.com, 1 fcburk.de, 1 @@ -16101,7 +16094,6 @@ feirlane.org, 0 feisbed.com, 1 feisim.com, 1 feisim.org, 1 -feist.io, 1 feistyduck.com, 1 feizhujianzhi.com, 1 fejes.house, 1 @@ -16120,6 +16112,7 @@ felixbarta.de, 1 felixcrux.com, 1 felixgenicio.com, 1 felixkauer.de, 1 +felixqu.com, 1 felixsanz.com, 1 felixseele.de, 1 felsing.net, 1 @@ -16325,6 +16318,7 @@ filme-onlines.com, 1 filmers.net, 1 filmesonline.online, 1 filmitis.com, 1 +filmovizija.mk, 1 filmreviewonline.com, 1 filmserver.de, 1 filmsite-studio.com, 1 @@ -16618,6 +16612,7 @@ flikmsg.co, 1 flinch.io, 1 fling.dating, 1 flip.kim, 1 +flipbell.com, 1 flipneus.net, 1 fliptable.org, 1 flirt-norden.de, 1 @@ -17113,6 +17108,7 @@ free-your-pc.com, 1 free.ac.cn, 1 free.com.tw, 1 free8.xyz, 1 +freeassangenow.org, 1 freeasyshop.com, 1 freebarrettbrown.org, 1 freebcard.com, 1 @@ -17477,7 +17473,6 @@ funtimesbouncycastles.co.uk, 1 fur.red, 1 furcdn.net, 1 furcity.me, 1 -furgetmeknot.org, 1 furgo.love, 1 furi.ga, 1 furigana.info, 1 @@ -17499,7 +17494,7 @@ furry.cat, 1 furry.dk, 1 furrybot.me, 1 furrytech.network, 1 -furrytf.club, 0 +furrytf.club, 1 furryyiff.site, 1 fursuitbutts.com, 1 fusa-miyamoto.jp, 1 @@ -17703,7 +17698,6 @@ gamblerhealing.com, 1 gamblersgaming.eu, 1 game-files.net, 0 game-gentle.com, 1 -game-topic.ru, 1 game4less.com, 1 game7.de, 1 game88city.com, 1 @@ -18483,7 +18477,6 @@ global-adult-webcams.com, 1 global-lights.ma, 1 global-office.com, 1 global-village.koeln, 1 -global.hr, 1 globalcanineregistry.com, 1 globalchokepoints.org, 1 globalcomix.com, 1 @@ -18510,7 +18503,6 @@ globcoin.io, 1 globelink-group.com, 1 globuli-info.de, 1 glocalworks.jp, 1 -glofox.com, 1 glolighting.co.za, 1 gloneta.com, 0 gloning.name, 1 @@ -18698,6 +18690,7 @@ gongjuhao.com, 1 gonx.dk, 1 gonzalesca.gov, 1 goo.gl, 1 +good-tips.pro, 1 gooday.life, 1 gooddomainna.me, 1 goodenough.nz, 1 @@ -18863,6 +18856,7 @@ gram.tips, 1 gramati.com.br, 1 grammysgrid.com, 1 grancellconsulting.com, 1 +grandcafecineac.nl, 1 grandcafetwist.nl, 1 grandcapital.cn, 1 grandcapital.id, 1 @@ -18876,6 +18870,7 @@ grandeto.com, 1 grandjunctionbrewing.com, 1 grandmusiccentral.com.au, 1 grandpadusercontent.com, 1 +grandwailea.com, 1 granfort.es, 0 granian.pro, 1 granishe.com, 1 @@ -18992,7 +18987,6 @@ greggsfoundation.org.uk, 1 gregmartyn.com, 1 gregmarziomedia-dev.com, 1 gregmarziomedia.co.za, 1 -gregmarziomedia.com, 1 gregmilton.com, 1 gregmilton.org, 1 gregmote.com, 1 @@ -19749,6 +19743,7 @@ hayden.one, 0 haydenjames.io, 1 haydentomas.com, 1 hayfordoleary.com, 1 +haynes-davis.com, 1 hayvid.com, 1 haz.cat, 1 haze-productions.com, 1 @@ -19799,7 +19794,6 @@ headjapan.com, 1 headlinepublishing.be, 1 headshopinternational.com, 1 headshotharp.de, 1 -healey.io, 1 health-and-beauty-news.net, 1 health-booster.com, 0 health-match.com.au, 1 @@ -20234,7 +20228,6 @@ hirake55.com, 1 hiratake.xyz, 1 hire-a-coder.de, 1 hireabouncycastle.net, 1 -hirefitness.co.uk, 1 hireprofs.com, 1 hiresteve.ca, 1 hirevets.gov, 1 @@ -20377,7 +20370,6 @@ hoikuen-now.top, 1 hoiquanadida.com, 1 hoish.in, 1 hoken-wakaru.jp, 1 -hokieprivacy.org, 1 hokioisecurity.com, 1 holad.de, 1 holadinero.es, 1 @@ -20947,6 +20939,7 @@ huntingdonlifesciences.com, 1 huntshomeinspections.com, 0 huntsmansecurity.com, 1 huntsvillecottage.ca, 1 +huoduan.com, 1 huongquynh.com, 1 huonit.com.au, 1 hup.hu, 1 @@ -21074,6 +21067,7 @@ i5y.co.uk, 1 i5y.org, 1 i66.me, 1 i879.com, 1 +i95.me, 0 i9s.in, 1 ia.cafe, 1 ia.net, 1 @@ -21173,6 +21167,7 @@ icetiger.eu, 1 icewoman.net, 1 ich-hab-die-schnauze-voll-von-der-suche-nach-ner-kurzen-domain.de, 1 ich-tanke.de, 1 +ichasco.com, 1 ichbinein.org, 1 ichbinkeinreh.de, 1 ichmachdas.net, 1 @@ -21182,7 +21177,6 @@ iclinic.ua, 1 icloudlogin.com, 1 icmhd.ch, 1 icmp2018.org, 1 -icmshoptrend.com, 1 icnsoft.cf, 1 icnsoft.ml, 1 icnsoft.org, 1 @@ -21403,6 +21397,7 @@ iirii.com, 1 iix.se, 1 ijm.io, 1 ijohan.nl, 1 +ijr.com, 1 ijsbaanwitten.nl, 1 ijsblokjesvormen.nl, 1 ijsclubtilburg.nl, 1 @@ -21479,6 +21474,7 @@ illumed.net, 1 illuminationis.com, 1 illuminatisofficial.org, 1 illusionephemere.com, 1 +illusionunlimited.com, 1 illustrate.biz, 1 illuxat.com, 1 ilmataat.ee, 1 @@ -21525,7 +21521,6 @@ imaginetricks.com, 1 imagr.io, 1 imanageproducts.co.uk, 1 imanageproducts.uk, 1 -imanesdeviaje.com, 1 imanolbarba.net, 1 imap2imap.de, 1 imaple.org, 1 @@ -21544,7 +21539,6 @@ imedi.it, 1 imediafly.com, 1 imedikament.de, 1 imeds.pl, 1 -imefuniversitario.org, 1 imeid.de, 0 imex-dtp.com, 1 imforza.com, 1 @@ -21676,7 +21670,6 @@ incco.ir, 1 inceptionradionetwork.com, 1 incert.cn, 1 incertint.com, 1 -incestporn.tv, 1 inchcape-fleet-autobid.co.uk, 1 inche-ali.com, 1 inchenaim.com, 1 @@ -21789,7 +21782,7 @@ inflatadays.co.uk, 1 inflatamania.com, 1 inflationstation.net, 1 inflexsys.com, 1 -influencerchampions.com, 1 +influencerchampions.com, 0 influo.com, 1 influxus.com, 0 infmed.com, 1 @@ -22093,6 +22086,8 @@ interaffairs.com, 1 interaktiva.fi, 1 interasistmen.se, 1 interchangedesign.com, 1 +intercom.com, 1 +intercom.io, 1 interessiert-uns.net, 1 interfesse.net, 1 interfloraservices.co.uk, 1 @@ -22525,7 +22520,6 @@ isvbscriptdead.com, 1 isvsecwatch.org, 1 isyu.xyz, 1 isz.no, 1 -iszy.me, 1 it-academy.sk, 1 it-boss.ro, 1 it-enthusiasts.tech, 1 @@ -22583,7 +22577,6 @@ iteecafe.hu, 1 iteha.de, 1 iteke.ml, 1 iteke.tk, 1 -iteli.eu, 1 iterader.com, 1 iterror.co, 1 itesign.de, 1 @@ -22804,7 +22797,6 @@ jacobi-server.de, 1 jacobian.org, 1 jacobjangles.com, 1 jacobphono.com, 1 -jacobsenarquitetura.com, 1 jacuzziprozone.com, 1 jadara.info, 1 jadchaar.me, 1 @@ -22888,7 +22880,6 @@ jamesknd.uk, 0 jamesmarsh.net, 1 jamesmcdonald.com, 0 jamesmilazzo.com, 1 -jamesmorrison.me, 1 jamesmurphy.com.au, 1 jamesrains.com, 1 jamesrobertson.io, 1 @@ -22930,7 +22921,6 @@ janduchene.ch, 1 jane.com, 1 janehamelgardendesign.co.uk, 1 janelauhomes.com, 1 -jangocloud.tk, 1 janheidler.dynv6.net, 1 janhuelsmann.com, 1 jani.media, 1 @@ -23289,6 +23279,7 @@ jirosworld.com, 1 jisai.net.cn, 1 jisha.site, 1 jixun.moe, 1 +jiyue.com, 1 jiyue.moe, 1 jiyusu.com, 1 jiyuu-ni.com, 1 @@ -23394,6 +23385,7 @@ joe262.com, 1 joearodriguez.com, 1 joecod.es, 1 joedavison.me, 1 +joedinardo.com, 1 joedoyle.us, 1 joedroll.com, 1 joefixit.co, 1 @@ -23826,7 +23818,7 @@ justice.gov, 1 justice4assange.com, 1 justin-tech.com, 1 justinellingwood.com, 1 -justinharrison.ca, 1 +justinharrison.ca, 0 justinho.com, 1 justinmuturifoundation.org, 1 justinstandring.com, 1 @@ -24413,7 +24405,7 @@ kheshtar.pl, 1 khetzal.info, 1 khipu.com, 1 khlee.net, 1 -khmb.ru, 0 +khmb.ru, 1 khosla.uk, 1 khoury-dulla.ch, 1 khs1994.com, 1 @@ -24433,7 +24425,7 @@ kibriscicek.net, 1 kick-in.nl, 1 kickasscanadians.ca, 1 kickedmycat.com, 1 -kicou.info, 1 +kicou.info, 0 kidaptive.com, 1 kidbacker.com, 1 kiddieschristian.academy, 1 @@ -25184,6 +25176,8 @@ kumachan.biz, 1 kumalog.com, 1 kumasanda.jp, 1 kumilasvegas.com, 1 +kundenerreichen.com, 1 +kundenerreichen.de, 1 kundo.se, 1 kungerkueken.de, 1 kunra.de, 1 @@ -25516,7 +25510,6 @@ lanforalla.se, 1 lang-php.com, 1 langatang.com, 1 langbein.org, 1 -langendorf-ernaehrung-training.de, 0 langguth.io, 1 langkahteduh.com, 1 langkawitrip.com, 1 @@ -25614,7 +25607,6 @@ lassesworld.com, 1 lassesworld.se, 1 lasst-uns-beten.de, 1 lastbutnotyeast.com, 1 -lastchancetraveler.com, 1 lastharo.com, 1 lastpass.com, 0 lastrada-minden.de, 1 @@ -25851,7 +25843,6 @@ lederer-it.com, 1 ledlampor365.se, 1 ledlight.com, 1 ledscontato.com.br, 1 -ledzom.ru, 0 lee-fuller.co.uk, 1 leeaaronsrealestate.com, 1 leebiblestudycenter.co.uk, 1 @@ -25891,6 +25882,7 @@ legal.farm, 1 legalcontrol.info, 1 legaldesk.com, 1 legaleus.co.uk, 1 +legalinmotion.es, 1 legalrobot-uat.com, 1 legalrobot.com, 1 legaltip.eu, 1 @@ -25912,6 +25904,7 @@ legumeinfo.org, 1 lehighmathcircle.org, 1 lehmitz-weinstuben.de, 1 lehti-tarjous.net, 1 +lehtinen.xyz, 0 leibniz-gymnasium-altdorf.de, 1 leibniz-remscheid.de, 0 leideninternationalreview.com, 1 @@ -26074,6 +26067,7 @@ lettland-firma.com, 1 lettori.club, 1 letzchange.org, 1 leu.to, 0 +leuenhagen.com, 1 leulu.com, 1 leumi-how-to.co.il, 1 leuthardtfamily.com, 1 @@ -26132,7 +26126,7 @@ lgsg.us, 1 lhajn.cz, 1 lhakustik.se, 1 lhalbert.xyz, 1 -lhamaths.online, 0 +lhamaths.online, 1 lhasaapso.com.br, 1 lhconsult.tk, 0 lheinrich.org, 1 @@ -26446,7 +26440,6 @@ linuxlounge.net, 1 linuxos.org, 1 linuxproperties.com, 1 linuxsecurity.expert, 1 -linx.li, 1 linx.net, 1 linxmind.eu, 1 linzgau.de, 1 @@ -26600,13 +26593,11 @@ lixiaoyu.live, 1 lixtick.com, 1 liyang.pro, 0 liyin.date, 1 -liyunbin.com, 1 liz.ee, 1 lizardsystems.com, 1 lizheng.de, 1 lizhi.io, 1 lizhi123.net, 1 -lizmooredestinationweddings.com, 1 lizzaran.io, 1 lizzwood.com, 1 ljason.cn, 1 @@ -26950,6 +26941,7 @@ lottospielen24.org, 0 lotw.de, 1 lotz.li, 1 lou.lt, 1 +louange-reconvilier.ch, 1 loucanfixit.com, 1 louerunhacker.fr, 1 louisemisellinteriors.co.uk, 1 @@ -27200,6 +27192,7 @@ lustin.fr, 1 lustrum.ch, 1 lusynth.com, 1 luteijn.biz, 1 +luteijn.cloud, 1 luteijn.email, 1 luteijn.pro, 1 lutizi.com, 0 @@ -27900,6 +27893,7 @@ markfordelegate.com, 1 markhaehnel.de, 1 markhenrick.site, 1 markholden.guru, 1 +markhoodphoto.com, 0 markido.com, 1 markitzeroday.com, 1 markkirkforillinois.com, 1 @@ -28023,6 +28017,7 @@ masaze-hanka.cz, 1 mascorazon.com, 1 mascosolutions.com, 1 masdillah.com, 1 +maservant.net, 1 mashandco.it, 1 mashandco.tv, 1 mashek.net, 1 @@ -28289,6 +28284,7 @@ maze.fr, 1 mazenjobs.com, 1 mazternet.ru, 1 mazurlabs.tk, 1 +mazzotta.me, 1 mb-is.info, 1 mb300sd.com, 1 mb300sd.net, 1 @@ -28357,7 +28353,6 @@ mcinterface.de, 1 mcit.gov.ws, 1 mcivor.me, 1 mcjackk77.com, 1 -mckenry.net, 0 mckernan.in, 1 mckinley.school, 1 mckinley1.com, 1 @@ -28461,7 +28456,6 @@ media-credit.eu, 1 media-instance.ru, 1 media-library.co.uk, 1 media-pi.com, 1 -media-service.fr, 1 media-serwis.com, 1 mediaarea.net, 1 mediabackoffice.co.jp, 1 @@ -28874,6 +28868,7 @@ meujeitodigital.com.br, 0 meupainel.me, 1 meurisse.org, 1 meusigno.com, 1 +mevanshop.com, 1 mevo.xyz, 1 mevs.cz, 1 mexican.dating, 1 @@ -29145,11 +29140,6 @@ millibitcoin.jp, 1 millionairegames.com, 1 millionairessecrets.com, 1 millions32.com, 1 -millions39.com, 1 -millions40.com, 1 -millions41.com, 1 -millions42.com, 1 -millions43.com, 1 millistream.com, 1 milnes.org, 1 milsonhypnotherapyservices.com, 1 @@ -29290,7 +29280,6 @@ mirjamderijk.nl, 0 mirkofranz.de, 1 mirodasilva.be, 1 mironet.cz, 1 -mirrorbot.ga, 1 mirrorsedgearchive.de, 1 mirrorsedgearchive.ga, 1 mirshak.com, 1 @@ -29376,7 +29365,6 @@ mivzakim.mobi, 1 mivzakim.net, 1 mivzakim.org, 1 mivzakim.tv, 1 -mivzaklive.co.il, 1 miweb.cr, 0 mixinglight.com, 1 mixmister.com, 1 @@ -29606,7 +29594,7 @@ moeking.me, 1 moeli.org, 1 moellers.systems, 1 moenew.top, 1 -moeqing.net, 1 +moeqing.net, 0 moetrack.com, 1 moeyi.xyz, 0 moeyoo.net, 1 @@ -30141,6 +30129,7 @@ multicomhost.com, 1 multigamecard.com, 1 multigeist.de, 1 multikalender.de, 0 +multimail.work, 1 multimatte.com, 0 multimed.krakow.pl, 1 multimedia-pool.com, 1 @@ -30206,7 +30195,6 @@ mursu.directory, 1 murz.tv, 1 murzik.space, 1 musa.gallery, 1 -musaccostore.com, 1 muscle-tg.com, 1 muscleangels.com, 1 musclecarresearch.com, 1 @@ -30817,6 +30805,7 @@ namu.live, 1 namu.moe, 1 namu.wiki, 1 namuwikiusercontent.com, 1 +nan.ci, 1 nanami.moe, 1 nanarose.ch, 1 nanch.com, 1 @@ -30859,6 +30848,7 @@ narazaka.net, 1 narduin.xyz, 1 narenderchopra.com, 1 narfation.org, 1 +nargele.eu, 1 nargileh.nl, 1 naric.com, 1 narindal.ch, 1 @@ -30895,6 +30885,7 @@ nataniel-perissier.fr, 1 natation-nsh.com, 0 natchmatch.com, 1 nate.sh, 1 +natecraun.net, 1 natgeofreshwater.com, 1 nathaliebaron.ch, 1 nathaliebaroncoaching.ch, 1 @@ -31151,7 +31142,6 @@ neilshealthymeals.com, 1 neilwynne.com, 1 neio.uk, 1 nejenpneu.cz, 1 -nejkasy.cz, 1 nejlevnejsi-parapety.cz, 1 neko-nyan-nuko.com, 1 neko-nyan.org, 1 @@ -31362,7 +31352,7 @@ neurostimtms.com, 1 neurotransmitter.net, 1 neurozentrum-zentralschweiz.ch, 1 neutein.com, 1 -neutralox.com, 0 +neutralox.com, 1 neuwal.com, 1 neva.li, 1 nevadafiber.net, 1 @@ -31673,6 +31663,7 @@ niktok.com, 1 nil.gs, 1 nil.mx, 1 niles.xyz, 1 +nilianwo.com, 1 nilrem.org, 1 nimeshjm.com, 1 nimidam.com, 1 @@ -31701,6 +31692,7 @@ nintendoforum.no, 1 ninth.cat, 1 ninthfloor.org, 1 ninux.ch, 0 +ninverse.com, 1 niouininon.eu, 1 nipax.cz, 1 nipe-systems.de, 1 @@ -32197,7 +32189,6 @@ nyan.it, 1 nyan.stream, 1 nyanco.space, 1 nyanpasu.tv, 1 -nyansparkle.com, 1 nyantec.com, 1 nyatane.com, 1 nybiz.nyc, 1 @@ -32217,6 +32208,7 @@ nyoronfansubs.org, 1 nyphox.ovh, 1 nyronet.de, 0 nys-hk.com, 0 +nysteak5.com, 1 nytrafficticket.com, 1 nyxi.eu, 1 nyyu.tk, 1 @@ -32447,7 +32439,6 @@ ohsohairy.co.uk, 1 ohyooo.com, 1 oi-wiki.org, 1 oiaio.cn, 1 -oil-ecn.ru, 1 oilfieldinjury.attorney, 1 oilpaintingsonly.com, 1 oinky.ddns.net, 1 @@ -32458,6 +32449,9 @@ ojaioliveoil.com, 1 ojdip.net, 1 ojomovies.com, 1 ojp.gov, 1 +okad-center.de, 1 +okad.de, 1 +okad.eu, 1 okaidi.es, 1 okaidi.fr, 1 okakuro.org, 1 @@ -32465,6 +32459,7 @@ okanaganrailtrail.ca, 1 okashi.me, 1 okay.cf, 1 okay.coffee, 1 +okaz.de, 1 okburrito.com, 1 okchicas.com, 1 okchousebuyer.com, 1 @@ -32974,6 +32969,7 @@ orians.eu, 1 oribia.net, 1 oricejoc.com, 0 orientalart.nl, 1 +orientravelmacas.com, 1 oriflameszepsegkozpont.hu, 1 origami.to, 1 origamika.com, 1 @@ -33523,7 +33519,6 @@ parleamonluc.fr, 1 parleu2016.nl, 1 parmels.com.br, 1 parnassys.net, 1 -parodesigns.com, 1 parolu.io, 1 parquettista.milano.it, 1 parquettista.roma.it, 1 @@ -34102,6 +34097,7 @@ petresort.pt, 1 petroleum-schools.com, 1 petroscand.eu, 1 petrostathis.com, 1 +petrotranz.com, 1 petrpikora.com, 1 petrucciresidential.com, 1 pets4life.com.au, 1 @@ -34233,6 +34229,7 @@ phishing-studie.org, 1 phishingusertraining.com, 1 phligence.com, 1 phocean.net, 1 +phoenics.de, 0 phoenixlogan.com, 1 phoenixurbanspaces.com, 1 pholder.com, 1 @@ -34527,7 +34524,6 @@ pixelution.at, 1 pixelz.cc, 1 pixiv.cat, 1 pixiv.moe, 1 -pixiv.rip, 1 pixivimg.me, 1 pixlfox.com, 1 pixloc.fr, 1 @@ -34690,6 +34686,7 @@ plexhome13.ddns.net, 1 plexi.dyndns.tv, 1 plexmark.tk, 1 plexpy13.ddns.net, 1 +plextv.de, 1 plicca.com, 1 plinc.co, 1 pliosoft.com, 1 @@ -34715,7 +34712,6 @@ pluginfactory.io, 1 pluginsloaded.com, 1 pluimveeplanner.nl, 1 plumber-in-sandton.co.za, 1 -plumbermountedgecombe.co.za, 1 plumberumhlangarocks.co.za, 1 plumbingandheatingspecialistnw.com, 1 plumbingbenoni.co.za, 1 @@ -34738,7 +34734,6 @@ pluslink.co.jp, 1 plussizereviews.com, 1 plusstreamfeed.appspot.com, 1 plustech.id, 1 -pluta.net, 0 plutiedev.com, 1 pluto.life, 1 plutokorea.com, 1 @@ -35216,7 +35211,6 @@ powerinboxperformance.com, 1 powermatic7.com, 1 powermeter.at, 1 powermint.de, 1 -powerplaywashers.com, 1 powerpointschool.com, 1 powerserg.org, 1 powersergdatasystems.com, 1 @@ -35539,6 +35533,7 @@ procens.us, 1 procensus.com, 1 procert.ch, 1 processesinmotion.com, 1 +procharter.com, 1 procinorte.net, 1 proclib.org, 1 proclubs.news, 1 @@ -35564,6 +35559,7 @@ production.vn, 1 productlondon.com, 1 productpeo.pl, 1 products4more.at, 1 +produkttest-online.com, 1 prodware.fr, 1 prodware.nl, 1 proeflokaalbakker.nl, 1 @@ -35612,6 +35608,7 @@ progressiveplanning.com, 1 progressnet.nl, 1 progresswww.nl, 1 prohrcloud.com, 1 +proimpact.it, 1 proj.org.cn, 1 project-rune.tech, 1 project-stats.com, 1 @@ -35714,7 +35711,7 @@ protectr.de, 1 protege.moi, 1 protegetudescanso.com, 1 protein-riegel-test.de, 1 -proteinnuts.cz, 1 +proteinnuts.cz, 0 proteinnuts.sk, 0 protempore.fr, 1 proteogenix-products.com, 1 @@ -36042,6 +36039,7 @@ q-inn.com, 1 q-inn.nl, 1 q-technologies.com.au, 1 q123123.com, 1 +q1q2q3.tk, 1 q5118.com, 1 qa-brandywineglobal.com, 1 qa-team.xyz, 1 @@ -36452,7 +36450,6 @@ raltha.com, 1 ram-it.nl, 1 ram.nl, 1 ramarka.de, 1 -ramatola.uk, 1 rambii.de, 1 ramblingrf.tech, 1 rambo.codes, 1 @@ -36541,7 +36538,6 @@ ravada-vdi.com, 1 ravanalk.com, 1 ravchat.com, 1 raven.dog, 1 -ravenger.net, 1 ravengergaming.net, 1 ravensbuch.de, 1 ravenx.me, 1 @@ -36572,6 +36568,7 @@ raywin168.net, 1 raywin88.net, 1 rayworks.de, 1 razberry.kr, 1 +razeen.me, 1 razeencheng.com, 1 raziskovalec-resnice.com, 1 razvanburz.net, 1 @@ -36591,6 +36588,7 @@ rc-rp.com, 1 rc-shop.ch, 1 rc7.ch, 1 rca.fr, 1 +rca.ink, 1 rcd.cz, 1 rcdocuments.com, 1 rcgoncalves.pt, 1 @@ -36665,7 +36663,6 @@ realestatecentralcoast.info, 1 realestatemarketingblog.org, 1 realestateonehowell.com, 1 realestateradioshow.com, 1 -realfamilyincest.com, 1 realfamilysex.com, 1 realfood.space, 1 realfreedom.city, 1 @@ -36763,6 +36760,7 @@ recursosdeautoayuda.com, 1 red-t-shirt.ru, 1 red2fred2.com, 1 redable.hosting, 1 +redable.nl, 1 redactieco.nl, 1 redb.cz, 1 redballoonsecurity.com, 1 @@ -38449,6 +38447,7 @@ sanitairwinkel.nl, 1 sanitrak.cz, 1 sanjotech.space, 1 sanmuding.com, 1 +sannesfotklinikk.no, 1 sanooktiew.com, 0 sanpham-balea.org, 1 sanskritiyoga.com, 1 @@ -38629,7 +38628,6 @@ sbiewald.de, 1 sbir.gov, 1 sbirecruitment.co.in, 1 sbit.com.br, 1 -sblum.de, 1 sbm.cloud, 1 sbo-dresden.de, 1 sbox-servers.com, 1 @@ -38646,7 +38644,6 @@ sc-artworks.co.uk, 1 sc5.jp, 1 scaarus.com, 1 scaffalature.roma.it, 1 -scaffoldhireeastrand.co.za, 1 scalacollege.nl, 1 scalaire.com, 1 scalaire.fr, 1 @@ -39136,6 +39133,7 @@ securityheaders.nl, 1 securityindicators.com, 1 securityinet.com, 0 securitykey.co, 1 +securitymap.wiki, 1 securitypluspro.com, 1 securityprimes.in, 1 securitypuppy.com, 1 @@ -39196,6 +39194,7 @@ seguridadconsumidor.gov, 1 seguridadysaludeneltrabajo.com.co, 1 seguros-de-salud-y-vida.com, 1 segurosbalboa.com.ec, 0 +segurosdecarroshialeah.org, 1 segurosdevidamiami.org, 1 segurosocial.gov, 0 seguroviagem.srv.br, 0 @@ -39325,7 +39324,6 @@ seo-dr-it.com, 1 seo-linz.at, 1 seo-nerd.de, 1 seo-portal.de, 1 -seo.consulting, 1 seo.london, 1 seoagentur2go.de, 1 seoankara.name.tr, 1 @@ -39383,6 +39381,7 @@ sergije-stanic.me, 1 sergiojimenezequestrian.com, 1 sergiosantoro.it, 1 sergiozygmunt.com, 1 +sergivb01.me, 1 sergos.de, 1 serialexperiments.co.uk, 1 serienstream.to, 1 @@ -39438,7 +39437,6 @@ servicebeaute.fr, 1 serviceboss.de, 1 servicemembers.gov, 1 servida.ch, 1 -servidoresweb.online, 1 serviettenhaus.de, 1 servingbaby.com, 1 servious.org, 1 @@ -40119,6 +40117,7 @@ simivalleylighting.com, 1 simivalleyoutdoorlighting.com, 1 simkova-reality.cz, 1 simlau.net, 1 +simmis.fr, 1 simoesgoulart.com.br, 1 simon-agozzino.fr, 1 simon-hofmann.org, 1 @@ -40231,6 +40230,7 @@ sinuelovirtual.com.br, 1 sinusitis-bronchitis.ch, 1 sioeckes.hu, 1 sion.info, 1 +sipc.org, 1 sipstix.co.za, 1 siqi.wang, 1 siratalmustaqim.com, 1 @@ -41017,7 +41017,6 @@ sosecu.red, 1 sosesh.shop, 1 sosko.in.rs, 1 sosoftplay.co.uk, 1 -sospromotions.com.au, 1 sostacancun.com, 1 sosteam.jp, 1 sosteric.si, 1 @@ -41384,6 +41383,7 @@ squareup.com, 0 squawk.cc, 1 squeakql.online, 1 squeezemetrics.com, 1 +squido.ch, 1 squidparty.com, 1 squids.space, 1 squirex2.com, 1 @@ -41556,6 +41556,7 @@ starcafe.me, 1 starcoachservices.ca, 1 starcomproj.com, 1 stardanceacademy.net, 1 +starease.net, 1 stareplanymiast.pl, 1 starflix.uk, 1 starfm.de, 1 @@ -41726,6 +41727,7 @@ stephencreilly.com, 1 stephenhaunts.com, 1 stephenhorler.com.au, 1 stephenj.co.uk, 1 +stephenjvoiceovers.com, 1 stephenperreira.com, 1 stephenreescarter.com, 1 stephenreescarter.net, 1 @@ -41990,7 +41992,6 @@ streetspotr.com, 1 streetview.wien, 1 strefapi.com, 1 strehl.tk, 1 -streklhof.at, 1 stremio.com, 1 strengthroots.com, 1 stressfreehousehold.com, 1 @@ -42650,6 +42651,7 @@ systoolbox.net, 1 sysystems.cz, 1 syt3.net, 1 syukatsu-net.jp, 1 +syunpay.cn, 1 syy.im, 1 syzygy-tables.info, 1 sz-ideenlos.de, 1 @@ -43042,7 +43044,6 @@ teamsimplythebest.com, 1 teamspeak-serverlist.xyz, 1 teamtouring.net, 1 teamtrack.uk, 1 -teamtravel.co, 1 teamup.com, 1 teamup.rocks, 1 teamupturn.com, 1 @@ -43439,7 +43440,6 @@ tgamobility.co.uk, 1 tgb.org.uk, 1 tgbyte.de, 1 tgexport.eu, 1 -tgmkanis.com, 1 tgod.co, 1 tgtv.tn, 1 tgui.eu, 1 @@ -43610,6 +43610,7 @@ theepiclounge.com, 1 theevergreen.me, 1 theeverycompany.com, 1 theexpatriate.de, 1 +theeyeopener.com, 1 thefairieswantmedead.com, 1 thefanimatrix.net, 1 thefashionpolos.com, 1 @@ -43784,7 +43785,6 @@ thepriorybandbsyresham.co.uk, 1 theprivacysolution.com, 1 theproductpoet.com, 1 thepromisemusic.com, 1 -thepurem.com, 1 thequillmagazine.org, 1 theragran.co.id, 1 theralino.de, 1 @@ -44228,7 +44228,6 @@ tink.network, 1 tinker.career, 1 tinkerbeast.com, 1 tinkerboard.org, 1 -tinkererstrunk.co.za, 1 tinkertry.com, 1 tinlc.org, 1 tinte24.de, 1 @@ -44314,6 +44313,7 @@ tkts.cl, 1 tkusano.jp, 1 tkw01536.de, 0 tl.gg, 1 +tlach.cz, 1 tlca.org, 1 tlcnet.info, 1 tlehseasyads.com, 1 @@ -44670,7 +44670,6 @@ topwindowcleaners.co.uk, 1 topworktops.co.uk, 1 tor2web.org, 1 toracon.org, 1 -torahanytime.com, 1 torbay.ga, 1 torbe.es, 1 torchantifa.org, 1 @@ -45404,7 +45403,6 @@ tutorialinux.com, 1 tutorio.ga, 1 tutorme.com, 1 tuts4you.com, 1 -tuttimundi.org, 1 tuttoandroid.net, 1 tuvangoicuoc.com, 1 tuversionplus.com, 1 @@ -45642,10 +45640,6 @@ ugcdn.com, 1 uggedal.com, 1 ugx-mods.com, 1 uhappy57.com, 1 -uhappy73.com, 1 -uhappy74.com, 1 -uhappy75.com, 1 -uhappy76.com, 1 uhappy78.com, 1 uhasseltctf.ga, 1 uhc.gg, 1 @@ -45817,7 +45811,6 @@ unikrn.space, 1 unila.edu.br, 1 unimbalr.com, 1 uninet.cf, 1 -unioils.la, 1 unionplat.ru, 1 unionstreetskateboards.com, 1 uniontestprep.com, 1 @@ -46595,7 +46588,6 @@ vicicode.com, 1 viciousflora.com, 1 viciousviscosity.xyz, 1 vicjuwelen-annelore.be, 1 -vickshomes.com, 1 viclab.se, 1 victora.com, 1 victorblomberg.se, 1 @@ -46657,6 +46649,7 @@ vieaw.com, 1 vieclam24h.vn, 0 viekelis.lt, 0 viemeister.com, 1 +viemontante.be, 1 vientos.coop, 0 viepixel.at, 1 vierdaagsehotel.nl, 1 @@ -46958,7 +46951,6 @@ vnd.cloud, 1 vndb.org, 1 vnfs-team.com, 1 vnpay.vn, 1 -vnpem.org, 1 vnvisa.center, 1 vnvisa.ru, 1 vocab.guru, 1 @@ -47177,7 +47169,6 @@ vxz.me, 1 vybeministry.org, 1 vyber-odhadce.cz, 1 vyberodhadce.cz, 1 -vykup-car.ru, 1 vynedmusic.com, 1 vyplnto.cz, 1 vyshivanochka.in.ua, 1 @@ -48603,6 +48594,7 @@ wptorium.com, 1 wptotal.com, 1 wpturnedup.com, 1 wpvulndb.com, 1 +wq.ro, 1 wr.su, 1 wrapit.hu, 1 wrara.org, 1 @@ -48649,7 +48641,6 @@ wsb-immo.at, 1 wsb.pl, 1 wscales.com, 0 wscbiolo.id, 1 -wscore.me, 1 wsdcap.com, 1 wsdcapital.com, 1 wselektro.de, 1 @@ -48775,6 +48766,7 @@ www.history.pe, 1 www.honeybadger.io, 0 www.hyatt.com, 0 www.icann.org, 0 +www.intercom.io, 1 www.irccloud.com, 0 www.lastpass.com, 0 www.linode.com, 0 @@ -48867,7 +48859,6 @@ xanax.pro, 0 xants.de, 1 xatr0z.org, 0 xavier.is, 1 -xawen.net, 0 xb6638.com, 1 xb6673.com, 1 xb851.com, 1 @@ -49269,7 +49260,6 @@ xperiacode.com, 1 xperidia.com, 1 xpjcunkuan.com, 1 xpletus.nl, 1 -xplore-dna.net, 1 xpoc.pro, 1 xposedornot.com, 1 xps2pdf.co.uk, 1 @@ -49310,6 +49300,7 @@ xtrainsights.com, 1 xtreme-servers.eu, 1 xtremebouncepartyhire.com.au, 1 xtremegaming.it, 1 +xtrememidlife.nl, 1 xtronics.com, 1 xts.bike, 1 xts3636.net, 1 @@ -49491,6 +49482,7 @@ yemekbaz.az, 1 yemektarifleri.com, 1 yenibilgi.net, 1 yennhi.co, 1 +yenpape.com, 1 yep-pro.ch, 1 yepbitcoin.com, 1 yephy.com, 1 @@ -49547,7 +49539,6 @@ yjsoft.me, 1 yjsw.sh.cn, 1 ykhut.com, 1 yksityisyydensuoja.fi, 1 -ylde.de, 1 ylilauta.org, 1 ylinternal.com, 1 ylk.io, 1 @@ -49884,6 +49875,11 @@ zahnarzt-hofer.de, 1 zahnarzt-kramer.ch, 1 zahnarzt-muenich.de, 1 zahnmedizinzentrum.com, 1 +zaidan.de, 1 +zaidan.eu, 1 +zaidanfood.com, 1 +zaidanfood.eu, 1 +zaidanlebensmittelhandel.de, 1 zajazd.biz, 1 zakariya.blog, 1 zakcutner.uk, 1 @@ -50068,6 +50064,7 @@ zhcexo.com, 1 zhdd.pl, 1 zhen-chen.com, 1 zhengjie.com, 1 +zhengouwu.com, 1 zhenic.ir, 1 zhenmeish.com, 1 zhenyan.org, 1 @@ -50076,6 +50073,7 @@ zhih.me, 1 zhikin.com, 1 zhiku8.com, 1 zhima.io, 1 +zhimajk.com, 1 zhitanska.com, 1 zhl123.com, 1 zhome.info, 1 @@ -50166,6 +50164,7 @@ zlatosnadno.cz, 1 zlaty-tyden.cz, 1 zlatytyden.cz, 1 zlavomat.sk, 1 +zlima12.com, 1 zlypi.com, 1 zmarta.de, 1 zmarta.dk, 1 diff --git a/services/settings/dumps/blocklists/addons.json b/services/settings/dumps/blocklists/addons.json index e5a965ccf41d..7167c6ab1b9c 100644 --- a/services/settings/dumps/blocklists/addons.json +++ b/services/settings/dumps/blocklists/addons.json @@ -1 +1 @@ -{"data":[{"guid":"{56a1e8d2-3ced-4919-aca5-ddd58e0f31ef}","prefs":[],"schema":1544470901949,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1491312","why":"The add-on introduces unwanted functionality for users.","name":"Web Guard (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"1dc366d6-c774-4eca-af19-4f9495c2c55e","last_modified":1544544484935},{"guid":"/^((\\{a99e680b-4349-42a5-b292-79b349bf4f3d\\})|(\\{f09a2393-1e6d-4ae4-a020-4772e94040ae\\})|(\\{c9ed9184-179f-485f-adb8-8bd8e9b7cee6\\})|(\\{085e53da-25a2-4162-906e-6c158ec977ac\\})|(\\{bd6960ba-7c06-493b-8cc4-0964a9968df5\\})|(\\{6eeec42e-a844-4bfd-a380-cfbfc988bd78\\})|(\\{3bbfb999-1c82-422e-b7a8-9e04649c7c51\\})|(\\{bfd229b6-089d-49e8-a09c-9ad652f056f6\\})|(\\{ab23eb77-1c96-4e20-b381-14dec82ee9b8\\})|(\\{ebcce9f0-6210-4cf3-a521-5c273924f5ba\\})|(\\{574aba9d-0573-4614-aec8-276fbc85741e\\})|(\\{12e75094-10b0-497b-92af-5405c053c73b\\})|(\\{99508271-f8c0-4ca9-a5f8-ee61e4bd6e86\\})|(\\{831beefc-cd8c-4bd5-a581-bba13d374973\\})|(\\{c8fe42db-b7e2-49e6-98c4-14ac369473a4\\})|(\\{f8927cca-e6cb-4faf-941d-928f84eb937f\\})|(\\{17e9f867-9402-4b19-8686-f0c2b02d378f\\})|(\\{f12ac367-199b-4cad-8e5a-0a7a1135cad0\\})|(\\{487003ce-5253-4eab-bf76-684f26365168\\})|(\\{487003ce-5213-2ecb-bf16-684f25365161\\}))$/","prefs":[],"schema":1543088493623,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1509864","why":"Add-ons that track users and load remote code, while pretending to provide cursor customization features.","name":"Various cursor and update add-ons (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"a8d942b3-779d-4391-a39c-58c746c13b70","last_modified":1543241996691},{"guid":"{97f19f1f-dbb0-4e50-8b46-8091318617bc}","prefs":[],"schema":1542229276053,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1507191","why":"Fraudulent Adobe Reader add-on","name":"Adobe Reader (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"03120522-ee87-4cf8-891a-acfb248536ff","last_modified":1542272674851},{"guid":"/^((video-downloader@vd\\.io)|(image-search-reverse@an\\.br)|(YouTube\\.Downloader@2\\.8)|(eMoji@ems-al\\.io))$/","prefs":[],"schema":1542023230755,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1506560","why":"Add-ons that contain malicious copies of third-party libraries.","name":"Malware containing unwanted behavior"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"cd079abe-8e8d-476f-a550-63f75ac09fe8","last_modified":1542025588071},{"guid":"/^({b384b75c-c978-4c4d-b3cf-62a82d8f8f12})|({b471eba0-dc87-495e-bb4f-dc02c8b1dc39})|({36f623de-750c-4498-a5d3-ac720e6bfea3})$/","prefs":[],"schema":1541360505662,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1504619","why":"Add-ons that contain unwanted behavior.","name":"Google Translate (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"aa5eefa7-716a-45a6-870b-4697b023d894","last_modified":1541435973146},{"guid":"{80869932-37ba-4dd4-8dfe-2ef30a2067cc}","prefs":[],"schema":1538941301306,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1497161","why":"Malicious page redirection","name":"Iridium (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"dd5b0fa4-48fd-4bf6-943d-34de125bf502","last_modified":1538996335645},{"guid":"admin@vietbacsecurity.com","prefs":[],"schema":1537309741764,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1491716","why":"Logging and sending keystrokes to a remote server.","name":"Vietnamese Input Method (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"89d714f6-9f35-4107-b8af-a16777f66337","last_modified":1537309752952},{"guid":"Safe@vietbacsecurity.com","prefs":[],"schema":1537309684266,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1491717","why":"Logging and sending keystrokes to a remote server.","name":"SafeKids (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"c651780e-c185-4d6c-b509-d34673c158a3","last_modified":1537309741758},{"guid":"/^((\\{c9226c62-9948-4038-b247-2b95a921135b\\})|(\\{5de34d4f-b891-4575-b54b-54c53b4e6418\\})|(\\{9f7ac3be-8f1c-47c6-8ebe-655b29eb7f21\\})|(\\{bb33ccaf-e279-4253-8946-cfae19a35aa4\\}))$/","prefs":[],"schema":1537305338753,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1491298","why":"These add-ons inject remote malicious scripts on Google websites.","name":"Dll and similar (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"54b3e69a-40ae-4be5-b7cf-cf51c526dcfb","last_modified":1537306138745},{"guid":"updater-pro-unlisted@mozilla.com","prefs":[],"schema":1537305285414,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1491306","why":"Redirects search queries.","name":"Updater Pro (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"3108c151-9f25-4eca-8d80-a2fbb2d9bd07","last_modified":1537305338747},{"guid":"/^((\\{686fc9c5-c339-43db-b93a-5181a217f9a6\\})|(\\{eb4b28c8-7f2d-4327-a00c-40de4299ba44\\})|(\\{58d735b4-9d6c-4e37-b146-7b9f7e79e318\\})|(\\{ff608c10-2abc-415c-9fe8-0fdd8e988de8\\})|(\\{5a8145e2-6cbb-4509-a268-f3121429656c\\})|(\\{6d451f29-1d6b-4c34-a510-c1234488b0a3\\})|(\\{de71f09a-3342-48c5-95c1-4b0f17567554\\})|(\\{df106b04-984e-4e27-97b6-3f3150e98a9e\\})|(\\{70DE470A-4DC0-11E6-A074-0C08D310C1A8\\})|(\\{4dcde019-2a1b-499b-a5cd-322828e1279b\\})|(\\{1ec3563f-1567-49a6-bb5c-75d52334b01c\\})|(\\{c140c82e-98e6-49fd-ae17-0627e6f7c5e1\\})|(\\{2581c1f6-5ad9-48d4-8008-4c37dcea1984\\})|(\\{a2bcc6f7-14f7-4083-b4b0-c335edc68612\\})|(\\{4c726bb6-a2af-44ed-b498-794cfd8d8838\\})|(\\{fa6c39a6-cd11-477b-966d-f388f0ba4203\\})|(\\{26c7bd04-18d3-47f5-aeec-bb54e562acf2\\})|(\\{7a961c90-2071-4f94-9d9a-d4e3bbf247c0\\})|(\\{a0481ea2-03f0-4e56-a0e1-030908ecb43e\\})|(\\{c98fb54e-d25f-43f4-bd72-dfaa736391e2\\})|(\\{da57263d-adfc-4768-91f7-b3b076c20d63\\})|(\\{3abb352c-8735-4fb6-9fd6-8117aea3d705\\})|(contactus@unzipper\\.com)|(\\{a1499769-6978-4647-ac0f-78da4652716d\\})|(\\{581D0A4C-1013-11E7-938B-FCD2A0406E17\\})|(\\{68feffe4-bfd8-4fc3-8320-8178a3b7aa67\\})|(\\{823489ae-1bf8-4403-acdd-ea1bdc6431da\\})|(\\{4c0d11c3-ee81-4f73-a63c-da23d8388abd\\})|(\\{dc7d2ecc-9cc3-40d7-93ed-ef6f3219bd6f\\})|(\\{21f29077-6271-46fc-8a79-abaeedb2002b\\})|(\\{55d15d4d-da76-44ab-95a3-639315be5ef8\\})|(\\{edfbec6b-8432-4856-930d-feb334fb69c1\\})|(\\{f81a3bf7-d626-48cf-bd24-64e111ddc580\\})|(\\{4407ab94-60ae-4526-b1ab-2521ffd285c7\\})|(\\{4aa2ba11-f87b-4950-8250-cd977252e556\\})|(\\{646b0c4d-4c6f-429d-9b09-37101b36ed1c\\})|(\\{1b2d76f1-4906-42d2-9643-0ce928505dab\\})|(\\{1869f89d-5f15-4c0d-b993-2fa8f09694fb\\})|(\\{7e4edd36-e3a6-4ddb-9e98-22b4e9eb4721\\})|(\\{e9c9ad8c-84ba-43f2-9ae2-c1448694a2a0\\})|(\\{6b2bb4f0-78ea-47c2-a03a-f4bf8f916eda\\})|(\\{539e1692-5841-4ac6-b0cd-40db15c34738\\}))$/","prefs":[],"schema":1536183366865,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1488578","why":"These add-ons take away user control by redirecting search.","name":"Tightrope search add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"81eb67a5-3fdb-448c-aadd-5f4d3b7cf281","last_modified":1536186868443},{"guid":"/^((\\{f01a138a-c051-4bc7-a90a-21151ce05755\\})|(\\{50f78250-63ce-4191-b7c3-e0efc6309b64\\})|(\\{3d2b2ff4-126b-4874-a57e-ed7dac670230\\})|(\\{e7c1abd4-ec8e-4519-8f3a-7bd763b8a353\\})|(\\{4d40bf75-fbe2-45f6-a119-b191c2dd33b0\\})|(\\{08df7ff2-dee0-453c-b85e-f3369add18ef\\}))$/","prefs":[],"schema":1535990752587,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1488248","why":"Add-ons that inject malicious remote code.","name":"Various Malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"67f72634-e170-4860-a5a3-133f160ebc32","last_modified":1535992146430},{"guid":"/^((\\{1cfaec8b-a1cb-4fc5-b139-897a22a71390\\})|(\\{2ed89659-09c1-4280-9dd7-1daf69272a86\\})|(\\{5c82f5cc-31f8-4316-bb7d-45a5c05227e6\\})|(\\{6a98a401-378c-4eac-b93c-da1036a00c6c\\})|(\\{6d83ebde-6396-483c-b078-57c9d445abfa\\})|(\\{07efb887-b09f-4028-8f7f-c0036d0485ea\\})|(\\{36f4882f-ff0b-4865-8674-ef02a937f7da\\})|(\\{61dea9e9-922d-4218-acdd-cfef0fdf85e7\\})|(\\{261be583-9695-48e0-bd93-a4feafaa18e6\\})|(\\{401ae092-6c5c-4771-9a87-a6827be80224\\})|(\\{534b7a84-9fc6-4d7c-9d67-e3365d2ae088\\})|(\\{552a949f-6d0e-402d-903d-1550075541ba\\})|(\\{579b8de8-c461-4301-ab09-695579f9b7c7\\})|(\\{754d3be3-7337-488e-a5bb-86487e495495\\})|(\\{2775f69b-75e4-46cb-a5aa-f819624bd9a6\\})|(\\{41290ec4-b3f0-45ad-b8f3-7bcbca01ed0d\\})|(\\{0159131f-d76f-4365-81cd-d6831549b90a\\})|(\\{01527332-1170-4f20-a65b-376e25438f3d\\})|(\\{760e6ff0-798d-4291-9d5f-12f48ef7658b\\})|(\\{7e31c21c-156a-4783-b1ce-df0274a89c75\\})|(\\{8e247308-a68a-4280-b0e2-a14c2f15180a\\})|(\\{b6d36fe8-eca1-4d85-859e-a4cc74debfed\\})|(\\{bab0e844-2979-407f-9264-c87ebe279e72\\})|(\\{d00f78fe-ee73-4589-b120-5723b9a64aa0\\})|(\\{d59a7294-6c08-4ad5-ba6d-a3bc41851de5\\})|(\\{d145aa5b-6e66-40cb-8a08-d55a53fc7058\\})|(\\{d79962e3-4511-4c44-8a40-aed6d32a53b1\\})|(\\{e3e2a47e-7295-426f-8517-e72c31da3f23\\})|(\\{e6348f01-841d-419f-8298-93d6adb0b022\\})|(\\{eb6f8a22-d96e-4727-9167-be68c7d0a7e9\\})|(\\{fdd72dfe-e10b-468b-8508-4de34f4e95e3\\}))$/","prefs":[],"schema":1535830899087,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1487472","why":"Several add-ons that change forcefully override search settings.","name":"Various malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"43f11241-88e3-4139-9f02-ac39489a241f","last_modified":1535990735167},{"guid":"/^((application2@fr-metoun\\.com)|(application@br-annitop\\.com)|(application@br-atoleg\\.com)|(application@br-cholty\\.com)|(application@br-debozoiz\\.com)|(application@br-echite\\.com)|(application@br-estracep\\.com)|(application@br-exatrom\\.com)|(application@br-iginot\\.com)|(application@br-imastifi\\.com)|(application@br-isobiv\\.com)|(application@br-ludimaro\\.com)|(application@br-pintoula\\.com)|(application@br-proufta\\.com)|(application@br-qhirta\\.com)|(application@br-qibizar\\.com)|(application@br-qopletr\\.com)|(application@br-roblaprouf\\.com)|(application@br-rosalop\\.com)|(application@br-samalag\\.com)|(application@br-sopreni\\.com)|(application@br-stoumo\\.com)|(application@br-villonat\\.com)|(application@br-zoobre\\.com)|(application@de-barbuna\\.com)|(application@de-bicelou\\.com)|(application@de-blabuma\\.com)|(application@de-dalofir\\.com)|(application@de-elplic\\.com)|(application@de-erotah\\.com)|(application@de-ertuck\\.com)|(application@de-eurosty\\.com)|(application@de-ezigat\\.com)|(application@de-lorelam\\.com)|(application@de-losimt\\.com)|(application@de-luchil\\.com)|(application@de-miligap\\.com)|(application@de-open-dog\\.com)|(application@de-rydima\\.com)|(application@de-slapapi\\.com)|(application@de-soqano\\.com)|(application@de-treboola\\.com)|(application@de-vasurk\\.com)|(application@de-ygivas\\.com)|(application@es-biloufer\\.com)|(application@es-boulass\\.com)|(application@es-cemaseur\\.com)|(application@es-elixet\\.com)|(application@es-gestona\\.com)|(application@es-glicalol\\.com)|(application@es-griloup\\.com)|(application@es-iblep\\.com)|(application@es-iglere\\.com)|(application@es-jounyl\\.com)|(application@es-klepst\\.com)|(application@es-nofinaj\\.com)|(application@es-ofarnut\\.com)|(application@es-phistouquet\\.com)|(application@es-pronzal\\.com)|(application@es-roterf\\.com)|(application@es-taapas\\.com)|(application@es-tatoflex\\.com)|(application@fr-acomyl\\.com)|(application@fr-avortep\\.com)|(application@fr-blicac\\.com)|(application@fr-bloubil\\.com)|(application@fr-carazouco\\.com)|(application@fr-cichalou\\.com)|(application@fr-consimis\\.com)|(application@fr-cropam\\.com)|(application@fr-deplitg\\.com)|(application@fr-doadoto\\.com)|(application@fr-domeoco\\.com)|(application@fr-domlaji\\.com)|(application@fr-eferif\\.com)|(application@fr-eivlot\\.com)|(application@fr-eristrass\\.com)|(application@fr-ertike\\.com)|(application@fr-esiliq\\.com)|(application@fr-fedurol\\.com)|(application@fr-grilsta\\.com)|(application@fr-hyjouco\\.com)|(application@fr-intramys\\.com)|(application@fr-istrubil\\.com)|(application@fr-javelas\\.com)|(application@fr-jusftip\\.com)|(application@fr-lolaji\\.com)|(application@fr-macoulpa\\.com)|(application@fr-mareps\\.com)|(application@fr-metoun\\.com)|(application@fr-metyga\\.com)|(application@fr-mimaloy\\.com)|(application@fr-monstegou\\.com)|(application@fr-oplaff\\.com)|(application@fr-ortisul\\.com)|(application@fr-pastamicle\\.com)|(application@fr-petrlimado\\.com)|(application@fr-pinadolada\\.com)|(application@fr-raepdi\\.com)|(application@fr-soudamo\\.com)|(application@fr-stoumo\\.com)|(application@fr-stropemer\\.com)|(application@fr-tlapel\\.com)|(application@fr-tresdumil\\.com)|(application@fr-troglit\\.com)|(application@fr-troplip\\.com)|(application@fr-tropset\\.com)|(application@fr-vlouma)|(application@fr-yetras\\.com)|(application@fr-zorbil\\.com)|(application@fr-zoublet\\.com)|(application@it-bipoel\\.com)|(application@it-eneude\\.com)|(application@it-glucmu\\.com)|(application@it-greskof\\.com)|(application@it-gripoal\\.com)|(application@it-janomirg\\.com)|(application@it-lapretofe\\.com)|(application@it-oomatie\\.com)|(application@it-platoks\\.com)|(application@it-plopatic\\.com)|(application@it-riploi\\.com)|(application@it-sabuf\\.com)|(application@it-selbamo\\.com)|(application@it-sjilota\\.com)|(application@it-stoploco\\.com)|(application@it-teryom\\.com)|(application@it-tyhfepa\\.com)|(application@it-ujdilon\\.com)|(application@it-zunelrish\\.com)|(application@uk-ablapol\\.com)|(application@uk-blamap\\.com)|(application@uk-cepamoa\\.com)|(application@uk-cloakyz\\.com)|(application@uk-crisofil\\.com)|(application@uk-donasip\\.com)|(application@uk-fanibi\\.com)|(application@uk-intramys\\.com)|(application@uk-klastaf\\.com)|(application@uk-liloust\\.com)|(application@uk-logmati\\.com)|(application@uk-manulap\\.com)|(application@uk-misafou\\.com)|(application@uk-nedmaf\\.com)|(application@uk-optalme\\.com)|(application@uk-plifacil\\.com)|(application@uk-poulilax\\.com)|(application@uk-rastafroc\\.com)|(application@uk-ruflec\\.com)|(application@uk-sabrelpt\\.com)|(application@uk-sqadipt\\.com)|(application@uk-tetsop\\.com)|(application@uk-ustif\\.com)|(application@uk-vomesq\\.com)|(application@uk-vrinotd\\.com)|(application@us-estuky\\.com)|(application@us-lesgsyo\\.com)|(applicationY@search-lesgsyo\\.com)|(\\{88069ce6-2762-4e02-a994-004b48bd83c1\\}))$/","prefs":[],"schema":1535701078449,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1487627","why":"Add-ons whose main purpose is to track user browsing behavior.","name":"Abusive add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"914ec360-d35e-4420-a88f-1bad3513f054","last_modified":1535705400394},{"guid":"/^((\\{35253b0b-8109-437f-b8fa-d7e690d3bde1\\})|(\\{0c8d774c-0447-11e7-a3b1-1b43e3911f03\\})|(\\{c11f85de-0bf8-11e7-9dcd-83433cae2e8e\\})|(\\{f9f072c8-5357-11e7-bb4c-c37ea2335fb4\\})|(\\{b6d09408-a35e-11e7-bc48-f3e9438e081e\\}))$/","prefs":[],"schema":1535658090284,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1486754","why":"Add-ons that execute remote malicious code.","name":"Several malicious add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"56bd2f99-57eb-4904-840a-23ca155d93ad","last_modified":1535701073599},{"guid":"/^((fireAnalytics\\.download@mozilla\\.com)|(fireabsorb@mozilla\\.com)|(fireaccent@mozilla\\.com)|(fireaccept@mozilla\\.com)|(fireads@mozilla\\.com)|(firealerts@mozilla\\.com)|(fireapi@mozilla\\.com)|(fireapp@mozilla\\.com)|(fireattribution@mozilla\\.com)|(fireauthenticator@mozilla\\.com)|(firecalendar@mozilla\\.com)|(firemail@mozilla\\.com)|(firemarketplace@mozilla\\.com)|(firequestions@mozilla\\.com)|(firescript@mozilla\\.com)|(firesheets@mozilla\\.com)|(firespam@mozilla\\.com)|(firesuite@mozilla\\.com)|(\\{3b6dfc8f-e8ed-4b4c-b616-bdc8c526ac1d\\})|(\\{834f87db-0ff7-4518-89a0-0167a963a869\\})|(\\{4921fe4d-fbe6-4806-8eed-346d7aff7c75\\})|(\\{07809949-bd7d-40a6-a17b-19807448f77d\\})|(\\{68968617-cc8b-4c25-9c38-34646cdbe43e\\})|(\\{b8b2c0e1-f85d-4acd-aeb1-b6308a473874\\})|(\\{bc0b3499-f772-468e-9de6-b4aaf65d2bbb\\}))$/","prefs":[],"schema":1535555549913,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1486636","why":"Add-ons that hijack search settings.","name":"Various malicious add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"fcd12629-43df-4751-9654-7cc008f8f7c0","last_modified":1535555562143},{"guid":"/^((\\{25211004-63e4-4a94-9c71-bdfeabb72bfe\\})|(\\{cbf23b92-ea55-4ca9-a5ae-f4197e286bc8\\})|(\\{7ac0550e-19cb-4d22-be12-b0b352144b33\\})|(Mada111@mozilla\\.com)|(\\{c71709a9-af59-4958-a587-646c8c314c16\\})|(\\{6ac3f3b4-18db-4f69-a210-7babefd94b1e\\})|(addon@fastsearch\\.me)|(\\{53d152fa-0ae0-47f1-97bf-c97ca3051562\\})|(\\{f9071611-24ee-472b-b106-f5e2f40bbe54\\})|(\\{972920f1-3bfd-4e99-b605-8688a94c3c85\\})|(\\{985afe98-fa74-4932-8026-4bdc880552ac\\})|(\\{d96a82f5-5d3e-46ed-945f-7c62c20b7644\\})|(\\{3a036dc5-c13b-499a-a62d-e18aab59d485\\})|(\\{49574957-56c6-4477-87f1-1ac7fa1b2299\\})|(\\{097006e8-9a95-4f7c-9c2f-59f20c61771c\\})|(\\{8619885d-0380-467a-b3fe-92a115299c32\\})|(\\{aa0587d6-4760-4abe-b3a1-2a5958f46775\\})|(\\{bdada7ae-cf89-46cf-b1fe-f3681f596278\\})|(\\{649bead3-df51-4023-8090-02ceb2f7095a\\})|(\\{097c3142-0b68-416a-9919-9dd576aedc17\\})|(\\{bc3cced8-51f0-4519-89ee-56706b67ea4b\\})|(\\{796da6e3-01c0-4c63-96dd-1737710b2ff6\\}))$/","prefs":[],"schema":1535485297866,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1487083","why":"Add-ons that hijack search settings and contain other unwanted features.","name":"Vairous malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"016676cc-c381-4c01-adcf-2d46f48142d0","last_modified":1535550828514},{"guid":"/^((Timemetric@tmetric)|(image-fastpicker@eight04.blogspot\\.com)|(textMarkertool@underFlyingBirches\\.org)|(youpanel@jetpack)|({0ff32ce0-dee9-4e7e-9260-65e58373e21d})|({4ca00873-7e8d-4ada-b460-96cad0eb8fa9})|({6b427f73-2ee1-4256-b69d-7dc253ebe030})|({6f13489d-b274-45b6-80fa-e9daa140e1a4})|({40a9d23b-09ef-4c82-ae1d-7fc5c067e987})|({205c2185-ebe4-4106-92ab-0ffa7c4efcbb})|({256ec7b0-57b4-416d-91c1-2bfdf01b2438})|({568db771-c718-4587-bcd0-e3728ee53550})|({5782a0f1-de26-42e5-a5b3-dae9ec05221b})|({9077390b-89a9-41ad-998f-ab973e37f26f})|({8e7269ac-a171-4d9f-9c0a-c504848fd52f})|({3e6586e2-7410-4f10-bba0-914abfc3a0b4})|({b3f06312-93c7-4a4f-a78b-f5defc185d8f})|({c1aee371-4401-4bab-937a-ceb15c2323c1})|({c579191c-6bb8-4795-adca-d1bf180b512d})|({d0aa0ad2-15ed-4415-8ef5-723f303c2a67})|({d8157e0c-bf39-42eb-a0c3-051ff9724a8c})|({e2a4966f-919d-4afc-a94f-5bd6e0606711})|({ee97f92d-1bfe-4e9d-816c-0dfcd63a6206}))$/","prefs":[],"schema":1535356061028,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1485145","why":"Add-ons that run remote malicious code from websites that trick the user into installing the add-on.","name":"Malware running remote malicious code"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"a0d44ee3-9492-47d7-ac1c-35f520e819ae","last_modified":1535393877555},{"guid":"/^((fastplayer@fastsearch\\.me)|(ff-search-flash-unlisted@mozilla\\.com)|(inspiratiooo-unlisted@mozilla\\.com)|(lite-search-ff-unlisted@mozilla\\.com)|(mysearchprotect-unlisted@mozilla\\.com)|(pdfconverter-unlisted@mozilla\\.com)|(plugin-search-ff-unlisted@mozilla\\.com)|(pro-search-ff-unlisted@mozilla\\.com)|(pro-search-unlisted@mozilla\\.com)|(searchincognito-unlisted@mozilla\\.com)|(socopoco-search@mozilla\\.com)|(socopoco-unlisted@mozilla\\.com)|(\\{08ea1e08-e237-42e7-ad60-811398c21d58\\})|(\\{0a56e2a0-a374-48b6-9afc-976680fab110\\})|(\\{193b040d-2a00-4406-b9ae-e0d345b53201\\})|(\\{1ffa2e79-7cd4-4fbf-8034-20bcb3463d20\\})|(\\{528cbbe2-3cde-4331-9344-e348cb310783\\})|(\\{6f7c2a42-515a-4797-b615-eaa9d78e8c80\\})|(\\{be2a3fba-7ea2-48b9-bbae-dffa7ae45ef8\\})|(\\{c0231a6b-c8c8-4453-abc9-c4a999a863bd\\}))$/","prefs":[],"schema":1535139689975,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1483854","why":"Add-ons overwriting search changes without consent and remote script injection","name":"\"Flash Updater\" and search redirectors"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"46779b5a-2369-4007-bff0-857a657626ba","last_modified":1535153064735},{"guid":"/^(({aeac6f90-5e17-46fe-8e81-9007264b907d})|({6ee25421-1bd5-4f0c-9924-79eb29a8889d})|({b317fa11-c23d-45b9-9fd8-9df41a094525})|({16ac3e8f-507a-4e04-966b-0247a196c0b4}))$/","prefs":[],"schema":1534946831027,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1485609","why":"Add-ons that take away user control by changing search settings.","name":"Search hijacking malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"ab029019-0e93-450a-8c11-ac31556c2a77","last_modified":1535020847820},{"guid":"@testpilot-addon","prefs":[],"schema":1534876689555,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1485083","why":"Older versions of the TestPilot add-on cause stability issues in Firefox.","name":"Testpilot (old, broken versions)"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.0.8-dev-259fe19","minVersion":"0"}],"id":"ee2d12a4-ea1d-4f3d-9df1-4303e8993f18","last_modified":1534946810180},{"guid":"/(({a4d84dae-7906-4064-911b-3ad2b1ec178b})|({d7e388c5-1cd0-4aa6-8888-9172f90951fb})|({a67f4004-855f-4e6f-8ef0-2ac735614967})|({25230eb3-db35-4613-8c03-e9a3912b7004})|({37384122-9046-4ff9-a31f-963767d9fe33})|({f1479b0b-0762-4ba2-97fc-010ea9dd4e73})|({53804e15-69e5-4b24-8883-c8f68bd98cf6})|({0f2aec80-aade-46b8-838c-54eeb595aa96})|({b65d6378-6840-4da6-b30e-dee113f680aa})|({e8fc3f33-14b7-41aa-88a1-d0d7b5641a50})|({c49ee246-d3d2-4e88-bfdb-4a3b4de9f974}))$/","prefs":[],"schema":1534621297612,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1484536","why":"Add-ons that don't respect user choice by overriding search.","name":"Search hijacking add-ons (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"01c22882-868b-43e1-bb23-29d5dc7bc11b","last_modified":1534781959544},{"guid":"/^((firefox@browser-security\\.de)|(firefox@smarttube\\.io)|({0fde9597-0508-47ff-ad8a-793fa059c4e7})|(info@browser-privacy\\.com)|({d3b98a68-fd64-4763-8b66-e15e47ef000a})|({36ea170d-2586-45fb-9f48-5f6b6fd59da7})|(youtubemp3converter@yttools\\.io)|(simplysearch@dirtylittlehelpers\\.com)|(extreme@smarttube\\.io)|(selfdestructingcookies@dirtylittlehelpers\\.com)|({27a1b6d8-c6c9-4ddd-bf20-3afa0ccf5040})|({2e9cae8b-ee3f-4762-a39e-b53d31dffd37})|(adblock@smarttube\\.io)|({a659bdfa-dbbe-4e58-baf8-70a6975e47d0})|({f9455ec1-203a-4fe8-95b6-f6c54a9e56af})|({8c85526d-1be9-4b96-9462-aa48a811f4cf})|(mail@quick-buttons\\.de)|(youtubeadblocker@yttools\\.io)|(extension@browser-safety\\.org)|(contact@web-security\\.com)|(videodownloader@dirtylittlehelpers\\.com)|(googlenotrack@dirtylittlehelpers\\.com)|(develop@quick-amz\\.com))$/","prefs":[],"schema":1534448497752,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1483995","why":"Sending user data to remote servers unnecessarily, and potential for remote code execution. Suspicious account activity for multiple accounts on AMO.","name":"Web Security and others"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"96b2e7d5-d4e4-425e-b275-086dc7ccd6ad","last_modified":1534449179691},{"guid":"/^((de\\.firefoxextension12345@asdf\\.pl)|(deex1@de\\.com)|(esex1@ese\\.com)|(estrellach@protonmail\\.com)|(fifi312@protonmail\\.com)|(finex1@fin\\.com)|(firefoxextension123@asdf\\.pl)|(firefoxextension1234@asdf\\.pl)|(firefoxextension12345@asdf\\.pl)|(firefoxextension123456@asdf\\.pl)|(frexff1@frexff1\\.com)|(frexff2@frexff2\\.com)|(frexff3@frexff3\\.com)|(ind@niepodam\\.pl)|(jacob4311@protonmail\\.com)|(javonnu144@protonmail\\.com)|(keellon33-ff@protonmail\\.com)|(keellon33@protonmail\\.com)|(masetoo4113@protonmail\\.com)|(mikecosenti11@protonmail\\.com)|(paigecho@protonmail\\.com)|(salooo12@protonmail\\.com)|(swex1@swe\\.com)|(swex2@swe\\.com)|(swex3@swe\\.com)|(willburpoor@protonmail\\.com)|(williamhibburn@protonmail\\.com)|)$/","prefs":[],"schema":1534415492022,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1483769","why":"Malware targeting Facebook","name":"Facebook malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"202fbae4-e904-430a-a244-63b0fb04385f","last_modified":1534415530239},{"guid":"/^((@svuznnqyxinw)|(myprivacytools@besttools\\.com)|(powertools@penprivacy\\.com)|(privacypro@mybestprivacy\\.com)|(realsecure@top10\\.com)|(rlbvpdfrlbgx@scoutee\\.net)|(vfjkurlfijwz@scoutee\\.net))$/","prefs":[],"schema":1534382102271,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1482322","why":"Add-ons that change the default search engine, taking away user control.","name":"Search hijacking add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"df852b6a-28be-4b10-9285-869f4761f111","last_modified":1534382538298},{"guid":"/^(({1a3fb414-0945-405c-a62a-9fe5e1a50c69})|({1a45f6aa-d80a-4317-84d2-0ce43671b08a})|({2d52a462-8bec-4708-9cd1-894b682bdc78})|({3f841cfc-de5a-421f-8bd7-2bf1d943b02a})|({5c7601bf-522b-47e5-b0f0-ea0e706af443})|({7ebe580f-71c9-4ef8-8073-f38deaeb9dfb})|({8b2188fd-1daf-4851-b387-28d964014353})|({8cee42ac-f1fe-40ae-aed6-24e3b76b2f77})|({8d13c4a9-5e8c-47a6-b583-681c83164ac9})|({9b1d775a-1877-45c9-ad48-d6fcfa4fff39})|({9efdbe5f-6e51-4a35-a41b-71dc939e6221})|({23f63efb-156e-440b-a96c-118bebc21057})|({026dfc8c-ecc8-41ba-b45f-70ffbd5cc672})|({34aa433c-27e9-4c87-a662-9f82f99eb9af})|({36f34d69-f22f-47c3-b4cd-4f37b7676107})|({39bd8607-0af4-4d6b-bd69-9a63c1825d3c})|({48c6ad6d-297c-4074-8fef-ca5f07683859})|({54aa688d-9504-481d-ba75-cfee421b98e0})|({59f59748-e6a8-4b41-87b5-9baadd75ddef})|({61d99407-1231-4edc-acc8-ab96cbbcf151})|({68ca8e3a-397a-4135-a3af-b6e4068a1eae})|({71beafd6-779b-4b7d-a78b-18a107277b59})|({83ed90f8-b07e-4c45-ba6b-ba2fe12cebb6})|({231dfb44-98e0-4bc4-b6ee-1dac4a836b08})|({273f0bce-33f4-45f6-ae03-df67df3864c2})|({392f4252-c731-4715-9f8d-d5815f766abb})|({484ec5d0-4cfd-4d96-88d0-a349bfc33780})|({569dbf47-cc10-41c4-8fd5-5f6cf4a833c7})|({578cad7a-57d5-404d-8dda-4d30de33b0c2})|({986b2c3f-e335-4b39-b3ad-46caf809d3aa})|({1091c11f-5983-410e-a715-0968754cff54})|({2330eb8a-e3fe-4b2e-9f17-9ddbfb96e6f5})|({5920b042-0af1-4658-97c1-602315d3b93d})|({6331a47f-8aae-490c-a9ad-eae786b4349f})|({6698b988-c3ef-4e1f-8740-08d52719eab5})|({30516f71-88d4-489b-a27f-d00a63ad459f})|({12089699-5570-4bf6-890f-07e7f674aa6e})|({84887738-92bf-4903-a5e8-695fd078c657})|({8562e48e-3723-412a-9ebd-b33d3d3b29dd})|({6e449795-c545-41be-92c0-5d467c147389})|({1e369c7c-6b61-436e-8978-4640687670d6})|({a03d427a-bd2e-42b6-828f-a57f38fac7b5})|({a77fc9b9-6ebb-418d-b0b6-86311c191158})|({a368025b-9828-43a1-8a5c-f6fab61c9be9})|({b1908b02-410d-4778-8856-7e259fbf471d})|({b9425ace-c2e9-4ec4-b564-4062546f4eca})|({b9845b5d-70c9-419c-a9a5-98ea8ee5cc01})|({ba99fee7-9806-4e32-8257-a33ffc3b8539})|({bdf8767d-ae4c-4d45-8f95-0ba29b910600})|({c6c4a718-cf91-4648-aa9b-170d66163cf2})|({ca0f2988-e1a8-4e83-afde-0dca56a17d5f})|({cac5db09-979b-40e3-8c8e-d96397b0eecb})|({d3b5280b-f8d8-4669-bdf6-91f23ae58042})|({d73d2f6a-ea24-4b1b-8c76-563fce9f786d})|({d77fed37-85c0-4b94-89bb-0d2849472b8d})|({d371abec-84bb-481b-acbf-235639451127})|({de47a3b4-dad1-4f4a-bdd6-8666586e29e8})|({ded6afad-2aaa-446b-b6bd-b12a8a61c945})|({e0c3a1ca-8e21-4d1b-b53b-ea115cf59172})|({e6bbf496-6489-4b48-8e5a-799aad4aa742})|({e63b262a-f9b8-4496-9c4b-9d3cbd6aea90})|({e73c1b5d-20f7-4d86-ad16-9de3c27718e2})|({eb01dc49-688f-4a21-aa8d-49bd88a8f319})|({edc9816b-60b4-493c-a090-01125e0b8018})|({effa2f97-0f07-44c8-99cb-32ac760a0621})|({f6e6fd9b-b89f-4e8d-9257-01405bc139a6})|({ff87977a-fefb-4a9d-b703-4b73dce8853d})|({ffea9e62-e516-4238-88a7-d6f9346f4955}))$/","prefs":[],"schema":1534335096640,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1483191","why":"Add-ons that change the default search engine, taking away user control.","name":"Search hijacking add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"d9892a76-b22e-40bd-8073-89b0f8110ec7","last_modified":1534336165428},{"guid":"/^((Timemetric@tmetric)|(textMarkertool@underFlyingBirches\\.org)|(youpanel@jetpack)|({6f13489d-b274-45b6-80fa-e9daa140e1a4})|({568db771-c718-4587-bcd0-e3728ee53550})|({829827cd-03be-4fed-af96-dd5997806fb4})|({9077390b-89a9-41ad-998f-ab973e37f26f})|({8e7269ac-a171-4d9f-9c0a-c504848fd52f})|({aaaffe20-3306-4c64-9fe5-66986ebb248e})|({bf153de7-cdf2-4554-af46-29dabfb2aa2d})|({c579191c-6bb8-4795-adca-d1bf180b512d})|({e2a4966f-919d-4afc-a94f-5bd6e0606711})|({ee97f92d-1bfe-4e9d-816c-0dfcd63a6206}))$/","prefs":[],"schema":1534275699570,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1483206","why":"Add-ons that execute malicious remote code","name":"Various malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"2734325e-143b-4962-98bf-4b18c77407e2","last_modified":1534334500118},{"guid":"/^(({0f9e469e-4245-43f8-a7a8-7e730f80d284})|({117ca2f3-df4c-4e17-a5c5-b49077e9c731})|({11db147a-a1cb-43dd-9c05-0d11683483e1})|({1ed2af70-9e89-42db-a9e8-17ae594003ac})|({24ed6bdc-3085-413b-a62e-dc5dd30272f4})|({2aa19a7a-2a43-4e0d-a3dc-abb33fa7e2b6})|({3d6fbbb3-6c80-47bb-af20-56fcaebcb9ca})|({42f4c194-8929-42b9-a9a3-afa56dd0913b})|({46740fa0-896d-4f2e-a240-9478865c47c2})|({4718da68-a373-4a03-a77b-0f49b8bb40ee})|({4d41e0b8-bf7e-45ab-bd90-c426b420e3ee})|({50957a38-c15d-42da-94f5-325bc74a554c})|({5650fc63-a7c5-4627-8d0a-99b20dcbd94b})|({5c5c38ec-08bf-493a-9352-6ccf25d60c08})|({67ecb446-9ccd-4193-a27f-7bd1521bd03c})|({71f01ffe-226d-4634-9b21-968f5ce9f8f5})|({72f31855-2412-4998-a6ff-978f89bba0c3})|({7b3c1e86-2599-4e1a-ad98-767ae38286c8})|({7c37463c-001e-4f58-9e88-aaab2a624551})|({7de64f18-8e6b-4c41-9b05-d8872b418026})|({82dcf841-c7e1-4764-bb47-caa28909e447})|({872f20ea-196e-4d11-8835-1cc4c877b1b8})|({8efee317-546f-418d-82d3-60cc5187acf5})|({93deeba1-0126-43f7-a94d-4eecfce53b33})|({9cc12446-16da-4200-b284-d5fc18670825})|({9cd27996-6068-4597-8e97-bb63f783a224})|({9fdcedc7-ffde-44c3-94f6-4196b1e0d9fc})|({a191563e-ac30-4c5a-af3d-85bb9e9f9286})|({a4cb0430-c92e-44c6-9427-6a6629c4c5f6})|({a87f1b9b-8817-4bff-80fd-db96020c56c8})|({ae29a313-c6a9-48be-918d-1e4c67ba642f})|({b2cea58a-845d-4394-9b02-8a31cfbb4873})|({b420e2be-df31-4bea-83f4-103fe0aa558c})|({b77afcab-0971-4c50-9486-f6f54845a273})|({b868c6f4-5841-4c14-86ee-d60bbfd1cec1})|({b99ae7b1-aabb-4674-ba8f-14ed32d04e76})|({b9bb8009-3716-4d0c-bcb4-35f9874e931e})|({c53c4cbc-04a7-4771-9e97-c08c85871e1e})|({ce0d1384-b99b-478e-850a-fa6dfbe5a2d4})|({cf8e8789-e75d-4823-939f-c49a9ae7fba2})|({d0f67c53-42b5-4650-b343-d9664c04c838})|({dfa77d38-f67b-4c41-80d5-96470d804d09})|({e20c916e-12ea-445b-b6f6-a42ec801b9f8})|({e2a4966f-919d-4afc-a94f-5bd6e0606711})|({e7d03b09-24b3-4d99-8e1b-c510f5d13612})|({fa8141ba-fa56-414e-91c0-898135c74c9d})|({fc99b961-5878-46b4-b091-6d2f507bf44d})|(firedocs@mozilla\\.com)|(firetasks@mozilla\\.com)|(getta@mozilla\\.com)|(javideo@mozilla\\.com)|(javideo2@mozilla\\.com)|(javideos@mozilla\\.com)|(javideosz@mozilla\\.com)|(search_free@mozilla\\.com)|(search-unlisted@mozilla\\.com)|(search-unlisted101125511@mozilla\\.com)|(search-unlisted10155511@mozilla\\.com)|(search-unlisted1025525511@mozilla\\.com)|(search-unlisted1099120071@mozilla\\.com)|(search-unlisted1099125511@mozilla\\.com)|(search-unlisted109925511@mozilla\\.com)|(search-unlisted11@mozilla\\.com)|(search-unlisted111@mozilla\\.com)|(search-unlisted12@mozilla\\.com)|(search-unlisted14400770034@mozilla\\.com)|(search-unlisted144007741154@mozilla\\.com)|(search-unlisted144436110034@mozilla\\.com)|(search-unlisted14454@mozilla\\.com)|(search-unlisted1570124111@mozilla\\.com)|(search-unlisted1570254441111@mozilla\\.com)|(search-unlisted15721239034@mozilla\\.com)|(search-unlisted157441@mozilla\\.com)|(search-unlisted15757771@mozilla\\.com)|(search-unlisted1577122001@mozilla\\.com)|(search-unlisted15777441001@mozilla\\.com)|(search-unlisted15788120036001@mozilla\\.com)|(search-unlisted157881200361111@mozilla\\.com)|(search-unlisted1578899961111@mozilla\\.com)|(search-unlisted157999658@mozilla\\.com)|(search-unlisted158436561@mozilla\\.com)|(search-unlisted158440374111@mozilla\\.com)|(search-unlisted15874111@mozilla\\.com)|(search-unlisted1741395551@mozilla\\.com)|(search-unlisted17441000051@mozilla\\.com)|(search-unlisted174410000522777441@mozilla\\.com)|(search-unlisted1768fdgfdg@mozilla\\.com)|(search-unlisted180000411@mozilla\\.com)|(search-unlisted18000411@mozilla\\.com)|(search-unlisted1800411@mozilla\\.com)|(search-unlisted18011888@mozilla\\.com)|(search-unlisted1801668@mozilla\\.com)|(search-unlisted18033411@mozilla\\.com)|(search-unlisted180888@mozilla\\.com)|(search-unlisted181438@mozilla\\.com)|(search-unlisted18411@mozilla\\.com)|(search-unlisted18922544@mozilla\\.com)|(search-unlisted1955511@mozilla\\.com)|(search-unlisted2@mozilla\\.com)|(search-unlisted3@mozilla\\.com)|(search-unlisted4@mozilla\\.com)|(search-unlisted400@mozilla\\.com)|(search-unlisted40110@mozilla\\.com)|(search-unlisted5@mozilla\\.com)|(search-unlisted55@mozilla\\.com)|(search@mozilla\\.com)|(searchazsd@mozilla\\.com)|(smart246@mozilla\\.com)|(smarter1@mozilla\\.com)|(smarters1@mozilla\\.com)|(stream@mozilla\\.com)|(tahdith@mozilla\\.com)|(therill@mozilla\\.com)|(Updates@mozilla\\.com))$/","prefs":[],"schema":1534102906482,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1480591","why":"These add-ons violate the no-surprises and user-control policy.","name":"Search engine hijacking malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"cee5c2ab-1059-4b15-a78c-1203116552c4","last_modified":1534157457677},{"guid":"/^((search-unlisted2@mozilla\\.com)|(search-unlisted3@mozilla\\.com)|(search-unlisted4@mozilla\\.com)|(search-unlisted5@mozilla\\.com)|(search-unlisted11@mozilla\\.com)|(search-unlisted12@mozilla\\.com)|(search-unlisted55@mozilla\\.com)|(search-unlisted111@mozilla\\.com)|(search-unlisted400@mozilla\\.com)|(search-unlisted40110@mozilla\\.com)|(search-unlisted17441000051@mozilla\\.com)|(search-unlisted174410000522777441@mozilla\\.com)|(search-unlisted@mozilla\\.com)|({0a054930-63d7-46f4-937a-de80eab21da4})|({0b24cf69-02b8-407d-83db-e7af04fc1f3e})|({0c4df994-4f4a-4646-ae5d-8936be8a4188})|({0d50d8aa-d1ed-4930-b0a0-f3340d2f510e})|({0eb4672d-58a6-4230-b74c-50ca3716c4b0})|({0f9e469e-4245-43f8-a7a8-7e730f80d284})|({0fc9fcc7-2f47-4fd1-a811-6bd4d611294b})|({4479446e-40f3-48af-ab85-7e3bb4468227})|({1a927d5b-42e7-4407-828a-fdc441d0daae})|({1a760841-50c3-4143-9f7e-3c8f04e8f9d1})|({1bd8ba17-b3ed-412e-88db-35bc4d8771d7})|({1c7d6d9e-325a-4260-8213-82d51277fc31})|({01c9a4a4-06dd-426b-9500-2ea6fe841b88})|({1cab8ccf-deff-4743-925d-a47cbd0a6b56})|({1cb0652a-4645-412d-b7e8-0b9e9a83242f})|({1d6634ca-dd37-4a31-aad1-321f05aa2bb3})|({1d9997b2-f61e-429a-8591-999a6d62becc})|({1ed2af70-9e89-42db-a9e8-17ae594003ac})|({01f409a5-d617-47be-a574-d54325fe05d1})|({2a8bec00-0ab0-4b4d-bd3d-4f59eada8fd8})|({2aeb1f92-6ddc-49f5-b7b3-3872d7e019a9})|({2bb68b03-b528-4133-9fc4-4980fbb4e449})|({2cac0be1-10a2-4a0d-b8c5-787837ea5955})|({2d3c5a5a-8e6f-4762-8aff-b24953fe1cc9})|({2ee125f1-5a32-4f8e-b135-6e2a5a51f598})|({2f53e091-4b16-4b60-9cae-69d0c55b2e78})|({3a65e87c-7ffc-408d-927e-ebf1784efd6d})|({3a26e767-b781-4e21-aaf8-ac813d9edc9f})|({3c3ef2a3-0440-4e77-9e3c-1ca8d48f895c})|({3dca6517-0d75-42d2-b966-20467f82dca1})|({3f4191fa-8f16-47d2-9414-36bfc9e0c2bf})|({3f49e12b-bb58-4797-982c-4364030d96d9})|({4aa2f47a-0bae-4a47-8a1b-1b93313a2938})|({04abafc7-7a65-401d-97f3-af2853854373})|({4ad16913-e5cb-4292-974c-d557ef5ec5bb})|({4b1050c6-9139-4126-9331-30a836e75db9})|({4b1777ec-6fe4-4572-9a29-5af206e003bf})|({4beacbbb-1691-40e7-8c1e-4853ce2e2dee})|({4c140bc5-c2ad-41c3-a407-749473530904})|({4cbef3f0-4205-4165-8871-2844f9737602})|({4dac7c77-e117-4cae-a9f0-6bd89e9e26ab})|({04ed02dc-0cb0-40c2-8bc8-6f20843024b8})|({4f6b6aaf-c5a1-4fac-8228-ead4d359dc6d})|({4f8a15fb-45c2-4d3b-afb1-c0c8813a4a5a})|({5af74f5a-652b-4b83-a2a9-f3d21c3c0010})|({5b0f6d3c-10fd-414c-a135-dffd26d7de0f})|({5b421f02-e55e-4b63-b90e-aa0cfea01f53})|({5b620343-cd69-49b8-a7ba-f9d499ee5d3d})|({5c5cf69b-ed92-4429-8d26-ff3bb6c37269})|({5cf77367-b141-4ba4-ac2a-5b2ca3728e81})|({5da81d3d-5db1-432a-affc-4a2fe9a70749})|({5eac1066-90c3-4ba0-b361-e6315dcd6828})|({5ec4c837-59b9-496d-96e2-ff3fa74ca01f})|({5efd8c7a-ff37-41ac-a55c-af4170453fdf})|({5f4e63e4-351f-4a21-a8e5-e50dc72b5566})|({6a934ff5-e41d-43a2-baf5-2d215a869674})|({06a71249-ef35-4f61-b2c8-85c3c6ee5617})|({6ad26473-5822-4142-8881-0c56a8ebc8c0})|({6cee30bc-a27c-43ea-ac72-302862db62b2})|({6ed852d5-a72e-4f26-863f-f660e79a2ebb})|({6eee2d17-f932-4a43-a254-9e2223be8f32})|({6f13489d-b274-45b6-80fa-e9daa140e1a4})|({6fa41039-572b-44a4-acd4-01fdaebf608d})|({7ae85eef-49cf-440d-8d13-2bebf32f14cf})|({7b3c1e86-2599-4e1a-ad98-767ae38286c8})|({7b23c0de-aa3d-447f-9435-1e8eba216f09})|({7b71d75e-51f5-4a71-9207-7acb58827420})|({7c6bf09e-5526-4bce-9548-7458ec56cded})|({7ca54c8d-d515-4f2a-a21f-3d32951491a6})|({7d932012-b4dd-42cc-8a78-b15ca82d0e61})|({7d5e24a1-7bef-4d09-a952-b9519ec00d20})|({7eabad73-919d-4890-b737-8d409c719547})|({7eaf96aa-d4e7-41b0-9f12-775c2ac7f7c0})|({7f8bc48d-1c7c-41a0-8534-54adc079338f})|({7f84c4d8-bdf5-4110-a10d-fa2a6e80ef6a})|({8a6bda75-4668-4489-8869-a6f9ccbfeb84})|({8a0699a0-09c3-4cf1-b38d-fec25441650c})|({8ab8c1a2-70d4-41a8-bf78-0d0df77ac47f})|({8b4cb418-027e-4213-927a-868b33a88b4f})|({8fcfe2b3-598e-4861-a5d4-0d77993f984b})|({9a941038-82fa-4ae4-ba98-f2eb2d195345})|({9b8a3057-8bf4-4a9e-b94b-867e4e71a50c})|({9b8df895-fcdd-452a-8c46-da5be345b5bc})|({09c8fa16-4eec-4f78-b19d-9b24b1b57e1e})|({09cbfddf-5e55-4676-920d-5a16cb9e4cb5})|({9cf8d28f-f546-4871-ac4d-5faff8b5bde3})|({9d592fd5-e655-461a-9b28-9eba85d4c97f})|({9fc6e583-78a5-4a2b-8569-4297bb8b3300})|({014d98ce-dab9-4c1d-8643-166e75d7cb4d})|({18c64b09-4ccb-4c21-ba6f-ebd4a1efa034})|({21d83d85-a636-4b18-955d-376a6b19bd19})|({22ecf14b-ead6-4684-a498-7b2b839a4c97})|({23c65153-c21e-430a-a2dc-0793410a870d})|({29c69b12-8208-457e-92f4-e663b00a1f10})|({30a8d6f1-0401-4327-8c46-2e1ab45dfe77})|({30d63f93-1446-43b3-8219-deefec9c81ce})|({32cb52f8-c78a-423d-b378-0abec72304a6})|({35bfa8c0-68c1-41f8-a5dd-7f3b3c956da9})|({36a4269e-4eef-4538-baea-9dafbf6a8e2f})|({37f8e483-c782-40ed-82e9-36f101b9e41f})|({42a512a8-37e0-4e07-a1db-5b4651d75048})|({43ae5745-c40a-45ab-9c11-74316c0e9fd2})|({53fa8e1c-112b-4013-b582-0d9e8c51ca75})|({56effac7-3ae9-41e3-9b46-51469f67b3b2})|({61a486c0-ce3d-4bf1-b4f2-e186a2adecf1})|({62b55928-80cc-49f7-8a4b-ec06030d6601})|({63df223d-51cf-4f76-aad8-bbc94c895ed2})|({064d8320-e0f3-411f-9ed1-8c1349279d20})|({071b9878-a7d3-4ae3-8ef0-2eaee1923403})|({72c1ca96-c05d-46a7-bce1-c507ec3db4ea})|({76ce213c-8e57-4a14-b60a-67a5519bd7a7})|({78c2f6a0-3b54-4a21-bf25-a3348278c327})|({0079b71b-89c9-4d82-aea3-120ee12d9890})|({81ac42f3-3d17-4cff-85af-8b7f89c8826b})|({81dc4f0e-9dab-4bd2-ab9d-d9365fbf676f})|({82c8ced2-e08c-4d6c-a12b-3e8227d7fc2a})|({83d6f65c-7fc0-47d0-9864-a488bfcaa376})|({83d38ac3-121b-4f28-bf9c-1220bd3c643b})|({84b9121e-55c9-409a-9b28-c588b5096222})|({87ba49bd-daba-4071-aedf-4f32a7e63dbe})|({87c552f9-7dbb-421b-8deb-571d4a2d7a21})|({87dcb9bf-3a3e-4b93-9c85-ba750a55831a})|({89a4f24d-37d5-46e7-9d30-ba4778da1aaa})|({93c524c4-2e92-4dd7-8b37-31a69bc579e8})|({94df38fc-2dbe-4056-9b35-d9858d0264d3})|({95c7ae97-c87e-4827-a2b7-7b9934d7d642})|({95d58338-ba6a-40c8-93fd-05a34731dc0e})|({97c436a9-7232-4495-bf34-17e782d6232c})|({97fca2cd-545f-42ef-ae93-dc13b046bd3b})|({0111c475-01e6-42ea-a9b4-27bed9eb6092})|({115a8321-4414-4f4c-aee6-9f812121b446})|({158a5a56-aca0-418f-bec0-5b3bda6e9d4c})|({243a0246-cbab-4b46-93fb-249039f68d84})|({283d4f2a-bab1-43ce-90be-5129741ac988})|({408a506b-2336-4671-a490-83a1094b4097})|({0432b92a-bfcf-41b9-b5f0-df9629feece1})|({484e0ba4-a20b-4404-bb1b-b93473782ae0})|({486ecaf1-1080-48c1-8973-549bc731ccf9})|({495a84bd-5a0c-4c74-8a50-88a4ba9d74ba})|({520f2c78-7804-4f59-ae74-a192476055ed})|({543f7503-3620-4f41-8f9e-c258fdff07e9})|({0573bea9-7368-49cd-ba10-600be3535a0b})|({605a0c42-86af-40c4-bf39-f14060f316aa})|({618baeb9-e694-4c7b-9328-69f35b6a8839})|({640c40e5-a881-4d16-a4d0-6aa788399dd2})|({713d4902-ae7b-4a9a-bcf5-47f39a73aed0})|({767d394a-aa77-40c9-9365-c1916b4a2f84})|({832ffcf9-55e9-4fd1-b2eb-f19e1fac5089})|({866a0745-8b91-4199-820a-ec17de52b5f2})|({869b5825-e344-4375-839b-085d3c09ab9f})|({919fed43-3961-48d9-b0ef-893054f4f6f1})|({971d6ef0-a085-4a04-83d8-6e489907d926})|({1855d130-4893-4c79-b4aa-cbdf6fee86d3})|({02328ee7-a82b-4983-a5f7-d0fc353698f0})|({2897c767-03aa-4c2f-910a-6d0c0b9b9315})|({3908d078-e1db-40bf-9567-5845aa77b833})|({04150f98-2d7c-4ae2-8979-f5baa198a577})|({4253db7f-5136-42c3-b09d-cf38344d1e16})|({4414af84-1e1f-449b-ac85-b79f812eb69b})|({4739f233-57c1-4466-ad51-224558cf375d})|({5066a3b2-f848-4a59-a297-f268bc3a08b6})|({6072a2a8-f1bc-4c9c-b836-7ac53e3f51e4})|({7854ee87-079f-4a25-8e57-050d131404fe})|({07953f60-447e-4f53-a5ef-ed060487f616})|({8886a262-1c25-490b-b797-2e750dd9f36b})|({12473a49-06df-4770-9c47-a871e1f63aea})|({15508c91-aa0a-4b75-81a2-13055c96281d})|({18868c3a-a209-41a6-855d-f99f782d1606})|({24997a0a-9d9b-4c87-a076-766d44e1f6fd})|({27380afd-f42a-4c25-b57d-b9012e0d5d48})|({28044ca8-8e90-435e-bc63-a757af2fb6be})|({30972e0a-f613-4c46-8c87-2e59878e7180})|({31680d42-c80d-4f8a-86d3-cd4930620369})|({44685ba6-68b3-4895-879e-4efa29dfb578})|({046258c9-75c5-429d-8d5b-386cfbadc39d})|({47352fbf-80d9-4b70-9398-fb7bffa3da53})|({56316a2b-ef89-4366-b4aa-9121a2bb6dea})|({65072bef-041f-492e-8a51-acca2aaeac70})|({677e2d00-264c-4f62-a4e8-2d971349c440})|({72056a58-91a5-4de5-b831-a1fa51f0411a})|({85349ea6-2b5d-496a-9379-d4be82c2c13d})|({98363f8b-d070-47b6-acc6-65b80acac4f3})|({179710ba-0561-4551-8e8d-1809422cb09f})|({207435d0-201d-43f9-bb0f-381efe97501d})|({313e3aef-bdc9-4768-8f1f-b3beb175d781})|({387092cb-d2dc-4da5-9389-4a766c604ec2})|({0599211f-6314-4bf9-854b-84cb18da97f8})|({829827cd-03be-4fed-af96-dd5997806fb4})|({856862a5-8109-47eb-b815-a94059570888})|({1e6f5a54-2c4f-4597-aa9e-3e278c617d38})|({1490068c-d8b7-4bd2-9621-a648942b312c})|({18e5e07b-0cfa-4990-a67b-4512ecbae04b})|({3584581e-c01a-4f53-aec8-ca3293bb550d})|({5280684d-f769-43c9-8eaa-fb04f7de9199})|({5766852a-b384-4276-ad06-70c2283b4792})|({34364255-2a81-4d6e-9760-85fe616abe80})|({45621564-b408-4c29-8515-4cf1f26e4bc3})|({62237447-e365-487e-8fc3-64ddf37bdaed})|({7e7aa524-a8af-4880-8106-102a35cfbf42})|({71639610-9cc3-47e0-86ed-d5b99eaa41d5})|({78550476-29ff-4b7e-b437-195024e7e54e})|({85064550-57a8-4d06-bd4b-66f9c6925bf5})|({93070807-c5cd-4bde-a699-1319140a3a9c})|({11e7b9b3-a769-4d7f-b200-17cffa4f9291})|({22632e5e-95b9-4f05-b4b7-79033d50467f})|({03e10db6-b6a7-466a-a2b3-862e98960a85})|({23775e7d-dfcf-42b1-aaad-8017aa88fc59})|({85e31e7e-3e3a-42d3-9b7b-0a2ff1818b33})|({9e32ca65-4670-41e3-b6bb-8773e6b9bba8})|({6e43af8e-a78e-4beb-991f-7b015234eacc})|({57e61dc7-db04-4cf8-bbd3-62a15fc74138})|({01166e60-d740-440c-b640-6bf964504b3c})|({52e137bc-a330-4c25-a981-6c1ab9feb806})|({488e190b-d1f6-4de8-bffb-0c90cc805b62})|({5e257c96-bfed-457d-b57e-18f31f08d7bb})|({2134e327-8060-441c-ba68-b167b82ff5bc})|({1e68848a-2bb7-425c-81a2-524ab93763eb})|({8e888a6a-ec19-4f06-a77c-6800219c6daf})|({7e907a15-0a4c-4ff4-b64f-5eeb8f841349})|({a0ab16af-3384-4dbe-8722-476ce3947873})|({a0c54bd8-7817-4a40-b657-6dc7d59bd961})|({a0ce2605-b5fc-4265-aa65-863354e85058})|({a1f8e136-bce5-4fd3-9ed1-f260703a5582})|({a3fbc8be-dac2-4971-b76a-908464cfa0e0})|({a5a84c10-f12c-496e-80df-33386b7a1463})|({a5f90823-0a50-414f-ad34-de0f6f26f78e})|({a6b83c45-3f24-4913-a1f7-6f42411bbb54})|({a9eb2583-75e0-435a-bb6c-69d5d9b20e27})|({a32ebb9b-8649-493e-a9e9-f091f6ac1217})|({a83c1cbb-7a41-41e7-a2ae-58efcb4dc2e4})|({a506c5af-0f95-4107-86f8-3de05e2794c9})|({a02001ae-b7ed-45d7-baf2-c07f0a7b6f87})|({a5808da1-5b4f-42f2-b030-161fd11a36f7})|({a18087bb-4980-4349-898c-ca1b7a0e59cd})|({a345865c-44b9-4197-b418-934f191ce555})|({a7487703-02d8-4a82-a7d0-2859de96edb4})|({a2427e23-d349-4b25-b5b8-46960b218079})|({a015e172-2465-40fc-a6ce-d5a59992c56a})|({aaaffe20-3306-4c64-9fe5-66986ebb248e})|({abec23c3-478f-4a5b-8a38-68ccd500ec42})|({ac06c6b2-3fd6-45ee-9237-6235aa347215})|({ac037ad5-2b22-46c7-a2dc-052b799b22b5})|({ac296b47-7c03-486f-a1d6-c48b24419749})|({acbff78b-9765-4b55-84a8-1c6673560c08})|({acfe4807-8c3f-4ecc-85d1-aa804e971e91})|({ada56fe6-f6df-4517-9ed0-b301686a34cc})|({af44c8b4-4fd8-42c3-a18e-c5eb5bd822e2})|({b5a35d05-fa28-41b5-ae22-db1665f93f6b})|({b7b0948c-d050-4c4c-b588-b9d54f014c4d})|({b7f366fa-6c66-46bf-8df2-797c5e52859f})|({b9bb8009-3716-4d0c-bcb4-35f9874e931e})|({b12cfdc7-3c69-43cb-a3fb-38981b68a087})|({b019c485-2a48-4f5b-be13-a7af94bc1a3e})|({b91fcda4-88b0-4a10-9015-9365e5340563})|({b30591d6-ec24-4fae-9df6-2f3fe676c232})|({b99847d6-c932-4b52-9650-af83c9dae649})|({bbe79d30-e023-4e82-b35e-0bfdfe608672})|({bc3c2caf-2710-4246-bd22-b8dc5241693a})|({bc3c7922-e425-47e2-a2dd-0dbb71aa8423})|({bc763c41-09ca-459a-9b22-cf4474f51ebc})|({bd5ba448-b096-4bd0-9582-eb7a5c9c0948})|({be5d0c88-571b-4d01-a27a-cc2d2b75868c})|({be981b5e-1d9d-40dc-bd4f-47a7a027611c})|({be37931c-af60-4337-8708-63889f36445d})|({bea8866f-01f8-49e9-92cd-61e96c05d288})|({bf153de7-cdf2-4554-af46-29dabfb2aa2d})|({c3a2b953-025b-425d-9e6e-f1a26ee8d4c2})|({c3b71705-c3a6-4e32-bd5f-eb814d0e0f53})|({c5d359ff-ae01-4f67-a4f7-bf234b5afd6e})|({c6c8ea62-e0b1-4820-9b7f-827bc5b709f4})|({c8c8e8de-2989-4028-bbf2-d372e219ba71})|({c34f47d1-2302-4200-80d4-4f26e47b2980})|({c178b310-6ed5-4e04-9e71-76518dd5fb3e})|({c2341a34-a3a0-4234-90cf-74df1db0aa49})|({c8399f02-02f4-48e3-baea-586564311f95})|({c41807db-69a1-4c35-86c1-bc63044e4fcb})|({c383716f-b23f-47b2-b6bb-d7c1a7c218af})|({c3447081-f790-45cb-ae03-0d7f1764c88c})|({c445e470-9e5a-4521-8649-93c8848df377})|({c8e14311-4b2d-4eb0-9a6b-062c6912f50e})|({ca4fdfdb-e831-4e6e-aa8b-0f2e84f4ed07})|({ca6cb8b2-a223-496d-b0f6-35c31bc7ca2b})|({cba7ce11-952b-4dcb-ba85-a5b618c92420})|({cc6b2dc7-7d6f-470f-bccc-6a42907162d1})|({cc689da4-203f-4a0c-a7a6-a00a5abe74c5})|({ccb7b5d6-a567-40a2-9686-a097a8b583dd})|({cd28aa38-d2f1-45a3-96c3-6cfd4702ef51})|({cd89045b-2e06-46bb-9e34-48e8799e5ef2})|({cdda1813-51d6-4b1f-8a2f-8f9a74a28e14})|({ce0d1384-b99b-478e-850a-fa6dfbe5a2d4})|({ce93dcc7-f911-4098-8238-7f023dcdfd0d})|({cf9d96ff-5997-439a-b32b-98214c621eee})|({cfa458f9-b49b-4e09-8cb2-5e50bd8937cc})|({cfb50cdf-e371-4d6b-9ef2-fcfe6726db02})|({d1ab5ebd-9505-481d-a6cd-6b9db8d65977})|({d03b6b0f-4d44-4666-a6d6-f16ad9483593})|({d9d8cfc1-7112-40cc-a1e9-0c7b899aae98})|({d47ebc8a-c1ea-4a42-9ca3-f723fff034bd})|({d72d260f-c965-4641-bf49-af4135fc46cb})|({d78d27f4-9716-4f13-a8b6-842c455d6a46})|({d355bee9-07f0-47d3-8de6-59b8eecba57b})|({d461cc1b-8a36-4ff0-b330-1824c148f326})|({d97223b8-44e5-46c7-8ab5-e1d8986daf44})|({d42328e1-9749-46ba-b35c-cce85ddd4ace})|({da7d00bf-f3c8-4c66-8b54-351947c1ef68})|({db84feec-2e1f-48f0-9511-645fe4784feb})|({dc6256cc-b6d0-44ca-b42f-4091f11a9d29})|({dd1cb0ec-be2a-432b-9c90-d64c824ac371})|({dd95dd08-75d1-4f06-a75b-51979cbab247})|({ddae89bd-6793-45d8-8ec9-7f4fb7212378})|({de3b1909-d4da-45e9-8da5-7d36a30e2fc6})|({df09f268-3c92-49db-8c31-6a25a6643896})|({e2a4966f-919d-4afc-a94f-5bd6e0606711})|({e05ba06a-6d6a-4c51-b8fc-60b461ffecaf})|({e7b978ae-ffc2-4998-a99d-0f4e2f24da82})|({e7fb6f2f-52b6-4b02-b410-2937940f5049})|({e08d85c5-4c0f-4ce3-9194-760187ce93ba})|({e08ebf0b-431d-4ed1-88bb-02e5db8b9443})|({e9c47315-2a2b-4583-88f3-43d196fa11af})|({e341ed12-a703-47fe-b8dd-5948c38070e4})|({e804fa4c-08e0-4dae-a237-8680074eba07})|({e8982fbd-1bc2-4726-ad8d-10be90f660bd})|({e40673cd-9027-4f61-956c-2097c03ae2be})|({e72172d1-39c9-4f41-829d-a1b8d845d1ca})|({e73854da-9503-423b-ab27-fafea2fbf443})|({e81e7246-e697-4811-b336-72298d930857})|({ea618d26-780e-4f0f-91fd-2a6911064204})|({ea523075-66cd-4c03-ab04-5219b8dda753})|({eb3ebb14-6ced-4f60-9800-85c3de3680a4})|({ec8c5fee-0a49-44f5-bf55-f763c52889a6})|({eccd286a-5b1d-494d-82b0-92a12213d95a})|({ed352072-ddf0-4cb4-9cb6-d8aa3741c2de})|({edb476af-0505-42af-a7fd-ec9f454804c0})|({ee97f92d-1bfe-4e9d-816c-0dfcd63a6206})|({f0b809eb-be22-432f-b26f-b1cadd1755b9})|({f5ffa269-fbca-4598-bbd8-a8aa9479e0b3})|({f6c543bf-2222-4230-8ecb-f5446095b63d})|({f6df4ef7-14bd-43b5-90c9-7bd02943789c})|({f6f98e6b-f67d-4c53-8b76-0b5b6df79218})|({f38b61f3-3fed-4249-bb3d-e6c8625c7afb})|({f50e0a8f-8c32-4880-bcef-ca978ccd1d83})|({f59c2d3d-58da-4f74-b8c9-faf829f60180})|({f82b3ad5-e590-4286-891f-05adf5028d2f})|({f92c1155-97b3-40f4-9d5b-7efa897524bb})|({f95a3826-5c8e-4f82-b353-21b6c0ca3c58})|({f5758afc-9faf-42bb-9543-a4cfb0bfce9d})|({f447670d-64f5-418f-9b4a-5352d6c8e127})|({f4262989-6de0-4604-918f-663b85fad605})|({fa8bd609-0e06-4ba9-8e2e-5989f0b2e197})|({fa0808f6-25ab-4a8b-bd17-3b275c55ff09})|({fac5816b-fd0f-4db2-a16e-52394b6db41d})|({fc99b961-5878-46b4-b091-6d2f507bf44d})|({fce89242-66d3-4946-9ed0-e66078f172fc})|({fcf72e24-5831-439e-bb07-fd53a9e87a30})|({fdc0601f-1fbb-40a5-84e1-8bbe96b22502})|({feb3c734-4529-4d69-9f3a-2dae18f1d896}))$/","prefs":[],"schema":1533411700296,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1479009","why":"Malicious add-ons disguising as updates or useful add-ons, but violating data collection policies, user-control, no surprises and security.","name":"Firefox Update (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"cae5d906-0b1d-4d1c-b83f-f9727b8c4a29","last_modified":1533550294490},{"guid":"{5834f62d-6164-4cdd-a0a3-c00c66ec9d13}","prefs":[],"schema":1532704368947,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1479002","why":"This add-on violates our security and user-choice/no surprises policies.","name":"Youtube Dark Mode (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"d0a401cb-0c70-4784-8288-b06a88b2ae8a","last_modified":1532705151926},{"guid":"/^((@asdfjhsdfuhw)|(@asdfsdfwe)|(@asdieieuss)|(@dghfghfgh)|(@difherk)|(@dsfgtftgjhrdf4)|(@fidfueir)|(@fsgergsdqtyy)|(@hjconsnfes)|(@isdifvdkf)|(@iweruewir)|(@oiboijdjfj)|(@safesearchavs)|(@safesearchavsext)|(@safesearchincognito)|(@safesearchscoutee)|(@sdfykhhhfg)|(@sdiosuff)|(@sdklsajd)|(@sduixcjksd)|(@sicognitores)|(@simtabtest)|(@sodiasudi)|(@test13)|(@test131)|(@test131ver)|(@test132)|(@test13s)|(@testmptys)|(\\{ac4e5b0c-13c4-4bfd-a0c3-1e73c81e8bac\\})|(\\{e78785c3-ec49-44d2-8aac-9ec7293f4a8f\\})|(general@filecheckerapp\\.com)|(general@safesearch\\.net))$/","prefs":[],"schema":1532703832328,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1475330","why":"These Add-ons violate our data collection, no surprises and user-choice policies.","name":"Safesearch (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"d664412d-ed08-4892-b247-b007a70856ff","last_modified":1532704364007},{"guid":"{dd3d7613-0246-469d-bc65-2a3cc1668adc}","prefs":[],"schema":1532684052432,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1478731","why":"This add-on violates data practices outlined in the review policy.","name":"BlockSite"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"4.0.3","minVersion":"0"}],"id":"e04f98b5-4480-43a3-881d-e509e4e28cdc","last_modified":1532684085999},{"guid":"{bee8b1f2-823a-424c-959c-f8f76c8b2306}","prefs":[],"schema":1532547689407,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1478731","why":"This add-on violates data practices outlined in the review policy.","name":"Popup blocker for FireFox"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"4.0.7.3","minVersion":"0"}],"id":"f0713a5e-7208-484e-b3a0-4e6dc6a195be","last_modified":1532684052426},{"guid":"/^((\\{39bd8607-0af4-4d6b-bd69-9a63c1825d3c\\})|(\\{273f0bce-33f4-45f6-ae03-df67df3864c2\\})|(\\{a77fc9b9-6ebb-418d-b0b6-86311c191158\\})|(\\{c6c4a718-cf91-4648-aa9b-170d66163cf2\\})|(\\{d371abec-84bb-481b-acbf-235639451127\\})|(\\{e63b262a-f9b8-4496-9c4b-9d3cbd6aea90\\}))$/","prefs":[],"schema":1532386339902,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1477950","why":"Add-ons that contain malicious functionality like search engine redirect.","name":"Smash (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"c37c7c24-e738-4d06-888c-108b4d63b428","last_modified":1532424286908},{"guid":"/^((\\{ac296b47-7c03-486f-a1d6-c48b24419749\\})|(\\{1cab8ccf-deff-4743-925d-a47cbd0a6b56\\})|(\\{5da81d3d-5db1-432a-affc-4a2fe9a70749\\})|(\\{071b9878-a7d3-4ae3-8ef0-2eaee1923403\\})|(\\{261476ea-bd0e-477c-abd7-33cdf626f81f\\})|(\\{224e66d0-6b11-4c4b-9bcf-41180889898a\\})|(\\{1e90cf52-c67c-4bd9-80c3-a2bf521fc981\\})|(\\{09c4799c-00f1-439e-9e60-3827c589b372\\})|(\\{d3d2095a-9faa-466f-82ae-3114179b34d6\\})|(\\{70389ea5-7e4d-4515-835c-fbd047f229dd\\})|(\\{2e8083a5-cd88-4aaa-bb8b-e54e9753f280\\})|(\\{fbf2480b-5c19-478e-bfd0-192ad9f84dc9\\})|(\\{6c7dc694-89f8-477e-88d5-c55af4d6a846\\})|(\\{915c12c6-901a-490d-9bfc-20f00d1ad31d\\})|(\\{d3a4aa3e-f74c-4382-876d-825f592f2976\\})|(\\{0ad91ec1-f7c4-4a39-9244-3310e9fdd169\\})|(\\{9c17aa27-63c5-470a-a678-dc899ab67ed3\\})|(\\{c65efef2-9988-48db-9e0a-9ff8164182b6\\})|(\\{d54c5d25-2d51-446d-8d14-18d859e3e89a\\})|(\\{e458f1f1-a331-4486-b157-81cba19f0993\\})|(\\{d2de7e1f-6e51-41d6-ba8a-937f8a5c92ff\\})|(\\{2b08a649-9bea-4dd4-91c8-f53a84d38e19\\})|(\\{312dd57e-a590-4e19-9b26-90e308cfb103\\})|(\\{82ce595a-f9b6-4db8-9c97-b1f1c933418b\\})|(\\{0a2e64f0-ea5a-4fff-902d-530732308d8e\\})|(\\{5fbdc975-17ab-4b4e-90d7-9a64fd832a08\\})|(\\{28820707-54d8-41f0-93e9-a36ffb2a1da6\\})|(\\{64a2aed1-5dcf-4f2b-aad6-9717d23779ec\\})|(\\{ee54794f-cd16-4f7d-a7dd-515a36086f60\\})|(\\{4d381160-b2d5-4718-9a05-fc54d4b307e7\\})|(\\{60393e0e-f039-4b80-bad4-10189053c2ab\\})|(\\{0997b7b2-52d7-4d14-9aa6-d820b2e26310\\})|(\\{8214cbd6-d008-4d16-9381-3ef1e1415665\\})|(\\{6dec3d8d-0527-49a3-8f12-b05f2a8b95b2\\})|(\\{0c0d8d8f-3ae0-4c98-81ac-06453a316d16\\})|(\\{84d5ef02-a283-484a-80da-7087836c74aa\\})|(\\{24413756-2c44-47c5-8bbf-160cb37776d8\\})|(\\{cf6ac458-06e8-45d0-9cbf-ec7fc0eb1710\\})|(\\{263a5792-933a-4de1-820a-d04198e17120\\})|(\\{b5fd7f37-190d-4c0a-b8dd-8b4850c986ac\\})|(\\{cb5ef07b-c2e7-47a6-be81-2ceff8df4dd5\\})|(\\{311b20bc-b498-493c-a5e1-22ec32b0e83c\\})|(\\{b308aead-8bc1-4f37-9324-834b49903df7\\})|(\\{3a26e767-b781-4e21-aaf8-ac813d9edc9f\\}))$/","prefs":[],"schema":1532361925873,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1476553","why":"Third-party websites try to trick users into installing add-ons that inject remote scripts.","name":"Various malicious add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"52842139-3d11-41ac-9d7f-8e51122a3141","last_modified":1532372344457},{"guid":"/^((@FirefoxUpdate)|(@googledashboard)|(@smash_mov)|(@smash_tv)|(@smashdashboard)|(@smashmovs)|(@smashtvs)|(\\{0be01832-7cce-4457-b8ad-73b743914085\\})|(\\{0e1c683e-9f34-45f1-b365-a283befb471a\\})|(\\{0c72a72d-6b2e-4a0e-8a31-16581176052d\\})|(\\{0ccfc208-8441-4c27-b1cb-799accb04908\\})|(\\{0ede8d39-26f2-49c4-8014-dfc484f54a65\\})|(\\{1fc1f8e6-3575-4a6f-a4d1-c4ca1c36bd2a\\})|(\\{3a1d6607-e6a8-4012-9506-f14cd157c171\\})|(\\{03b3ac4d-59a3-4cc6-aa4d-9b39dd8b3196\\})|(\\{3bb6e889-ac7a-46ca-8eed-45ba4fbe75b5\\})|(\\{3c841114-da8c-44ea-8303-78264edfe60b\\})|(\\{3f3bcb3e-dd73-4410-b102-60a87fcb8323\\})|(\\{3f951165-fd85-42ae-96ef-6ff589a1fe72\\})|(\\{04c86cb3-5f52-4083-9e9a-e322dd02181a\\})|(\\{4d8b44ef-9b8b-4d82-b668-a49648d2749d\\})|(\\{4d25d2b4-6ae7-4a66-abc0-c3fca4cdddf6\\})|(\\{5c9a2eca-2126-4a84-82c0-efbf3d989371\\})|(\\{6ecb9f49-90f0-43a1-8f8a-e809ea4f732b\\})|(\\{6fb8289d-c6c8-4fe5-9a92-7dc6cbf35349\\})|(\\{7fea697d-327c-4d20-80d5-813a6fb26d86\\})|(\\{08a3e913-0bbc-42ba-96d7-3fa16aceccbf\\})|(\\{8b04086b-94a5-4161-910b-59e3e31e4364\\})|(\\{08c28c16-9fb6-4b32-9868-db37c1668f94\\})|(\\{8cd69708-2f5e-4282-a94f-3feebc4bce35\\})|(\\{8dc21e24-3883-4d01-b486-ef1d1106fa3d\\})|(\\{8f8cc21a-2097-488f-a213-f5786a2ccbbf\\})|(\\{9c8b93f7-3bf8-4762-b221-40c912268f96\\})|(\\{9ce66491-ef06-4da6-b602-98c2451f6395\\})|(\\{1e1acc1c-8daa-4c2e-ad05-5ef01ae65f1e\\})|(\\{10b0f607-1efa-4762-82a0-e0d9bbae4e48\\})|(\\{24f338d7-b539-49f1-b276-c9edc367a32d\\})|(\\{40c9030f-7a2f-4a58-9d0a-edccd8063218\\})|(\\{41f97b71-c7c6-40b8-83b1-a4dbff76f73d\\})|(\\{42f3034a-0c4a-4f68-a8fd-8a2440e3f011\\})|(\\{52d456e5-245a-4319-b8d2-c14fbc9755f0\\})|(\\{57ea692b-f9fe-42df-bf5e-af6953fba05a\\})|(\\{060c61d8-b48f-465d-aa4b-23325ea757c3\\})|(\\{65c1967c-6a5c-44dd-9637-0d4d8b4c339b\\})|(\\{65d40b64-b52a-46d8-b146-580ff91889cb\\})|(\\{75b7af0d-b4ed-4320-95c8-7ffd8dd2cb7c\\})|(\\{77fe9731-b683-4599-9b06-a5dcea63d432\\})|(\\{84b20d0c-9c87-4340-b4f8-1912df2ae70d\\})|(\\{92b9e511-ac81-4d47-9b8f-f92dc872447e\\})|(\\{95afafef-b580-4f66-a0fe-7f3e74be7507\\})|(\\{116a0754-20eb-4fe5-bd35-575867a0b89e\\})|(\\{118bf5f6-98b1-4543-b133-42fdaf3cbade\\})|(\\{248eacc4-195f-43b2-956c-b9ad1ae67529\\})|(\\{328f931d-83c1-4876-953c-ddc9f63fe3b4\\})|(\\{447fa5d3-1c27-4502-9e13-84452d833b89\\})|(\\{476a1fa9-bce8-4cb4-beff-cb31980cc521\\})|(\\{507a5b13-a8a3-4653-a4a7-9a03099acf48\\})|(\\{531bf931-a8c6-407b-a48f-8a53f43cd461\\})|(\\{544c7f83-ef54-4d17-aa91-274fa27514ef\\})|(\\{546ea388-2839-4215-af49-d7289514a7b1\\})|(\\{635cb424-0cd5-4446-afaf-6265c4b711b5\\})|(\\{654b21c7-6a70-446c-b9ac-8cac9592f4a9\\})|(\\{0668b0a7-7578-4fb3-a4bd-39344222daa3\\})|(\\{944ed336-d750-48f1-b0b5-3c516bfb551c\\})|(\\{1882a9ce-c0e3-4476-8185-f387fe269852\\})|(\\{5571a054-225d-4b65-97f7-3511936b3429\\})|(\\{5921be85-cddd-4aff-9b83-0b317db03fa3\\})|(\\{7082ba5c-f55e-4cd8-88d6-8bc479d3749e\\})|(\\{7322a4cb-641c-4ca2-9d83-8701a639e17a\\})|(\\{90741f13-ab72-443f-a558-167721f64883\\})|(\\{198627a5-4a7b-4857-b074-3040bc8effb8\\})|(\\{5e5b9f44-2416-4669-8362-42a0b3f97868\\})|(\\{824985b9-df2a-401c-9168-749960596007\\})|(\\{4853541f-c9d7-42c5-880f-fd460dbb5d5f\\})|(\\{6e6ff0fd-4ae4-49ae-ac0c-e2527e12359b\\})|(\\{90e8aa72-a7eb-4337-81d4-538b0b09c653\\})|(\\{02e3137a-96a4-433d-bfb2-0aa1cd4aed08\\})|(\\{9e734c09-fcb1-4e3f-acab-04d03625301c\\})|(\\{a6ad792c-69a8-4608-90f0-ff7c958ce508\\})|(\\{a512297e-4d3a-468c-bd1a-f77bd093f925\\})|(\\{a71b10ae-b044-4bf0-877e-c8aa9ad47b42\\})|(\\{a33358ad-a3fa-4ca1-9a49-612d99539263\\})|(\\{a7775382-4399-49bf-9287-11dbdff8f85f\\})|(\\{afa64d19-ddba-4bd5-9d2a-c0ba4b912173\\})|(\\{b4ab1a1d-e137-4c59-94d5-4f509358a81d\\})|(\\{b4ec2f8e-57fd-4607-bf4f-bc159ca87b26\\})|(\\{b06bfc96-c042-4b34-944c-8eb67f35630a\\})|(\\{b9dcdfb0-3420-4616-a4cb-d41b5192ba0c\\})|(\\{b8467ec4-ff65-45f4-b7c5-f58763bf9c94\\})|(\\{b48e4a17-0655-4e8e-a5e2-3040a3d87e55\\})|(\\{b6166509-5fe0-4efd-906e-1e412ff07a04\\})|(\\{bd1f666e-d473-4d13-bc4d-10dde895717e\\})|(\\{be572ad4-5dd7-4b6b-8204-5d655efaf3b3\\})|(\\{bf2a3e58-2536-44d4-b87f-62633256cf65\\})|(\\{bfc5ac5f-80bd-43e5-9acb-f6d447e0d2ce\\})|(\\{bfe3f6c1-c5fe-44af-93b3-576812cb6f1b\\})|(\\{c0b8009b-57dc-45bc-9239-74721640881d\\})|(\\{c1cf1f13-b257-4271-b922-4c57c6b6e047\\})|(\\{c3d61029-c52f-45df-8ec5-a654b228cd48\\})|(\\{c39e7c0b-79d5-4137-bef0-57cdf85c920f\\})|(\\{ce043eac-df8a-48d0-a739-ef7ed9bdf2b5\\})|(\\{cf62e95a-8ded-4c74-b3ac-f5c037880027\\})|(\\{cff02c70-7f07-4592-986f-7748a2abd9e1\\})|(\\{d1b87087-09c5-4e58-b01d-a49d714da2a2\\})|(\\{d14adc78-36bf-4cf0-9679-439e8371d090\\})|(\\{d64c923e-8819-488c-947f-716473d381b2\\})|(\\{d734e7e3-1b8e-42a7-a9b3-11b16c362790\\})|(\\{d147e8c6-c36e-46b1-b567-63a492390f07\\})|(\\{db1a103d-d1bb-4224-a5e1-8d0ec37cff70\\})|(\\{dec15b3e-1d12-4442-930e-3364e206c3c2\\})|(\\{dfa4b2e3-9e07-45a4-a152-cde1e790511d\\})|(\\{dfcda377-b965-4622-a89b-1a243c1cbcaf\\})|(\\{e4c5d262-8ee4-47d3-b096-42b8b04f590d\\})|(\\{e82c0f73-e42c-41dd-a686-0eb4b65b411c\\})|(\\{e60616a9-9b50-49d8-b1e9-cecc10a8f927\\})|(\\{e517649a-ffd7-4b49-81e0-872431898712\\})|(\\{e771e094-3b67-4c33-8647-7b20c87c2183\\})|(\\{eff5951b-b6d4-48f5-94c3-1b0e178dcca5\\})|(\\{f26a8da3-8634-4086-872e-e589cbf03375\\})|(\\{f992ac88-79d3-4960-870e-92c342ed3491\\})|(\\{f4e4fc03-be50-4257-ae99-5cd0bd4ce6d5\\})|(\\{f73636fb-c322-40e1-82fb-e3d7d06d9606\\})|(\\{f5128739-78d5-4ad7-bac7-bd1af1cfb6d1\\})|(\\{fc11e7f0-1c31-4214-a88f-6497c27b6be9\\})|(\\{feedf4f8-08c1-451f-a717-f08233a64ec9\\}))$/","prefs":[],"schema":1532097654002,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1476369","why":"These add-ons contain unwanted features and try to prevent the user from uninstalling themselves.","name":"Smash/Upater (malware) and similar"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"c7d7515d-563f-459f-821c-27d4cf825dbf","last_modified":1532101113096},{"guid":"^((@mixclouddownloader)|(all-down@james\\.burrow)|(d\\.lehr@chello\\.at)|(easy-video-downloader@addonsmash)|(easy-youtube-mp3@james\\.burrow)|(gid@addonsmash)|(gmail_panel@addon_clone)|(guid-reused-by-pk-907175)|(idm@addonsmash)|(image-picka@addonsmash)|(instant-idm@addon\\.host)|(jdm@awesome\\.addons)|(open-in-idm@addonsmash)|(open-in-idm@james\\.burrow)|(open-in-vlc@awesome\\.addons)|(saveimage@addonsmash)|(thundercross@addonsmash)|(vk-download@addon\\.host)|(vk-music-downloader@addonsmash)|(whatsapp_popup@addons\\.clone)|(ytb-down@james\\.burrow)|(ytb-mp3-downloader@james\\.burrow)|(\\{0df8d631-7d88-401e-ba7e-af1425dded8a\\})|(\\{3c74e141-1993-4c04-b755-a66dd491bb47\\})|(\\{5cdd95c7-5d92-40c5-8e2a-8c52c90191d9\\})|(\\{40efedc0-8e48-404a-a779-f4016b25c0e6\\})|(\\{53d605ce-599b-4352-8a06-5e594b3d1822\\})|(\\{3697c1e8-27d7-4c63-a27e-ac16191a1545\\})|(\\{170503FA-3349-4F17-BC86-001888A5C8E2\\})|(\\{649558df-9461-4824-ad18-f2d4d4845ac8\\})|(\\{27875553-afd5-4365-86dc-019bcd60594c\\})|(\\{27875553-afd5-4365-86dc-019bcd60594c\\})|(\\{6e7624fa-7f70-4417-93db-1ec29c023275\\})|(\\{b1aea1f1-6bed-41ef-9679-1dfbd7b2554f\\})|(\\{b9acc029-d62b-4d23-b921-8e7aea34266a\\})|(\\{b9b59e13-4ac5-4eff-8dbe-c345b7619b3c\\})|(\\{b0186d2d-3126-4537-9186-a6f198547901\\})|(\\{b3e8fde8-6d97-4ac3-95e0-57b797f4c56b\\})|(\\{e6a9a96e-4a08-4719-b9bd-0e91c35aaabc\\})|(\\{e69a36e6-ee12-4fe6-87ca-66b77fc0ffbf\\})|(\\{ee3601f1-78ab-48bf-89ae-0cfe4aed1f2e\\})|(\\{f4ce48b3-ad14-4900-86cb-4604474c5b08\\})|(\\{f5c1262d-b1e8-44a4-b820-a834f0f6d605\\}))$","prefs":[],"schema":1531762485603,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1476020","why":"Add-ons repeatedly violated several of review policies.","name":"Several youtube downloading add-ons and others"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0"}],"id":"ae8ae617-590d-430b-86d4-16364372b67f","last_modified":1531762863373},{"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 add-on page. 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 read our security announcement.","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 individually.\r\n\r\nFor more information, please read this announcement.","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 this article.","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 update to the latest version. For more information, please read our announcement.","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 update to the latest version.","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 update Enigmail.","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 this article.","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 this blog post.","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 this article.","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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines, 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines.","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 installation guidelines 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 Add-on Guidelines.","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 Add-on Guidelines, 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines.","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 support site 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 Add-on Guidelines, 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Trojan software 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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines. 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 Add-on Guidelines.","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 Add-on Guidelines.","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 support site 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 Add-on Guidelines","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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines.","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 originally blocked 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines 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 Add-on Guidelines. 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 Add-on Guidelines. 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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines. 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.\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 Add-on Guidelines.","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 originally blocked 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines.\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 Add-on Guidelines.\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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines. 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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines\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 Microsoft .NET Framework Assistant 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines.\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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines","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 originally blocked 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 add-on guidelines, 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines, 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines, 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 Add-on Guidelines.","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 Add-on Guidelines.\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 Add-on Guidelines 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 Add-on Guidelines.\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 Add-on Guidelines 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 blocked 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines. 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 Add-on Guidelines.","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 Add-on Guidelines. 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines. 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 Add-on Guidelines.","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 Add-on Guidelines, 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 McAfee support knowledge base.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines. 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines 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 Add-on Guidelines 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 Add-on Guidelines 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 is blocked 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 Add-on Guidelines","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 Add-on Guidelines, 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 Add-on Guidelines 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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines, 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 Add-on Guidelines.","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 add-on guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines. 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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 BrowserProtect extension 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 Add-on Guidelines, 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 Add-on Guidelines 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 previously blocked Mixi DJ add-on, which doesn't follow our Add-on Guidelines. 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 Add-on Guidelines.\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 Add-on Guidelines.","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 Add-on Guidelines. 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines, 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 update to the latest version. For more information, please read our announcement.","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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines\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 Add-on Guidelines. 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 Add-on Guidelines.","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 Add-on Guidelines.","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 originally blocked 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 Add-on Guidelines.","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":"profsites@pr.com","prefs":[],"schema":1480349193877,"blockID":"i734","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.\r\n","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 Add-on Guidelines.","name":"ProfSites","created":"2014-10-16T16:39:26Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0d6d84d7-0b3f-c5ab-57cc-6b66b0775a23","last_modified":1480349197341},{"guid":"{872b5b88-9db5-4310-bdd0-ac189557e5f5}","prefs":[],"schema":1480349193877,"blockID":"i497","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 Add-on Guidelines by making settings changes that can't be easily reverted.","name":"DVDVideoSoft Menu","created":"2013-12-03T16:08:09Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e8da89c4-c585-77e4-9872-591d20723a7e","last_modified":1480349197240},{"guid":"123456789@offeringmedia.com","prefs":[],"schema":1480349193877,"blockID":"i664","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:41:24Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6d0a7dda-d92a-c8e2-21be-c92b0a88ac8d","last_modified":1480349197208},{"guid":"firefoxdav@icloud.com","prefs":[],"schema":1480349193877,"blockID":"i1214","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1271358","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 is causing frequent and persistent crashing.","name":"iCloud Bookmarks","created":"2016-05-17T16:55:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.4.22","minVersion":"0","targetApplication":[]}],"id":"2dddd7a7-b081-45e2-3eeb-2a7f76a1465f","last_modified":1480349197172},{"guid":"youplayer@addons.mozilla.org","prefs":[],"schema":1480349193877,"blockID":"i660","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 YouPlayer extension weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"YouPlayer, versions between 79.9.8 and 208.0.1","created":"2014-07-10T15:31:04Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"208.0.1","minVersion":"79.9.8","targetApplication":[]}],"id":"82dca22b-b889-5d9d-3fc9-b2184851f2d1","last_modified":1480349197136},{"guid":"{df6bb2ec-333b-4267-8c4f-3f27dc8c6e07}","prefs":[],"schema":1480349193877,"blockID":"i487","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=940681","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Facebook 2013 (malware)","created":"2013-11-19T14:59:45Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5867c409-b342-121e-3c3b-426e2f0ba1d4","last_modified":1480349197109},{"guid":"/^({4e988b08-8c51-45c1-8d74-73e0c8724579}|{93ec97bf-fe43-4bca-a735-5c5d6a0a40c4}|{aed63b38-7428-4003-a052-ca6834d8bad3}|{0b5130a9-cc50-4ced-99d5-cda8cc12ae48}|{C4CFC0DE-134F-4466-B2A2-FF7C59A8BFAD})$/","prefs":[],"schema":1480349193877,"blockID":"i524","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 Add-on Guidelines by making changes that can't be easily reverted.","name":"SweetPacks","created":"2013-12-20T13:43:21Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1a3a26a2-cdaa-e5ba-f6ac-47b98ae2cc26","last_modified":1480349197082},{"guid":"foxyproxy@eric.h.jung","prefs":[],"schema":1480349193877,"blockID":"i950","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 Standard for Thunderbird","created":"2015-07-15T09:34:44Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"4.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":"5ee8203d-bea2-6cd5-9ba0-d1922ffb3d21","last_modified":1480349197056},{"guid":"{82AF8DCA-6DE9-405D-BD5E-43525BDAD38A}","prefs":[],"schema":1480349193877,"blockID":"i1056","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1225639","who":"All users who have this add-on installed in Firefox 43 and above. User who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is associated with frequent shutdown crashes in Firefox.","name":"Skype Click to Call","created":"2015-11-17T14:03:05Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"7.5.0.9082","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"43.0a1"}]}],"id":"484f8386-c415-7499-a8a0-f4e16f5a142f","last_modified":1480349197027},{"guid":"{22119944-ED35-4ab1-910B-E619EA06A115}","prefs":[],"schema":1480349193877,"blockID":"i45","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=699134","who":"Users of version 7.9.20.6 of RoboForm Toolbar and earlier on Firefox 48 and above.","why":"Older versions of the RoboForm Toolbar add-on are causing crashes in Firefox 48 and above. The developer has released a fix, available in versions 7.9.21+.","name":"Roboform","created":"2011-11-19T06:14:56Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"7.9.20.6","minVersion":"0.1","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"8.0a1"}]}],"id":"5f7f9e13-d3e8-ea74-8341-b83e36d67d94","last_modified":1480349196995},{"guid":"{87b5a11e-3b54-42d2-9102-0a7cb1f79ebf}","prefs":[],"schema":1480349193877,"blockID":"i838","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128327","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 Add-on Guidelines.","name":"Cyti Web (malware)","created":"2015-02-06T14:29:12Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1ba0e57c-4c0c-4eb6-26e7-c2016769c343","last_modified":1480349196965},{"guid":"/^({bf67a47c-ea97-4caf-a5e3-feeba5331231}|{24a0cfe1-f479-4b19-b627-a96bf1ea3a56})$/","prefs":[],"schema":1480349193877,"blockID":"i542","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 Add-on Guidelines.","name":"MixiDJ (malware)","created":"2014-01-28T14:10:49Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"fc442b64-1b5d-bebb-c486-f431b154f3db","last_modified":1480349196622},{"guid":"/^({ebd898f8-fcf6-4694-bc3b-eabc7271eeb1}|{46008e0d-47ac-4daa-a02a-5eb69044431a}|{213c8ed6-1d78-4d8f-8729-25006aa86a76}|{fa23121f-ee7c-4bd8-8c06-123d087282c5}|{19803860-b306-423c-bbb5-f60a7d82cde5})$/","prefs":[],"schema":1480349193877,"blockID":"i622","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 Add-on Guidelines.","name":"WiseConvert","created":"2014-06-18T13:48:26Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ffd184fa-aa8f-8a75-ff00-ce285dec5b22","last_modified":1480349196597},{"guid":"/^({fa95f577-07cb-4470-ac90-e843f5f83c52}|ffxtlbr@speedial\\.com)$/","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i696","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1031115","who":"All Firefox users who have any of these add-ons installed. Users who wish to continue using these add-ons can enable them in the Add-ons Manager.","why":"These add-ons are silently installed and change homepage and search defaults without user consent, in violation of the Add-on Guidelines. They are also distributed under more than one add-on ID.","name":"Speedial","created":"2014-08-21T13:55:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"130c7419-f727-a2fb-3891-627bc69a43bb","last_modified":1480349196565},{"guid":"pennerdu@faceobooks.ws","prefs":[],"schema":1480349193877,"blockID":"i442","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=904050","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Console Video (malware)","created":"2013-08-13T14:00:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"fb83e48e-a780-9d06-132c-9ecc65b43674","last_modified":1480349196541},{"guid":"anttoolbar@ant.com","prefs":[],"schema":1480349193877,"blockID":"i88","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=748269","who":"All Firefox users who have installed version 2.4.6.4 of the Ant Video Downloader and Player add-on.","why":"Version 2.4.6.4 of the Ant Video Downloader and Player add-on is causing a very high number of crashes in Firefox. There's an updated version 2.4.6.5 that doesn't have this problem. All users are recommended to update as soon as possible.","name":"Ant Video Downloader and Player","created":"2012-05-01T10:32:11Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.4.6.4","minVersion":"2.4.6.4","targetApplication":[]}],"id":"9eef435b-39d4-2b73-0810-44b0d3ff52ad","last_modified":1480349196509},{"guid":"{E90FA778-C2B7-41D0-9FA9-3FEC1CA54D66}","prefs":[],"schema":1480349193877,"blockID":"i446","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 Add-on Guidelines.","name":"YouTube to MP3 Converter","created":"2013-09-06T15:59:29Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"83eb6337-a3b6-84e4-e76c-ee9200b80796","last_modified":1480349196471},{"guid":"{ad7ce998-a77b-4062-9ffb-1d0b7cb23183}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i804","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 Add-on Guidelines.","name":"Astromenda Search Addon","created":"2014-12-15T10:53:58Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"633f9999-c81e-bd7a-e756-de7d34feb39d","last_modified":1480349196438},{"guid":"{52b0f3db-f988-4788-b9dc-861d016f4487}","prefs":[],"schema":1480349193877,"blockID":"i584","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":"Versions of this add-on are silently installed by the Free Driver Scout installer, in violation of our Add-on Guidelines.","name":"Web Check (Free Driver Scout bundle)","created":"2014-05-22T11:07:00Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.1.9999999","minVersion":"0","targetApplication":[]}],"id":"cba0ac44-90f9-eabb-60b0-8da2b645e067","last_modified":1480349196363},{"guid":"dodatek@flash2.pl","prefs":[],"schema":1480349193877,"blockID":"i1279","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1312748","who":"Any user with version 1.3 or newer of this add-on installed.","why":"This add-on claims to be a flash plugin and it does some work on youtube, but it also steals your facebook and adfly credentials and sends them to a remote server.","name":"Aktualizacja Flash WORK addon","created":"2016-10-27T15:52:00Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"1.3","targetApplication":[]}],"id":"2dab5211-f9ec-a1bf-c617-6f94f28b5ee1","last_modified":1480349196331},{"guid":"{2d069a16-fca1-4e81-81ea-5d5086dcbd0c}","prefs":[],"schema":1480349193877,"blockID":"i440","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=903647","who":"All Firefox users who have this add-on installed.","why":"This add-on is installed silently and doesn't follow many other of the Add-on Guidelines. If you want to continue using this add-on, you can enable it in the Add-ons Manager.","name":"GlitterFun","created":"2013-08-09T16:26:46Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e3f77f3c-b1d6-3b29-730a-846007b9cb16","last_modified":1480349196294},{"guid":"xivars@aol.com","prefs":[],"schema":1480349193877,"blockID":"i501","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=946420","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":"Video Plugin Facebook (malware)","created":"2013-12-04T15:34:32Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3303d201-7006-3c0d-5fd5-45503e2e690c","last_modified":1480349196247},{"guid":"2bbadf1f-a5af-499f-9642-9942fcdb7c76@f05a14cc-8842-4eee-be17-744677a917ed.com","prefs":[],"schema":1480349193877,"blockID":"i700","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1052599","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 widely considered malware and is apparently installed silently into users' systems, in violation of the Add-on Guidelines.","name":"PIX Image Viewer","created":"2014-08-21T16:15:16Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1b72889b-90e6-ea58-4fe8-d48257df7d8b","last_modified":1480349196212},{"guid":"/^[0-9a-f]+@[0-9a-f]+\\.info/","prefs":[],"schema":1480349193877,"blockID":"i256","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806451","who":"All Firefox users who have installed any of these add-ons.","why":"The set of extensions labeled as Codec, Codec-M, Codec-C and other names are malware being distributed as genuine add-ons.\r\n\r\nIf you think an add-on you installed was incorrectly blocked and the block dialog pointed you to this page, please comment on this blog post.","name":"Codec extensions (malware)","created":"2013-01-22T12:16:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0c654540-00f2-0ad4-c9be-7ca2ace5341e","last_modified":1480349196184},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i600","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.","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.","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:16:08Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.5.*","minVersion":"3.15.5","targetApplication":[]}],"id":"51c4ab3b-9ad3-c5c3-98c8-a220025fc5a3","last_modified":1480349196158},{"guid":"{729c9605-0626-4792-9584-4cbe65b243e6}","prefs":[],"schema":1480349193877,"blockID":"i788","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 Add-on Guidelines.","name":"Browser Ext Assistance","created":"2014-11-20T10:07:19Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3c588238-2501-6a53-65ea-5c8ff0f3e51d","last_modified":1480349196123},{"guid":"unblocker20__web@unblocker.yt","prefs":[],"schema":1480349193877,"blockID":"i1213","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 originally blocked due to malicious activity.","name":"YouTube Unblocker 2.0","created":"2016-05-09T17:28:18Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"de305335-e9f3-f410-cf5c-f88b7ad4b088","last_modified":1480349196088},{"guid":"webbooster@iminent.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i630","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 Add-on Guidelines.","name":"Iminent Minibar","created":"2014-06-26T15:49:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d894ea79-8215-7a0c-b0e9-be328c3afceb","last_modified":1480349196032},{"guid":"jid1-uabu5A9hduqzCw@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1016","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1208051","who":"All users who have this add-on installed.","why":"This add-on is injecting unwanted and unexpected advertisements into all web pages, and masking this behavior as ad-blocking in its code.","name":"SpeedFox (malware)","created":"2015-09-24T09:49:42Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"31397419-3dfa-9db3-f1aa-e812d4220669","last_modified":1480349196001},{"guid":"/^firefox@(jumpflip|webconnect|browsesmart|mybuzzsearch|outobox|greygray|lemurleap|divapton|secretsauce|batbrowse|whilokii|linkswift|qualitink|browsefox|kozaka|diamondata|glindorus|saltarsmart|bizzybolt|websparkle)\\.(com?|net|org|info|biz)$/","prefs":[],"schema":1480349193877,"blockID":"i548","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 Add-on Guidelines.","name":"Yontoo add-ons","created":"2014-01-30T15:06:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bfaf3510-397e-48e6-cc4f-74202aaaed54","last_modified":1480349195955},{"guid":"firefox@bandoo.com","prefs":[],"schema":1480349193877,"blockID":"i23","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=629634","who":"Users of Bandoo version 5.0 for Firefox 3.6 and later.","why":"This add-on causes a high volume of Firefox crashes.","name":"Bandoo","created":"2011-03-01T23:30:23Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"5.0","minVersion":"5.0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.7a1pre"}]}],"id":"bd487cf4-3f6a-f956-a6e9-842ac8deeac5","last_modified":1480349195915},{"guid":"5nc3QHFgcb@r06Ws9gvNNVRfH.com","prefs":[],"schema":1480349193877,"blockID":"i372","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=875752","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware pretending to be the Flash Player plugin.","name":"Flash Player 11 (malware)","created":"2013-06-18T13:23:40Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"dc71fcf5-fae4-5a5f-6455-ca7bbe4202db","last_modified":1480349195887},{"guid":"/^(7tG@zEb\\.net|ru@gfK0J\\.edu)$/","prefs":[],"schema":1480349193877,"blockID":"i854","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=952255","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 Add-on Guidelines.","name":"youtubeadblocker (malware)","created":"2015-02-09T15:41:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cfe42207-67a9-9b88-f80c-994e6bdd0c55","last_modified":1480349195851},{"guid":"{a7aae4f0-bc2e-a0dd-fb8d-68ce32c9261f}","prefs":[],"schema":1480349193877,"blockID":"i378","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=865090","who":"All Firefox users who have installed this add-on.","why":"This extension is malware that hijacks Facebook accounts for malicious purposes.","name":"Myanmar Extension for Facebook (malware)","created":"2013-06-18T15:58:54Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"30ecd9b9-4023-d9ef-812d-f1a75bb189b0","last_modified":1480349195823},{"guid":"a88a77ahjjfjakckmmabsy278djasi@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1034","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1211171","who":"All users who have this add-on installed.","why":"This is a malicious add-on that takes over Facebook accounts.","name":"Fast Unlock (malware)","created":"2015-10-05T16:28:48Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f801f112-3e8f-770f-10db-384349a36026","last_modified":1480349195798},{"guid":"crossriderapp5060@crossrider.com","prefs":[],"schema":1480349193877,"blockID":"i228","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=810016","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently side-installed by other software, and it overrides user preferences and inserts advertisements in web content.","name":"Savings Sidekick","created":"2012-11-29T16:31:13Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a37f76ac-7b77-b5a3-bac8-addaacf34bae","last_modified":1480349195769},{"guid":"/^(saamazon@mybrowserbar\\.com)|(saebay@mybrowserbar\\.com)$/","prefs":[],"schema":1480349193877,"blockID":"i672","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1011337","who":"All Firefox users who have these add-ons installed. Users wishing to continue using these add-ons can enable them in the Add-ons Manager.","why":"These add-ons are being silently installed, in violation of the Add-on Guidelines.","name":"Spigot Shopping Assistant","created":"2014-07-22T15:13:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e072a461-ee5a-c83d-8d4e-5686eb585a15","last_modified":1480349195347},{"guid":"{b99c8534-7800-48fa-bd71-519a46cdc7e1}","prefs":[],"schema":1480349193877,"blockID":"i596","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1011325","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 Add-on Guidelines.","name":"BrowseMark","created":"2014-06-12T13:19:59Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f411bb0f-7c82-9061-4a80-cabc8ff45beb","last_modified":1480349195319},{"guid":"/^({94d62e35-4b43-494c-bf52-ba5935df36ef}|firefox@advanceelite\\.com|{bb7b7a60-f574-47c2-8a0b-4c56f2da9802})$/","prefs":[],"schema":1480349193877,"blockID":"i856","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1130323","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 Add-on Guidelines.","name":"AdvanceElite (malware)","created":"2015-02-09T15:51:11Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e3d52650-d3e2-4cef-71f7-e6188f56fe4d","last_modified":1480349195286},{"guid":"{458fb825-2370-4973-bf66-9d7142141847}","prefs":["app.update.auto","app.update.enabled","app.update.interval","app.update.url"],"schema":1480349193877,"blockID":"i1024","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1209588","who":"All 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 hides itself in the Add-ons Manager, interrupts the Firefox update process, and reportedly causes other problems to users, in violation of the Add-on Guidelines.","name":"Web Shield","created":"2015-09-29T09:25:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"32c5baa7-d547-eaab-302d-b873c83bfe2d","last_modified":1480349195258},{"guid":"{f2456568-e603-43db-8838-ffa7c4a685c7}","prefs":[],"schema":1480349193877,"blockID":"i778","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 Add-on Guidelines.","name":"Sup-SW","created":"2014-11-07T13:53:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"93568fa2-0cb7-4e1d-e893-d7261e81547c","last_modified":1480349195215},{"guid":"{77BEC163-D389-42c1-91A4-C758846296A5}","prefs":[],"schema":1480349193877,"blockID":"i566","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=964594","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-on Manager.","why":"This add-on is silently installed into Firefox, in violation of the Add-on Guidelines.","name":"V-Bates","created":"2014-03-05T13:20:54Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"080edbac-25d6-e608-abdd-feb1ce7a9a77","last_modified":1480349195185},{"guid":"helper@vidscrab.com","prefs":[],"schema":1480349193877,"blockID":"i1077","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1231010","who":"All Firefox 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 injects remote scripts and injects unwanted content into web pages.","name":"YouTube Video Downloader (from AddonCrop)","created":"2016-01-14T14:32:53Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"36b2e1e0-5fda-bde3-db55-dfcbe24dfd04","last_modified":1480349195157},{"guid":"/^ext@WebexpEnhancedV1alpha[0-9]+\\.net$/","prefs":[],"schema":1480349193877,"blockID":"i535","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=952717","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 generally unwanted by users and uses multiple random IDs in violation of the Add-on Guidelines.","name":"Webexp Enhanced","created":"2014-01-09T11:22:19Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c7d6a30d-f3ee-40fb-5256-138dd4593a61","last_modified":1480349195123},{"guid":"jid1-XLjasWL55iEE1Q@jetpack","prefs":[],"schema":1480349193877,"blockID":"i578","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1002037","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that presents itself as \"Flash Player\" but is really injecting unwanted content into Facebook pages.","name":"Flash Player (malware)","created":"2014-04-28T16:25:03Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1e75b2f0-02fc-77a4-ad2f-52a4caff1a71","last_modified":1480349195058},{"guid":"{a3a5c777-f583-4fef-9380-ab4add1bc2a8}","prefs":[],"schema":1480349193877,"blockID":"i142","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=792132","who":"Todos los usuarios de Firefox que instalaron la versi\u00f3n 4.2 del complemento Cuevana Stream.\r\n\r\nAll Firefox users who have installed version 4.2 of the Cuevana Stream add-on.","why":"Espa\u00f1ol\r\nUna versi\u00f3n maliciosa del complemento Cuevana Stream (4.2) fue colocada en el sitio Cuevana y distribuida a muchos usuarios del sitio. Esta versi\u00f3n recopila informaci\u00f3n de formularios web y los env\u00eda a una direcci\u00f3n remota con fines maliciosos. Se le recomienda a todos los usuarios que instalaron esta versi\u00f3n que cambien sus contrase\u00f1as inmediatamente, y que se actualicen a la nueva versi\u00f3n segura, que es la 4.3.\r\n\r\nEnglish\r\nA malicious version of the Cuevana Stream add-on (4.2) was uploaded to the Cuevana website and distributed to many of its users. This version takes form data and sends it to a remote location with malicious intent. It is recommended that all users who installed this version to update their passwords immediately, and update to the new safe version, version 4.3.\r\n\r\n","name":"Cuevana Stream (malicious version)","created":"2012-09-18T13:37:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"4.2","minVersion":"4.2","targetApplication":[]}],"id":"91e551b9-7e94-60e2-f1bd-52f25844ab16","last_modified":1480349195007},{"guid":"{34712C68-7391-4c47-94F3-8F88D49AD632}","prefs":[],"schema":1480349193877,"blockID":"i922","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:27:31Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"dd350efb-34ac-2bb5-5afd-eed722dbb916","last_modified":1480349194976},{"guid":"PDVDZDW52397720@XDDWJXW57740856.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i846","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128320","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 Add-on Guidelines.","name":"Ge-Force","created":"2015-02-06T15:03:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c33e950c-c977-ed89-c86a-3be8c4be1967","last_modified":1480349194949},{"guid":"{977f3b97-5461-4346-92c8-a14c749b77c9}","prefs":[],"schema":1480349193877,"blockID":"i69","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=729356","who":"All Firefox users who have this add-on installed.","why":"This add-on adds apps to users' accounts, with full access permissions, and sends spam posts using these apps, all without any consent from users.","name":"Zuperface+","created":"2012-02-22T16:41:23Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f105bdc7-7ebd-587c-6344-1533249f50b3","last_modified":1480349194919},{"guid":"discoverypro@discoverypro.com","prefs":[],"schema":1480349193877,"blockID":"i582","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1004231","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, you can enabled it in the Add-ons Manager.","why":"This add-on is silently installed by the CNET installer for MP3 Rocket and probably other software packages. This is in violation of the Add-on Guidelines.","name":"Website Discovery Pro","created":"2014-04-30T16:10:03Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"34eab242-6fbc-a459-a89e-0dc1a0b8355d","last_modified":1480349194878},{"guid":"jid1-bKSXgRwy1UQeRA@jetpack","prefs":[],"schema":1480349193877,"blockID":"i680","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=979856","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 user's systems, in violation of the Add-on Guidelines.","name":"Trusted Shopper","created":"2014-08-01T16:34:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f701b790-b266-c69d-0fba-f2d189cb0f34","last_modified":1480349194851},{"guid":"bcVX5@nQm9l.org","prefs":[],"schema":1480349193877,"blockID":"i848","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128266","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 Add-on Guidelines.","name":"boomdeal","created":"2015-02-09T15:21:17Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f8d6d4e1-b9e6-07f5-2b49-192106a45d82","last_modified":1480349194799},{"guid":"aytac@abc.com","prefs":[],"schema":1480349193877,"blockID":"i504","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947341","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-06T12:07:58Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bfaf8298-dd69-165c-e1ed-ad55584abd18","last_modified":1480349194724},{"guid":"Adobe@flash.com","prefs":[],"schema":1480349193877,"blockID":"i136","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=790100","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware posing as a legitimate Adobe product.","name":"Adobe Flash (malware)","created":"2012-09-10T16:09:06Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"47ac744e-3176-5cb6-1d02-b460e0c7ada0","last_modified":1480349194647},{"guid":"{515b2424-5911-40bd-8a2c-bdb20286d8f5}","prefs":[],"schema":1480349193877,"blockID":"i491","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=940753","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 Add-on Guidelines by making changes that can't be easily reverted.","name":"Connect DLC","created":"2013-11-29T14:52:24Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6d658443-b34a-67ad-934e-cbf7cd407460","last_modified":1480349194580},{"guid":"/^({3f3cddf8-f74d-430c-bd19-d2c9147aed3d}|{515b2424-5911-40bd-8a2c-bdb20286d8f5}|{17464f93-137e-4646-a0c6-0dc13faf0113}|{d1b5aad5-d1ae-4b20-88b1-feeaeb4c1ebc}|{aad50c91-b136-49d9-8b30-0e8d3ead63d0})$/","prefs":[],"schema":1480349193877,"blockID":"i516","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947478","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 Add-on Guidelines by making changes that can't be easily reverted and being distributed under multiple add-on IDs.","name":"Connect DLC","created":"2013-12-20T12:38:20Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"96f8e157-8b8b-8e2e-76cd-6850599b4370","last_modified":1480349194521},{"guid":"wxtui502n2xce9j@no14","prefs":[],"schema":1480349193877,"blockID":"i1012","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1206157","who":"All users who have this add-on installed.","why":"This is a malicious add-on that takes over Facebook accounts.","name":"Video fix (malware)","created":"2015-09-21T13:04:09Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"246798ac-25fa-f4a4-258c-a71f9f6ae091","last_modified":1480349194463},{"guid":"flashX@adobe.com","prefs":[],"schema":1480349193877,"blockID":"i168","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=807052","who":"All Firefox users who have this add-on installed.","why":"This is an exploit proof-of-concept created for a conference presentation, which will probably be copied and modified for malicious purposes. \r\n","name":"Zombie Browser Pack","created":"2012-10-30T12:07:41Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d7c69812-801c-8d8e-12cb-c5171bdc48a1","last_modified":1480349194428},{"guid":"/^(ff\\-)?dodate(kKKK|XkKKK|k|kk|kkx|kR)@(firefox|flash(1)?)\\.pl|dode(ee)?k@firefoxnet\\.pl|(addon|1)@upsolutions\\.pl$/","prefs":[],"schema":1480349193877,"blockID":"i1278","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1312748","who":"Any user with a version of this add-on installed.","why":"This add-on claims to be a flash plugin and it does some work on youtube, but it also steals your facebook and adfly credentials and sends them to a remote server.","name":"Aktualizacja dodatku Flash Add-on","created":"2016-10-27T10:52:53Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"389aec65-a15d-8276-c7a8-691ac283c9f1","last_modified":1480349194386},{"guid":"tmbepff@trendmicro.com","prefs":[],"schema":1480349193877,"blockID":"i1223","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.2 to 9.2.0.1023","created":"2016-05-30T17:07:04Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"9.2.0.1023","minVersion":"9.2","targetApplication":[]}],"id":"46f75b67-2675-bdde-be93-7ea03475d405","last_modified":1480349194331},{"guid":"{4889ddce-7a83-45e6-afc9-1e4f1149fff4}","prefs":[],"schema":1480343836083,"blockID":"i840","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128327","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 Add-on Guidelines.","name":"Cyti Web (malware)","created":"2015-02-06T14:30:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"be600f35-0633-29f3-c571-819e19d85db9","last_modified":1480349193867},{"guid":"{55dce8ba-9dec-4013-937e-adbf9317d990","prefs":[],"schema":1480343836083,"blockID":"i690","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1048647","who":"All Firefox users. 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 users' systems, in violation of the Add-on Guidelines.","name":"Deal Keeper","created":"2014-08-12T16:23:46Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"512b0d40-a10a-5ddc-963b-b9c487eb1422","last_modified":1480349193833},{"guid":"/^new@kuot\\.pro|{13ec6687-0b15-4f01-a5a0-7a891c18e4ee}|rebeccahoppkins(ty(tr)?)?@gmail\\.com|{501815af-725e-45be-b0f2-8f36f5617afc}|{9bdb5f1f-b1e1-4a75-be31-bdcaace20a99}|{e9d93e1d-792f-4f95-b738-7adb0e853b7b}|dojadewaskurwa@gmail\\.com$/","prefs":[],"schema":1480343836083,"blockID":"i1414","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1312748","who":"All users who have this add-on installed.","why":"This add-on claims to be a flash plugin and it does some work on youtube, but it also steals your facebook and adfly credentials and sends them to a remote server.","name":"Aktualizacja dodatku Flash (malware)","created":"2016-10-28T18:06:03Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5cebc983-bc88-d5f8-6807-bd1cbfcd82fd","last_modified":1480349193798},{"guid":"/^pink@.*\\.info$/","prefs":[],"schema":1480343836083,"blockID":"i238","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806543","who":"All Firefox users (Firefox 19 and above) who have any of these add-ons installed.","why":"This is a set of malicious add-ons that affect many users and are installed without their consent.","name":"Pink add-ons (malware)","created":"2012-12-07T13:46:20Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"18.0"}]}],"id":"0d964264-8bd6-b78d-3c6c-92046c7dc8d0","last_modified":1480349193764},{"guid":"{58d2a791-6199-482f-a9aa-9b725ec61362}","prefs":[],"schema":1480343836083,"blockID":"i746","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 Add-on Guidelines.","name":"Start Page","created":"2014-10-17T16:01:53Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8ebbc7d0-635c-b74a-de9f-16eb5837b36a","last_modified":1480349193730},{"guid":"{94cd2cc3-083f-49ba-a218-4cda4b4829fd}","prefs":[],"schema":1480343836083,"blockID":"i590","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1013678","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' profiles, in violation of the Add-on Guidelines.","name":"Value Apps","created":"2014-06-03T16:12:50Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"556b8d4d-d6c2-199d-9f33-8eccca07e8e7","last_modified":1480349193649},{"guid":"contentarget@maildrop.cc","prefs":[],"schema":1480343836083,"blockID":"i818","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1119971","who":"All Firefox users who have this add-on installed.","why":"This is a malicious extension that hijacks Facebook accounts.","name":"Astro Play (malware)","created":"2015-01-12T09:29:19Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"440e9923-027a-6089-e036-2f78937dc193","last_modified":1480349193622},{"guid":"unblocker30__web@unblocker.yt","prefs":[],"schema":1480343836083,"blockID":"i1228","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 originally blocked due to malicious activity.","name":"YouTube Unblocker 3.0","created":"2016-06-01T15:17:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2d83e640-ef9d-f260-f5a3-a1a5c8390bfc","last_modified":1480349193595},{"guid":"noOpus@outlook.com","prefs":[],"schema":1480343836083,"blockID":"i816","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1119659","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":"Full Screen (malware)","created":"2015-01-09T12:52:32Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b64d7cef-8b6c-2575-16bc-732fca7db377","last_modified":1480349193537},{"guid":"{c95a4e8e-816d-4655-8c79-d736da1adb6d}","prefs":[],"schema":1480343836083,"blockID":"i433","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 Add-on Guidelines. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Hotspot Shield","created":"2013-08-09T11:25:49Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b3168278-a8ae-4882-7f26-355bc362bed0","last_modified":1480349193510},{"guid":"{9802047e-5a84-4da3-b103-c55995d147d1}","prefs":[],"schema":1480343836083,"blockID":"i722","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 Add-on Guidelines.","name":"Web Finder Pro","created":"2014-10-07T12:58:14Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"50097c29-26b1-bf45-ffe1-83da217eb127","last_modified":1480349193482},{"guid":"/^({bf9194c2-b86d-4ebc-9b53-1c08b6ff779e}|{61a83e16-7198-49c6-8874-3e4e8faeb4f3}|{f0af464e-5167-45cf-9cf0-66b396d1918c}|{5d9968c3-101c-4944-ba71-72d77393322d}|{01e86e69-a2f8-48a0-b068-83869bdba3d0})$/","prefs":[],"schema":1480343836083,"blockID":"i515","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 Add-on Guidelines by using multiple add-on IDs and making unwanted settings changes.","name":"VisualBee Toolbar","created":"2013-12-20T12:26:49Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"029fa6f9-2351-40b7-5443-9a66e057f199","last_modified":1480349193449},{"guid":"/^({d50bfa5f-291d-48a8-909c-5f1a77b31948}|{d54bc985-6e7b-46cd-ad72-a4a266ad879e}|{d89e5de3-5543-4363-b320-a98cf150f86a}|{f3465017-6f51-4980-84a5-7bee2f961eba}|{fae25f38-ff55-46ea-888f-03b49aaf8812})$/","prefs":[],"schema":1480343836083,"blockID":"i1137","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:42Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"252e18d0-85bc-7bb3-6197-5f126424c9b3","last_modified":1480349193419},{"guid":"ffxtlbr@claro.com","prefs":[],"schema":1480343836083,"blockID":"i218","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=816762","who":"All Firefox users who have installed this add-on.","why":"The Claro Toolbar is side-installed with other software, unexpectedly changing users' settings and then making it impossible for these settings to be reverted by users.","name":"Claro Toolbar","created":"2012-11-29T16:07:00Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e017a3b2-9b37-b8a0-21b0-bc412ae8a7f4","last_modified":1480349193385},{"guid":"/^(.*@(unblocker\\.yt|sparpilot\\.com))|(axtara@axtara\\.com)$/","prefs":[],"schema":1480343836083,"blockID":"i1229","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 originally blocked due to malicious activity.","name":"YouTube Unblocker (various)","created":"2016-06-03T15:28:39Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c677cc5d-5b1e-8aa2-5cea-5a8dddce2ecf","last_modified":1480349193344},{"guid":"/^(j003-lqgrmgpcekslhg|SupraSavings|j003-dkqonnnthqjnkq|j003-kaggrpmirxjpzh)@jetpack$/","prefs":[],"schema":1480343836083,"blockID":"i692","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1048656","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 users' systems, in violation of the Add-on Guidelines.","name":"SupraSavings","created":"2014-08-12T16:27:06Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b0d30256-4581-1489-c241-d2e85b6c38f4","last_modified":1480349193295},{"guid":"helperbar@helperbar.com","prefs":[],"schema":1480343836083,"blockID":"i258","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=817786","who":"All Firefox users who have this add-on installed. This only applies to version 1.0 of Snap.do. Version 1.1 fixed all the issues for which this block was created.","why":"This extension violates a number of our Add-on Guidelines, particularly on installation and settings handling. It also causes some stability problems in Firefox due to the way the toolbar is handled.\r\n\r\nUsers who wish to keep the add-on enabled can enable it again in the Add-ons Manager.","name":"Snap.do","created":"2013-01-28T13:52:26Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0","minVersion":"0","targetApplication":[]}],"id":"f1ede5b8-7757-5ec5-d8ed-1a01889154aa","last_modified":1480349193254},{"guid":"/^((support2_en@adobe14\\.com)|(XN4Xgjw7n4@yUWgc\\.com)|(C7yFVpIP@WeolS3acxgS\\.com)|(Kbeu4h0z@yNb7QAz7jrYKiiTQ3\\.com)|(aWQzX@a6z4gWdPu8FF\\.com)|(CBSoqAJLYpCbjTP90@JoV0VMywCjsm75Y0toAd\\.com)|(zZ2jWZ1H22Jb5NdELHS@o0jQVWZkY1gx1\\.com))$/","prefs":[],"schema":1480343836083,"blockID":"i326","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:49:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3142020b-8af9-1bac-60c5-ce5ad0ff3d42","last_modified":1480349193166},{"guid":"newmoz@facebook.com","prefs":[],"schema":1480343836083,"blockID":"i576","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=997986","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook user accounts and sends spam on the user's behalf.","name":"Facebook Service Pack (malware)","created":"2014-04-22T14:34:42Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d85798d3-9b87-5dd9-ace2-64914b93df77","last_modified":1480349193114},{"guid":"flvto@hotger.com","prefs":[],"schema":1480343836083,"blockID":"i1211","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":"YouTube to MP3 Button","created":"2016-05-04T16:26:32Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a14d355f-719f-3b97-506c-083cc97cebaa","last_modified":1480349193088},{"guid":"{0F827075-B026-42F3-885D-98981EE7B1AE}","prefs":[],"schema":1480343836083,"blockID":"i334","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=862272","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 BrowserProtect extension that is listed on our add-ons site. That one is safe to use.","name":"Browser Protect / bProtector (malware)","created":"2013-04-16T13:25:01Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"aad4545f-8f9d-dd53-2aa8-e8945cad6185","last_modified":1480349192987}]} \ No newline at end of file +{"data":[{"guid":"/^((\\{4c4ceb83-f3f1-ad73-bfe0-259a371ed872\\})|(\\{a941b5ab-8894-41e1-a2ca-c5a6e2769c5f\\})|(\\{56488007-bd74-4702-9b6d-aee8f6cc05ea\\})|(\\{9eebac07-ac86-4be7-928f-e1015f858eee\\})|(\\{5a993517-5be7-480e-a86c-b8e8109fa774\\})|(\\{309ad78e-efff-43cf-910c-76361c536b20\\})|(\\{cefcf45b-dfec-4072-9ffc-317094c69c28\\})|(\\{5b04980b-25e9-4bc6-b6ea-02c58d86cc5e\\})|(\\{0021a844-360f-480e-ac53-47391b7b17b4\\})|(\\{2bed9f51-62a8-4471-b23c-827e6727c794\\})|(\\{7d2130d3-d724-4f58-b6b7-8537a9e09d4c\\})|(\\{ccd3847a-e5ec-4d28-bf98-340230dcbd4d\\})|(\\{83716b9b-6e6e-4471-af76-2d846f5804f3\\})|(\\{5154c03a-4bfc-4b13-86a9-0581a7d8c26d\\})|(\\{24f51c5c-e3f5-4667-bd6c-0be4f6ef5cc2\\})|(\\{73554774-4390-4b00-a5b9-84e8e06d6f3c\\})|(\\{c70cfd12-6dc3-4021-97f2-68057b3b759b\\})|(\\{ef5fe17b-eb6a-4e5e-9c18-9d423525bbbd\\})|(\\{461eb9b4-953c-4412-998e-9452a7cb42e0\\})|(\\{966b00fe-40b0-4d4b-8fde-6deca31c577b\\})|(\\{dab908ac-e1b0-4d7e-bc2e-86a15f37621f\\})|(\\{01a067d3-7bfa-44ac-8da7-2474a0114a7e\\})|(\\{6126261f-d025-4254-a1db-068a48113b11\\})|(\\{6c80453f-05ec-4243-bb71-e1aac5e59cae\\})|(\\{f94ec34b-5590-4518-8546-c1c3a94a5731\\})|(\\{5d4c049e-7433-485a-ac62-dd6e41af1a73\\})|(\\{507f643d-6db8-47fe-af9c-7a7b85a86d83\\})|(\\{5c56eeb4-f97c-4b0d-a72f-8e639fbaf295\\})|(\\{2ef98f55-1e26-40d3-a113-a004618a772e\\})|(\\{77d58874-d516-4b00-b68a-2d987ef83ec5\\})|(\\{7a0755d3-3ba2-4b19-98ce-efcdc36423fc\\})|(\\{47ee3ba1-8974-4f71-b8a4-8033d8c2155f\\})|(\\{a477f774-bc36-4cc8-85bd-99f6b04ea255\\})|(\\{1a2e41e3-4343-4a00-90cd-ce77ac77a8af\\})|(\\{7b180e9a-afd6-4693-94a1-c7b5ed9b46fa\\})|(\\{51f76862-f222-414d-8724-6063f61bbabf\\})|(\\{d47a0c63-ac4c-48ce-8fc7-c5abc81d7f75\\})|(\\{b8adf653-f262-413c-b955-100213b105ad\\})|(\\{ccedf35b-dfd6-417a-80de-fb432948861d\\})|(\\{70e29b0e-7cd8-40df-b560-cf6eb066350d\\})|(\\{9926f8ad-b4c3-4122-a033-1b8a5db416db\\})|(\\{62eefb1c-a2d8-40ba-ab94-9fc2f2d31b2f\\})|(\\{17f14919-00bd-44a4-8c14-78ab9728038f\\})|(\\{20e36a3e-672c-4448-9efb-5750cbffe90c\\})|(\\{6070c95f-6460-4ffd-9846-2bbd7238697f\\})|(\\{1edb8a4e-f105-4623-9e19-e40fb082b132\\})|(\\{223a1503-772d-45eb-8cb8-e2e49563703d\\})|(\\{59e0f01c-1f70-445c-a572-7be5d85549bd\\})|(\\{8ec160b7-1089-4944-a999-a1d6afa71c5d\\})|(\\{d2d111d6-0ea1-4880-ae7b-2e82dff3a719\\})|(\\{cfacacd6-191c-46c4-b78c-8a48289b2829\\})|(\\{1155e72f-2b21-433f-ba9a-5af6ed40c8ee\\})|(\\{583910bd-759f-40f6-b96a-1d678d65650f\\}))$/","prefs":[],"schema":1545162093238,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1514865","why":"Remote script injection and data exfiltration","name":"Various add-ons using .cool domains"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"53168513-103a-4ea0-a48f-bc291354cc9f","last_modified":1545232187960},{"guid":"{56a1e8d2-3ced-4919-aca5-ddd58e0f31ef}","prefs":[],"schema":1544470901949,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1491312","why":"The add-on introduces unwanted functionality for users.","name":"Web Guard (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"1dc366d6-c774-4eca-af19-4f9495c2c55e","last_modified":1544544484935},{"guid":"/^((\\{a99e680b-4349-42a5-b292-79b349bf4f3d\\})|(\\{f09a2393-1e6d-4ae4-a020-4772e94040ae\\})|(\\{c9ed9184-179f-485f-adb8-8bd8e9b7cee6\\})|(\\{085e53da-25a2-4162-906e-6c158ec977ac\\})|(\\{bd6960ba-7c06-493b-8cc4-0964a9968df5\\})|(\\{6eeec42e-a844-4bfd-a380-cfbfc988bd78\\})|(\\{3bbfb999-1c82-422e-b7a8-9e04649c7c51\\})|(\\{bfd229b6-089d-49e8-a09c-9ad652f056f6\\})|(\\{ab23eb77-1c96-4e20-b381-14dec82ee9b8\\})|(\\{ebcce9f0-6210-4cf3-a521-5c273924f5ba\\})|(\\{574aba9d-0573-4614-aec8-276fbc85741e\\})|(\\{12e75094-10b0-497b-92af-5405c053c73b\\})|(\\{99508271-f8c0-4ca9-a5f8-ee61e4bd6e86\\})|(\\{831beefc-cd8c-4bd5-a581-bba13d374973\\})|(\\{c8fe42db-b7e2-49e6-98c4-14ac369473a4\\})|(\\{f8927cca-e6cb-4faf-941d-928f84eb937f\\})|(\\{17e9f867-9402-4b19-8686-f0c2b02d378f\\})|(\\{f12ac367-199b-4cad-8e5a-0a7a1135cad0\\})|(\\{487003ce-5253-4eab-bf76-684f26365168\\})|(\\{487003ce-5213-2ecb-bf16-684f25365161\\}))$/","prefs":[],"schema":1543088493623,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1509864","why":"Add-ons that track users and load remote code, while pretending to provide cursor customization features.","name":"Various cursor and update add-ons (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"a8d942b3-779d-4391-a39c-58c746c13b70","last_modified":1543241996691},{"guid":"{97f19f1f-dbb0-4e50-8b46-8091318617bc}","prefs":[],"schema":1542229276053,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1507191","why":"Fraudulent Adobe Reader add-on","name":"Adobe Reader (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"03120522-ee87-4cf8-891a-acfb248536ff","last_modified":1542272674851},{"guid":"/^((video-downloader@vd\\.io)|(image-search-reverse@an\\.br)|(YouTube\\.Downloader@2\\.8)|(eMoji@ems-al\\.io))$/","prefs":[],"schema":1542023230755,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1506560","why":"Add-ons that contain malicious copies of third-party libraries.","name":"Malware containing unwanted behavior"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"cd079abe-8e8d-476f-a550-63f75ac09fe8","last_modified":1542025588071},{"guid":"/^({b384b75c-c978-4c4d-b3cf-62a82d8f8f12})|({b471eba0-dc87-495e-bb4f-dc02c8b1dc39})|({36f623de-750c-4498-a5d3-ac720e6bfea3})$/","prefs":[],"schema":1541360505662,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1504619","why":"Add-ons that contain unwanted behavior.","name":"Google Translate (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"aa5eefa7-716a-45a6-870b-4697b023d894","last_modified":1541435973146},{"guid":"{80869932-37ba-4dd4-8dfe-2ef30a2067cc}","prefs":[],"schema":1538941301306,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1497161","why":"Malicious page redirection","name":"Iridium (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"dd5b0fa4-48fd-4bf6-943d-34de125bf502","last_modified":1538996335645},{"guid":"admin@vietbacsecurity.com","prefs":[],"schema":1537309741764,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1491716","why":"Logging and sending keystrokes to a remote server.","name":"Vietnamese Input Method (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"89d714f6-9f35-4107-b8af-a16777f66337","last_modified":1537309752952},{"guid":"Safe@vietbacsecurity.com","prefs":[],"schema":1537309684266,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1491717","why":"Logging and sending keystrokes to a remote server.","name":"SafeKids (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"c651780e-c185-4d6c-b509-d34673c158a3","last_modified":1537309741758},{"guid":"/^((\\{c9226c62-9948-4038-b247-2b95a921135b\\})|(\\{5de34d4f-b891-4575-b54b-54c53b4e6418\\})|(\\{9f7ac3be-8f1c-47c6-8ebe-655b29eb7f21\\})|(\\{bb33ccaf-e279-4253-8946-cfae19a35aa4\\}))$/","prefs":[],"schema":1537305338753,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1491298","why":"These add-ons inject remote malicious scripts on Google websites.","name":"Dll and similar (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"54b3e69a-40ae-4be5-b7cf-cf51c526dcfb","last_modified":1537306138745},{"guid":"updater-pro-unlisted@mozilla.com","prefs":[],"schema":1537305285414,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1491306","why":"Redirects search queries.","name":"Updater Pro (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"3108c151-9f25-4eca-8d80-a2fbb2d9bd07","last_modified":1537305338747},{"guid":"/^((\\{686fc9c5-c339-43db-b93a-5181a217f9a6\\})|(\\{eb4b28c8-7f2d-4327-a00c-40de4299ba44\\})|(\\{58d735b4-9d6c-4e37-b146-7b9f7e79e318\\})|(\\{ff608c10-2abc-415c-9fe8-0fdd8e988de8\\})|(\\{5a8145e2-6cbb-4509-a268-f3121429656c\\})|(\\{6d451f29-1d6b-4c34-a510-c1234488b0a3\\})|(\\{de71f09a-3342-48c5-95c1-4b0f17567554\\})|(\\{df106b04-984e-4e27-97b6-3f3150e98a9e\\})|(\\{70DE470A-4DC0-11E6-A074-0C08D310C1A8\\})|(\\{4dcde019-2a1b-499b-a5cd-322828e1279b\\})|(\\{1ec3563f-1567-49a6-bb5c-75d52334b01c\\})|(\\{c140c82e-98e6-49fd-ae17-0627e6f7c5e1\\})|(\\{2581c1f6-5ad9-48d4-8008-4c37dcea1984\\})|(\\{a2bcc6f7-14f7-4083-b4b0-c335edc68612\\})|(\\{4c726bb6-a2af-44ed-b498-794cfd8d8838\\})|(\\{fa6c39a6-cd11-477b-966d-f388f0ba4203\\})|(\\{26c7bd04-18d3-47f5-aeec-bb54e562acf2\\})|(\\{7a961c90-2071-4f94-9d9a-d4e3bbf247c0\\})|(\\{a0481ea2-03f0-4e56-a0e1-030908ecb43e\\})|(\\{c98fb54e-d25f-43f4-bd72-dfaa736391e2\\})|(\\{da57263d-adfc-4768-91f7-b3b076c20d63\\})|(\\{3abb352c-8735-4fb6-9fd6-8117aea3d705\\})|(contactus@unzipper\\.com)|(\\{a1499769-6978-4647-ac0f-78da4652716d\\})|(\\{581D0A4C-1013-11E7-938B-FCD2A0406E17\\})|(\\{68feffe4-bfd8-4fc3-8320-8178a3b7aa67\\})|(\\{823489ae-1bf8-4403-acdd-ea1bdc6431da\\})|(\\{4c0d11c3-ee81-4f73-a63c-da23d8388abd\\})|(\\{dc7d2ecc-9cc3-40d7-93ed-ef6f3219bd6f\\})|(\\{21f29077-6271-46fc-8a79-abaeedb2002b\\})|(\\{55d15d4d-da76-44ab-95a3-639315be5ef8\\})|(\\{edfbec6b-8432-4856-930d-feb334fb69c1\\})|(\\{f81a3bf7-d626-48cf-bd24-64e111ddc580\\})|(\\{4407ab94-60ae-4526-b1ab-2521ffd285c7\\})|(\\{4aa2ba11-f87b-4950-8250-cd977252e556\\})|(\\{646b0c4d-4c6f-429d-9b09-37101b36ed1c\\})|(\\{1b2d76f1-4906-42d2-9643-0ce928505dab\\})|(\\{1869f89d-5f15-4c0d-b993-2fa8f09694fb\\})|(\\{7e4edd36-e3a6-4ddb-9e98-22b4e9eb4721\\})|(\\{e9c9ad8c-84ba-43f2-9ae2-c1448694a2a0\\})|(\\{6b2bb4f0-78ea-47c2-a03a-f4bf8f916eda\\})|(\\{539e1692-5841-4ac6-b0cd-40db15c34738\\}))$/","prefs":[],"schema":1536183366865,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1488578","why":"These add-ons take away user control by redirecting search.","name":"Tightrope search add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"81eb67a5-3fdb-448c-aadd-5f4d3b7cf281","last_modified":1536186868443},{"guid":"/^((\\{f01a138a-c051-4bc7-a90a-21151ce05755\\})|(\\{50f78250-63ce-4191-b7c3-e0efc6309b64\\})|(\\{3d2b2ff4-126b-4874-a57e-ed7dac670230\\})|(\\{e7c1abd4-ec8e-4519-8f3a-7bd763b8a353\\})|(\\{4d40bf75-fbe2-45f6-a119-b191c2dd33b0\\})|(\\{08df7ff2-dee0-453c-b85e-f3369add18ef\\}))$/","prefs":[],"schema":1535990752587,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1488248","why":"Add-ons that inject malicious remote code.","name":"Various Malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"67f72634-e170-4860-a5a3-133f160ebc32","last_modified":1535992146430},{"guid":"/^((\\{1cfaec8b-a1cb-4fc5-b139-897a22a71390\\})|(\\{2ed89659-09c1-4280-9dd7-1daf69272a86\\})|(\\{5c82f5cc-31f8-4316-bb7d-45a5c05227e6\\})|(\\{6a98a401-378c-4eac-b93c-da1036a00c6c\\})|(\\{6d83ebde-6396-483c-b078-57c9d445abfa\\})|(\\{07efb887-b09f-4028-8f7f-c0036d0485ea\\})|(\\{36f4882f-ff0b-4865-8674-ef02a937f7da\\})|(\\{61dea9e9-922d-4218-acdd-cfef0fdf85e7\\})|(\\{261be583-9695-48e0-bd93-a4feafaa18e6\\})|(\\{401ae092-6c5c-4771-9a87-a6827be80224\\})|(\\{534b7a84-9fc6-4d7c-9d67-e3365d2ae088\\})|(\\{552a949f-6d0e-402d-903d-1550075541ba\\})|(\\{579b8de8-c461-4301-ab09-695579f9b7c7\\})|(\\{754d3be3-7337-488e-a5bb-86487e495495\\})|(\\{2775f69b-75e4-46cb-a5aa-f819624bd9a6\\})|(\\{41290ec4-b3f0-45ad-b8f3-7bcbca01ed0d\\})|(\\{0159131f-d76f-4365-81cd-d6831549b90a\\})|(\\{01527332-1170-4f20-a65b-376e25438f3d\\})|(\\{760e6ff0-798d-4291-9d5f-12f48ef7658b\\})|(\\{7e31c21c-156a-4783-b1ce-df0274a89c75\\})|(\\{8e247308-a68a-4280-b0e2-a14c2f15180a\\})|(\\{b6d36fe8-eca1-4d85-859e-a4cc74debfed\\})|(\\{bab0e844-2979-407f-9264-c87ebe279e72\\})|(\\{d00f78fe-ee73-4589-b120-5723b9a64aa0\\})|(\\{d59a7294-6c08-4ad5-ba6d-a3bc41851de5\\})|(\\{d145aa5b-6e66-40cb-8a08-d55a53fc7058\\})|(\\{d79962e3-4511-4c44-8a40-aed6d32a53b1\\})|(\\{e3e2a47e-7295-426f-8517-e72c31da3f23\\})|(\\{e6348f01-841d-419f-8298-93d6adb0b022\\})|(\\{eb6f8a22-d96e-4727-9167-be68c7d0a7e9\\})|(\\{fdd72dfe-e10b-468b-8508-4de34f4e95e3\\}))$/","prefs":[],"schema":1535830899087,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1487472","why":"Several add-ons that change forcefully override search settings.","name":"Various malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"43f11241-88e3-4139-9f02-ac39489a241f","last_modified":1535990735167},{"guid":"/^((application2@fr-metoun\\.com)|(application@br-annitop\\.com)|(application@br-atoleg\\.com)|(application@br-cholty\\.com)|(application@br-debozoiz\\.com)|(application@br-echite\\.com)|(application@br-estracep\\.com)|(application@br-exatrom\\.com)|(application@br-iginot\\.com)|(application@br-imastifi\\.com)|(application@br-isobiv\\.com)|(application@br-ludimaro\\.com)|(application@br-pintoula\\.com)|(application@br-proufta\\.com)|(application@br-qhirta\\.com)|(application@br-qibizar\\.com)|(application@br-qopletr\\.com)|(application@br-roblaprouf\\.com)|(application@br-rosalop\\.com)|(application@br-samalag\\.com)|(application@br-sopreni\\.com)|(application@br-stoumo\\.com)|(application@br-villonat\\.com)|(application@br-zoobre\\.com)|(application@de-barbuna\\.com)|(application@de-bicelou\\.com)|(application@de-blabuma\\.com)|(application@de-dalofir\\.com)|(application@de-elplic\\.com)|(application@de-erotah\\.com)|(application@de-ertuck\\.com)|(application@de-eurosty\\.com)|(application@de-ezigat\\.com)|(application@de-lorelam\\.com)|(application@de-losimt\\.com)|(application@de-luchil\\.com)|(application@de-miligap\\.com)|(application@de-open-dog\\.com)|(application@de-rydima\\.com)|(application@de-slapapi\\.com)|(application@de-soqano\\.com)|(application@de-treboola\\.com)|(application@de-vasurk\\.com)|(application@de-ygivas\\.com)|(application@es-biloufer\\.com)|(application@es-boulass\\.com)|(application@es-cemaseur\\.com)|(application@es-elixet\\.com)|(application@es-gestona\\.com)|(application@es-glicalol\\.com)|(application@es-griloup\\.com)|(application@es-iblep\\.com)|(application@es-iglere\\.com)|(application@es-jounyl\\.com)|(application@es-klepst\\.com)|(application@es-nofinaj\\.com)|(application@es-ofarnut\\.com)|(application@es-phistouquet\\.com)|(application@es-pronzal\\.com)|(application@es-roterf\\.com)|(application@es-taapas\\.com)|(application@es-tatoflex\\.com)|(application@fr-acomyl\\.com)|(application@fr-avortep\\.com)|(application@fr-blicac\\.com)|(application@fr-bloubil\\.com)|(application@fr-carazouco\\.com)|(application@fr-cichalou\\.com)|(application@fr-consimis\\.com)|(application@fr-cropam\\.com)|(application@fr-deplitg\\.com)|(application@fr-doadoto\\.com)|(application@fr-domeoco\\.com)|(application@fr-domlaji\\.com)|(application@fr-eferif\\.com)|(application@fr-eivlot\\.com)|(application@fr-eristrass\\.com)|(application@fr-ertike\\.com)|(application@fr-esiliq\\.com)|(application@fr-fedurol\\.com)|(application@fr-grilsta\\.com)|(application@fr-hyjouco\\.com)|(application@fr-intramys\\.com)|(application@fr-istrubil\\.com)|(application@fr-javelas\\.com)|(application@fr-jusftip\\.com)|(application@fr-lolaji\\.com)|(application@fr-macoulpa\\.com)|(application@fr-mareps\\.com)|(application@fr-metoun\\.com)|(application@fr-metyga\\.com)|(application@fr-mimaloy\\.com)|(application@fr-monstegou\\.com)|(application@fr-oplaff\\.com)|(application@fr-ortisul\\.com)|(application@fr-pastamicle\\.com)|(application@fr-petrlimado\\.com)|(application@fr-pinadolada\\.com)|(application@fr-raepdi\\.com)|(application@fr-soudamo\\.com)|(application@fr-stoumo\\.com)|(application@fr-stropemer\\.com)|(application@fr-tlapel\\.com)|(application@fr-tresdumil\\.com)|(application@fr-troglit\\.com)|(application@fr-troplip\\.com)|(application@fr-tropset\\.com)|(application@fr-vlouma)|(application@fr-yetras\\.com)|(application@fr-zorbil\\.com)|(application@fr-zoublet\\.com)|(application@it-bipoel\\.com)|(application@it-eneude\\.com)|(application@it-glucmu\\.com)|(application@it-greskof\\.com)|(application@it-gripoal\\.com)|(application@it-janomirg\\.com)|(application@it-lapretofe\\.com)|(application@it-oomatie\\.com)|(application@it-platoks\\.com)|(application@it-plopatic\\.com)|(application@it-riploi\\.com)|(application@it-sabuf\\.com)|(application@it-selbamo\\.com)|(application@it-sjilota\\.com)|(application@it-stoploco\\.com)|(application@it-teryom\\.com)|(application@it-tyhfepa\\.com)|(application@it-ujdilon\\.com)|(application@it-zunelrish\\.com)|(application@uk-ablapol\\.com)|(application@uk-blamap\\.com)|(application@uk-cepamoa\\.com)|(application@uk-cloakyz\\.com)|(application@uk-crisofil\\.com)|(application@uk-donasip\\.com)|(application@uk-fanibi\\.com)|(application@uk-intramys\\.com)|(application@uk-klastaf\\.com)|(application@uk-liloust\\.com)|(application@uk-logmati\\.com)|(application@uk-manulap\\.com)|(application@uk-misafou\\.com)|(application@uk-nedmaf\\.com)|(application@uk-optalme\\.com)|(application@uk-plifacil\\.com)|(application@uk-poulilax\\.com)|(application@uk-rastafroc\\.com)|(application@uk-ruflec\\.com)|(application@uk-sabrelpt\\.com)|(application@uk-sqadipt\\.com)|(application@uk-tetsop\\.com)|(application@uk-ustif\\.com)|(application@uk-vomesq\\.com)|(application@uk-vrinotd\\.com)|(application@us-estuky\\.com)|(application@us-lesgsyo\\.com)|(applicationY@search-lesgsyo\\.com)|(\\{88069ce6-2762-4e02-a994-004b48bd83c1\\}))$/","prefs":[],"schema":1535701078449,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1487627","why":"Add-ons whose main purpose is to track user browsing behavior.","name":"Abusive add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"914ec360-d35e-4420-a88f-1bad3513f054","last_modified":1535705400394},{"guid":"/^((\\{35253b0b-8109-437f-b8fa-d7e690d3bde1\\})|(\\{0c8d774c-0447-11e7-a3b1-1b43e3911f03\\})|(\\{c11f85de-0bf8-11e7-9dcd-83433cae2e8e\\})|(\\{f9f072c8-5357-11e7-bb4c-c37ea2335fb4\\})|(\\{b6d09408-a35e-11e7-bc48-f3e9438e081e\\}))$/","prefs":[],"schema":1535658090284,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1486754","why":"Add-ons that execute remote malicious code.","name":"Several malicious add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"56bd2f99-57eb-4904-840a-23ca155d93ad","last_modified":1535701073599},{"guid":"/^((fireAnalytics\\.download@mozilla\\.com)|(fireabsorb@mozilla\\.com)|(fireaccent@mozilla\\.com)|(fireaccept@mozilla\\.com)|(fireads@mozilla\\.com)|(firealerts@mozilla\\.com)|(fireapi@mozilla\\.com)|(fireapp@mozilla\\.com)|(fireattribution@mozilla\\.com)|(fireauthenticator@mozilla\\.com)|(firecalendar@mozilla\\.com)|(firemail@mozilla\\.com)|(firemarketplace@mozilla\\.com)|(firequestions@mozilla\\.com)|(firescript@mozilla\\.com)|(firesheets@mozilla\\.com)|(firespam@mozilla\\.com)|(firesuite@mozilla\\.com)|(\\{3b6dfc8f-e8ed-4b4c-b616-bdc8c526ac1d\\})|(\\{834f87db-0ff7-4518-89a0-0167a963a869\\})|(\\{4921fe4d-fbe6-4806-8eed-346d7aff7c75\\})|(\\{07809949-bd7d-40a6-a17b-19807448f77d\\})|(\\{68968617-cc8b-4c25-9c38-34646cdbe43e\\})|(\\{b8b2c0e1-f85d-4acd-aeb1-b6308a473874\\})|(\\{bc0b3499-f772-468e-9de6-b4aaf65d2bbb\\}))$/","prefs":[],"schema":1535555549913,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1486636","why":"Add-ons that hijack search settings.","name":"Various malicious add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"fcd12629-43df-4751-9654-7cc008f8f7c0","last_modified":1535555562143},{"guid":"/^((\\{25211004-63e4-4a94-9c71-bdfeabb72bfe\\})|(\\{cbf23b92-ea55-4ca9-a5ae-f4197e286bc8\\})|(\\{7ac0550e-19cb-4d22-be12-b0b352144b33\\})|(Mada111@mozilla\\.com)|(\\{c71709a9-af59-4958-a587-646c8c314c16\\})|(\\{6ac3f3b4-18db-4f69-a210-7babefd94b1e\\})|(addon@fastsearch\\.me)|(\\{53d152fa-0ae0-47f1-97bf-c97ca3051562\\})|(\\{f9071611-24ee-472b-b106-f5e2f40bbe54\\})|(\\{972920f1-3bfd-4e99-b605-8688a94c3c85\\})|(\\{985afe98-fa74-4932-8026-4bdc880552ac\\})|(\\{d96a82f5-5d3e-46ed-945f-7c62c20b7644\\})|(\\{3a036dc5-c13b-499a-a62d-e18aab59d485\\})|(\\{49574957-56c6-4477-87f1-1ac7fa1b2299\\})|(\\{097006e8-9a95-4f7c-9c2f-59f20c61771c\\})|(\\{8619885d-0380-467a-b3fe-92a115299c32\\})|(\\{aa0587d6-4760-4abe-b3a1-2a5958f46775\\})|(\\{bdada7ae-cf89-46cf-b1fe-f3681f596278\\})|(\\{649bead3-df51-4023-8090-02ceb2f7095a\\})|(\\{097c3142-0b68-416a-9919-9dd576aedc17\\})|(\\{bc3cced8-51f0-4519-89ee-56706b67ea4b\\})|(\\{796da6e3-01c0-4c63-96dd-1737710b2ff6\\}))$/","prefs":[],"schema":1535485297866,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1487083","why":"Add-ons that hijack search settings and contain other unwanted features.","name":"Vairous malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"016676cc-c381-4c01-adcf-2d46f48142d0","last_modified":1535550828514},{"guid":"/^((Timemetric@tmetric)|(image-fastpicker@eight04.blogspot\\.com)|(textMarkertool@underFlyingBirches\\.org)|(youpanel@jetpack)|({0ff32ce0-dee9-4e7e-9260-65e58373e21d})|({4ca00873-7e8d-4ada-b460-96cad0eb8fa9})|({6b427f73-2ee1-4256-b69d-7dc253ebe030})|({6f13489d-b274-45b6-80fa-e9daa140e1a4})|({40a9d23b-09ef-4c82-ae1d-7fc5c067e987})|({205c2185-ebe4-4106-92ab-0ffa7c4efcbb})|({256ec7b0-57b4-416d-91c1-2bfdf01b2438})|({568db771-c718-4587-bcd0-e3728ee53550})|({5782a0f1-de26-42e5-a5b3-dae9ec05221b})|({9077390b-89a9-41ad-998f-ab973e37f26f})|({8e7269ac-a171-4d9f-9c0a-c504848fd52f})|({3e6586e2-7410-4f10-bba0-914abfc3a0b4})|({b3f06312-93c7-4a4f-a78b-f5defc185d8f})|({c1aee371-4401-4bab-937a-ceb15c2323c1})|({c579191c-6bb8-4795-adca-d1bf180b512d})|({d0aa0ad2-15ed-4415-8ef5-723f303c2a67})|({d8157e0c-bf39-42eb-a0c3-051ff9724a8c})|({e2a4966f-919d-4afc-a94f-5bd6e0606711})|({ee97f92d-1bfe-4e9d-816c-0dfcd63a6206}))$/","prefs":[],"schema":1535356061028,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1485145","why":"Add-ons that run remote malicious code from websites that trick the user into installing the add-on.","name":"Malware running remote malicious code"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"a0d44ee3-9492-47d7-ac1c-35f520e819ae","last_modified":1535393877555},{"guid":"/^((fastplayer@fastsearch\\.me)|(ff-search-flash-unlisted@mozilla\\.com)|(inspiratiooo-unlisted@mozilla\\.com)|(lite-search-ff-unlisted@mozilla\\.com)|(mysearchprotect-unlisted@mozilla\\.com)|(pdfconverter-unlisted@mozilla\\.com)|(plugin-search-ff-unlisted@mozilla\\.com)|(pro-search-ff-unlisted@mozilla\\.com)|(pro-search-unlisted@mozilla\\.com)|(searchincognito-unlisted@mozilla\\.com)|(socopoco-search@mozilla\\.com)|(socopoco-unlisted@mozilla\\.com)|(\\{08ea1e08-e237-42e7-ad60-811398c21d58\\})|(\\{0a56e2a0-a374-48b6-9afc-976680fab110\\})|(\\{193b040d-2a00-4406-b9ae-e0d345b53201\\})|(\\{1ffa2e79-7cd4-4fbf-8034-20bcb3463d20\\})|(\\{528cbbe2-3cde-4331-9344-e348cb310783\\})|(\\{6f7c2a42-515a-4797-b615-eaa9d78e8c80\\})|(\\{be2a3fba-7ea2-48b9-bbae-dffa7ae45ef8\\})|(\\{c0231a6b-c8c8-4453-abc9-c4a999a863bd\\}))$/","prefs":[],"schema":1535139689975,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1483854","why":"Add-ons overwriting search changes without consent and remote script injection","name":"\"Flash Updater\" and search redirectors"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"46779b5a-2369-4007-bff0-857a657626ba","last_modified":1535153064735},{"guid":"/^(({aeac6f90-5e17-46fe-8e81-9007264b907d})|({6ee25421-1bd5-4f0c-9924-79eb29a8889d})|({b317fa11-c23d-45b9-9fd8-9df41a094525})|({16ac3e8f-507a-4e04-966b-0247a196c0b4}))$/","prefs":[],"schema":1534946831027,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1485609","why":"Add-ons that take away user control by changing search settings.","name":"Search hijacking malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"ab029019-0e93-450a-8c11-ac31556c2a77","last_modified":1535020847820},{"guid":"@testpilot-addon","prefs":[],"schema":1534876689555,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1485083","why":"Older versions of the TestPilot add-on cause stability issues in Firefox.","name":"Testpilot (old, broken versions)"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.0.8-dev-259fe19","minVersion":"0"}],"id":"ee2d12a4-ea1d-4f3d-9df1-4303e8993f18","last_modified":1534946810180},{"guid":"/(({a4d84dae-7906-4064-911b-3ad2b1ec178b})|({d7e388c5-1cd0-4aa6-8888-9172f90951fb})|({a67f4004-855f-4e6f-8ef0-2ac735614967})|({25230eb3-db35-4613-8c03-e9a3912b7004})|({37384122-9046-4ff9-a31f-963767d9fe33})|({f1479b0b-0762-4ba2-97fc-010ea9dd4e73})|({53804e15-69e5-4b24-8883-c8f68bd98cf6})|({0f2aec80-aade-46b8-838c-54eeb595aa96})|({b65d6378-6840-4da6-b30e-dee113f680aa})|({e8fc3f33-14b7-41aa-88a1-d0d7b5641a50})|({c49ee246-d3d2-4e88-bfdb-4a3b4de9f974}))$/","prefs":[],"schema":1534621297612,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1484536","why":"Add-ons that don't respect user choice by overriding search.","name":"Search hijacking add-ons (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"01c22882-868b-43e1-bb23-29d5dc7bc11b","last_modified":1534781959544},{"guid":"/^((firefox@browser-security\\.de)|(firefox@smarttube\\.io)|({0fde9597-0508-47ff-ad8a-793fa059c4e7})|(info@browser-privacy\\.com)|({d3b98a68-fd64-4763-8b66-e15e47ef000a})|({36ea170d-2586-45fb-9f48-5f6b6fd59da7})|(youtubemp3converter@yttools\\.io)|(simplysearch@dirtylittlehelpers\\.com)|(extreme@smarttube\\.io)|(selfdestructingcookies@dirtylittlehelpers\\.com)|({27a1b6d8-c6c9-4ddd-bf20-3afa0ccf5040})|({2e9cae8b-ee3f-4762-a39e-b53d31dffd37})|(adblock@smarttube\\.io)|({a659bdfa-dbbe-4e58-baf8-70a6975e47d0})|({f9455ec1-203a-4fe8-95b6-f6c54a9e56af})|({8c85526d-1be9-4b96-9462-aa48a811f4cf})|(mail@quick-buttons\\.de)|(youtubeadblocker@yttools\\.io)|(extension@browser-safety\\.org)|(contact@web-security\\.com)|(videodownloader@dirtylittlehelpers\\.com)|(googlenotrack@dirtylittlehelpers\\.com)|(develop@quick-amz\\.com))$/","prefs":[],"schema":1534448497752,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1483995","why":"Sending user data to remote servers unnecessarily, and potential for remote code execution. Suspicious account activity for multiple accounts on AMO.","name":"Web Security and others"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"96b2e7d5-d4e4-425e-b275-086dc7ccd6ad","last_modified":1534449179691},{"guid":"/^((de\\.firefoxextension12345@asdf\\.pl)|(deex1@de\\.com)|(esex1@ese\\.com)|(estrellach@protonmail\\.com)|(fifi312@protonmail\\.com)|(finex1@fin\\.com)|(firefoxextension123@asdf\\.pl)|(firefoxextension1234@asdf\\.pl)|(firefoxextension12345@asdf\\.pl)|(firefoxextension123456@asdf\\.pl)|(frexff1@frexff1\\.com)|(frexff2@frexff2\\.com)|(frexff3@frexff3\\.com)|(ind@niepodam\\.pl)|(jacob4311@protonmail\\.com)|(javonnu144@protonmail\\.com)|(keellon33-ff@protonmail\\.com)|(keellon33@protonmail\\.com)|(masetoo4113@protonmail\\.com)|(mikecosenti11@protonmail\\.com)|(paigecho@protonmail\\.com)|(salooo12@protonmail\\.com)|(swex1@swe\\.com)|(swex2@swe\\.com)|(swex3@swe\\.com)|(willburpoor@protonmail\\.com)|(williamhibburn@protonmail\\.com)|)$/","prefs":[],"schema":1534415492022,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1483769","why":"Malware targeting Facebook","name":"Facebook malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"202fbae4-e904-430a-a244-63b0fb04385f","last_modified":1534415530239},{"guid":"/^((@svuznnqyxinw)|(myprivacytools@besttools\\.com)|(powertools@penprivacy\\.com)|(privacypro@mybestprivacy\\.com)|(realsecure@top10\\.com)|(rlbvpdfrlbgx@scoutee\\.net)|(vfjkurlfijwz@scoutee\\.net))$/","prefs":[],"schema":1534382102271,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1482322","why":"Add-ons that change the default search engine, taking away user control.","name":"Search hijacking add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"df852b6a-28be-4b10-9285-869f4761f111","last_modified":1534382538298},{"guid":"/^(({1a3fb414-0945-405c-a62a-9fe5e1a50c69})|({1a45f6aa-d80a-4317-84d2-0ce43671b08a})|({2d52a462-8bec-4708-9cd1-894b682bdc78})|({3f841cfc-de5a-421f-8bd7-2bf1d943b02a})|({5c7601bf-522b-47e5-b0f0-ea0e706af443})|({7ebe580f-71c9-4ef8-8073-f38deaeb9dfb})|({8b2188fd-1daf-4851-b387-28d964014353})|({8cee42ac-f1fe-40ae-aed6-24e3b76b2f77})|({8d13c4a9-5e8c-47a6-b583-681c83164ac9})|({9b1d775a-1877-45c9-ad48-d6fcfa4fff39})|({9efdbe5f-6e51-4a35-a41b-71dc939e6221})|({23f63efb-156e-440b-a96c-118bebc21057})|({026dfc8c-ecc8-41ba-b45f-70ffbd5cc672})|({34aa433c-27e9-4c87-a662-9f82f99eb9af})|({36f34d69-f22f-47c3-b4cd-4f37b7676107})|({39bd8607-0af4-4d6b-bd69-9a63c1825d3c})|({48c6ad6d-297c-4074-8fef-ca5f07683859})|({54aa688d-9504-481d-ba75-cfee421b98e0})|({59f59748-e6a8-4b41-87b5-9baadd75ddef})|({61d99407-1231-4edc-acc8-ab96cbbcf151})|({68ca8e3a-397a-4135-a3af-b6e4068a1eae})|({71beafd6-779b-4b7d-a78b-18a107277b59})|({83ed90f8-b07e-4c45-ba6b-ba2fe12cebb6})|({231dfb44-98e0-4bc4-b6ee-1dac4a836b08})|({273f0bce-33f4-45f6-ae03-df67df3864c2})|({392f4252-c731-4715-9f8d-d5815f766abb})|({484ec5d0-4cfd-4d96-88d0-a349bfc33780})|({569dbf47-cc10-41c4-8fd5-5f6cf4a833c7})|({578cad7a-57d5-404d-8dda-4d30de33b0c2})|({986b2c3f-e335-4b39-b3ad-46caf809d3aa})|({1091c11f-5983-410e-a715-0968754cff54})|({2330eb8a-e3fe-4b2e-9f17-9ddbfb96e6f5})|({5920b042-0af1-4658-97c1-602315d3b93d})|({6331a47f-8aae-490c-a9ad-eae786b4349f})|({6698b988-c3ef-4e1f-8740-08d52719eab5})|({30516f71-88d4-489b-a27f-d00a63ad459f})|({12089699-5570-4bf6-890f-07e7f674aa6e})|({84887738-92bf-4903-a5e8-695fd078c657})|({8562e48e-3723-412a-9ebd-b33d3d3b29dd})|({6e449795-c545-41be-92c0-5d467c147389})|({1e369c7c-6b61-436e-8978-4640687670d6})|({a03d427a-bd2e-42b6-828f-a57f38fac7b5})|({a77fc9b9-6ebb-418d-b0b6-86311c191158})|({a368025b-9828-43a1-8a5c-f6fab61c9be9})|({b1908b02-410d-4778-8856-7e259fbf471d})|({b9425ace-c2e9-4ec4-b564-4062546f4eca})|({b9845b5d-70c9-419c-a9a5-98ea8ee5cc01})|({ba99fee7-9806-4e32-8257-a33ffc3b8539})|({bdf8767d-ae4c-4d45-8f95-0ba29b910600})|({c6c4a718-cf91-4648-aa9b-170d66163cf2})|({ca0f2988-e1a8-4e83-afde-0dca56a17d5f})|({cac5db09-979b-40e3-8c8e-d96397b0eecb})|({d3b5280b-f8d8-4669-bdf6-91f23ae58042})|({d73d2f6a-ea24-4b1b-8c76-563fce9f786d})|({d77fed37-85c0-4b94-89bb-0d2849472b8d})|({d371abec-84bb-481b-acbf-235639451127})|({de47a3b4-dad1-4f4a-bdd6-8666586e29e8})|({ded6afad-2aaa-446b-b6bd-b12a8a61c945})|({e0c3a1ca-8e21-4d1b-b53b-ea115cf59172})|({e6bbf496-6489-4b48-8e5a-799aad4aa742})|({e63b262a-f9b8-4496-9c4b-9d3cbd6aea90})|({e73c1b5d-20f7-4d86-ad16-9de3c27718e2})|({eb01dc49-688f-4a21-aa8d-49bd88a8f319})|({edc9816b-60b4-493c-a090-01125e0b8018})|({effa2f97-0f07-44c8-99cb-32ac760a0621})|({f6e6fd9b-b89f-4e8d-9257-01405bc139a6})|({ff87977a-fefb-4a9d-b703-4b73dce8853d})|({ffea9e62-e516-4238-88a7-d6f9346f4955}))$/","prefs":[],"schema":1534335096640,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1483191","why":"Add-ons that change the default search engine, taking away user control.","name":"Search hijacking add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"d9892a76-b22e-40bd-8073-89b0f8110ec7","last_modified":1534336165428},{"guid":"/^((Timemetric@tmetric)|(textMarkertool@underFlyingBirches\\.org)|(youpanel@jetpack)|({6f13489d-b274-45b6-80fa-e9daa140e1a4})|({568db771-c718-4587-bcd0-e3728ee53550})|({829827cd-03be-4fed-af96-dd5997806fb4})|({9077390b-89a9-41ad-998f-ab973e37f26f})|({8e7269ac-a171-4d9f-9c0a-c504848fd52f})|({aaaffe20-3306-4c64-9fe5-66986ebb248e})|({bf153de7-cdf2-4554-af46-29dabfb2aa2d})|({c579191c-6bb8-4795-adca-d1bf180b512d})|({e2a4966f-919d-4afc-a94f-5bd6e0606711})|({ee97f92d-1bfe-4e9d-816c-0dfcd63a6206}))$/","prefs":[],"schema":1534275699570,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1483206","why":"Add-ons that execute malicious remote code","name":"Various malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"2734325e-143b-4962-98bf-4b18c77407e2","last_modified":1534334500118},{"guid":"/^(({0f9e469e-4245-43f8-a7a8-7e730f80d284})|({117ca2f3-df4c-4e17-a5c5-b49077e9c731})|({11db147a-a1cb-43dd-9c05-0d11683483e1})|({1ed2af70-9e89-42db-a9e8-17ae594003ac})|({24ed6bdc-3085-413b-a62e-dc5dd30272f4})|({2aa19a7a-2a43-4e0d-a3dc-abb33fa7e2b6})|({3d6fbbb3-6c80-47bb-af20-56fcaebcb9ca})|({42f4c194-8929-42b9-a9a3-afa56dd0913b})|({46740fa0-896d-4f2e-a240-9478865c47c2})|({4718da68-a373-4a03-a77b-0f49b8bb40ee})|({4d41e0b8-bf7e-45ab-bd90-c426b420e3ee})|({50957a38-c15d-42da-94f5-325bc74a554c})|({5650fc63-a7c5-4627-8d0a-99b20dcbd94b})|({5c5c38ec-08bf-493a-9352-6ccf25d60c08})|({67ecb446-9ccd-4193-a27f-7bd1521bd03c})|({71f01ffe-226d-4634-9b21-968f5ce9f8f5})|({72f31855-2412-4998-a6ff-978f89bba0c3})|({7b3c1e86-2599-4e1a-ad98-767ae38286c8})|({7c37463c-001e-4f58-9e88-aaab2a624551})|({7de64f18-8e6b-4c41-9b05-d8872b418026})|({82dcf841-c7e1-4764-bb47-caa28909e447})|({872f20ea-196e-4d11-8835-1cc4c877b1b8})|({8efee317-546f-418d-82d3-60cc5187acf5})|({93deeba1-0126-43f7-a94d-4eecfce53b33})|({9cc12446-16da-4200-b284-d5fc18670825})|({9cd27996-6068-4597-8e97-bb63f783a224})|({9fdcedc7-ffde-44c3-94f6-4196b1e0d9fc})|({a191563e-ac30-4c5a-af3d-85bb9e9f9286})|({a4cb0430-c92e-44c6-9427-6a6629c4c5f6})|({a87f1b9b-8817-4bff-80fd-db96020c56c8})|({ae29a313-c6a9-48be-918d-1e4c67ba642f})|({b2cea58a-845d-4394-9b02-8a31cfbb4873})|({b420e2be-df31-4bea-83f4-103fe0aa558c})|({b77afcab-0971-4c50-9486-f6f54845a273})|({b868c6f4-5841-4c14-86ee-d60bbfd1cec1})|({b99ae7b1-aabb-4674-ba8f-14ed32d04e76})|({b9bb8009-3716-4d0c-bcb4-35f9874e931e})|({c53c4cbc-04a7-4771-9e97-c08c85871e1e})|({ce0d1384-b99b-478e-850a-fa6dfbe5a2d4})|({cf8e8789-e75d-4823-939f-c49a9ae7fba2})|({d0f67c53-42b5-4650-b343-d9664c04c838})|({dfa77d38-f67b-4c41-80d5-96470d804d09})|({e20c916e-12ea-445b-b6f6-a42ec801b9f8})|({e2a4966f-919d-4afc-a94f-5bd6e0606711})|({e7d03b09-24b3-4d99-8e1b-c510f5d13612})|({fa8141ba-fa56-414e-91c0-898135c74c9d})|({fc99b961-5878-46b4-b091-6d2f507bf44d})|(firedocs@mozilla\\.com)|(firetasks@mozilla\\.com)|(getta@mozilla\\.com)|(javideo@mozilla\\.com)|(javideo2@mozilla\\.com)|(javideos@mozilla\\.com)|(javideosz@mozilla\\.com)|(search_free@mozilla\\.com)|(search-unlisted@mozilla\\.com)|(search-unlisted101125511@mozilla\\.com)|(search-unlisted10155511@mozilla\\.com)|(search-unlisted1025525511@mozilla\\.com)|(search-unlisted1099120071@mozilla\\.com)|(search-unlisted1099125511@mozilla\\.com)|(search-unlisted109925511@mozilla\\.com)|(search-unlisted11@mozilla\\.com)|(search-unlisted111@mozilla\\.com)|(search-unlisted12@mozilla\\.com)|(search-unlisted14400770034@mozilla\\.com)|(search-unlisted144007741154@mozilla\\.com)|(search-unlisted144436110034@mozilla\\.com)|(search-unlisted14454@mozilla\\.com)|(search-unlisted1570124111@mozilla\\.com)|(search-unlisted1570254441111@mozilla\\.com)|(search-unlisted15721239034@mozilla\\.com)|(search-unlisted157441@mozilla\\.com)|(search-unlisted15757771@mozilla\\.com)|(search-unlisted1577122001@mozilla\\.com)|(search-unlisted15777441001@mozilla\\.com)|(search-unlisted15788120036001@mozilla\\.com)|(search-unlisted157881200361111@mozilla\\.com)|(search-unlisted1578899961111@mozilla\\.com)|(search-unlisted157999658@mozilla\\.com)|(search-unlisted158436561@mozilla\\.com)|(search-unlisted158440374111@mozilla\\.com)|(search-unlisted15874111@mozilla\\.com)|(search-unlisted1741395551@mozilla\\.com)|(search-unlisted17441000051@mozilla\\.com)|(search-unlisted174410000522777441@mozilla\\.com)|(search-unlisted1768fdgfdg@mozilla\\.com)|(search-unlisted180000411@mozilla\\.com)|(search-unlisted18000411@mozilla\\.com)|(search-unlisted1800411@mozilla\\.com)|(search-unlisted18011888@mozilla\\.com)|(search-unlisted1801668@mozilla\\.com)|(search-unlisted18033411@mozilla\\.com)|(search-unlisted180888@mozilla\\.com)|(search-unlisted181438@mozilla\\.com)|(search-unlisted18411@mozilla\\.com)|(search-unlisted18922544@mozilla\\.com)|(search-unlisted1955511@mozilla\\.com)|(search-unlisted2@mozilla\\.com)|(search-unlisted3@mozilla\\.com)|(search-unlisted4@mozilla\\.com)|(search-unlisted400@mozilla\\.com)|(search-unlisted40110@mozilla\\.com)|(search-unlisted5@mozilla\\.com)|(search-unlisted55@mozilla\\.com)|(search@mozilla\\.com)|(searchazsd@mozilla\\.com)|(smart246@mozilla\\.com)|(smarter1@mozilla\\.com)|(smarters1@mozilla\\.com)|(stream@mozilla\\.com)|(tahdith@mozilla\\.com)|(therill@mozilla\\.com)|(Updates@mozilla\\.com))$/","prefs":[],"schema":1534102906482,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1480591","why":"These add-ons violate the no-surprises and user-control policy.","name":"Search engine hijacking malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"cee5c2ab-1059-4b15-a78c-1203116552c4","last_modified":1534157457677},{"guid":"/^((search-unlisted2@mozilla\\.com)|(search-unlisted3@mozilla\\.com)|(search-unlisted4@mozilla\\.com)|(search-unlisted5@mozilla\\.com)|(search-unlisted11@mozilla\\.com)|(search-unlisted12@mozilla\\.com)|(search-unlisted55@mozilla\\.com)|(search-unlisted111@mozilla\\.com)|(search-unlisted400@mozilla\\.com)|(search-unlisted40110@mozilla\\.com)|(search-unlisted17441000051@mozilla\\.com)|(search-unlisted174410000522777441@mozilla\\.com)|(search-unlisted@mozilla\\.com)|({0a054930-63d7-46f4-937a-de80eab21da4})|({0b24cf69-02b8-407d-83db-e7af04fc1f3e})|({0c4df994-4f4a-4646-ae5d-8936be8a4188})|({0d50d8aa-d1ed-4930-b0a0-f3340d2f510e})|({0eb4672d-58a6-4230-b74c-50ca3716c4b0})|({0f9e469e-4245-43f8-a7a8-7e730f80d284})|({0fc9fcc7-2f47-4fd1-a811-6bd4d611294b})|({4479446e-40f3-48af-ab85-7e3bb4468227})|({1a927d5b-42e7-4407-828a-fdc441d0daae})|({1a760841-50c3-4143-9f7e-3c8f04e8f9d1})|({1bd8ba17-b3ed-412e-88db-35bc4d8771d7})|({1c7d6d9e-325a-4260-8213-82d51277fc31})|({01c9a4a4-06dd-426b-9500-2ea6fe841b88})|({1cab8ccf-deff-4743-925d-a47cbd0a6b56})|({1cb0652a-4645-412d-b7e8-0b9e9a83242f})|({1d6634ca-dd37-4a31-aad1-321f05aa2bb3})|({1d9997b2-f61e-429a-8591-999a6d62becc})|({1ed2af70-9e89-42db-a9e8-17ae594003ac})|({01f409a5-d617-47be-a574-d54325fe05d1})|({2a8bec00-0ab0-4b4d-bd3d-4f59eada8fd8})|({2aeb1f92-6ddc-49f5-b7b3-3872d7e019a9})|({2bb68b03-b528-4133-9fc4-4980fbb4e449})|({2cac0be1-10a2-4a0d-b8c5-787837ea5955})|({2d3c5a5a-8e6f-4762-8aff-b24953fe1cc9})|({2ee125f1-5a32-4f8e-b135-6e2a5a51f598})|({2f53e091-4b16-4b60-9cae-69d0c55b2e78})|({3a65e87c-7ffc-408d-927e-ebf1784efd6d})|({3a26e767-b781-4e21-aaf8-ac813d9edc9f})|({3c3ef2a3-0440-4e77-9e3c-1ca8d48f895c})|({3dca6517-0d75-42d2-b966-20467f82dca1})|({3f4191fa-8f16-47d2-9414-36bfc9e0c2bf})|({3f49e12b-bb58-4797-982c-4364030d96d9})|({4aa2f47a-0bae-4a47-8a1b-1b93313a2938})|({04abafc7-7a65-401d-97f3-af2853854373})|({4ad16913-e5cb-4292-974c-d557ef5ec5bb})|({4b1050c6-9139-4126-9331-30a836e75db9})|({4b1777ec-6fe4-4572-9a29-5af206e003bf})|({4beacbbb-1691-40e7-8c1e-4853ce2e2dee})|({4c140bc5-c2ad-41c3-a407-749473530904})|({4cbef3f0-4205-4165-8871-2844f9737602})|({4dac7c77-e117-4cae-a9f0-6bd89e9e26ab})|({04ed02dc-0cb0-40c2-8bc8-6f20843024b8})|({4f6b6aaf-c5a1-4fac-8228-ead4d359dc6d})|({4f8a15fb-45c2-4d3b-afb1-c0c8813a4a5a})|({5af74f5a-652b-4b83-a2a9-f3d21c3c0010})|({5b0f6d3c-10fd-414c-a135-dffd26d7de0f})|({5b421f02-e55e-4b63-b90e-aa0cfea01f53})|({5b620343-cd69-49b8-a7ba-f9d499ee5d3d})|({5c5cf69b-ed92-4429-8d26-ff3bb6c37269})|({5cf77367-b141-4ba4-ac2a-5b2ca3728e81})|({5da81d3d-5db1-432a-affc-4a2fe9a70749})|({5eac1066-90c3-4ba0-b361-e6315dcd6828})|({5ec4c837-59b9-496d-96e2-ff3fa74ca01f})|({5efd8c7a-ff37-41ac-a55c-af4170453fdf})|({5f4e63e4-351f-4a21-a8e5-e50dc72b5566})|({6a934ff5-e41d-43a2-baf5-2d215a869674})|({06a71249-ef35-4f61-b2c8-85c3c6ee5617})|({6ad26473-5822-4142-8881-0c56a8ebc8c0})|({6cee30bc-a27c-43ea-ac72-302862db62b2})|({6ed852d5-a72e-4f26-863f-f660e79a2ebb})|({6eee2d17-f932-4a43-a254-9e2223be8f32})|({6f13489d-b274-45b6-80fa-e9daa140e1a4})|({6fa41039-572b-44a4-acd4-01fdaebf608d})|({7ae85eef-49cf-440d-8d13-2bebf32f14cf})|({7b3c1e86-2599-4e1a-ad98-767ae38286c8})|({7b23c0de-aa3d-447f-9435-1e8eba216f09})|({7b71d75e-51f5-4a71-9207-7acb58827420})|({7c6bf09e-5526-4bce-9548-7458ec56cded})|({7ca54c8d-d515-4f2a-a21f-3d32951491a6})|({7d932012-b4dd-42cc-8a78-b15ca82d0e61})|({7d5e24a1-7bef-4d09-a952-b9519ec00d20})|({7eabad73-919d-4890-b737-8d409c719547})|({7eaf96aa-d4e7-41b0-9f12-775c2ac7f7c0})|({7f8bc48d-1c7c-41a0-8534-54adc079338f})|({7f84c4d8-bdf5-4110-a10d-fa2a6e80ef6a})|({8a6bda75-4668-4489-8869-a6f9ccbfeb84})|({8a0699a0-09c3-4cf1-b38d-fec25441650c})|({8ab8c1a2-70d4-41a8-bf78-0d0df77ac47f})|({8b4cb418-027e-4213-927a-868b33a88b4f})|({8fcfe2b3-598e-4861-a5d4-0d77993f984b})|({9a941038-82fa-4ae4-ba98-f2eb2d195345})|({9b8a3057-8bf4-4a9e-b94b-867e4e71a50c})|({9b8df895-fcdd-452a-8c46-da5be345b5bc})|({09c8fa16-4eec-4f78-b19d-9b24b1b57e1e})|({09cbfddf-5e55-4676-920d-5a16cb9e4cb5})|({9cf8d28f-f546-4871-ac4d-5faff8b5bde3})|({9d592fd5-e655-461a-9b28-9eba85d4c97f})|({9fc6e583-78a5-4a2b-8569-4297bb8b3300})|({014d98ce-dab9-4c1d-8643-166e75d7cb4d})|({18c64b09-4ccb-4c21-ba6f-ebd4a1efa034})|({21d83d85-a636-4b18-955d-376a6b19bd19})|({22ecf14b-ead6-4684-a498-7b2b839a4c97})|({23c65153-c21e-430a-a2dc-0793410a870d})|({29c69b12-8208-457e-92f4-e663b00a1f10})|({30a8d6f1-0401-4327-8c46-2e1ab45dfe77})|({30d63f93-1446-43b3-8219-deefec9c81ce})|({32cb52f8-c78a-423d-b378-0abec72304a6})|({35bfa8c0-68c1-41f8-a5dd-7f3b3c956da9})|({36a4269e-4eef-4538-baea-9dafbf6a8e2f})|({37f8e483-c782-40ed-82e9-36f101b9e41f})|({42a512a8-37e0-4e07-a1db-5b4651d75048})|({43ae5745-c40a-45ab-9c11-74316c0e9fd2})|({53fa8e1c-112b-4013-b582-0d9e8c51ca75})|({56effac7-3ae9-41e3-9b46-51469f67b3b2})|({61a486c0-ce3d-4bf1-b4f2-e186a2adecf1})|({62b55928-80cc-49f7-8a4b-ec06030d6601})|({63df223d-51cf-4f76-aad8-bbc94c895ed2})|({064d8320-e0f3-411f-9ed1-8c1349279d20})|({071b9878-a7d3-4ae3-8ef0-2eaee1923403})|({72c1ca96-c05d-46a7-bce1-c507ec3db4ea})|({76ce213c-8e57-4a14-b60a-67a5519bd7a7})|({78c2f6a0-3b54-4a21-bf25-a3348278c327})|({0079b71b-89c9-4d82-aea3-120ee12d9890})|({81ac42f3-3d17-4cff-85af-8b7f89c8826b})|({81dc4f0e-9dab-4bd2-ab9d-d9365fbf676f})|({82c8ced2-e08c-4d6c-a12b-3e8227d7fc2a})|({83d6f65c-7fc0-47d0-9864-a488bfcaa376})|({83d38ac3-121b-4f28-bf9c-1220bd3c643b})|({84b9121e-55c9-409a-9b28-c588b5096222})|({87ba49bd-daba-4071-aedf-4f32a7e63dbe})|({87c552f9-7dbb-421b-8deb-571d4a2d7a21})|({87dcb9bf-3a3e-4b93-9c85-ba750a55831a})|({89a4f24d-37d5-46e7-9d30-ba4778da1aaa})|({93c524c4-2e92-4dd7-8b37-31a69bc579e8})|({94df38fc-2dbe-4056-9b35-d9858d0264d3})|({95c7ae97-c87e-4827-a2b7-7b9934d7d642})|({95d58338-ba6a-40c8-93fd-05a34731dc0e})|({97c436a9-7232-4495-bf34-17e782d6232c})|({97fca2cd-545f-42ef-ae93-dc13b046bd3b})|({0111c475-01e6-42ea-a9b4-27bed9eb6092})|({115a8321-4414-4f4c-aee6-9f812121b446})|({158a5a56-aca0-418f-bec0-5b3bda6e9d4c})|({243a0246-cbab-4b46-93fb-249039f68d84})|({283d4f2a-bab1-43ce-90be-5129741ac988})|({408a506b-2336-4671-a490-83a1094b4097})|({0432b92a-bfcf-41b9-b5f0-df9629feece1})|({484e0ba4-a20b-4404-bb1b-b93473782ae0})|({486ecaf1-1080-48c1-8973-549bc731ccf9})|({495a84bd-5a0c-4c74-8a50-88a4ba9d74ba})|({520f2c78-7804-4f59-ae74-a192476055ed})|({543f7503-3620-4f41-8f9e-c258fdff07e9})|({0573bea9-7368-49cd-ba10-600be3535a0b})|({605a0c42-86af-40c4-bf39-f14060f316aa})|({618baeb9-e694-4c7b-9328-69f35b6a8839})|({640c40e5-a881-4d16-a4d0-6aa788399dd2})|({713d4902-ae7b-4a9a-bcf5-47f39a73aed0})|({767d394a-aa77-40c9-9365-c1916b4a2f84})|({832ffcf9-55e9-4fd1-b2eb-f19e1fac5089})|({866a0745-8b91-4199-820a-ec17de52b5f2})|({869b5825-e344-4375-839b-085d3c09ab9f})|({919fed43-3961-48d9-b0ef-893054f4f6f1})|({971d6ef0-a085-4a04-83d8-6e489907d926})|({1855d130-4893-4c79-b4aa-cbdf6fee86d3})|({02328ee7-a82b-4983-a5f7-d0fc353698f0})|({2897c767-03aa-4c2f-910a-6d0c0b9b9315})|({3908d078-e1db-40bf-9567-5845aa77b833})|({04150f98-2d7c-4ae2-8979-f5baa198a577})|({4253db7f-5136-42c3-b09d-cf38344d1e16})|({4414af84-1e1f-449b-ac85-b79f812eb69b})|({4739f233-57c1-4466-ad51-224558cf375d})|({5066a3b2-f848-4a59-a297-f268bc3a08b6})|({6072a2a8-f1bc-4c9c-b836-7ac53e3f51e4})|({7854ee87-079f-4a25-8e57-050d131404fe})|({07953f60-447e-4f53-a5ef-ed060487f616})|({8886a262-1c25-490b-b797-2e750dd9f36b})|({12473a49-06df-4770-9c47-a871e1f63aea})|({15508c91-aa0a-4b75-81a2-13055c96281d})|({18868c3a-a209-41a6-855d-f99f782d1606})|({24997a0a-9d9b-4c87-a076-766d44e1f6fd})|({27380afd-f42a-4c25-b57d-b9012e0d5d48})|({28044ca8-8e90-435e-bc63-a757af2fb6be})|({30972e0a-f613-4c46-8c87-2e59878e7180})|({31680d42-c80d-4f8a-86d3-cd4930620369})|({44685ba6-68b3-4895-879e-4efa29dfb578})|({046258c9-75c5-429d-8d5b-386cfbadc39d})|({47352fbf-80d9-4b70-9398-fb7bffa3da53})|({56316a2b-ef89-4366-b4aa-9121a2bb6dea})|({65072bef-041f-492e-8a51-acca2aaeac70})|({677e2d00-264c-4f62-a4e8-2d971349c440})|({72056a58-91a5-4de5-b831-a1fa51f0411a})|({85349ea6-2b5d-496a-9379-d4be82c2c13d})|({98363f8b-d070-47b6-acc6-65b80acac4f3})|({179710ba-0561-4551-8e8d-1809422cb09f})|({207435d0-201d-43f9-bb0f-381efe97501d})|({313e3aef-bdc9-4768-8f1f-b3beb175d781})|({387092cb-d2dc-4da5-9389-4a766c604ec2})|({0599211f-6314-4bf9-854b-84cb18da97f8})|({829827cd-03be-4fed-af96-dd5997806fb4})|({856862a5-8109-47eb-b815-a94059570888})|({1e6f5a54-2c4f-4597-aa9e-3e278c617d38})|({1490068c-d8b7-4bd2-9621-a648942b312c})|({18e5e07b-0cfa-4990-a67b-4512ecbae04b})|({3584581e-c01a-4f53-aec8-ca3293bb550d})|({5280684d-f769-43c9-8eaa-fb04f7de9199})|({5766852a-b384-4276-ad06-70c2283b4792})|({34364255-2a81-4d6e-9760-85fe616abe80})|({45621564-b408-4c29-8515-4cf1f26e4bc3})|({62237447-e365-487e-8fc3-64ddf37bdaed})|({7e7aa524-a8af-4880-8106-102a35cfbf42})|({71639610-9cc3-47e0-86ed-d5b99eaa41d5})|({78550476-29ff-4b7e-b437-195024e7e54e})|({85064550-57a8-4d06-bd4b-66f9c6925bf5})|({93070807-c5cd-4bde-a699-1319140a3a9c})|({11e7b9b3-a769-4d7f-b200-17cffa4f9291})|({22632e5e-95b9-4f05-b4b7-79033d50467f})|({03e10db6-b6a7-466a-a2b3-862e98960a85})|({23775e7d-dfcf-42b1-aaad-8017aa88fc59})|({85e31e7e-3e3a-42d3-9b7b-0a2ff1818b33})|({9e32ca65-4670-41e3-b6bb-8773e6b9bba8})|({6e43af8e-a78e-4beb-991f-7b015234eacc})|({57e61dc7-db04-4cf8-bbd3-62a15fc74138})|({01166e60-d740-440c-b640-6bf964504b3c})|({52e137bc-a330-4c25-a981-6c1ab9feb806})|({488e190b-d1f6-4de8-bffb-0c90cc805b62})|({5e257c96-bfed-457d-b57e-18f31f08d7bb})|({2134e327-8060-441c-ba68-b167b82ff5bc})|({1e68848a-2bb7-425c-81a2-524ab93763eb})|({8e888a6a-ec19-4f06-a77c-6800219c6daf})|({7e907a15-0a4c-4ff4-b64f-5eeb8f841349})|({a0ab16af-3384-4dbe-8722-476ce3947873})|({a0c54bd8-7817-4a40-b657-6dc7d59bd961})|({a0ce2605-b5fc-4265-aa65-863354e85058})|({a1f8e136-bce5-4fd3-9ed1-f260703a5582})|({a3fbc8be-dac2-4971-b76a-908464cfa0e0})|({a5a84c10-f12c-496e-80df-33386b7a1463})|({a5f90823-0a50-414f-ad34-de0f6f26f78e})|({a6b83c45-3f24-4913-a1f7-6f42411bbb54})|({a9eb2583-75e0-435a-bb6c-69d5d9b20e27})|({a32ebb9b-8649-493e-a9e9-f091f6ac1217})|({a83c1cbb-7a41-41e7-a2ae-58efcb4dc2e4})|({a506c5af-0f95-4107-86f8-3de05e2794c9})|({a02001ae-b7ed-45d7-baf2-c07f0a7b6f87})|({a5808da1-5b4f-42f2-b030-161fd11a36f7})|({a18087bb-4980-4349-898c-ca1b7a0e59cd})|({a345865c-44b9-4197-b418-934f191ce555})|({a7487703-02d8-4a82-a7d0-2859de96edb4})|({a2427e23-d349-4b25-b5b8-46960b218079})|({a015e172-2465-40fc-a6ce-d5a59992c56a})|({aaaffe20-3306-4c64-9fe5-66986ebb248e})|({abec23c3-478f-4a5b-8a38-68ccd500ec42})|({ac06c6b2-3fd6-45ee-9237-6235aa347215})|({ac037ad5-2b22-46c7-a2dc-052b799b22b5})|({ac296b47-7c03-486f-a1d6-c48b24419749})|({acbff78b-9765-4b55-84a8-1c6673560c08})|({acfe4807-8c3f-4ecc-85d1-aa804e971e91})|({ada56fe6-f6df-4517-9ed0-b301686a34cc})|({af44c8b4-4fd8-42c3-a18e-c5eb5bd822e2})|({b5a35d05-fa28-41b5-ae22-db1665f93f6b})|({b7b0948c-d050-4c4c-b588-b9d54f014c4d})|({b7f366fa-6c66-46bf-8df2-797c5e52859f})|({b9bb8009-3716-4d0c-bcb4-35f9874e931e})|({b12cfdc7-3c69-43cb-a3fb-38981b68a087})|({b019c485-2a48-4f5b-be13-a7af94bc1a3e})|({b91fcda4-88b0-4a10-9015-9365e5340563})|({b30591d6-ec24-4fae-9df6-2f3fe676c232})|({b99847d6-c932-4b52-9650-af83c9dae649})|({bbe79d30-e023-4e82-b35e-0bfdfe608672})|({bc3c2caf-2710-4246-bd22-b8dc5241693a})|({bc3c7922-e425-47e2-a2dd-0dbb71aa8423})|({bc763c41-09ca-459a-9b22-cf4474f51ebc})|({bd5ba448-b096-4bd0-9582-eb7a5c9c0948})|({be5d0c88-571b-4d01-a27a-cc2d2b75868c})|({be981b5e-1d9d-40dc-bd4f-47a7a027611c})|({be37931c-af60-4337-8708-63889f36445d})|({bea8866f-01f8-49e9-92cd-61e96c05d288})|({bf153de7-cdf2-4554-af46-29dabfb2aa2d})|({c3a2b953-025b-425d-9e6e-f1a26ee8d4c2})|({c3b71705-c3a6-4e32-bd5f-eb814d0e0f53})|({c5d359ff-ae01-4f67-a4f7-bf234b5afd6e})|({c6c8ea62-e0b1-4820-9b7f-827bc5b709f4})|({c8c8e8de-2989-4028-bbf2-d372e219ba71})|({c34f47d1-2302-4200-80d4-4f26e47b2980})|({c178b310-6ed5-4e04-9e71-76518dd5fb3e})|({c2341a34-a3a0-4234-90cf-74df1db0aa49})|({c8399f02-02f4-48e3-baea-586564311f95})|({c41807db-69a1-4c35-86c1-bc63044e4fcb})|({c383716f-b23f-47b2-b6bb-d7c1a7c218af})|({c3447081-f790-45cb-ae03-0d7f1764c88c})|({c445e470-9e5a-4521-8649-93c8848df377})|({c8e14311-4b2d-4eb0-9a6b-062c6912f50e})|({ca4fdfdb-e831-4e6e-aa8b-0f2e84f4ed07})|({ca6cb8b2-a223-496d-b0f6-35c31bc7ca2b})|({cba7ce11-952b-4dcb-ba85-a5b618c92420})|({cc6b2dc7-7d6f-470f-bccc-6a42907162d1})|({cc689da4-203f-4a0c-a7a6-a00a5abe74c5})|({ccb7b5d6-a567-40a2-9686-a097a8b583dd})|({cd28aa38-d2f1-45a3-96c3-6cfd4702ef51})|({cd89045b-2e06-46bb-9e34-48e8799e5ef2})|({cdda1813-51d6-4b1f-8a2f-8f9a74a28e14})|({ce0d1384-b99b-478e-850a-fa6dfbe5a2d4})|({ce93dcc7-f911-4098-8238-7f023dcdfd0d})|({cf9d96ff-5997-439a-b32b-98214c621eee})|({cfa458f9-b49b-4e09-8cb2-5e50bd8937cc})|({cfb50cdf-e371-4d6b-9ef2-fcfe6726db02})|({d1ab5ebd-9505-481d-a6cd-6b9db8d65977})|({d03b6b0f-4d44-4666-a6d6-f16ad9483593})|({d9d8cfc1-7112-40cc-a1e9-0c7b899aae98})|({d47ebc8a-c1ea-4a42-9ca3-f723fff034bd})|({d72d260f-c965-4641-bf49-af4135fc46cb})|({d78d27f4-9716-4f13-a8b6-842c455d6a46})|({d355bee9-07f0-47d3-8de6-59b8eecba57b})|({d461cc1b-8a36-4ff0-b330-1824c148f326})|({d97223b8-44e5-46c7-8ab5-e1d8986daf44})|({d42328e1-9749-46ba-b35c-cce85ddd4ace})|({da7d00bf-f3c8-4c66-8b54-351947c1ef68})|({db84feec-2e1f-48f0-9511-645fe4784feb})|({dc6256cc-b6d0-44ca-b42f-4091f11a9d29})|({dd1cb0ec-be2a-432b-9c90-d64c824ac371})|({dd95dd08-75d1-4f06-a75b-51979cbab247})|({ddae89bd-6793-45d8-8ec9-7f4fb7212378})|({de3b1909-d4da-45e9-8da5-7d36a30e2fc6})|({df09f268-3c92-49db-8c31-6a25a6643896})|({e2a4966f-919d-4afc-a94f-5bd6e0606711})|({e05ba06a-6d6a-4c51-b8fc-60b461ffecaf})|({e7b978ae-ffc2-4998-a99d-0f4e2f24da82})|({e7fb6f2f-52b6-4b02-b410-2937940f5049})|({e08d85c5-4c0f-4ce3-9194-760187ce93ba})|({e08ebf0b-431d-4ed1-88bb-02e5db8b9443})|({e9c47315-2a2b-4583-88f3-43d196fa11af})|({e341ed12-a703-47fe-b8dd-5948c38070e4})|({e804fa4c-08e0-4dae-a237-8680074eba07})|({e8982fbd-1bc2-4726-ad8d-10be90f660bd})|({e40673cd-9027-4f61-956c-2097c03ae2be})|({e72172d1-39c9-4f41-829d-a1b8d845d1ca})|({e73854da-9503-423b-ab27-fafea2fbf443})|({e81e7246-e697-4811-b336-72298d930857})|({ea618d26-780e-4f0f-91fd-2a6911064204})|({ea523075-66cd-4c03-ab04-5219b8dda753})|({eb3ebb14-6ced-4f60-9800-85c3de3680a4})|({ec8c5fee-0a49-44f5-bf55-f763c52889a6})|({eccd286a-5b1d-494d-82b0-92a12213d95a})|({ed352072-ddf0-4cb4-9cb6-d8aa3741c2de})|({edb476af-0505-42af-a7fd-ec9f454804c0})|({ee97f92d-1bfe-4e9d-816c-0dfcd63a6206})|({f0b809eb-be22-432f-b26f-b1cadd1755b9})|({f5ffa269-fbca-4598-bbd8-a8aa9479e0b3})|({f6c543bf-2222-4230-8ecb-f5446095b63d})|({f6df4ef7-14bd-43b5-90c9-7bd02943789c})|({f6f98e6b-f67d-4c53-8b76-0b5b6df79218})|({f38b61f3-3fed-4249-bb3d-e6c8625c7afb})|({f50e0a8f-8c32-4880-bcef-ca978ccd1d83})|({f59c2d3d-58da-4f74-b8c9-faf829f60180})|({f82b3ad5-e590-4286-891f-05adf5028d2f})|({f92c1155-97b3-40f4-9d5b-7efa897524bb})|({f95a3826-5c8e-4f82-b353-21b6c0ca3c58})|({f5758afc-9faf-42bb-9543-a4cfb0bfce9d})|({f447670d-64f5-418f-9b4a-5352d6c8e127})|({f4262989-6de0-4604-918f-663b85fad605})|({fa8bd609-0e06-4ba9-8e2e-5989f0b2e197})|({fa0808f6-25ab-4a8b-bd17-3b275c55ff09})|({fac5816b-fd0f-4db2-a16e-52394b6db41d})|({fc99b961-5878-46b4-b091-6d2f507bf44d})|({fce89242-66d3-4946-9ed0-e66078f172fc})|({fcf72e24-5831-439e-bb07-fd53a9e87a30})|({fdc0601f-1fbb-40a5-84e1-8bbe96b22502})|({feb3c734-4529-4d69-9f3a-2dae18f1d896}))$/","prefs":[],"schema":1533411700296,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1479009","why":"Malicious add-ons disguising as updates or useful add-ons, but violating data collection policies, user-control, no surprises and security.","name":"Firefox Update (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"cae5d906-0b1d-4d1c-b83f-f9727b8c4a29","last_modified":1533550294490},{"guid":"{5834f62d-6164-4cdd-a0a3-c00c66ec9d13}","prefs":[],"schema":1532704368947,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1479002","why":"This add-on violates our security and user-choice/no surprises policies.","name":"Youtube Dark Mode (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"d0a401cb-0c70-4784-8288-b06a88b2ae8a","last_modified":1532705151926},{"guid":"/^((@asdfjhsdfuhw)|(@asdfsdfwe)|(@asdieieuss)|(@dghfghfgh)|(@difherk)|(@dsfgtftgjhrdf4)|(@fidfueir)|(@fsgergsdqtyy)|(@hjconsnfes)|(@isdifvdkf)|(@iweruewir)|(@oiboijdjfj)|(@safesearchavs)|(@safesearchavsext)|(@safesearchincognito)|(@safesearchscoutee)|(@sdfykhhhfg)|(@sdiosuff)|(@sdklsajd)|(@sduixcjksd)|(@sicognitores)|(@simtabtest)|(@sodiasudi)|(@test13)|(@test131)|(@test131ver)|(@test132)|(@test13s)|(@testmptys)|(\\{ac4e5b0c-13c4-4bfd-a0c3-1e73c81e8bac\\})|(\\{e78785c3-ec49-44d2-8aac-9ec7293f4a8f\\})|(general@filecheckerapp\\.com)|(general@safesearch\\.net))$/","prefs":[],"schema":1532703832328,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1475330","why":"These Add-ons violate our data collection, no surprises and user-choice policies.","name":"Safesearch (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"d664412d-ed08-4892-b247-b007a70856ff","last_modified":1532704364007},{"guid":"{dd3d7613-0246-469d-bc65-2a3cc1668adc}","prefs":[],"schema":1532684052432,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1478731","why":"This add-on violates data practices outlined in the review policy.","name":"BlockSite"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"4.0.3","minVersion":"0"}],"id":"e04f98b5-4480-43a3-881d-e509e4e28cdc","last_modified":1532684085999},{"guid":"{bee8b1f2-823a-424c-959c-f8f76c8b2306}","prefs":[],"schema":1532547689407,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1478731","why":"This add-on violates data practices outlined in the review policy.","name":"Popup blocker for FireFox"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"4.0.7.3","minVersion":"0"}],"id":"f0713a5e-7208-484e-b3a0-4e6dc6a195be","last_modified":1532684052426},{"guid":"/^((\\{39bd8607-0af4-4d6b-bd69-9a63c1825d3c\\})|(\\{273f0bce-33f4-45f6-ae03-df67df3864c2\\})|(\\{a77fc9b9-6ebb-418d-b0b6-86311c191158\\})|(\\{c6c4a718-cf91-4648-aa9b-170d66163cf2\\})|(\\{d371abec-84bb-481b-acbf-235639451127\\})|(\\{e63b262a-f9b8-4496-9c4b-9d3cbd6aea90\\}))$/","prefs":[],"schema":1532386339902,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1477950","why":"Add-ons that contain malicious functionality like search engine redirect.","name":"Smash (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"c37c7c24-e738-4d06-888c-108b4d63b428","last_modified":1532424286908},{"guid":"/^((\\{ac296b47-7c03-486f-a1d6-c48b24419749\\})|(\\{1cab8ccf-deff-4743-925d-a47cbd0a6b56\\})|(\\{5da81d3d-5db1-432a-affc-4a2fe9a70749\\})|(\\{071b9878-a7d3-4ae3-8ef0-2eaee1923403\\})|(\\{261476ea-bd0e-477c-abd7-33cdf626f81f\\})|(\\{224e66d0-6b11-4c4b-9bcf-41180889898a\\})|(\\{1e90cf52-c67c-4bd9-80c3-a2bf521fc981\\})|(\\{09c4799c-00f1-439e-9e60-3827c589b372\\})|(\\{d3d2095a-9faa-466f-82ae-3114179b34d6\\})|(\\{70389ea5-7e4d-4515-835c-fbd047f229dd\\})|(\\{2e8083a5-cd88-4aaa-bb8b-e54e9753f280\\})|(\\{fbf2480b-5c19-478e-bfd0-192ad9f84dc9\\})|(\\{6c7dc694-89f8-477e-88d5-c55af4d6a846\\})|(\\{915c12c6-901a-490d-9bfc-20f00d1ad31d\\})|(\\{d3a4aa3e-f74c-4382-876d-825f592f2976\\})|(\\{0ad91ec1-f7c4-4a39-9244-3310e9fdd169\\})|(\\{9c17aa27-63c5-470a-a678-dc899ab67ed3\\})|(\\{c65efef2-9988-48db-9e0a-9ff8164182b6\\})|(\\{d54c5d25-2d51-446d-8d14-18d859e3e89a\\})|(\\{e458f1f1-a331-4486-b157-81cba19f0993\\})|(\\{d2de7e1f-6e51-41d6-ba8a-937f8a5c92ff\\})|(\\{2b08a649-9bea-4dd4-91c8-f53a84d38e19\\})|(\\{312dd57e-a590-4e19-9b26-90e308cfb103\\})|(\\{82ce595a-f9b6-4db8-9c97-b1f1c933418b\\})|(\\{0a2e64f0-ea5a-4fff-902d-530732308d8e\\})|(\\{5fbdc975-17ab-4b4e-90d7-9a64fd832a08\\})|(\\{28820707-54d8-41f0-93e9-a36ffb2a1da6\\})|(\\{64a2aed1-5dcf-4f2b-aad6-9717d23779ec\\})|(\\{ee54794f-cd16-4f7d-a7dd-515a36086f60\\})|(\\{4d381160-b2d5-4718-9a05-fc54d4b307e7\\})|(\\{60393e0e-f039-4b80-bad4-10189053c2ab\\})|(\\{0997b7b2-52d7-4d14-9aa6-d820b2e26310\\})|(\\{8214cbd6-d008-4d16-9381-3ef1e1415665\\})|(\\{6dec3d8d-0527-49a3-8f12-b05f2a8b95b2\\})|(\\{0c0d8d8f-3ae0-4c98-81ac-06453a316d16\\})|(\\{84d5ef02-a283-484a-80da-7087836c74aa\\})|(\\{24413756-2c44-47c5-8bbf-160cb37776d8\\})|(\\{cf6ac458-06e8-45d0-9cbf-ec7fc0eb1710\\})|(\\{263a5792-933a-4de1-820a-d04198e17120\\})|(\\{b5fd7f37-190d-4c0a-b8dd-8b4850c986ac\\})|(\\{cb5ef07b-c2e7-47a6-be81-2ceff8df4dd5\\})|(\\{311b20bc-b498-493c-a5e1-22ec32b0e83c\\})|(\\{b308aead-8bc1-4f37-9324-834b49903df7\\})|(\\{3a26e767-b781-4e21-aaf8-ac813d9edc9f\\}))$/","prefs":[],"schema":1532361925873,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1476553","why":"Third-party websites try to trick users into installing add-ons that inject remote scripts.","name":"Various malicious add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"52842139-3d11-41ac-9d7f-8e51122a3141","last_modified":1532372344457},{"guid":"/^((@FirefoxUpdate)|(@googledashboard)|(@smash_mov)|(@smash_tv)|(@smashdashboard)|(@smashmovs)|(@smashtvs)|(\\{0be01832-7cce-4457-b8ad-73b743914085\\})|(\\{0e1c683e-9f34-45f1-b365-a283befb471a\\})|(\\{0c72a72d-6b2e-4a0e-8a31-16581176052d\\})|(\\{0ccfc208-8441-4c27-b1cb-799accb04908\\})|(\\{0ede8d39-26f2-49c4-8014-dfc484f54a65\\})|(\\{1fc1f8e6-3575-4a6f-a4d1-c4ca1c36bd2a\\})|(\\{3a1d6607-e6a8-4012-9506-f14cd157c171\\})|(\\{03b3ac4d-59a3-4cc6-aa4d-9b39dd8b3196\\})|(\\{3bb6e889-ac7a-46ca-8eed-45ba4fbe75b5\\})|(\\{3c841114-da8c-44ea-8303-78264edfe60b\\})|(\\{3f3bcb3e-dd73-4410-b102-60a87fcb8323\\})|(\\{3f951165-fd85-42ae-96ef-6ff589a1fe72\\})|(\\{04c86cb3-5f52-4083-9e9a-e322dd02181a\\})|(\\{4d8b44ef-9b8b-4d82-b668-a49648d2749d\\})|(\\{4d25d2b4-6ae7-4a66-abc0-c3fca4cdddf6\\})|(\\{5c9a2eca-2126-4a84-82c0-efbf3d989371\\})|(\\{6ecb9f49-90f0-43a1-8f8a-e809ea4f732b\\})|(\\{6fb8289d-c6c8-4fe5-9a92-7dc6cbf35349\\})|(\\{7fea697d-327c-4d20-80d5-813a6fb26d86\\})|(\\{08a3e913-0bbc-42ba-96d7-3fa16aceccbf\\})|(\\{8b04086b-94a5-4161-910b-59e3e31e4364\\})|(\\{08c28c16-9fb6-4b32-9868-db37c1668f94\\})|(\\{8cd69708-2f5e-4282-a94f-3feebc4bce35\\})|(\\{8dc21e24-3883-4d01-b486-ef1d1106fa3d\\})|(\\{8f8cc21a-2097-488f-a213-f5786a2ccbbf\\})|(\\{9c8b93f7-3bf8-4762-b221-40c912268f96\\})|(\\{9ce66491-ef06-4da6-b602-98c2451f6395\\})|(\\{1e1acc1c-8daa-4c2e-ad05-5ef01ae65f1e\\})|(\\{10b0f607-1efa-4762-82a0-e0d9bbae4e48\\})|(\\{24f338d7-b539-49f1-b276-c9edc367a32d\\})|(\\{40c9030f-7a2f-4a58-9d0a-edccd8063218\\})|(\\{41f97b71-c7c6-40b8-83b1-a4dbff76f73d\\})|(\\{42f3034a-0c4a-4f68-a8fd-8a2440e3f011\\})|(\\{52d456e5-245a-4319-b8d2-c14fbc9755f0\\})|(\\{57ea692b-f9fe-42df-bf5e-af6953fba05a\\})|(\\{060c61d8-b48f-465d-aa4b-23325ea757c3\\})|(\\{65c1967c-6a5c-44dd-9637-0d4d8b4c339b\\})|(\\{65d40b64-b52a-46d8-b146-580ff91889cb\\})|(\\{75b7af0d-b4ed-4320-95c8-7ffd8dd2cb7c\\})|(\\{77fe9731-b683-4599-9b06-a5dcea63d432\\})|(\\{84b20d0c-9c87-4340-b4f8-1912df2ae70d\\})|(\\{92b9e511-ac81-4d47-9b8f-f92dc872447e\\})|(\\{95afafef-b580-4f66-a0fe-7f3e74be7507\\})|(\\{116a0754-20eb-4fe5-bd35-575867a0b89e\\})|(\\{118bf5f6-98b1-4543-b133-42fdaf3cbade\\})|(\\{248eacc4-195f-43b2-956c-b9ad1ae67529\\})|(\\{328f931d-83c1-4876-953c-ddc9f63fe3b4\\})|(\\{447fa5d3-1c27-4502-9e13-84452d833b89\\})|(\\{476a1fa9-bce8-4cb4-beff-cb31980cc521\\})|(\\{507a5b13-a8a3-4653-a4a7-9a03099acf48\\})|(\\{531bf931-a8c6-407b-a48f-8a53f43cd461\\})|(\\{544c7f83-ef54-4d17-aa91-274fa27514ef\\})|(\\{546ea388-2839-4215-af49-d7289514a7b1\\})|(\\{635cb424-0cd5-4446-afaf-6265c4b711b5\\})|(\\{654b21c7-6a70-446c-b9ac-8cac9592f4a9\\})|(\\{0668b0a7-7578-4fb3-a4bd-39344222daa3\\})|(\\{944ed336-d750-48f1-b0b5-3c516bfb551c\\})|(\\{1882a9ce-c0e3-4476-8185-f387fe269852\\})|(\\{5571a054-225d-4b65-97f7-3511936b3429\\})|(\\{5921be85-cddd-4aff-9b83-0b317db03fa3\\})|(\\{7082ba5c-f55e-4cd8-88d6-8bc479d3749e\\})|(\\{7322a4cb-641c-4ca2-9d83-8701a639e17a\\})|(\\{90741f13-ab72-443f-a558-167721f64883\\})|(\\{198627a5-4a7b-4857-b074-3040bc8effb8\\})|(\\{5e5b9f44-2416-4669-8362-42a0b3f97868\\})|(\\{824985b9-df2a-401c-9168-749960596007\\})|(\\{4853541f-c9d7-42c5-880f-fd460dbb5d5f\\})|(\\{6e6ff0fd-4ae4-49ae-ac0c-e2527e12359b\\})|(\\{90e8aa72-a7eb-4337-81d4-538b0b09c653\\})|(\\{02e3137a-96a4-433d-bfb2-0aa1cd4aed08\\})|(\\{9e734c09-fcb1-4e3f-acab-04d03625301c\\})|(\\{a6ad792c-69a8-4608-90f0-ff7c958ce508\\})|(\\{a512297e-4d3a-468c-bd1a-f77bd093f925\\})|(\\{a71b10ae-b044-4bf0-877e-c8aa9ad47b42\\})|(\\{a33358ad-a3fa-4ca1-9a49-612d99539263\\})|(\\{a7775382-4399-49bf-9287-11dbdff8f85f\\})|(\\{afa64d19-ddba-4bd5-9d2a-c0ba4b912173\\})|(\\{b4ab1a1d-e137-4c59-94d5-4f509358a81d\\})|(\\{b4ec2f8e-57fd-4607-bf4f-bc159ca87b26\\})|(\\{b06bfc96-c042-4b34-944c-8eb67f35630a\\})|(\\{b9dcdfb0-3420-4616-a4cb-d41b5192ba0c\\})|(\\{b8467ec4-ff65-45f4-b7c5-f58763bf9c94\\})|(\\{b48e4a17-0655-4e8e-a5e2-3040a3d87e55\\})|(\\{b6166509-5fe0-4efd-906e-1e412ff07a04\\})|(\\{bd1f666e-d473-4d13-bc4d-10dde895717e\\})|(\\{be572ad4-5dd7-4b6b-8204-5d655efaf3b3\\})|(\\{bf2a3e58-2536-44d4-b87f-62633256cf65\\})|(\\{bfc5ac5f-80bd-43e5-9acb-f6d447e0d2ce\\})|(\\{bfe3f6c1-c5fe-44af-93b3-576812cb6f1b\\})|(\\{c0b8009b-57dc-45bc-9239-74721640881d\\})|(\\{c1cf1f13-b257-4271-b922-4c57c6b6e047\\})|(\\{c3d61029-c52f-45df-8ec5-a654b228cd48\\})|(\\{c39e7c0b-79d5-4137-bef0-57cdf85c920f\\})|(\\{ce043eac-df8a-48d0-a739-ef7ed9bdf2b5\\})|(\\{cf62e95a-8ded-4c74-b3ac-f5c037880027\\})|(\\{cff02c70-7f07-4592-986f-7748a2abd9e1\\})|(\\{d1b87087-09c5-4e58-b01d-a49d714da2a2\\})|(\\{d14adc78-36bf-4cf0-9679-439e8371d090\\})|(\\{d64c923e-8819-488c-947f-716473d381b2\\})|(\\{d734e7e3-1b8e-42a7-a9b3-11b16c362790\\})|(\\{d147e8c6-c36e-46b1-b567-63a492390f07\\})|(\\{db1a103d-d1bb-4224-a5e1-8d0ec37cff70\\})|(\\{dec15b3e-1d12-4442-930e-3364e206c3c2\\})|(\\{dfa4b2e3-9e07-45a4-a152-cde1e790511d\\})|(\\{dfcda377-b965-4622-a89b-1a243c1cbcaf\\})|(\\{e4c5d262-8ee4-47d3-b096-42b8b04f590d\\})|(\\{e82c0f73-e42c-41dd-a686-0eb4b65b411c\\})|(\\{e60616a9-9b50-49d8-b1e9-cecc10a8f927\\})|(\\{e517649a-ffd7-4b49-81e0-872431898712\\})|(\\{e771e094-3b67-4c33-8647-7b20c87c2183\\})|(\\{eff5951b-b6d4-48f5-94c3-1b0e178dcca5\\})|(\\{f26a8da3-8634-4086-872e-e589cbf03375\\})|(\\{f992ac88-79d3-4960-870e-92c342ed3491\\})|(\\{f4e4fc03-be50-4257-ae99-5cd0bd4ce6d5\\})|(\\{f73636fb-c322-40e1-82fb-e3d7d06d9606\\})|(\\{f5128739-78d5-4ad7-bac7-bd1af1cfb6d1\\})|(\\{fc11e7f0-1c31-4214-a88f-6497c27b6be9\\})|(\\{feedf4f8-08c1-451f-a717-f08233a64ec9\\}))$/","prefs":[],"schema":1532097654002,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1476369","why":"These add-ons contain unwanted features and try to prevent the user from uninstalling themselves.","name":"Smash/Upater (malware) and similar"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"c7d7515d-563f-459f-821c-27d4cf825dbf","last_modified":1532101113096},{"guid":"^((@mixclouddownloader)|(all-down@james\\.burrow)|(d\\.lehr@chello\\.at)|(easy-video-downloader@addonsmash)|(easy-youtube-mp3@james\\.burrow)|(gid@addonsmash)|(gmail_panel@addon_clone)|(guid-reused-by-pk-907175)|(idm@addonsmash)|(image-picka@addonsmash)|(instant-idm@addon\\.host)|(jdm@awesome\\.addons)|(open-in-idm@addonsmash)|(open-in-idm@james\\.burrow)|(open-in-vlc@awesome\\.addons)|(saveimage@addonsmash)|(thundercross@addonsmash)|(vk-download@addon\\.host)|(vk-music-downloader@addonsmash)|(whatsapp_popup@addons\\.clone)|(ytb-down@james\\.burrow)|(ytb-mp3-downloader@james\\.burrow)|(\\{0df8d631-7d88-401e-ba7e-af1425dded8a\\})|(\\{3c74e141-1993-4c04-b755-a66dd491bb47\\})|(\\{5cdd95c7-5d92-40c5-8e2a-8c52c90191d9\\})|(\\{40efedc0-8e48-404a-a779-f4016b25c0e6\\})|(\\{53d605ce-599b-4352-8a06-5e594b3d1822\\})|(\\{3697c1e8-27d7-4c63-a27e-ac16191a1545\\})|(\\{170503FA-3349-4F17-BC86-001888A5C8E2\\})|(\\{649558df-9461-4824-ad18-f2d4d4845ac8\\})|(\\{27875553-afd5-4365-86dc-019bcd60594c\\})|(\\{27875553-afd5-4365-86dc-019bcd60594c\\})|(\\{6e7624fa-7f70-4417-93db-1ec29c023275\\})|(\\{b1aea1f1-6bed-41ef-9679-1dfbd7b2554f\\})|(\\{b9acc029-d62b-4d23-b921-8e7aea34266a\\})|(\\{b9b59e13-4ac5-4eff-8dbe-c345b7619b3c\\})|(\\{b0186d2d-3126-4537-9186-a6f198547901\\})|(\\{b3e8fde8-6d97-4ac3-95e0-57b797f4c56b\\})|(\\{e6a9a96e-4a08-4719-b9bd-0e91c35aaabc\\})|(\\{e69a36e6-ee12-4fe6-87ca-66b77fc0ffbf\\})|(\\{ee3601f1-78ab-48bf-89ae-0cfe4aed1f2e\\})|(\\{f4ce48b3-ad14-4900-86cb-4604474c5b08\\})|(\\{f5c1262d-b1e8-44a4-b820-a834f0f6d605\\}))$","prefs":[],"schema":1531762485603,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1476020","why":"Add-ons repeatedly violated several of review policies.","name":"Several youtube downloading add-ons and others"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0"}],"id":"ae8ae617-590d-430b-86d4-16364372b67f","last_modified":1531762863373},{"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 add-on page. 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 read our security announcement.","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 individually.\r\n\r\nFor more information, please read this announcement.","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 this article.","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 update to the latest version. For more information, please read our announcement.","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 update to the latest version.","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 update Enigmail.","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 this article.","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 this blog post.","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 this article.","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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines, 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines.","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 installation guidelines 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 Add-on Guidelines.","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 Add-on Guidelines, 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines.","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 support site 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 Add-on Guidelines, 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Trojan software 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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines. 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 Add-on Guidelines.","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 Add-on Guidelines.","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 support site 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 Add-on Guidelines","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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines.","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 originally blocked 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines 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 Add-on Guidelines. 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 Add-on Guidelines. 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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines. 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.\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 Add-on Guidelines.","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 originally blocked 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines.\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 Add-on Guidelines.\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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines. 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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines\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 Microsoft .NET Framework Assistant 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines.\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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines","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 originally blocked 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 add-on guidelines, 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines, 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines, 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 Add-on Guidelines.","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 Add-on Guidelines.\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 Add-on Guidelines 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 Add-on Guidelines.\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 Add-on Guidelines 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 blocked 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines. 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 Add-on Guidelines.","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 Add-on Guidelines. 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines. 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 Add-on Guidelines.","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 Add-on Guidelines, 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 McAfee support knowledge base.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines. 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines 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 Add-on Guidelines 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 Add-on Guidelines 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 is blocked 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 Add-on Guidelines","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 Add-on Guidelines, 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 Add-on Guidelines 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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines, 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 Add-on Guidelines.","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 add-on guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines. 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 Add-on Guidelines 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 BrowserProtect extension 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 Add-on Guidelines, 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 Add-on Guidelines 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 previously blocked Mixi DJ add-on, which doesn't follow our Add-on Guidelines. 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 Add-on Guidelines.\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 Add-on Guidelines.","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 Add-on Guidelines. 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines, 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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 Add-on Guidelines.","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 update to the latest version. For more information, please read our announcement.","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 Add-on Guidelines.","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 Add-on Guidelines 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 Add-on Guidelines\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 Add-on Guidelines. 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 Add-on Guidelines.","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 Add-on Guidelines.","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 originally blocked 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 Add-on Guidelines.","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":"profsites@pr.com","prefs":[],"schema":1480349193877,"blockID":"i734","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.\r\n","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 Add-on Guidelines.","name":"ProfSites","created":"2014-10-16T16:39:26Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0d6d84d7-0b3f-c5ab-57cc-6b66b0775a23","last_modified":1480349197341},{"guid":"{872b5b88-9db5-4310-bdd0-ac189557e5f5}","prefs":[],"schema":1480349193877,"blockID":"i497","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 Add-on Guidelines by making settings changes that can't be easily reverted.","name":"DVDVideoSoft Menu","created":"2013-12-03T16:08:09Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e8da89c4-c585-77e4-9872-591d20723a7e","last_modified":1480349197240},{"guid":"123456789@offeringmedia.com","prefs":[],"schema":1480349193877,"blockID":"i664","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:41:24Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6d0a7dda-d92a-c8e2-21be-c92b0a88ac8d","last_modified":1480349197208},{"guid":"firefoxdav@icloud.com","prefs":[],"schema":1480349193877,"blockID":"i1214","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1271358","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 is causing frequent and persistent crashing.","name":"iCloud Bookmarks","created":"2016-05-17T16:55:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.4.22","minVersion":"0","targetApplication":[]}],"id":"2dddd7a7-b081-45e2-3eeb-2a7f76a1465f","last_modified":1480349197172},{"guid":"youplayer@addons.mozilla.org","prefs":[],"schema":1480349193877,"blockID":"i660","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 YouPlayer extension weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"YouPlayer, versions between 79.9.8 and 208.0.1","created":"2014-07-10T15:31:04Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"208.0.1","minVersion":"79.9.8","targetApplication":[]}],"id":"82dca22b-b889-5d9d-3fc9-b2184851f2d1","last_modified":1480349197136},{"guid":"{df6bb2ec-333b-4267-8c4f-3f27dc8c6e07}","prefs":[],"schema":1480349193877,"blockID":"i487","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=940681","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Facebook 2013 (malware)","created":"2013-11-19T14:59:45Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5867c409-b342-121e-3c3b-426e2f0ba1d4","last_modified":1480349197109},{"guid":"/^({4e988b08-8c51-45c1-8d74-73e0c8724579}|{93ec97bf-fe43-4bca-a735-5c5d6a0a40c4}|{aed63b38-7428-4003-a052-ca6834d8bad3}|{0b5130a9-cc50-4ced-99d5-cda8cc12ae48}|{C4CFC0DE-134F-4466-B2A2-FF7C59A8BFAD})$/","prefs":[],"schema":1480349193877,"blockID":"i524","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 Add-on Guidelines by making changes that can't be easily reverted.","name":"SweetPacks","created":"2013-12-20T13:43:21Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1a3a26a2-cdaa-e5ba-f6ac-47b98ae2cc26","last_modified":1480349197082},{"guid":"foxyproxy@eric.h.jung","prefs":[],"schema":1480349193877,"blockID":"i950","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 Standard for Thunderbird","created":"2015-07-15T09:34:44Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"4.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":"5ee8203d-bea2-6cd5-9ba0-d1922ffb3d21","last_modified":1480349197056},{"guid":"{82AF8DCA-6DE9-405D-BD5E-43525BDAD38A}","prefs":[],"schema":1480349193877,"blockID":"i1056","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1225639","who":"All users who have this add-on installed in Firefox 43 and above. User who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is associated with frequent shutdown crashes in Firefox.","name":"Skype Click to Call","created":"2015-11-17T14:03:05Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"7.5.0.9082","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"43.0a1"}]}],"id":"484f8386-c415-7499-a8a0-f4e16f5a142f","last_modified":1480349197027},{"guid":"{22119944-ED35-4ab1-910B-E619EA06A115}","prefs":[],"schema":1480349193877,"blockID":"i45","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=699134","who":"Users of version 7.9.20.6 of RoboForm Toolbar and earlier on Firefox 48 and above.","why":"Older versions of the RoboForm Toolbar add-on are causing crashes in Firefox 48 and above. The developer has released a fix, available in versions 7.9.21+.","name":"Roboform","created":"2011-11-19T06:14:56Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"7.9.20.6","minVersion":"0.1","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"8.0a1"}]}],"id":"5f7f9e13-d3e8-ea74-8341-b83e36d67d94","last_modified":1480349196995},{"guid":"{87b5a11e-3b54-42d2-9102-0a7cb1f79ebf}","prefs":[],"schema":1480349193877,"blockID":"i838","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128327","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 Add-on Guidelines.","name":"Cyti Web (malware)","created":"2015-02-06T14:29:12Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1ba0e57c-4c0c-4eb6-26e7-c2016769c343","last_modified":1480349196965},{"guid":"/^({bf67a47c-ea97-4caf-a5e3-feeba5331231}|{24a0cfe1-f479-4b19-b627-a96bf1ea3a56})$/","prefs":[],"schema":1480349193877,"blockID":"i542","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 Add-on Guidelines.","name":"MixiDJ (malware)","created":"2014-01-28T14:10:49Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"fc442b64-1b5d-bebb-c486-f431b154f3db","last_modified":1480349196622},{"guid":"/^({ebd898f8-fcf6-4694-bc3b-eabc7271eeb1}|{46008e0d-47ac-4daa-a02a-5eb69044431a}|{213c8ed6-1d78-4d8f-8729-25006aa86a76}|{fa23121f-ee7c-4bd8-8c06-123d087282c5}|{19803860-b306-423c-bbb5-f60a7d82cde5})$/","prefs":[],"schema":1480349193877,"blockID":"i622","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 Add-on Guidelines.","name":"WiseConvert","created":"2014-06-18T13:48:26Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ffd184fa-aa8f-8a75-ff00-ce285dec5b22","last_modified":1480349196597},{"guid":"/^({fa95f577-07cb-4470-ac90-e843f5f83c52}|ffxtlbr@speedial\\.com)$/","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i696","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1031115","who":"All Firefox users who have any of these add-ons installed. Users who wish to continue using these add-ons can enable them in the Add-ons Manager.","why":"These add-ons are silently installed and change homepage and search defaults without user consent, in violation of the Add-on Guidelines. They are also distributed under more than one add-on ID.","name":"Speedial","created":"2014-08-21T13:55:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"130c7419-f727-a2fb-3891-627bc69a43bb","last_modified":1480349196565},{"guid":"pennerdu@faceobooks.ws","prefs":[],"schema":1480349193877,"blockID":"i442","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=904050","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Console Video (malware)","created":"2013-08-13T14:00:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"fb83e48e-a780-9d06-132c-9ecc65b43674","last_modified":1480349196541},{"guid":"anttoolbar@ant.com","prefs":[],"schema":1480349193877,"blockID":"i88","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=748269","who":"All Firefox users who have installed version 2.4.6.4 of the Ant Video Downloader and Player add-on.","why":"Version 2.4.6.4 of the Ant Video Downloader and Player add-on is causing a very high number of crashes in Firefox. There's an updated version 2.4.6.5 that doesn't have this problem. All users are recommended to update as soon as possible.","name":"Ant Video Downloader and Player","created":"2012-05-01T10:32:11Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.4.6.4","minVersion":"2.4.6.4","targetApplication":[]}],"id":"9eef435b-39d4-2b73-0810-44b0d3ff52ad","last_modified":1480349196509},{"guid":"{E90FA778-C2B7-41D0-9FA9-3FEC1CA54D66}","prefs":[],"schema":1480349193877,"blockID":"i446","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 Add-on Guidelines.","name":"YouTube to MP3 Converter","created":"2013-09-06T15:59:29Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"83eb6337-a3b6-84e4-e76c-ee9200b80796","last_modified":1480349196471},{"guid":"{ad7ce998-a77b-4062-9ffb-1d0b7cb23183}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i804","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 Add-on Guidelines.","name":"Astromenda Search Addon","created":"2014-12-15T10:53:58Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"633f9999-c81e-bd7a-e756-de7d34feb39d","last_modified":1480349196438},{"guid":"{52b0f3db-f988-4788-b9dc-861d016f4487}","prefs":[],"schema":1480349193877,"blockID":"i584","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":"Versions of this add-on are silently installed by the Free Driver Scout installer, in violation of our Add-on Guidelines.","name":"Web Check (Free Driver Scout bundle)","created":"2014-05-22T11:07:00Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.1.9999999","minVersion":"0","targetApplication":[]}],"id":"cba0ac44-90f9-eabb-60b0-8da2b645e067","last_modified":1480349196363},{"guid":"dodatek@flash2.pl","prefs":[],"schema":1480349193877,"blockID":"i1279","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1312748","who":"Any user with version 1.3 or newer of this add-on installed.","why":"This add-on claims to be a flash plugin and it does some work on youtube, but it also steals your facebook and adfly credentials and sends them to a remote server.","name":"Aktualizacja Flash WORK addon","created":"2016-10-27T15:52:00Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"1.3","targetApplication":[]}],"id":"2dab5211-f9ec-a1bf-c617-6f94f28b5ee1","last_modified":1480349196331},{"guid":"{2d069a16-fca1-4e81-81ea-5d5086dcbd0c}","prefs":[],"schema":1480349193877,"blockID":"i440","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=903647","who":"All Firefox users who have this add-on installed.","why":"This add-on is installed silently and doesn't follow many other of the Add-on Guidelines. If you want to continue using this add-on, you can enable it in the Add-ons Manager.","name":"GlitterFun","created":"2013-08-09T16:26:46Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e3f77f3c-b1d6-3b29-730a-846007b9cb16","last_modified":1480349196294},{"guid":"xivars@aol.com","prefs":[],"schema":1480349193877,"blockID":"i501","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=946420","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":"Video Plugin Facebook (malware)","created":"2013-12-04T15:34:32Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3303d201-7006-3c0d-5fd5-45503e2e690c","last_modified":1480349196247},{"guid":"2bbadf1f-a5af-499f-9642-9942fcdb7c76@f05a14cc-8842-4eee-be17-744677a917ed.com","prefs":[],"schema":1480349193877,"blockID":"i700","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1052599","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 widely considered malware and is apparently installed silently into users' systems, in violation of the Add-on Guidelines.","name":"PIX Image Viewer","created":"2014-08-21T16:15:16Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1b72889b-90e6-ea58-4fe8-d48257df7d8b","last_modified":1480349196212},{"guid":"/^[0-9a-f]+@[0-9a-f]+\\.info/","prefs":[],"schema":1480349193877,"blockID":"i256","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806451","who":"All Firefox users who have installed any of these add-ons.","why":"The set of extensions labeled as Codec, Codec-M, Codec-C and other names are malware being distributed as genuine add-ons.\r\n\r\nIf you think an add-on you installed was incorrectly blocked and the block dialog pointed you to this page, please comment on this blog post.","name":"Codec extensions (malware)","created":"2013-01-22T12:16:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0c654540-00f2-0ad4-c9be-7ca2ace5341e","last_modified":1480349196184},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i600","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.","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.","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:16:08Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.5.*","minVersion":"3.15.5","targetApplication":[]}],"id":"51c4ab3b-9ad3-c5c3-98c8-a220025fc5a3","last_modified":1480349196158},{"guid":"{729c9605-0626-4792-9584-4cbe65b243e6}","prefs":[],"schema":1480349193877,"blockID":"i788","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 Add-on Guidelines.","name":"Browser Ext Assistance","created":"2014-11-20T10:07:19Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3c588238-2501-6a53-65ea-5c8ff0f3e51d","last_modified":1480349196123},{"guid":"unblocker20__web@unblocker.yt","prefs":[],"schema":1480349193877,"blockID":"i1213","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 originally blocked due to malicious activity.","name":"YouTube Unblocker 2.0","created":"2016-05-09T17:28:18Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"de305335-e9f3-f410-cf5c-f88b7ad4b088","last_modified":1480349196088},{"guid":"webbooster@iminent.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i630","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 Add-on Guidelines.","name":"Iminent Minibar","created":"2014-06-26T15:49:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d894ea79-8215-7a0c-b0e9-be328c3afceb","last_modified":1480349196032},{"guid":"jid1-uabu5A9hduqzCw@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1016","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1208051","who":"All users who have this add-on installed.","why":"This add-on is injecting unwanted and unexpected advertisements into all web pages, and masking this behavior as ad-blocking in its code.","name":"SpeedFox (malware)","created":"2015-09-24T09:49:42Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"31397419-3dfa-9db3-f1aa-e812d4220669","last_modified":1480349196001},{"guid":"/^firefox@(jumpflip|webconnect|browsesmart|mybuzzsearch|outobox|greygray|lemurleap|divapton|secretsauce|batbrowse|whilokii|linkswift|qualitink|browsefox|kozaka|diamondata|glindorus|saltarsmart|bizzybolt|websparkle)\\.(com?|net|org|info|biz)$/","prefs":[],"schema":1480349193877,"blockID":"i548","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 Add-on Guidelines.","name":"Yontoo add-ons","created":"2014-01-30T15:06:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bfaf3510-397e-48e6-cc4f-74202aaaed54","last_modified":1480349195955},{"guid":"firefox@bandoo.com","prefs":[],"schema":1480349193877,"blockID":"i23","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=629634","who":"Users of Bandoo version 5.0 for Firefox 3.6 and later.","why":"This add-on causes a high volume of Firefox crashes.","name":"Bandoo","created":"2011-03-01T23:30:23Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"5.0","minVersion":"5.0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.7a1pre"}]}],"id":"bd487cf4-3f6a-f956-a6e9-842ac8deeac5","last_modified":1480349195915},{"guid":"5nc3QHFgcb@r06Ws9gvNNVRfH.com","prefs":[],"schema":1480349193877,"blockID":"i372","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=875752","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware pretending to be the Flash Player plugin.","name":"Flash Player 11 (malware)","created":"2013-06-18T13:23:40Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"dc71fcf5-fae4-5a5f-6455-ca7bbe4202db","last_modified":1480349195887},{"guid":"/^(7tG@zEb\\.net|ru@gfK0J\\.edu)$/","prefs":[],"schema":1480349193877,"blockID":"i854","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=952255","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 Add-on Guidelines.","name":"youtubeadblocker (malware)","created":"2015-02-09T15:41:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cfe42207-67a9-9b88-f80c-994e6bdd0c55","last_modified":1480349195851},{"guid":"{a7aae4f0-bc2e-a0dd-fb8d-68ce32c9261f}","prefs":[],"schema":1480349193877,"blockID":"i378","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=865090","who":"All Firefox users who have installed this add-on.","why":"This extension is malware that hijacks Facebook accounts for malicious purposes.","name":"Myanmar Extension for Facebook (malware)","created":"2013-06-18T15:58:54Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"30ecd9b9-4023-d9ef-812d-f1a75bb189b0","last_modified":1480349195823},{"guid":"a88a77ahjjfjakckmmabsy278djasi@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1034","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1211171","who":"All users who have this add-on installed.","why":"This is a malicious add-on that takes over Facebook accounts.","name":"Fast Unlock (malware)","created":"2015-10-05T16:28:48Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f801f112-3e8f-770f-10db-384349a36026","last_modified":1480349195798},{"guid":"crossriderapp5060@crossrider.com","prefs":[],"schema":1480349193877,"blockID":"i228","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=810016","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently side-installed by other software, and it overrides user preferences and inserts advertisements in web content.","name":"Savings Sidekick","created":"2012-11-29T16:31:13Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a37f76ac-7b77-b5a3-bac8-addaacf34bae","last_modified":1480349195769},{"guid":"/^(saamazon@mybrowserbar\\.com)|(saebay@mybrowserbar\\.com)$/","prefs":[],"schema":1480349193877,"blockID":"i672","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1011337","who":"All Firefox users who have these add-ons installed. Users wishing to continue using these add-ons can enable them in the Add-ons Manager.","why":"These add-ons are being silently installed, in violation of the Add-on Guidelines.","name":"Spigot Shopping Assistant","created":"2014-07-22T15:13:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e072a461-ee5a-c83d-8d4e-5686eb585a15","last_modified":1480349195347},{"guid":"{b99c8534-7800-48fa-bd71-519a46cdc7e1}","prefs":[],"schema":1480349193877,"blockID":"i596","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1011325","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 Add-on Guidelines.","name":"BrowseMark","created":"2014-06-12T13:19:59Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f411bb0f-7c82-9061-4a80-cabc8ff45beb","last_modified":1480349195319},{"guid":"/^({94d62e35-4b43-494c-bf52-ba5935df36ef}|firefox@advanceelite\\.com|{bb7b7a60-f574-47c2-8a0b-4c56f2da9802})$/","prefs":[],"schema":1480349193877,"blockID":"i856","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1130323","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 Add-on Guidelines.","name":"AdvanceElite (malware)","created":"2015-02-09T15:51:11Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e3d52650-d3e2-4cef-71f7-e6188f56fe4d","last_modified":1480349195286},{"guid":"{458fb825-2370-4973-bf66-9d7142141847}","prefs":["app.update.auto","app.update.enabled","app.update.interval","app.update.url"],"schema":1480349193877,"blockID":"i1024","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1209588","who":"All 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 hides itself in the Add-ons Manager, interrupts the Firefox update process, and reportedly causes other problems to users, in violation of the Add-on Guidelines.","name":"Web Shield","created":"2015-09-29T09:25:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"32c5baa7-d547-eaab-302d-b873c83bfe2d","last_modified":1480349195258},{"guid":"{f2456568-e603-43db-8838-ffa7c4a685c7}","prefs":[],"schema":1480349193877,"blockID":"i778","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 Add-on Guidelines.","name":"Sup-SW","created":"2014-11-07T13:53:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"93568fa2-0cb7-4e1d-e893-d7261e81547c","last_modified":1480349195215},{"guid":"{77BEC163-D389-42c1-91A4-C758846296A5}","prefs":[],"schema":1480349193877,"blockID":"i566","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=964594","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-on Manager.","why":"This add-on is silently installed into Firefox, in violation of the Add-on Guidelines.","name":"V-Bates","created":"2014-03-05T13:20:54Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"080edbac-25d6-e608-abdd-feb1ce7a9a77","last_modified":1480349195185},{"guid":"helper@vidscrab.com","prefs":[],"schema":1480349193877,"blockID":"i1077","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1231010","who":"All Firefox 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 injects remote scripts and injects unwanted content into web pages.","name":"YouTube Video Downloader (from AddonCrop)","created":"2016-01-14T14:32:53Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"36b2e1e0-5fda-bde3-db55-dfcbe24dfd04","last_modified":1480349195157},{"guid":"/^ext@WebexpEnhancedV1alpha[0-9]+\\.net$/","prefs":[],"schema":1480349193877,"blockID":"i535","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=952717","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 generally unwanted by users and uses multiple random IDs in violation of the Add-on Guidelines.","name":"Webexp Enhanced","created":"2014-01-09T11:22:19Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c7d6a30d-f3ee-40fb-5256-138dd4593a61","last_modified":1480349195123},{"guid":"jid1-XLjasWL55iEE1Q@jetpack","prefs":[],"schema":1480349193877,"blockID":"i578","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1002037","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that presents itself as \"Flash Player\" but is really injecting unwanted content into Facebook pages.","name":"Flash Player (malware)","created":"2014-04-28T16:25:03Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1e75b2f0-02fc-77a4-ad2f-52a4caff1a71","last_modified":1480349195058},{"guid":"{a3a5c777-f583-4fef-9380-ab4add1bc2a8}","prefs":[],"schema":1480349193877,"blockID":"i142","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=792132","who":"Todos los usuarios de Firefox que instalaron la versi\u00f3n 4.2 del complemento Cuevana Stream.\r\n\r\nAll Firefox users who have installed version 4.2 of the Cuevana Stream add-on.","why":"Espa\u00f1ol\r\nUna versi\u00f3n maliciosa del complemento Cuevana Stream (4.2) fue colocada en el sitio Cuevana y distribuida a muchos usuarios del sitio. Esta versi\u00f3n recopila informaci\u00f3n de formularios web y los env\u00eda a una direcci\u00f3n remota con fines maliciosos. Se le recomienda a todos los usuarios que instalaron esta versi\u00f3n que cambien sus contrase\u00f1as inmediatamente, y que se actualicen a la nueva versi\u00f3n segura, que es la 4.3.\r\n\r\nEnglish\r\nA malicious version of the Cuevana Stream add-on (4.2) was uploaded to the Cuevana website and distributed to many of its users. This version takes form data and sends it to a remote location with malicious intent. It is recommended that all users who installed this version to update their passwords immediately, and update to the new safe version, version 4.3.\r\n\r\n","name":"Cuevana Stream (malicious version)","created":"2012-09-18T13:37:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"4.2","minVersion":"4.2","targetApplication":[]}],"id":"91e551b9-7e94-60e2-f1bd-52f25844ab16","last_modified":1480349195007},{"guid":"{34712C68-7391-4c47-94F3-8F88D49AD632}","prefs":[],"schema":1480349193877,"blockID":"i922","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:27:31Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"dd350efb-34ac-2bb5-5afd-eed722dbb916","last_modified":1480349194976},{"guid":"PDVDZDW52397720@XDDWJXW57740856.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i846","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128320","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 Add-on Guidelines.","name":"Ge-Force","created":"2015-02-06T15:03:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c33e950c-c977-ed89-c86a-3be8c4be1967","last_modified":1480349194949},{"guid":"{977f3b97-5461-4346-92c8-a14c749b77c9}","prefs":[],"schema":1480349193877,"blockID":"i69","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=729356","who":"All Firefox users who have this add-on installed.","why":"This add-on adds apps to users' accounts, with full access permissions, and sends spam posts using these apps, all without any consent from users.","name":"Zuperface+","created":"2012-02-22T16:41:23Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f105bdc7-7ebd-587c-6344-1533249f50b3","last_modified":1480349194919},{"guid":"discoverypro@discoverypro.com","prefs":[],"schema":1480349193877,"blockID":"i582","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1004231","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, you can enabled it in the Add-ons Manager.","why":"This add-on is silently installed by the CNET installer for MP3 Rocket and probably other software packages. This is in violation of the Add-on Guidelines.","name":"Website Discovery Pro","created":"2014-04-30T16:10:03Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"34eab242-6fbc-a459-a89e-0dc1a0b8355d","last_modified":1480349194878},{"guid":"jid1-bKSXgRwy1UQeRA@jetpack","prefs":[],"schema":1480349193877,"blockID":"i680","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=979856","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 user's systems, in violation of the Add-on Guidelines.","name":"Trusted Shopper","created":"2014-08-01T16:34:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f701b790-b266-c69d-0fba-f2d189cb0f34","last_modified":1480349194851},{"guid":"bcVX5@nQm9l.org","prefs":[],"schema":1480349193877,"blockID":"i848","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128266","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 Add-on Guidelines.","name":"boomdeal","created":"2015-02-09T15:21:17Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f8d6d4e1-b9e6-07f5-2b49-192106a45d82","last_modified":1480349194799},{"guid":"aytac@abc.com","prefs":[],"schema":1480349193877,"blockID":"i504","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947341","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-06T12:07:58Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bfaf8298-dd69-165c-e1ed-ad55584abd18","last_modified":1480349194724},{"guid":"Adobe@flash.com","prefs":[],"schema":1480349193877,"blockID":"i136","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=790100","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware posing as a legitimate Adobe product.","name":"Adobe Flash (malware)","created":"2012-09-10T16:09:06Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"47ac744e-3176-5cb6-1d02-b460e0c7ada0","last_modified":1480349194647},{"guid":"{515b2424-5911-40bd-8a2c-bdb20286d8f5}","prefs":[],"schema":1480349193877,"blockID":"i491","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=940753","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 Add-on Guidelines by making changes that can't be easily reverted.","name":"Connect DLC","created":"2013-11-29T14:52:24Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6d658443-b34a-67ad-934e-cbf7cd407460","last_modified":1480349194580},{"guid":"/^({3f3cddf8-f74d-430c-bd19-d2c9147aed3d}|{515b2424-5911-40bd-8a2c-bdb20286d8f5}|{17464f93-137e-4646-a0c6-0dc13faf0113}|{d1b5aad5-d1ae-4b20-88b1-feeaeb4c1ebc}|{aad50c91-b136-49d9-8b30-0e8d3ead63d0})$/","prefs":[],"schema":1480349193877,"blockID":"i516","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947478","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 Add-on Guidelines by making changes that can't be easily reverted and being distributed under multiple add-on IDs.","name":"Connect DLC","created":"2013-12-20T12:38:20Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"96f8e157-8b8b-8e2e-76cd-6850599b4370","last_modified":1480349194521},{"guid":"wxtui502n2xce9j@no14","prefs":[],"schema":1480349193877,"blockID":"i1012","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1206157","who":"All users who have this add-on installed.","why":"This is a malicious add-on that takes over Facebook accounts.","name":"Video fix (malware)","created":"2015-09-21T13:04:09Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"246798ac-25fa-f4a4-258c-a71f9f6ae091","last_modified":1480349194463},{"guid":"flashX@adobe.com","prefs":[],"schema":1480349193877,"blockID":"i168","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=807052","who":"All Firefox users who have this add-on installed.","why":"This is an exploit proof-of-concept created for a conference presentation, which will probably be copied and modified for malicious purposes. \r\n","name":"Zombie Browser Pack","created":"2012-10-30T12:07:41Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d7c69812-801c-8d8e-12cb-c5171bdc48a1","last_modified":1480349194428},{"guid":"/^(ff\\-)?dodate(kKKK|XkKKK|k|kk|kkx|kR)@(firefox|flash(1)?)\\.pl|dode(ee)?k@firefoxnet\\.pl|(addon|1)@upsolutions\\.pl$/","prefs":[],"schema":1480349193877,"blockID":"i1278","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1312748","who":"Any user with a version of this add-on installed.","why":"This add-on claims to be a flash plugin and it does some work on youtube, but it also steals your facebook and adfly credentials and sends them to a remote server.","name":"Aktualizacja dodatku Flash Add-on","created":"2016-10-27T10:52:53Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"389aec65-a15d-8276-c7a8-691ac283c9f1","last_modified":1480349194386},{"guid":"tmbepff@trendmicro.com","prefs":[],"schema":1480349193877,"blockID":"i1223","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.2 to 9.2.0.1023","created":"2016-05-30T17:07:04Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"9.2.0.1023","minVersion":"9.2","targetApplication":[]}],"id":"46f75b67-2675-bdde-be93-7ea03475d405","last_modified":1480349194331},{"guid":"{4889ddce-7a83-45e6-afc9-1e4f1149fff4}","prefs":[],"schema":1480343836083,"blockID":"i840","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128327","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 Add-on Guidelines.","name":"Cyti Web (malware)","created":"2015-02-06T14:30:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"be600f35-0633-29f3-c571-819e19d85db9","last_modified":1480349193867},{"guid":"{55dce8ba-9dec-4013-937e-adbf9317d990","prefs":[],"schema":1480343836083,"blockID":"i690","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1048647","who":"All Firefox users. 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 users' systems, in violation of the Add-on Guidelines.","name":"Deal Keeper","created":"2014-08-12T16:23:46Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"512b0d40-a10a-5ddc-963b-b9c487eb1422","last_modified":1480349193833},{"guid":"/^new@kuot\\.pro|{13ec6687-0b15-4f01-a5a0-7a891c18e4ee}|rebeccahoppkins(ty(tr)?)?@gmail\\.com|{501815af-725e-45be-b0f2-8f36f5617afc}|{9bdb5f1f-b1e1-4a75-be31-bdcaace20a99}|{e9d93e1d-792f-4f95-b738-7adb0e853b7b}|dojadewaskurwa@gmail\\.com$/","prefs":[],"schema":1480343836083,"blockID":"i1414","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1312748","who":"All users who have this add-on installed.","why":"This add-on claims to be a flash plugin and it does some work on youtube, but it also steals your facebook and adfly credentials and sends them to a remote server.","name":"Aktualizacja dodatku Flash (malware)","created":"2016-10-28T18:06:03Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5cebc983-bc88-d5f8-6807-bd1cbfcd82fd","last_modified":1480349193798},{"guid":"/^pink@.*\\.info$/","prefs":[],"schema":1480343836083,"blockID":"i238","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806543","who":"All Firefox users (Firefox 19 and above) who have any of these add-ons installed.","why":"This is a set of malicious add-ons that affect many users and are installed without their consent.","name":"Pink add-ons (malware)","created":"2012-12-07T13:46:20Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"18.0"}]}],"id":"0d964264-8bd6-b78d-3c6c-92046c7dc8d0","last_modified":1480349193764},{"guid":"{58d2a791-6199-482f-a9aa-9b725ec61362}","prefs":[],"schema":1480343836083,"blockID":"i746","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 Add-on Guidelines.","name":"Start Page","created":"2014-10-17T16:01:53Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8ebbc7d0-635c-b74a-de9f-16eb5837b36a","last_modified":1480349193730},{"guid":"{94cd2cc3-083f-49ba-a218-4cda4b4829fd}","prefs":[],"schema":1480343836083,"blockID":"i590","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1013678","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' profiles, in violation of the Add-on Guidelines.","name":"Value Apps","created":"2014-06-03T16:12:50Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"556b8d4d-d6c2-199d-9f33-8eccca07e8e7","last_modified":1480349193649},{"guid":"contentarget@maildrop.cc","prefs":[],"schema":1480343836083,"blockID":"i818","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1119971","who":"All Firefox users who have this add-on installed.","why":"This is a malicious extension that hijacks Facebook accounts.","name":"Astro Play (malware)","created":"2015-01-12T09:29:19Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"440e9923-027a-6089-e036-2f78937dc193","last_modified":1480349193622},{"guid":"unblocker30__web@unblocker.yt","prefs":[],"schema":1480343836083,"blockID":"i1228","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 originally blocked due to malicious activity.","name":"YouTube Unblocker 3.0","created":"2016-06-01T15:17:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2d83e640-ef9d-f260-f5a3-a1a5c8390bfc","last_modified":1480349193595},{"guid":"noOpus@outlook.com","prefs":[],"schema":1480343836083,"blockID":"i816","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1119659","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":"Full Screen (malware)","created":"2015-01-09T12:52:32Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b64d7cef-8b6c-2575-16bc-732fca7db377","last_modified":1480349193537},{"guid":"{c95a4e8e-816d-4655-8c79-d736da1adb6d}","prefs":[],"schema":1480343836083,"blockID":"i433","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 Add-on Guidelines. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Hotspot Shield","created":"2013-08-09T11:25:49Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b3168278-a8ae-4882-7f26-355bc362bed0","last_modified":1480349193510},{"guid":"{9802047e-5a84-4da3-b103-c55995d147d1}","prefs":[],"schema":1480343836083,"blockID":"i722","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 Add-on Guidelines.","name":"Web Finder Pro","created":"2014-10-07T12:58:14Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"50097c29-26b1-bf45-ffe1-83da217eb127","last_modified":1480349193482},{"guid":"/^({bf9194c2-b86d-4ebc-9b53-1c08b6ff779e}|{61a83e16-7198-49c6-8874-3e4e8faeb4f3}|{f0af464e-5167-45cf-9cf0-66b396d1918c}|{5d9968c3-101c-4944-ba71-72d77393322d}|{01e86e69-a2f8-48a0-b068-83869bdba3d0})$/","prefs":[],"schema":1480343836083,"blockID":"i515","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 Add-on Guidelines by using multiple add-on IDs and making unwanted settings changes.","name":"VisualBee Toolbar","created":"2013-12-20T12:26:49Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"029fa6f9-2351-40b7-5443-9a66e057f199","last_modified":1480349193449},{"guid":"/^({d50bfa5f-291d-48a8-909c-5f1a77b31948}|{d54bc985-6e7b-46cd-ad72-a4a266ad879e}|{d89e5de3-5543-4363-b320-a98cf150f86a}|{f3465017-6f51-4980-84a5-7bee2f961eba}|{fae25f38-ff55-46ea-888f-03b49aaf8812})$/","prefs":[],"schema":1480343836083,"blockID":"i1137","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:42Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"252e18d0-85bc-7bb3-6197-5f126424c9b3","last_modified":1480349193419},{"guid":"ffxtlbr@claro.com","prefs":[],"schema":1480343836083,"blockID":"i218","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=816762","who":"All Firefox users who have installed this add-on.","why":"The Claro Toolbar is side-installed with other software, unexpectedly changing users' settings and then making it impossible for these settings to be reverted by users.","name":"Claro Toolbar","created":"2012-11-29T16:07:00Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e017a3b2-9b37-b8a0-21b0-bc412ae8a7f4","last_modified":1480349193385},{"guid":"/^(.*@(unblocker\\.yt|sparpilot\\.com))|(axtara@axtara\\.com)$/","prefs":[],"schema":1480343836083,"blockID":"i1229","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 originally blocked due to malicious activity.","name":"YouTube Unblocker (various)","created":"2016-06-03T15:28:39Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c677cc5d-5b1e-8aa2-5cea-5a8dddce2ecf","last_modified":1480349193344},{"guid":"/^(j003-lqgrmgpcekslhg|SupraSavings|j003-dkqonnnthqjnkq|j003-kaggrpmirxjpzh)@jetpack$/","prefs":[],"schema":1480343836083,"blockID":"i692","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1048656","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 users' systems, in violation of the Add-on Guidelines.","name":"SupraSavings","created":"2014-08-12T16:27:06Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b0d30256-4581-1489-c241-d2e85b6c38f4","last_modified":1480349193295},{"guid":"helperbar@helperbar.com","prefs":[],"schema":1480343836083,"blockID":"i258","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=817786","who":"All Firefox users who have this add-on installed. This only applies to version 1.0 of Snap.do. Version 1.1 fixed all the issues for which this block was created.","why":"This extension violates a number of our Add-on Guidelines, particularly on installation and settings handling. It also causes some stability problems in Firefox due to the way the toolbar is handled.\r\n\r\nUsers who wish to keep the add-on enabled can enable it again in the Add-ons Manager.","name":"Snap.do","created":"2013-01-28T13:52:26Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0","minVersion":"0","targetApplication":[]}],"id":"f1ede5b8-7757-5ec5-d8ed-1a01889154aa","last_modified":1480349193254},{"guid":"/^((support2_en@adobe14\\.com)|(XN4Xgjw7n4@yUWgc\\.com)|(C7yFVpIP@WeolS3acxgS\\.com)|(Kbeu4h0z@yNb7QAz7jrYKiiTQ3\\.com)|(aWQzX@a6z4gWdPu8FF\\.com)|(CBSoqAJLYpCbjTP90@JoV0VMywCjsm75Y0toAd\\.com)|(zZ2jWZ1H22Jb5NdELHS@o0jQVWZkY1gx1\\.com))$/","prefs":[],"schema":1480343836083,"blockID":"i326","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:49:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3142020b-8af9-1bac-60c5-ce5ad0ff3d42","last_modified":1480349193166},{"guid":"newmoz@facebook.com","prefs":[],"schema":1480343836083,"blockID":"i576","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=997986","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook user accounts and sends spam on the user's behalf.","name":"Facebook Service Pack (malware)","created":"2014-04-22T14:34:42Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d85798d3-9b87-5dd9-ace2-64914b93df77","last_modified":1480349193114},{"guid":"flvto@hotger.com","prefs":[],"schema":1480343836083,"blockID":"i1211","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":"YouTube to MP3 Button","created":"2016-05-04T16:26:32Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a14d355f-719f-3b97-506c-083cc97cebaa","last_modified":1480349193088},{"guid":"{0F827075-B026-42F3-885D-98981EE7B1AE}","prefs":[],"schema":1480343836083,"blockID":"i334","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=862272","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 BrowserProtect extension that is listed on our add-ons site. That one is safe to use.","name":"Browser Protect / bProtector (malware)","created":"2013-04-16T13:25:01Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"aad4545f-8f9d-dd53-2aa8-e8945cad6185","last_modified":1480349192987}]} \ No newline at end of file From c7dbf9023381987c1d9ea7ea698be6de51fcd8a4 Mon Sep 17 00:00:00 2001 From: Yaron Tausky Date: Thu, 20 Dec 2018 13:39:46 +0000 Subject: [PATCH 07/39] Bug 1502871 - Get RefPtr to transaction before using it; r=janv Avoid use-after-free by getting a RefPtr to a transaction before calling content code that could cause its deallocation. Differential Revision: https://phabricator.services.mozilla.com/D14427 --HG-- extra : moz-landing-system : lando --- dom/indexedDB/ActorsChild.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dom/indexedDB/ActorsChild.cpp b/dom/indexedDB/ActorsChild.cpp index c209f1a9eaa0..8e9e58bfd5c2 100644 --- a/dom/indexedDB/ActorsChild.cpp +++ b/dom/indexedDB/ActorsChild.cpp @@ -3544,6 +3544,8 @@ mozilla::ipc::IPCResult BackgroundCursorChild::RecvResponse( RefPtr cursor; mStrongCursor.swap(cursor); + RefPtr transaction = mTransaction; + switch (aResponse.type()) { case CursorResponse::Tnsresult: HandleResponse(aResponse.get_nsresult()); @@ -3573,7 +3575,7 @@ mozilla::ipc::IPCResult BackgroundCursorChild::RecvResponse( MOZ_CRASH("Should never get here!"); } - mTransaction->OnRequestFinished(/* aActorDestroyedNormally */ true); + transaction->OnRequestFinished(/* aActorDestroyedNormally */ true); return IPC_OK(); } From 1501f85b81af6a3d9b985cebfe232aef1b9eac89 Mon Sep 17 00:00:00 2001 From: "arthur.iakab" Date: Thu, 20 Dec 2018 16:00:32 +0200 Subject: [PATCH 08/39] Backed out 2 changesets (bug 1514815) for failing devtools on browser_console_consolejsm_output.js CLOSED TREE Backed out changeset d822219ea9bc (bug 1514815) Backed out changeset 209bdfcecdc9 (bug 1514815) --- .../client/shared/components/SmartTrace.js | 15 ---- .../test_smart-trace-source-maps.html | 24 +----- .../test/mochitest/test_smart-trace.html | 7 -- .../webconsole/components/ConsoleOutput.js | 6 -- .../webconsole/components/GripMessageBody.js | 3 - .../client/webconsole/components/Message.js | 2 - .../message-types/ConsoleApiCall.js | 6 -- .../message-types/ConsoleCommand.js | 3 - .../message-types/EvaluationResult.js | 4 - .../components/message-types/PageError.js | 3 - .../mochitest/browser_webconsole_scroll.js | 74 +++++-------------- .../webconsole/utils/object-inspector.js | 1 - 12 files changed, 18 insertions(+), 130 deletions(-) diff --git a/devtools/client/shared/components/SmartTrace.js b/devtools/client/shared/components/SmartTrace.js index c05595f4e63c..db040cb4d1a2 100644 --- a/devtools/client/shared/components/SmartTrace.js +++ b/devtools/client/shared/components/SmartTrace.js @@ -24,9 +24,6 @@ class SmartTrace extends Component { sourceMapService: PropTypes.object, initialRenderDelay: PropTypes.number, onSourceMapResultDebounceDelay: PropTypes.number, - // Function that will be called when the SmartTrace is ready, i.e. once it was - // rendered. - onReady: PropTypes.func, }; } @@ -86,12 +83,6 @@ class SmartTrace extends Component { } } - componentDidMount() { - if (this.props.onReady && this.state.ready) { - this.props.onReady(); - } - } - shouldComponentUpdate(_, nextState) { if (this.state.ready === false && nextState.ready === true) { return true; @@ -104,12 +95,6 @@ class SmartTrace extends Component { return false; } - componentDidUpdate(_, previousState) { - if (this.props.onReady && !previousState.ready && this.state.ready) { - this.props.onReady(); - } - } - componentWillUnmount() { if (this.initialRenderDelayTimeoutId) { clearTimeout(this.initialRenderDelayTimeoutId); diff --git a/devtools/client/shared/components/test/mochitest/test_smart-trace-source-maps.html b/devtools/client/shared/components/test/mochitest/test_smart-trace-source-maps.html index 2e8bff2e8318..b22e48d4bd1f 100644 --- a/devtools/client/shared/components/test/mochitest/test_smart-trace-source-maps.html +++ b/devtools/client/shared/components/test/mochitest/test_smart-trace-source-maps.html @@ -39,15 +39,11 @@ window.onload = function() { }, ]; - let onReadyCount = 0; const props = { stacktrace, initialRenderDelay: 2000, onViewSourceInDebugger: () => {}, onViewSourceInScratchpad: () => {}, - onReady: () => { - onReadyCount++; - }, // A mock source map service. sourceMapService: { subscribe: function (url, line, column, callback) { @@ -83,8 +79,6 @@ window.onload = function() { location: "original.js:22", tooltip: "View source in Debugger → https://bugzilla.mozilla.org/original.js:22", }); - - is(onReadyCount, 1, "onReady was called once"); }); add_task(async function testSlowSourcemapService() { @@ -105,16 +99,12 @@ window.onload = function() { const sourcemapTimeout = 2000; const initialRenderDelay = 300; - let onReadyCount = 0; const props = { stacktrace, initialRenderDelay, onViewSourceInDebugger: () => {}, onViewSourceInScratchpad: () => {}, - onReady: () => { - onReadyCount++; - }, // A mock source map service. sourceMapService: { subscribe: function (url, line, column, callback) { @@ -133,7 +123,6 @@ window.onload = function() { let traceEl = ReactDOM.findDOMNode(trace); ok(!traceEl, "Nothing was rendered at first"); - is(onReadyCount, 0, "onReady isn't called if SmartTrace isn't rendered"); info("Wait for the initial delay to be over"); await new Promise(res => setTimeout(res, initialRenderDelay)); @@ -160,8 +149,6 @@ window.onload = function() { tooltip: "View source in Debugger → http://myfile.com/bundle.js:2", }); - is(onReadyCount, 1, "onReady was called once"); - info("Check the the sourcemapped version is rendered after the sourcemapTimeout"); await waitFor(() => !!traceEl.querySelector(".group")); @@ -171,8 +158,6 @@ window.onload = function() { const groups = Array.from(traceEl.querySelectorAll(".group")); is(groups.length, 1, "SmartTrace has a group"); is(groups[0].textContent, "last2React", "A collapsed React group is displayed"); - - is(onReadyCount, 1, "onReady was only called once"); }); add_task(async function testFlakySourcemapService() { @@ -199,7 +184,6 @@ window.onload = function() { const initialRenderDelay = 300; const onSourceMapResultDebounceDelay = 50; - let onReadyCount = 0; const props = { stacktrace, @@ -207,9 +191,6 @@ window.onload = function() { onSourceMapResultDebounceDelay, onViewSourceInDebugger: () => {}, onViewSourceInScratchpad: () => {}, - onReady: () => { - onReadyCount++; - }, // A mock source map service. sourceMapService: { subscribe: function (url, line, column, callback) { @@ -231,7 +212,6 @@ window.onload = function() { let traceEl = ReactDOM.findDOMNode(trace); ok(!traceEl, "Nothing was rendered at first"); - is(onReadyCount, 0, "onReady isn't called if SmartTrace isn't rendered"); info("Wait for the initial delay + debounce to be over"); await waitFor(() => { @@ -244,7 +224,7 @@ window.onload = function() { let frameEls = Array.from(traceEl.querySelectorAll(".frame")); ok(frameEls, "Rendered SmartTrace has frames"); - is(frameEls.length, 3, "SmartTrace has 3 frames"); + is(frameEls.length, 3, "SmartTrace has 2 frames"); info("Check that the original frames are displayed even if there's no sourcemap " + "response for some frames"); @@ -268,8 +248,6 @@ window.onload = function() { location: "file-3.js:33", tooltip: "View source in Debugger → http://myfile.com/file-3.js:33", }); - - is(onReadyCount, 1, "onReady was only called once"); }); }; diff --git a/devtools/client/shared/components/test/mochitest/test_smart-trace.html b/devtools/client/shared/components/test/mochitest/test_smart-trace.html index 6edf7fb2e24d..cc3b39f9dca6 100644 --- a/devtools/client/shared/components/test/mochitest/test_smart-trace.html +++ b/devtools/client/shared/components/test/mochitest/test_smart-trace.html @@ -40,15 +40,10 @@ window.onload = function() { }, ]; - let onReadyCount = 0; - const props = { stacktrace, onViewSourceInDebugger: () => {}, onViewSourceInScratchpad: () => {}, - onReady: () => { - onReadyCount++; - } }; const trace = ReactDOM.render(SmartTrace(props), window.document.body); @@ -75,8 +70,6 @@ window.onload = function() { location: "http://myfile.com/loadee.js:10", tooltip: "View source in Debugger → http://myfile.com/loadee.js:10", }); - - is(onReadyCount, 1, "onReady was called once"); }); }; diff --git a/devtools/client/webconsole/components/ConsoleOutput.js b/devtools/client/webconsole/components/ConsoleOutput.js index 1b9cceff544c..2d06c1e8d6d6 100644 --- a/devtools/client/webconsole/components/ConsoleOutput.js +++ b/devtools/client/webconsole/components/ConsoleOutput.js @@ -67,7 +67,6 @@ class ConsoleOutput extends Component { constructor(props) { super(props); this.onContextMenu = this.onContextMenu.bind(this); - this.maybeScrollToBottom = this.maybeScrollToBottom.bind(this); } componentDidMount() { @@ -126,10 +125,6 @@ class ConsoleOutput extends Component { } componentDidUpdate() { - this.maybeScrollToBottom(); - } - - maybeScrollToBottom() { if (this.shouldScrollBottom) { scrollToBottom(this.outputNode); } @@ -182,7 +177,6 @@ class ConsoleOutput extends Component { pausedExecutionPoint, getMessage: () => messages.get(messageId), isPaused: pausedMessage && pausedMessage.id == messageId, - maybeScrollToBottom: this.maybeScrollToBottom, })); return ( diff --git a/devtools/client/webconsole/components/GripMessageBody.js b/devtools/client/webconsole/components/GripMessageBody.js index 46d777e9bc7d..0a8ff4db4ba0 100644 --- a/devtools/client/webconsole/components/GripMessageBody.js +++ b/devtools/client/webconsole/components/GripMessageBody.js @@ -36,7 +36,6 @@ GripMessageBody.propTypes = { escapeWhitespace: PropTypes.bool, type: PropTypes.string, helperType: PropTypes.string, - maybeScrollToBottom: PropTypes.func, }; GripMessageBody.defaultProps = { @@ -52,7 +51,6 @@ function GripMessageBody(props) { escapeWhitespace, mode = MODE.LONG, dispatch, - maybeScrollToBottom, } = props; let styleObject; @@ -63,7 +61,6 @@ function GripMessageBody(props) { const objectInspectorProps = { autoExpandDepth: shouldAutoExpandObjectInspector(props) ? 1 : 0, mode, - maybeScrollToBottom, // TODO: we disable focus since the tabbing trail is a bit weird in the output (e.g. // location links are not focused). Let's remove the property below when we found and // fixed the issue (See Bug 1456060). diff --git a/devtools/client/webconsole/components/Message.js b/devtools/client/webconsole/components/Message.js index 93e1af35d9fd..8899aaf33064 100644 --- a/devtools/client/webconsole/components/Message.js +++ b/devtools/client/webconsole/components/Message.js @@ -70,7 +70,6 @@ class Message extends Component { frame: PropTypes.any, })), isPaused: PropTypes.bool, - maybeScrollToBottom: PropTypes.func, }; } @@ -211,7 +210,6 @@ class Message extends Component { onViewSourceInScratchpad: serviceContainer.onViewSourceInScratchpad || serviceContainer.onViewSource, onViewSource: serviceContainer.onViewSource, - onReady: this.props.maybeScrollToBottom, sourceMapService: serviceContainer.sourceMapService, }), ); diff --git a/devtools/client/webconsole/components/message-types/ConsoleApiCall.js b/devtools/client/webconsole/components/message-types/ConsoleApiCall.js index 72db471c7b40..bfcf2991e3b5 100644 --- a/devtools/client/webconsole/components/message-types/ConsoleApiCall.js +++ b/devtools/client/webconsole/components/message-types/ConsoleApiCall.js @@ -24,7 +24,6 @@ ConsoleApiCall.propTypes = { open: PropTypes.bool, serviceContainer: PropTypes.object.isRequired, timestampsVisible: PropTypes.bool.isRequired, - maybeScrollToBottom: PropTypes.func, }; ConsoleApiCall.defaultProps = { @@ -42,7 +41,6 @@ function ConsoleApiCall(props) { repeat, pausedExecutionPoint, isPaused, - maybeScrollToBottom, } = props; const { id: messageId, @@ -68,7 +66,6 @@ function ConsoleApiCall(props) { userProvidedStyles, serviceContainer, type, - maybeScrollToBottom, }; if (type === "trace") { @@ -140,7 +137,6 @@ function ConsoleApiCall(props) { timeStamp, timestampsVisible, parameters, - maybeScrollToBottom, }); } @@ -154,7 +150,6 @@ function formatReps(options = {}) { serviceContainer, userProvidedStyles, type, - maybeScrollToBottom, } = options; return ( @@ -171,7 +166,6 @@ function formatReps(options = {}) { loadedObjectProperties, loadedObjectEntries, type, - maybeScrollToBottom, })) // Interleave spaces. .reduce((arr, v, i) => { diff --git a/devtools/client/webconsole/components/message-types/ConsoleCommand.js b/devtools/client/webconsole/components/message-types/ConsoleCommand.js index 2fcbea2cf046..0aa9e3ec8ca5 100644 --- a/devtools/client/webconsole/components/message-types/ConsoleCommand.js +++ b/devtools/client/webconsole/components/message-types/ConsoleCommand.js @@ -17,7 +17,6 @@ ConsoleCommand.propTypes = { message: PropTypes.object.isRequired, timestampsVisible: PropTypes.bool.isRequired, serviceContainer: PropTypes.object, - maybeScrollToBottom: PropTypes.func, }; /** @@ -28,7 +27,6 @@ function ConsoleCommand(props) { message, timestampsVisible, serviceContainer, - maybeScrollToBottom, } = props; const { @@ -53,7 +51,6 @@ function ConsoleCommand(props) { indent, timeStamp, timestampsVisible, - maybeScrollToBottom, }); } diff --git a/devtools/client/webconsole/components/message-types/EvaluationResult.js b/devtools/client/webconsole/components/message-types/EvaluationResult.js index 497a3b67e550..d4837af963cb 100644 --- a/devtools/client/webconsole/components/message-types/EvaluationResult.js +++ b/devtools/client/webconsole/components/message-types/EvaluationResult.js @@ -19,7 +19,6 @@ EvaluationResult.propTypes = { message: PropTypes.object.isRequired, timestampsVisible: PropTypes.bool.isRequired, serviceContainer: PropTypes.object, - maybeScrollToBottom: PropTypes.func, }; function EvaluationResult(props) { @@ -28,7 +27,6 @@ function EvaluationResult(props) { message, serviceContainer, timestampsVisible, - maybeScrollToBottom, } = props; const { @@ -65,7 +63,6 @@ function EvaluationResult(props) { escapeWhitespace: false, type, helperType, - maybeScrollToBottom, }); } @@ -86,7 +83,6 @@ function EvaluationResult(props) { parameters, notes, timestampsVisible, - maybeScrollToBottom, }); } diff --git a/devtools/client/webconsole/components/message-types/PageError.js b/devtools/client/webconsole/components/message-types/PageError.js index 71dfed37f4fb..3c5fcf281424 100644 --- a/devtools/client/webconsole/components/message-types/PageError.js +++ b/devtools/client/webconsole/components/message-types/PageError.js @@ -18,7 +18,6 @@ PageError.propTypes = { open: PropTypes.bool, timestampsVisible: PropTypes.bool.isRequired, serviceContainer: PropTypes.object, - maybeScrollToBottom: PropTypes.func, }; PageError.defaultProps = { @@ -34,7 +33,6 @@ function PageError(props) { serviceContainer, timestampsVisible, isPaused, - maybeScrollToBottom, } = props; const { id: messageId, @@ -79,7 +77,6 @@ function PageError(props) { timeStamp, notes, timestampsVisible, - maybeScrollToBottom, }); } diff --git a/devtools/client/webconsole/test/mochitest/browser_webconsole_scroll.js b/devtools/client/webconsole/test/mochitest/browser_webconsole_scroll.js index 91eba671d79f..49ef23d7db64 100644 --- a/devtools/client/webconsole/test/mochitest/browser_webconsole_scroll.js +++ b/devtools/client/webconsole/test/mochitest/browser_webconsole_scroll.js @@ -8,16 +8,9 @@ const TEST_URI = `data:text/html;charset=utf-8,

Web Console test for scroll.

`; add_task(async function() { @@ -30,10 +23,6 @@ add_task(async function() { ok(hasVerticalOverflow(outputContainer), "There is a vertical overflow"); ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); - info("Wait until all stacktraces are rendered"); - await waitFor(() => outputContainer.querySelectorAll(".frames").length === 10); - ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); - await refreshTab(); info("Console should be scrolled to bottom after refresh from page logs"); @@ -41,68 +30,39 @@ add_task(async function() { ok(hasVerticalOverflow(outputContainer), "There is a vertical overflow"); ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); - info("Wait until all stacktraces are rendered"); - await waitFor(() => outputContainer.querySelectorAll(".frames").length === 10); - ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); - info("Scroll up"); outputContainer.scrollTop = 0; - info("Add a console.trace message to check that the scroll isn't impacted"); - let onMessage = waitForMessage(hud, "trace in C"); + info("Add a message to check that the scroll isn't impacted"); + let receievedMessages = waitForMessages({hud, messages: [{ + text: "stay", + }]}); ContentTask.spawn(gBrowser.selectedBrowser, {}, function() { - content.wrappedJSObject.c(); + content.wrappedJSObject.console.log("stay"); }); - let message = await onMessage; + await receievedMessages; ok(hasVerticalOverflow(outputContainer), "There is a vertical overflow"); is(outputContainer.scrollTop, 0, "The console stayed scrolled to the top"); - info("Wait until the stacktrace is rendered"); - await waitFor(() => message.node.querySelector(".frame")); - is(outputContainer.scrollTop, 0, "The console stayed scrolled to the top"); - info("Evaluate a command to check that the console scrolls to the bottom"); - onMessage = waitForMessage(hud, "42"); + receievedMessages = waitForMessages({hud, messages: [{ + text: "42", + }]}); ui.jsterm.execute("21 + 21"); - await onMessage; + await receievedMessages; ok(hasVerticalOverflow(outputContainer), "There is a vertical overflow"); ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); info("Add a message to check that the console do scroll since we're at the bottom"); - onMessage = waitForMessage(hud, "scroll"); + receievedMessages = waitForMessages({hud, messages: [{ + text: "scroll", + }]}); ContentTask.spawn(gBrowser.selectedBrowser, {}, function() { content.wrappedJSObject.console.log("scroll"); }); - await onMessage; + await receievedMessages; ok(hasVerticalOverflow(outputContainer), "There is a vertical overflow"); ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); - - info("Evaluate an Error object to check that the console scrolls to the bottom"); - onMessage = waitForMessage(hud, "myErrorObject", ".message.result"); - ui.jsterm.execute(` - x = new Error("myErrorObject"); - x.stack = "a@b/c.js:1:2\\nd@e/f.js:3:4"; - x;` - ); - message = await onMessage; - ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); - - info("Wait until the stacktrace is rendered and check the console is scrolled"); - await waitFor(() => message.node.querySelector(".objectBox-stackTrace .frame")); - ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); - - info("Add a console.trace message to check that the console stays scrolled to bottom"); - onMessage = waitForMessage(hud, "trace in C"); - ContentTask.spawn(gBrowser.selectedBrowser, {}, function() { - content.wrappedJSObject.c(); - }); - message = await onMessage; - ok(hasVerticalOverflow(outputContainer), "There is a vertical overflow"); - ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); - - info("Wait until the stacktrace is rendered"); - await waitFor(() => message.node.querySelector(".frame")); - ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); }); function hasVerticalOverflow(container) { diff --git a/devtools/client/webconsole/utils/object-inspector.js b/devtools/client/webconsole/utils/object-inspector.js index c6bda44f64e7..d0a725cc8432 100644 --- a/devtools/client/webconsole/utils/object-inspector.js +++ b/devtools/client/webconsole/utils/object-inspector.js @@ -62,7 +62,6 @@ function getObjectInspector(grip, serviceContainer, override = {}) { ? serviceContainer.onViewSourceInScratchpad || serviceContainer.onViewSource : null, onViewSource: serviceContainer.onViewSource, - onReady: override.maybeScrollToBottom, sourceMapService: serviceContainer ? serviceContainer.sourceMapService : null, }), }; From 70f9100da65bd2816202c90834a98d8a90e13e97 Mon Sep 17 00:00:00 2001 From: Florin Strugariu Date: Wed, 19 Dec 2018 14:19:30 +0000 Subject: [PATCH 09/39] Bug 1511029 Mitmproxy alternate-server-replay returns last found request ignoring match algorithm r=acreskey Mitmproxy alternate-server-replay returns last found request ignoring match algorithm Differential Revision: https://phabricator.services.mozilla.com/D13408 --HG-- extra : moz-landing-system : lando --- testing/raptor/raptor/playback/alternate-server-replay.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testing/raptor/raptor/playback/alternate-server-replay.py b/testing/raptor/raptor/playback/alternate-server-replay.py index 84160f03e72d..47c3d9eacaba 100644 --- a/testing/raptor/raptor/playback/alternate-server-replay.py +++ b/testing/raptor/raptor/playback/alternate-server-replay.py @@ -146,12 +146,12 @@ class ServerPlayback: for candidate_flow in flows: candidate_match = self._match(candidate_flow.request, request) ctx.log.debug(" score={} url={}".format(candidate_match, candidate_flow.request.url)) - if candidate_match > match: + if candidate_match >= match: match = candidate_match flow = candidate_flow ctx.log.info("For request {} best match {} with score=={}".format(request.url, flow.request.url, match)) - return candidate_flow + return flow def configure(self, options, updated): self.options = options From 298665aaa9f8eac9664648a7318f43d6f5231677 Mon Sep 17 00:00:00 2001 From: Daisuke Akatsuka Date: Wed, 19 Dec 2018 05:44:05 +0000 Subject: [PATCH 10/39] Bug 1513706 - Part 1: Avoid to render computed timing path for negative delay area. r=pbro The calculation for firstSectionCount was wrong. In here, the firstSectionCount should be min value of either fraction of iterationStart or iterationCount. Differential Revision: https://phabricator.services.mozilla.com/D14838 --HG-- extra : moz-landing-system : lando --- .../inspector/animation/components/graph/TimingPath.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/devtools/client/inspector/animation/components/graph/TimingPath.js b/devtools/client/inspector/animation/components/graph/TimingPath.js index c14993de402b..646d221191c3 100644 --- a/devtools/client/inspector/animation/components/graph/TimingPath.js +++ b/devtools/client/inspector/animation/components/graph/TimingPath.js @@ -53,9 +53,9 @@ class TimingPath extends PureComponent { // This section is only useful in cases where iterationStart has decimals. // e.g. // if { iterationStart: 0.25, iterations: 3 }, firstSectionCount is 0.75. - const firstSectionCount = iterationStart % 1 === 0 - ? 0 - : Math.min(iterationCount, 1) - iterationStart % 1; + const firstSectionCount = + iterationStart % 1 === 0 ? 0 : Math.min(1 - iterationStart % 1, iterationCount); + if (firstSectionCount) { this.renderFirstIteration(pathList, state, mainIterationStartTime, firstSectionCount, helper); From 6d07d13586d2565a31d7125067d52a8184ea3de4 Mon Sep 17 00:00:00 2001 From: Daisuke Akatsuka Date: Thu, 20 Dec 2018 12:41:38 +0000 Subject: [PATCH 11/39] Bug 1513706 - Part 2: Add a test for negative delay. r=pbro Depends on D14838 Differential Revision: https://phabricator.services.mozilla.com/D14839 --HG-- extra : moz-landing-system : lando --- ...tion_summary-graph_computed-timing-path.js | 1 + ...ation_summary-graph_negative-delay-path.js | 71 +++++++++++++++++-- .../animation/test/doc_multi_timings.html | 8 +++ 3 files changed, 76 insertions(+), 4 deletions(-) diff --git a/devtools/client/inspector/animation/test/browser_animation_summary-graph_computed-timing-path.js b/devtools/client/inspector/animation/test/browser_animation_summary-graph_computed-timing-path.js index a99966aa0bf1..7cf678f818e6 100644 --- a/devtools/client/inspector/animation/test/browser_animation_summary-graph_computed-timing-path.js +++ b/devtools/client/inspector/animation/test/browser_animation_summary-graph_computed-timing-path.js @@ -391,6 +391,7 @@ const TEST_DATA = [ add_task(async function() { await addTab(URL_ROOT + "doc_multi_timings.html"); + await removeAnimatedElementsExcept(TEST_DATA.map(t => `.${ t.targetClass }`)); const { panel } = await openAnimationInspector(); for (const testData of TEST_DATA) { diff --git a/devtools/client/inspector/animation/test/browser_animation_summary-graph_negative-delay-path.js b/devtools/client/inspector/animation/test/browser_animation_summary-graph_negative-delay-path.js index 8e25063fbdb4..b9085304a5f0 100644 --- a/devtools/client/inspector/animation/test/browser_animation_summary-graph_negative-delay-path.js +++ b/devtools/client/inspector/animation/test/browser_animation_summary-graph_negative-delay-path.js @@ -13,13 +13,54 @@ const TEST_DATA = [ }, { targetClass: "delay-negative", - expectedPath: [ + expectedIterationPathList: [ + [ + { x: 0, y: 0 }, + { x: 0, y: 50 }, + { x: 250000, y: 75 }, + { x: 500000, y: 100 }, + { x: 500000, y: 0 }, + ], + ], + expectedNegativePath: [ { x: -500000, y: 0 }, { x: -250000, y: 25 }, { x: 0, y: 50 }, { x: 0, y: 0 }, ], }, + { + targetClass: "delay-negative-25", + expectedIterationPathList: [ + [ + { x: 0, y: 0 }, + { x: 0, y: 25 }, + { x: 750000, y: 100 }, + { x: 750000, y: 0 }, + ], + ], + expectedNegativePath: [ + { x: -250000, y: 0 }, + { x: 0, y: 25 }, + { x: 0, y: 0 }, + ], + }, + { + targetClass: "delay-negative-75", + expectedIterationPathList: [ + [ + { x: 0, y: 0 }, + { x: 0, y: 75 }, + { x: 250000, y: 100 }, + { x: 250000, y: 0 }, + ], + ], + expectedNegativePath: [ + { x: -750000, y: 0 }, + { x: 0, y: 75 }, + { x: 0, y: 0 }, + ], + }, ]; add_task(async function() { @@ -27,7 +68,8 @@ add_task(async function() { await removeAnimatedElementsExcept(TEST_DATA.map(t => `.${ t.targetClass }`)); const { panel } = await openAnimationInspector(); - for (const { targetClass, expectedPath } of TEST_DATA) { + for (const { targetClass, + expectedIterationPathList, expectedNegativePath } of TEST_DATA) { const animationItemEl = findAnimationItemElementsByTargetSelector(panel, `.${ targetClass }`); @@ -35,14 +77,35 @@ add_task(async function() { const negativeDelayPathEl = animationItemEl.querySelector(".animation-negative-delay-path"); - if (expectedPath) { + if (expectedNegativePath) { ok(negativeDelayPathEl, "The negative delay path element should be in animation item element"); const pathEl = negativeDelayPathEl.querySelector("path"); - assertPathSegments(pathEl, true, expectedPath); + assertPathSegments(pathEl, true, expectedNegativePath); } else { ok(!negativeDelayPathEl, "The negative delay path element should not be in animation item element"); } + + if (!expectedIterationPathList) { + // We don't need to test for iteration path. + continue; + } + + info(`Checking computed timing path existance for ${ targetClass }`); + const computedTimingPathEl = + animationItemEl.querySelector(".animation-computed-timing-path"); + ok(computedTimingPathEl, + "The computed timing path element should be in each animation item element"); + + info(`Checking iteration path list for ${ targetClass }`); + const iterationPathEls = + computedTimingPathEl.querySelectorAll(".animation-iteration-path"); + is(iterationPathEls.length, expectedIterationPathList.length, + `Number of iteration path should be ${ expectedIterationPathList.length }`); + + for (const [j, iterationPathEl] of iterationPathEls.entries()) { + assertPathSegments(iterationPathEl, true, expectedIterationPathList[j]); + } } }); diff --git a/devtools/client/inspector/animation/test/doc_multi_timings.html b/devtools/client/inspector/animation/test/doc_multi_timings.html index 8f4ed7b3e346..a99943191784 100644 --- a/devtools/client/inspector/animation/test/doc_multi_timings.html +++ b/devtools/client/inspector/animation/test/doc_multi_timings.html @@ -156,6 +156,14 @@ ], {}, "duplicate-offsets"); + + createAnimation({ opacity: [0, 1] }, + { delay: -250000 }, + "delay-negative-25"); + + createAnimation({ opacity: [0, 1] }, + { delay: -750000 }, + "delay-negative-75"); From 6ad38d7c577a9fb7d2dc87ad372d4107a379a260 Mon Sep 17 00:00:00 2001 From: Daisuke Akatsuka Date: Thu, 20 Dec 2018 12:42:06 +0000 Subject: [PATCH 12/39] Bug 1513706 - Part 3: Remove duplicated test. r=pbro Depends on D14839 We moved all negative delay path related tests to `browser_animation_summary-graph_negative-delay-path.js`. Thus, "delay-negative" test in `browser_animation_summary-graph_computed-timing-path.js` duplicates. In this patch, remove the duplicated test. However, if we remove this test, the drawing area of the graph will be reduced by that negative delay. So, we remove the test area which reduced at the same time. Differential Revision: https://phabricator.services.mozilla.com/D15064 --HG-- extra : moz-landing-system : lando --- ...tion_summary-graph_computed-timing-path.js | 32 +++---------------- 1 file changed, 4 insertions(+), 28 deletions(-) diff --git a/devtools/client/inspector/animation/test/browser_animation_summary-graph_computed-timing-path.js b/devtools/client/inspector/animation/test/browser_animation_summary-graph_computed-timing-path.js index 7cf678f818e6..9f96358413c1 100644 --- a/devtools/client/inspector/animation/test/browser_animation_summary-graph_computed-timing-path.js +++ b/devtools/client/inspector/animation/test/browser_animation_summary-graph_computed-timing-path.js @@ -54,18 +54,6 @@ const TEST_DATA = [ ], ], }, - { - targetClass: "delay-negative", - expectedIterationPathList: [ - [ - { x: 0, y: 0 }, - { x: 0, y: 50 }, - { x: 250000, y: 75 }, - { x: 500000, y: 100 }, - { x: 500000, y: 0 }, - ], - ], - }, { targetClass: "easing-step", expectedIterationPathList: [ @@ -127,8 +115,6 @@ const TEST_DATA = [ expectedForwardsPath: [ { x: 1500000, y: 0 }, { x: 1500000, y: 100 }, - { x: 2000000, y: 100 }, - { x: 2000000, y: 0 }, ], }, { @@ -146,9 +132,6 @@ const TEST_DATA = [ { x: 1000000, y: 0 }, { x: 1250000, y: 25 }, { x: 1500000, y: 50 }, - { x: 1750000, y: 75 }, - { x: 2000000, y: 100 }, - { x: 2000000, y: 0 }, ], ], isInfinity: true, @@ -169,8 +152,6 @@ const TEST_DATA = [ { x: 1000000, y: 100 }, { x: 1250000, y: 75 }, { x: 1500000, y: 50 }, - { x: 1750000, y: 25 }, - { x: 2000000, y: 0 }, ], ], isInfinity: true, @@ -190,9 +171,6 @@ const TEST_DATA = [ { x: 1000000, y: 0 }, { x: 1250000, y: 25 }, { x: 1500000, y: 50 }, - { x: 1750000, y: 75 }, - { x: 2000000, y: 100 }, - { x: 2000000, y: 0 }, ], ], isInfinity: true, @@ -213,8 +191,6 @@ const TEST_DATA = [ { x: 1000000, y: 100 }, { x: 1250000, y: 75 }, { x: 1500000, y: 50 }, - { x: 1750000, y: 25 }, - { x: 2000000, y: 0 }, ], ], isInfinity: true, @@ -270,8 +246,8 @@ const TEST_DATA = [ expectedForwardsPath: [ { x: 1000000, y: 0 }, { x: 1000000, y: 100 }, - { x: 2000000, y: 100 }, - { x: 2000000, y: 0 }, + { x: 1500000, y: 100 }, + { x: 1500000, y: 0 }, ], }, { @@ -316,8 +292,8 @@ const TEST_DATA = [ expectedForwardsPath: [ { x: 1000000, y: 0 }, { x: 1000000, y: 100 }, - { x: 2000000, y: 100 }, - { x: 2000000, y: 0 }, + { x: 1500000, y: 100 }, + { x: 1500000, y: 0 }, ], }, { From f2a996b941384863698f8ea9ffff381d75bbb5b2 Mon Sep 17 00:00:00 2001 From: Edgar Chen Date: Wed, 19 Dec 2018 13:23:20 +0000 Subject: [PATCH 13/39] Bug 1512457 - Part 1: Correctly handle the case that FocusManager could not find next content has frame in tree; r=smaug In this case we should look for next highest tabindex or do end searching handling, instead of just check the root content. Differential Revision: https://phabricator.services.mozilla.com/D14798 --HG-- extra : moz-landing-system : lando --- dom/base/nsFocusManager.cpp | 86 ++++++++++++++++++++----------------- 1 file changed, 47 insertions(+), 39 deletions(-) diff --git a/dom/base/nsFocusManager.cpp b/dom/base/nsFocusManager.cpp index b79b1e621437..9056711914a4 100644 --- a/dom/base/nsFocusManager.cpp +++ b/dom/base/nsFocusManager.cpp @@ -3226,59 +3226,67 @@ nsresult nsFocusManager::GetNextTabbableContent( bool getNextFrame = true; nsCOMPtr iterStartContent = aStartContent; + // Iterate tab index to find corresponding contents while (1) { - nsIFrame* startFrame = iterStartContent->GetPrimaryFrame(); + nsIFrame* frame = iterStartContent->GetPrimaryFrame(); // if there is no frame, look for another content node that has a frame - if (!startFrame) { + while (!frame) { // if the root content doesn't have a frame, just return - if (iterStartContent == aRootContent) return NS_OK; + if (iterStartContent == aRootContent) { + return NS_OK; + } // look for the next or previous content node in tree order iterStartContent = aForward ? iterStartContent->GetNextNode() : iterStartContent->GetPreviousContent(); + if (!iterStartContent) { + break; + } + + frame = iterStartContent->GetPrimaryFrame(); // we've already skipped over the initial focused content, so we // don't want to traverse frames. getNextFrame = false; - if (iterStartContent) continue; - - // otherwise, as a last attempt, just look at the root content - iterStartContent = aRootContent; - continue; } - // For tab navigation, pass false for aSkipPopupChecks so that we don't - // iterate into or out of a popup. For document naviation pass true to - // ignore these boundaries. nsCOMPtr frameTraversal; - nsresult rv = NS_NewFrameTraversal( - getter_AddRefs(frameTraversal), presContext, startFrame, ePreOrder, - false, // aVisual - false, // aLockInScrollView - true, // aFollowOOFs - aForDocumentNavigation // aSkipPopupChecks - ); - NS_ENSURE_SUCCESS(rv, rv); + if (frame) { + // For tab navigation, pass false for aSkipPopupChecks so that we don't + // iterate into or out of a popup. For document naviation pass true to + // ignore these boundaries. + nsresult rv = NS_NewFrameTraversal( + getter_AddRefs(frameTraversal), presContext, frame, ePreOrder, + false, // aVisual + false, // aLockInScrollView + true, // aFollowOOFs + aForDocumentNavigation // aSkipPopupChecks + ); + NS_ENSURE_SUCCESS(rv, rv); - if (iterStartContent == aRootContent) { - if (!aForward) { - frameTraversal->Last(); - } else if (aRootContent->IsFocusable()) { - frameTraversal->Next(); + if (iterStartContent == aRootContent) { + if (!aForward) { + frameTraversal->Last(); + } else if (aRootContent->IsFocusable()) { + frameTraversal->Next(); + } + frame = static_cast(frameTraversal->CurrentItem()); + } else if (getNextFrame && + (!iterStartContent || + !iterStartContent->IsHTMLElement(nsGkAtoms::area))) { + // Need to do special check in case we're in an imagemap which has + // multiple content nodes per frame, so don't skip over the starting + // frame. + if (aForward) { + frameTraversal->Next(); + } else { + frameTraversal->Prev(); + } + + frame = static_cast(frameTraversal->CurrentItem()); } - } else if (getNextFrame && - (!iterStartContent || - !iterStartContent->IsHTMLElement(nsGkAtoms::area))) { - // Need to do special check in case we're in an imagemap which has - // multiple content nodes per frame, so don't skip over the starting - // frame. - if (aForward) - frameTraversal->Next(); - else - frameTraversal->Prev(); } - // Walk frames to find something tabbable matching mCurrentTabIndex - nsIFrame* frame = static_cast(frameTraversal->CurrentItem()); + // Walk frames to find something tabbable matching aCurrentTabIndex while (frame) { // Try to find the topmost Shadow DOM host, since we want to // skip Shadow DOM in frame traversal. @@ -3339,9 +3347,9 @@ nsresult nsFocusManager::GetNextTabbableContent( // and root content, so that we only find content within the panel. // Note also that we pass false for aForDocumentNavigation since we // want to locate the first content, not the first document. - rv = GetNextTabbableContent(aPresShell, currentContent, nullptr, - currentContent, true, 1, false, false, - aResultContent); + nsresult rv = GetNextTabbableContent( + aPresShell, currentContent, nullptr, currentContent, true, 1, + false, false, aResultContent); if (NS_SUCCEEDED(rv) && *aResultContent) { return rv; } From f0c04529af6c1ff0269c2e0a59d3fe3478e728b1 Mon Sep 17 00:00:00 2001 From: Edgar Chen Date: Wed, 19 Dec 2018 13:37:46 +0000 Subject: [PATCH 14/39] Bug 1512457 - Part 2: Enter into frameless shadow host scope during tree traversal; r=smaug Differential Revision: https://phabricator.services.mozilla.com/D14809 --HG-- extra : moz-landing-system : lando --- dom/base/nsFocusManager.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/dom/base/nsFocusManager.cpp b/dom/base/nsFocusManager.cpp index 9056711914a4..ca456cebc28f 100644 --- a/dom/base/nsFocusManager.cpp +++ b/dom/base/nsFocusManager.cpp @@ -3244,6 +3244,21 @@ nsresult nsFocusManager::GetNextTabbableContent( } frame = iterStartContent->GetPrimaryFrame(); + // Host without frame, enter its scope. + if (!frame && iterStartContent->GetShadowRoot()) { + int32_t tabIndex = HostOrSlotTabIndexValue(iterStartContent); + if (tabIndex >= 0 && + (aIgnoreTabIndex || aCurrentTabIndex == tabIndex)) { + nsIContent* contentToFocus = GetNextTabbableContentInScope( + iterStartContent, iterStartContent, aOriginalStartContent, + aForward, aForward ? 1 : 0, aIgnoreTabIndex, + aForDocumentNavigation, true /* aSkipOwner */); + if (contentToFocus) { + NS_ADDREF(*aResultContent = contentToFocus); + return NS_OK; + } + } + } // we've already skipped over the initial focused content, so we // don't want to traverse frames. getNextFrame = false; From 9941a58c1c59751869953139c857b1bea30bceec Mon Sep 17 00:00:00 2001 From: Edgar Chen Date: Thu, 20 Dec 2018 14:47:39 +0000 Subject: [PATCH 15/39] Bug 1512457 - Part 3: Ensure GetNextTabbableContentInScope returns only elements which have a frame; r=smaug Differential Revision: https://phabricator.services.mozilla.com/D14865 --HG-- extra : moz-landing-system : lando --- dom/base/nsFocusManager.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/dom/base/nsFocusManager.cpp b/dom/base/nsFocusManager.cpp index ca456cebc28f..7de6c65aa033 100644 --- a/dom/base/nsFocusManager.cpp +++ b/dom/base/nsFocusManager.cpp @@ -3008,9 +3008,9 @@ nsIContent* nsFocusManager::GetNextTabbableContentInScope( // is non-negative bool skipOwner = aSkipOwner || !aOwner->GetShadowRoot(); if (!skipOwner && (aForward && aOwner == aStartContent)) { - int32_t tabIndex = 0; - aOwner->IsFocusable(&tabIndex); - if (tabIndex >= 0) { + int32_t tabIndex = -1; + nsIFrame* frame = aOwner->GetPrimaryFrame(); + if (frame && frame->IsFocusable(&tabIndex, false) && tabIndex >= 0) { return aOwner; } } @@ -3112,9 +3112,9 @@ nsIContent* nsFocusManager::GetNextTabbableContentInScope( // Return shadow host at last for backward navigation if its tabindex // is non-negative if (!skipOwner && !aForward) { - int32_t tabIndex = 0; - aOwner->IsFocusable(&tabIndex); - if (tabIndex >= 0) { + int32_t tabIndex = -1; + nsIFrame* frame = aOwner->GetPrimaryFrame(); + if (frame && frame->IsFocusable(&tabIndex, false) && tabIndex >= 0) { return aOwner; } } From 8be8c51fb1458213b85b1082b9e64d0d1d6e4749 Mon Sep 17 00:00:00 2001 From: Edgar Chen Date: Thu, 20 Dec 2018 14:42:07 +0000 Subject: [PATCH 16/39] Bug 1512457 - Part 4: Add more tests for frameless shadow host; r=smaug Differential Revision: https://phabricator.services.mozilla.com/D14897 --HG-- extra : moz-landing-system : lando --- dom/base/test/file_bug1453693.html | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/dom/base/test/file_bug1453693.html b/dom/base/test/file_bug1453693.html index 7ce87302e4b2..ce94136424e5 100644 --- a/dom/base/test/file_bug1453693.html +++ b/dom/base/test/file_bug1453693.html @@ -244,6 +244,19 @@ var shadowInput2 = sr0.getElementById("shadowInput2"); shadowInput2.onfocus = focusLogger; + var host1 = document.createElement("div"); + host1.id = "host"; + host1.tabIndex = 0; + host1.setAttribute("style", "display: contents; border: 1px solid black;"); + document.body.appendChild(host1); + + var sr1 = host1.attachShadow({mode: "open"}); + sr1.innerHTML = ""; + var shadowInput3 = sr1.getElementById("shadowInput1"); + shadowInput3.onfocus = focusLogger; + var shadowInput4 = sr1.getElementById("shadowInput2"); + shadowInput4.onfocus = focusLogger; + document.body.offsetLeft; synthesizeKey("KEY_Tab"); @@ -252,15 +265,28 @@ synthesizeKey("KEY_Tab"); opener.is(lastFocusTarget, shadowInput2, "Should have focused input element. (2)"); + synthesizeKey("KEY_Tab"); + opener.is(lastFocusTarget, shadowInput3, "Should have focused input element. (3)"); + + synthesizeKey("KEY_Tab"); + opener.is(lastFocusTarget, shadowInput4, "Should have focused input element. (4)"); + // Backwards synthesizeKey("KEY_Tab", {shiftKey: true}); - opener.is(lastFocusTarget, shadowInput1, "Should have focused input element. (3)"); + opener.is(lastFocusTarget, shadowInput3, "Should have focused input element. (5)"); + + synthesizeKey("KEY_Tab", {shiftKey: true}); + opener.is(lastFocusTarget, shadowInput2, "Should have focused input element. (6)"); + + synthesizeKey("KEY_Tab", {shiftKey: true}); + opener.is(lastFocusTarget, shadowInput1, "Should have focused input element. (7)"); // Back to beginning, outside of Shadow DOM. synthesizeKey("KEY_Tab", {shiftKey: true}); opener.is(document.activeElement, document.body.firstChild, "body's first child should have focus. (2)"); host.remove(); + host1.remove(); } function testTabbingThroughLightDOMShadowDOMLightDOM() { From a94e1d38e2f3ebf068a18d25cc13f42d05d28e6e Mon Sep 17 00:00:00 2001 From: Mike Conley Date: Wed, 19 Dec 2018 18:32:18 +0000 Subject: [PATCH 17/39] Bug 1441168 - Make promiseDocumentFlushed reject if the DOM is modified in the callback. r=Gijs Differential Revision: https://phabricator.services.mozilla.com/D14101 --HG-- extra : moz-landing-system : lando --- dom/base/nsGlobalWindowInner.cpp | 4 ++++ .../test/browser_promiseDocumentFlushed.js | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/dom/base/nsGlobalWindowInner.cpp b/dom/base/nsGlobalWindowInner.cpp index aa03b3f406fd..af8f9351a609 100644 --- a/dom/base/nsGlobalWindowInner.cpp +++ b/dom/base/nsGlobalWindowInner.cpp @@ -809,12 +809,16 @@ class PromiseDocumentFlushedResolver final { virtual ~PromiseDocumentFlushedResolver() = default; void Call() { + nsMutationGuard guard; ErrorResult error; JS::Rooted returnVal(RootingCx()); mCallback->Call(&returnVal, error); if (error.Failed()) { mPromise->MaybeReject(error); + } else if (guard.Mutated(0)) { + // Something within the callback mutated the DOM. + mPromise->MaybeReject(NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR); } else { mPromise->MaybeResolve(returnVal); } diff --git a/dom/base/test/browser_promiseDocumentFlushed.js b/dom/base/test/browser_promiseDocumentFlushed.js index c0678437b32b..4ac9462c6943 100644 --- a/dom/base/test/browser_promiseDocumentFlushed.js +++ b/dom/base/test/browser_promiseDocumentFlushed.js @@ -243,4 +243,23 @@ add_task(async function test_execution_order() { Assert.equal(result[i], i, "Callbacks and Promises should have run in the expected order."); } + + await cleanTheDOM(); +}); + +/** + * Tests that modifying the DOM within a promiseDocumentFlushed callback + * will result in the Promise being rejected. + */ +add_task(async function test_reject_on_modification() { + dirtyStyleAndLayout(1); + assertFlushesRequired(); + + let promise = window.promiseDocumentFlushed(() => { + dirtyStyleAndLayout(2); + }); + + await Assert.rejects(promise, /NoModificationAllowedError/); + + await cleanTheDOM(); }); From 91692c277fc49e7d7c51a8041d99fe7aebb24d7e Mon Sep 17 00:00:00 2001 From: Matthew Noorenberghe Date: Thu, 20 Dec 2018 15:08:47 +0000 Subject: [PATCH 18/39] Bug 1515048 - Disable the Payment Request UI and tests by default on Nightly. r=jaws,baku Differential Revision: https://phabricator.services.mozilla.com/D14885 --HG-- extra : moz-landing-system : lando --- browser/components/payments/test/browser/browser.ini | 2 +- .../components/payments/test/mochitest/mochitest.ini | 2 +- browser/components/payments/test/unit/xpcshell.ini | 1 + dom/payments/test/browser.ini | 2 ++ dom/payments/test/mochitest.ini | 2 ++ dom/tests/mochitest/general/test_interfaces.js | 12 ++++++------ modules/libpref/init/StaticPrefList.h | 10 ++-------- 7 files changed, 15 insertions(+), 16 deletions(-) diff --git a/browser/components/payments/test/browser/browser.ini b/browser/components/payments/test/browser/browser.ini index cf27fcd2b815..241d1224460d 100644 --- a/browser/components/payments/test/browser/browser.ini +++ b/browser/components/payments/test/browser/browser.ini @@ -5,7 +5,7 @@ prefs = dom.payments.request.enabled=true extensions.formautofill.creditCards.available=true extensions.formautofill.reauth.enabled=true -skip-if = !e10s # Bug 1365964 - Payment Request isn't implemented for non-e10s +skip-if = true || !e10s # Bug 1515048 - Disable for now. Bug 1365964 - Payment Request isn't implemented for non-e10s support-files = blank_page.html diff --git a/browser/components/payments/test/mochitest/mochitest.ini b/browser/components/payments/test/mochitest/mochitest.ini index 2a6cbf4b5bcd..4c3253e4321a 100644 --- a/browser/components/payments/test/mochitest/mochitest.ini +++ b/browser/components/payments/test/mochitest/mochitest.ini @@ -10,7 +10,7 @@ support-files = ../../res/paymentRequest.xhtml ../../res/** payments_common.js -skip-if = !e10s +skip-if = true || !e10s # Bug 1515048 - Disable for now. Bug 1365964 - Payment Request isn't implemented for non-e10s. [test_accepted_cards.html] [test_address_form.html] diff --git a/browser/components/payments/test/unit/xpcshell.ini b/browser/components/payments/test/unit/xpcshell.ini index 3285fd751da8..b4f0db683afe 100644 --- a/browser/components/payments/test/unit/xpcshell.ini +++ b/browser/components/payments/test/unit/xpcshell.ini @@ -1,5 +1,6 @@ [DEFAULT] firefox-appdir = browser head = head.js +skip-if = true # Bug 1515048 - Disable for now. [test_response_creation.js] diff --git a/dom/payments/test/browser.ini b/dom/payments/test/browser.ini index 91f2777e01d8..258bcfbca2f5 100644 --- a/dom/payments/test/browser.ini +++ b/dom/payments/test/browser.ini @@ -1,4 +1,6 @@ [DEFAULT] +prefs = + dom.payments.request.enabled=true # skip-if !e10s will be removed once non-e10s is supported skip-if = !e10s || !nightly_build support-files = diff --git a/dom/payments/test/mochitest.ini b/dom/payments/test/mochitest.ini index 6875a72f6f4e..298a5558ad6a 100644 --- a/dom/payments/test/mochitest.ini +++ b/dom/payments/test/mochitest.ini @@ -1,4 +1,6 @@ [DEFAULT] +prefs = + dom.payments.request.enabled=true # skip-if !e10s will be removed once non-e10s is supported skip-if = !e10s || !nightly_build scheme = https diff --git a/dom/tests/mochitest/general/test_interfaces.js b/dom/tests/mochitest/general/test_interfaces.js index 58f8be688b97..8eda3afb0dc8 100644 --- a/dom/tests/mochitest/general/test_interfaces.js +++ b/dom/tests/mochitest/general/test_interfaces.js @@ -666,7 +666,7 @@ var interfaceNamesInGlobalScope = // IMPORTANT: Do not change this list without review from a DOM peer! {name: "MediaStreamTrack", insecureContext: true}, // IMPORTANT: Do not change this list without review from a DOM peer! - {name: "MerchantValidationEvent", insecureContext: false, desktop: true, nightly: true, linux: false}, + {name: "MerchantValidationEvent", insecureContext: false, desktop: true, nightly: true, linux: false, disabled: true}, // IMPORTANT: Do not change this list without review from a DOM peer! {name: "MessageChannel", insecureContext: true}, // IMPORTANT: Do not change this list without review from a DOM peer! @@ -748,15 +748,15 @@ var interfaceNamesInGlobalScope = // IMPORTANT: Do not change this list without review from a DOM peer! {name: "Path2D", insecureContext: true}, // IMPORTANT: Do not change this list without review from a DOM peer! - {name: "PaymentAddress", insecureContext: false, desktop: true, nightly: true, linux: false}, + {name: "PaymentAddress", insecureContext: false, desktop: true, nightly: true, linux: false, disabled: true}, // IMPORTANT: Do not change this list without review from a DOM peer! - {name: "PaymentMethodChangeEvent", insecureContext: false, desktop: true, nightly: true, linux: false}, + {name: "PaymentMethodChangeEvent", insecureContext: false, desktop: true, nightly: true, linux: false, disabled: true}, // IMPORTANT: Do not change this list without review from a DOM peer! - {name: "PaymentRequest", insecureContext: false, desktop: true, nightly: true, linux: false}, + {name: "PaymentRequest", insecureContext: false, desktop: true, nightly: true, linux: false, disabled: true}, // IMPORTANT: Do not change this list without review from a DOM peer! - {name: "PaymentRequestUpdateEvent", insecureContext: false, desktop: true, nightly: true, linux: false}, + {name: "PaymentRequestUpdateEvent", insecureContext: false, desktop: true, nightly: true, linux: false, disabled: true}, // IMPORTANT: Do not change this list without review from a DOM peer! - {name: "PaymentResponse", insecureContext: false, desktop: true, nightly: true, linux: false}, + {name: "PaymentResponse", insecureContext: false, desktop: true, nightly: true, linux: false, disabled: true}, // IMPORTANT: Do not change this list without review from a DOM peer! {name: "Performance", insecureContext: true}, // IMPORTANT: Do not change this list without review from a DOM peer! diff --git a/modules/libpref/init/StaticPrefList.h b/modules/libpref/init/StaticPrefList.h index bd80d509cb1e..039eec74477d 100644 --- a/modules/libpref/init/StaticPrefList.h +++ b/modules/libpref/init/StaticPrefList.h @@ -246,18 +246,12 @@ VARCACHE_PREF( // Note, this is not currently safe to use for normal browsing yet. PREF("dom.serviceWorkers.parent_intercept", bool, false) -// Enable PaymentRequest API -#if defined(NIGHTLY_BUILD) && (defined(XP_WIN) || defined(XP_MACOSX)) -# define PREF_VALUE true -#else -# define PREF_VALUE false -#endif +// Enable/disable the PaymentRequest API VARCACHE_PREF( "dom.payments.request.enabled", dom_payments_request_enabled, - bool, PREF_VALUE + bool, false ) -#undef PREF_VALUE // Whether a user gesture is required to call PaymentRequest.prototype.show(). VARCACHE_PREF( From ae847e2485eab88eb3e47d645fcf0e9419cd3d0a Mon Sep 17 00:00:00 2001 From: WR Updater Bot Date: Thu, 20 Dec 2018 15:16:38 +0000 Subject: [PATCH 19/39] Bug 1515408 - Update webrender to commit 57379d1fec269ea70cbab28d4353614fd9c58122 (WR PR #3439). r=kats https://github.com/servo/webrender/pull/3439 Differential Revision: https://phabricator.services.mozilla.com/D15103 --HG-- extra : moz-landing-system : lando --- gfx/webrender_bindings/revision.txt | 2 +- gfx/wr/webrender/src/display_list_flattener.rs | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gfx/webrender_bindings/revision.txt b/gfx/webrender_bindings/revision.txt index 7772f0333d8a..fd0df131585f 100644 --- a/gfx/webrender_bindings/revision.txt +++ b/gfx/webrender_bindings/revision.txt @@ -1 +1 @@ -75ab41278fe7e24c45b22fa1af6879801d6f8ebc +57379d1fec269ea70cbab28d4353614fd9c58122 diff --git a/gfx/wr/webrender/src/display_list_flattener.rs b/gfx/wr/webrender/src/display_list_flattener.rs index a77f4d29f39b..6262f3057a52 100644 --- a/gfx/wr/webrender/src/display_list_flattener.rs +++ b/gfx/wr/webrender/src/display_list_flattener.rs @@ -1325,7 +1325,14 @@ impl<'a> DisplayListFlattener<'a> { parent_sc, self.clip_scroll_tree, ) { - parent_sc.primitives.extend(stacking_context.primitives); + // If the parent context primitives list is empty, it's faster + // to assign the storage of the popped context instead of paying + // the copying cost for extend. + if parent_sc.primitives.is_empty() { + parent_sc.primitives = stacking_context.primitives; + } else { + parent_sc.primitives.extend(stacking_context.primitives); + } return; } } From cffe96686530cbdc8f93bd8731aac6def273aeff Mon Sep 17 00:00:00 2001 From: Agi Sferro Date: Thu, 20 Dec 2018 15:22:45 +0000 Subject: [PATCH 20/39] Bug 1506658 - Add @Nullable or @NonNull to all APIs. r=snorp,rbarker,geckoview-reviewers Upgrading apilint to the 0.1.6 release will also ensure that new APIs have nullability annotations via the GV4 and GV5 lints, see [0]. [0]: https://github.com/mozilla-mobile/gradle-apilint/commit/b994c7ca9db056652ba4b5dd639437ddf2c5cc6f#diff-2c7de691a2642510f69b9ddf59276d85R569 Differential Revision: https://phabricator.services.mozilla.com/D14896 --HG-- extra : moz-landing-system : lando --- build.gradle | 2 +- mobile/android/geckoview/api.txt | 635 ++++++++---------- .../geckoview/test/ContentDelegateTest.kt | 4 +- .../test/GeckoSessionTestRuleTest.kt | 11 +- .../org/mozilla/geckoview/test/LocaleTest.kt | 2 +- .../geckoview/test/NavigationDelegateTest.kt | 56 +- .../geckoview/test/PermissionDelegateTest.kt | 48 +- .../geckoview/test/PromptDelegateTest.kt | 9 +- .../geckoview/test/SessionLifecycleTest.kt | 8 +- .../mozilla/geckoview/test/WebExecutorTest.kt | 6 +- .../mozilla/geckoview/test/util/Callbacks.kt | 53 +- .../java/org/mozilla/gecko/GeckoThread.java | 4 +- .../BasicSelectionActionDelegate.java | 4 +- .../geckoview/CompositorController.java | 7 +- .../org/mozilla/geckoview/CrashReporter.java | 26 +- .../geckoview/DynamicToolbarAnimator.java | 12 +- .../org/mozilla/geckoview/GeckoDisplay.java | 5 +- .../org/mozilla/geckoview/GeckoResponse.java | 3 +- .../org/mozilla/geckoview/GeckoResult.java | 6 +- .../org/mozilla/geckoview/GeckoRuntime.java | 10 +- .../geckoview/GeckoRuntimeSettings.java | 18 +- .../org/mozilla/geckoview/GeckoSession.java | 166 ++--- .../geckoview/GeckoSessionSettings.java | 16 +- .../java/org/mozilla/geckoview/GeckoView.java | 10 +- .../org/mozilla/geckoview/MediaElement.java | 20 +- .../geckoview/OverscrollEdgeEffect.java | 10 +- .../mozilla/geckoview/PanZoomController.java | 7 +- .../geckoview/SessionAccessibility.java | 8 +- .../mozilla/geckoview/SessionTextInput.java | 4 +- .../mozilla/geckoview/doc-files/CHANGELOG.md | 5 +- 30 files changed, 604 insertions(+), 571 deletions(-) diff --git a/build.gradle b/build.gradle index 3ed83c85323d..77cc6a4d3de4 100644 --- a/build.gradle +++ b/build.gradle @@ -87,7 +87,7 @@ buildscript { } dependencies { - classpath 'org.mozilla.apilint:apilint:0.1.5' + classpath 'org.mozilla.apilint:apilint:0.1.6' classpath 'com.android.tools.build:gradle:3.1.4' classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.2' classpath 'org.apache.commons:commons-exec:1.3' diff --git a/mobile/android/geckoview/api.txt b/mobile/android/geckoview/api.txt index f4265f41f312..a8546cef9514 100644 --- a/mobile/android/geckoview/api.txt +++ b/mobile/android/geckoview/api.txt @@ -8,22 +8,16 @@ package org.mozilla.geckoview { } @android.support.annotation.UiThread public class BasicSelectionActionDelegate implements android.view.ActionMode.Callback org.mozilla.geckoview.GeckoSession.SelectionActionDelegate { - ctor public BasicSelectionActionDelegate(android.app.Activity); - ctor public BasicSelectionActionDelegate(android.app.Activity, boolean); + ctor public BasicSelectionActionDelegate(@android.support.annotation.NonNull android.app.Activity); + ctor public BasicSelectionActionDelegate(@android.support.annotation.NonNull android.app.Activity, boolean); method public boolean areExternalActionsEnabled(); method public void enableExternalActions(boolean); - method public boolean onActionItemClicked(android.view.ActionMode, android.view.MenuItem); - method public boolean onCreateActionMode(android.view.ActionMode, android.view.Menu); - method public void onDestroyActionMode(android.view.ActionMode); - method public void onGetContentRect(android.view.ActionMode, android.view.View, android.graphics.Rect); - method public void onHideAction(org.mozilla.geckoview.GeckoSession, int); - method public boolean onPrepareActionMode(android.view.ActionMode, android.view.Menu); - method public void onShowActionRequest(org.mozilla.geckoview.GeckoSession, org.mozilla.geckoview.GeckoSession.SelectionActionDelegate.Selection, java.lang.String[], org.mozilla.geckoview.GeckoResponse); + method public void onGetContentRect(@android.support.annotation.Nullable android.view.ActionMode, @android.support.annotation.Nullable android.view.View, @android.support.annotation.NonNull android.graphics.Rect); method protected void clearSelection(); - method protected java.lang.String[] getAllActions(); - method protected boolean isActionAvailable(java.lang.String); - method protected boolean performAction(java.lang.String, android.view.MenuItem); - method protected void prepareAction(java.lang.String, android.view.MenuItem); + method @android.support.annotation.NonNull protected java.lang.String[] getAllActions(); + method protected boolean isActionAvailable(@android.support.annotation.NonNull java.lang.String); + method protected boolean performAction(@android.support.annotation.NonNull java.lang.String, @android.support.annotation.NonNull android.view.MenuItem); + method protected void prepareAction(@android.support.annotation.NonNull java.lang.String, @android.support.annotation.NonNull android.view.MenuItem); field protected static final java.lang.String ACTION_PROCESS_TEXT = "android.intent.action.PROCESS_TEXT"; field protected android.view.ActionMode mActionMode; field protected java.util.List mActions; @@ -38,35 +32,35 @@ package org.mozilla.geckoview { } @android.support.annotation.UiThread public final class CompositorController { - method public void addDrawCallback(java.lang.Runnable); + method public void addDrawCallback(@android.support.annotation.NonNull java.lang.Runnable); method public int getClearColor(); - method public java.lang.Runnable getFirstPaintCallback(); - method public void getPixels(org.mozilla.geckoview.CompositorController.GetPixelsCallback); - method public void removeDrawCallback(java.lang.Runnable); + method @android.support.annotation.Nullable public java.lang.Runnable getFirstPaintCallback(); + method public void getPixels(@android.support.annotation.NonNull org.mozilla.geckoview.CompositorController.GetPixelsCallback); + method public void removeDrawCallback(@android.support.annotation.NonNull java.lang.Runnable); method public void setClearColor(int); - method public void setFirstPaintCallback(java.lang.Runnable); + method public void setFirstPaintCallback(@android.support.annotation.Nullable java.lang.Runnable); } public static interface CompositorController.GetPixelsCallback { - method @android.support.annotation.UiThread public void onPixelsResult(int, int, java.nio.IntBuffer); + method @android.support.annotation.UiThread public void onPixelsResult(int, int, @android.support.annotation.Nullable java.nio.IntBuffer); } public class CrashReporter { ctor public CrashReporter(); - method @android.support.annotation.AnyThread public static org.mozilla.geckoview.GeckoResult sendCrashReport(android.content.Context, android.content.Intent, java.lang.String); - method @android.support.annotation.AnyThread public static org.mozilla.geckoview.GeckoResult sendCrashReport(android.content.Context, android.os.Bundle, java.lang.String); - method @android.support.annotation.AnyThread public static org.mozilla.geckoview.GeckoResult sendCrashReport(android.content.Context, java.io.File, java.io.File, boolean, java.lang.String); - method @android.support.annotation.AnyThread public static org.mozilla.geckoview.GeckoResult sendCrashReport(android.content.Context, java.io.File, java.util.Map, boolean, java.lang.String); + method @android.support.annotation.AnyThread public static org.mozilla.geckoview.GeckoResult sendCrashReport(@android.support.annotation.NonNull android.content.Context, @android.support.annotation.NonNull android.content.Intent, @android.support.annotation.NonNull java.lang.String); + method @android.support.annotation.AnyThread @android.support.annotation.NonNull public static org.mozilla.geckoview.GeckoResult sendCrashReport(@android.support.annotation.NonNull android.content.Context, @android.support.annotation.NonNull android.os.Bundle, @android.support.annotation.NonNull java.lang.String); + method @android.support.annotation.AnyThread @android.support.annotation.NonNull public static org.mozilla.geckoview.GeckoResult sendCrashReport(@android.support.annotation.NonNull android.content.Context, @android.support.annotation.NonNull java.io.File, @android.support.annotation.NonNull java.io.File, boolean, @android.support.annotation.NonNull java.lang.String); + method @android.support.annotation.AnyThread @android.support.annotation.NonNull public static org.mozilla.geckoview.GeckoResult sendCrashReport(@android.support.annotation.NonNull android.content.Context, @android.support.annotation.NonNull java.io.File, @android.support.annotation.NonNull java.util.Map, boolean, @android.support.annotation.NonNull java.lang.String); } @android.support.annotation.UiThread public final class DynamicToolbarAnimator { - method public org.mozilla.geckoview.DynamicToolbarAnimator.ToolbarChromeProxy getToolbarChromeProxy(); + method @android.support.annotation.Nullable public org.mozilla.geckoview.DynamicToolbarAnimator.ToolbarChromeProxy getToolbarChromeProxy(); method public void hideToolbar(boolean); method public boolean isPinned(); - method public boolean isPinnedBy(org.mozilla.geckoview.DynamicToolbarAnimator.PinReason); + method public boolean isPinnedBy(@android.support.annotation.NonNull org.mozilla.geckoview.DynamicToolbarAnimator.PinReason); method public void setMaxToolbarHeight(int); - method public void setPinned(boolean, org.mozilla.geckoview.DynamicToolbarAnimator.PinReason); - method public void setToolbarChromeProxy(org.mozilla.geckoview.DynamicToolbarAnimator.ToolbarChromeProxy); + method public void setPinned(boolean, @android.support.annotation.NonNull org.mozilla.geckoview.DynamicToolbarAnimator.PinReason); + method public void setToolbarChromeProxy(@android.support.annotation.Nullable org.mozilla.geckoview.DynamicToolbarAnimator.ToolbarChromeProxy); method public void showToolbar(boolean); } @@ -84,7 +78,7 @@ package org.mozilla.geckoview { } public static interface DynamicToolbarAnimator.ToolbarChromeProxy { - method @android.support.annotation.UiThread public android.graphics.Bitmap getBitmapOfToolbarChrome(); + method @android.support.annotation.UiThread @android.support.annotation.Nullable public android.graphics.Bitmap getBitmapOfToolbarChrome(); method @android.support.annotation.UiThread public boolean isToolbarChromeVisible(); method @android.support.annotation.UiThread public void toggleToolbarChrome(boolean); } @@ -93,42 +87,40 @@ package org.mozilla.geckoview { ctor protected GeckoDisplay(org.mozilla.geckoview.GeckoSession); method @android.support.annotation.UiThread public void screenOriginChanged(int, int); method @android.support.annotation.UiThread public boolean shouldPinOnScreen(); - method @android.support.annotation.UiThread public void surfaceChanged(android.view.Surface, int, int); - method @android.support.annotation.UiThread public void surfaceChanged(android.view.Surface, int, int, int, int); + method @android.support.annotation.UiThread public void surfaceChanged(@android.support.annotation.NonNull android.view.Surface, int, int); + method @android.support.annotation.UiThread public void surfaceChanged(@android.support.annotation.NonNull android.view.Surface, int, int, int, int); method @android.support.annotation.UiThread public void surfaceDestroyed(); } public interface GeckoResponse { - method @android.support.annotation.AnyThread public void respond(T); + method @android.support.annotation.AnyThread public void respond(@android.support.annotation.Nullable T); } @android.support.annotation.AnyThread public class GeckoResult { ctor public GeckoResult(); ctor public GeckoResult(android.os.Handler); ctor public GeckoResult(org.mozilla.geckoview.GeckoResult); - method public synchronized void complete(T); - method public synchronized void completeExceptionally(java.lang.Throwable); - method public synchronized boolean equals(java.lang.Object); - method public org.mozilla.geckoview.GeckoResult exceptionally(org.mozilla.geckoview.GeckoResult.OnExceptionListener); - method public static org.mozilla.geckoview.GeckoResult fromException(java.lang.Throwable); - method public static org.mozilla.geckoview.GeckoResult fromValue(U); - method public android.os.Looper getLooper(); - method public synchronized int hashCode(); - method public synchronized T poll(); - method public synchronized T poll(long); - method public org.mozilla.geckoview.GeckoResult then(org.mozilla.geckoview.GeckoResult.OnValueListener); - method public org.mozilla.geckoview.GeckoResult then(org.mozilla.geckoview.GeckoResult.OnValueListener, org.mozilla.geckoview.GeckoResult.OnExceptionListener); - method public org.mozilla.geckoview.GeckoResult withHandler(android.os.Handler); + method public synchronized void complete(@android.support.annotation.Nullable T); + method public synchronized void completeExceptionally(@android.support.annotation.NonNull java.lang.Throwable); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoResult exceptionally(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoResult.OnExceptionListener); + method @android.support.annotation.NonNull public static org.mozilla.geckoview.GeckoResult fromException(@android.support.annotation.NonNull java.lang.Throwable); + method @android.support.annotation.NonNull public static org.mozilla.geckoview.GeckoResult fromValue(@android.support.annotation.Nullable U); + method @android.support.annotation.Nullable public android.os.Looper getLooper(); + method @android.support.annotation.Nullable public synchronized T poll(); + method @android.support.annotation.Nullable public synchronized T poll(long); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoResult then(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoResult.OnValueListener); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoResult then(@android.support.annotation.Nullable org.mozilla.geckoview.GeckoResult.OnValueListener, @android.support.annotation.Nullable org.mozilla.geckoview.GeckoResult.OnExceptionListener); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoResult withHandler(@android.support.annotation.Nullable android.os.Handler); field public static final org.mozilla.geckoview.GeckoResult ALLOW; field public static final org.mozilla.geckoview.GeckoResult DENY; } public static interface GeckoResult.OnExceptionListener { - method @android.support.annotation.AnyThread public org.mozilla.geckoview.GeckoResult onException(java.lang.Throwable); + method @android.support.annotation.AnyThread @android.support.annotation.Nullable public org.mozilla.geckoview.GeckoResult onException(@android.support.annotation.NonNull java.lang.Throwable); } public static interface GeckoResult.OnValueListener { - method @android.support.annotation.AnyThread public org.mozilla.geckoview.GeckoResult onValue(T); + method @android.support.annotation.AnyThread @android.support.annotation.Nullable public org.mozilla.geckoview.GeckoResult onValue(@android.support.annotation.Nullable T); } public static final class GeckoResult.UncaughtException extends java.lang.RuntimeException { @@ -137,21 +129,19 @@ package org.mozilla.geckoview { public final class GeckoRuntime implements android.os.Parcelable { ctor public GeckoRuntime(); - method @android.support.annotation.UiThread public void attachTo(android.content.Context); - method @android.support.annotation.UiThread public static org.mozilla.geckoview.GeckoRuntime create(android.content.Context); - method @android.support.annotation.UiThread public static org.mozilla.geckoview.GeckoRuntime create(android.content.Context, org.mozilla.geckoview.GeckoRuntimeSettings); - method @android.support.annotation.AnyThread public int describeContents(); - method @android.support.annotation.UiThread public static synchronized org.mozilla.geckoview.GeckoRuntime getDefault(android.content.Context); - method @android.support.annotation.UiThread public org.mozilla.geckoview.GeckoRuntime.Delegate getDelegate(); - method @android.support.annotation.UiThread public java.io.File getProfileDir(); - method @android.support.annotation.AnyThread public org.mozilla.geckoview.GeckoRuntimeSettings getSettings(); - method @android.support.annotation.UiThread public org.mozilla.geckoview.RuntimeTelemetry getTelemetry(); + method @android.support.annotation.UiThread public void attachTo(@android.support.annotation.NonNull android.content.Context); + method @android.support.annotation.UiThread @android.support.annotation.NonNull public static org.mozilla.geckoview.GeckoRuntime create(@android.support.annotation.NonNull android.content.Context); + method @android.support.annotation.UiThread @android.support.annotation.NonNull public static org.mozilla.geckoview.GeckoRuntime create(@android.support.annotation.NonNull android.content.Context, @android.support.annotation.NonNull org.mozilla.geckoview.GeckoRuntimeSettings); + method @android.support.annotation.UiThread @android.support.annotation.NonNull public static synchronized org.mozilla.geckoview.GeckoRuntime getDefault(@android.support.annotation.NonNull android.content.Context); + method @android.support.annotation.UiThread @android.support.annotation.Nullable public org.mozilla.geckoview.GeckoRuntime.Delegate getDelegate(); + method @android.support.annotation.UiThread @android.support.annotation.Nullable public java.io.File getProfileDir(); + method @android.support.annotation.AnyThread @android.support.annotation.Nullable public org.mozilla.geckoview.GeckoRuntimeSettings getSettings(); + method @android.support.annotation.UiThread @android.support.annotation.NonNull public org.mozilla.geckoview.RuntimeTelemetry getTelemetry(); method @android.support.annotation.UiThread public void orientationChanged(); method @android.support.annotation.UiThread public void orientationChanged(int); - method @android.support.annotation.AnyThread public void readFromParcel(android.os.Parcel); - method @android.support.annotation.UiThread public void setDelegate(org.mozilla.geckoview.GeckoRuntime.Delegate); + method @android.support.annotation.AnyThread public void readFromParcel(@android.support.annotation.NonNull android.os.Parcel); + method @android.support.annotation.UiThread public void setDelegate(@android.support.annotation.Nullable org.mozilla.geckoview.GeckoRuntime.Delegate); method @android.support.annotation.AnyThread public void shutdown(); - method @android.support.annotation.AnyThread public void writeToParcel(android.os.Parcel, int); field public static final java.lang.String ACTION_CRASHED = "org.mozilla.gecko.ACTION_CRASHED"; field public static final android.os.Parcelable.Creator CREATOR; field public static final java.lang.String EXTRA_CRASH_FATAL = "fatal"; @@ -165,38 +155,36 @@ package org.mozilla.geckoview { } @android.support.annotation.AnyThread public final class GeckoRuntimeSettings implements android.os.Parcelable { - method public int describeContents(); - method public java.lang.String[] getArguments(); + method @android.support.annotation.NonNull public java.lang.String[] getArguments(); method public boolean getBlockMalware(); method public boolean getBlockPhishing(); method public boolean getConsoleOutputEnabled(); method public int getCookieBehavior(); method public int getCookieLifetime(); - method public java.lang.Class getCrashHandler(); - method public java.lang.Float getDisplayDensityOverride(); - method public java.lang.Integer getDisplayDpiOverride(); - method public android.os.Bundle getExtras(); + method @android.support.annotation.Nullable public java.lang.Class getCrashHandler(); + method @android.support.annotation.Nullable public java.lang.Float getDisplayDensityOverride(); + method @android.support.annotation.Nullable public java.lang.Integer getDisplayDpiOverride(); + method @android.support.annotation.NonNull public android.os.Bundle getExtras(); method public boolean getJavaScriptEnabled(); - method public java.lang.String[] getLocales(); + method @android.support.annotation.Nullable public java.lang.String[] getLocales(); method public boolean getPauseForDebuggerEnabled(); method public boolean getRemoteDebuggingEnabled(); - method public android.graphics.Rect getScreenSizeOverride(); + method @android.support.annotation.Nullable public android.graphics.Rect getScreenSizeOverride(); method public int getTrackingProtectionCategories(); method public boolean getUseContentProcessHint(); method public boolean getUseMaxScreenDepth(); method public boolean getWebFontsEnabled(); - method public void readFromParcel(android.os.Parcel); - method public org.mozilla.geckoview.GeckoRuntimeSettings setBlockMalware(boolean); - method public org.mozilla.geckoview.GeckoRuntimeSettings setBlockPhishing(boolean); - method public org.mozilla.geckoview.GeckoRuntimeSettings setConsoleOutputEnabled(boolean); - method public org.mozilla.geckoview.GeckoRuntimeSettings setCookieBehavior(int); - method public org.mozilla.geckoview.GeckoRuntimeSettings setCookieLifetime(int); - method public org.mozilla.geckoview.GeckoRuntimeSettings setJavaScriptEnabled(boolean); - method public void setLocales(java.lang.String[]); - method public org.mozilla.geckoview.GeckoRuntimeSettings setRemoteDebuggingEnabled(boolean); - method public org.mozilla.geckoview.GeckoRuntimeSettings setTrackingProtectionCategories(int); - method public org.mozilla.geckoview.GeckoRuntimeSettings setWebFontsEnabled(boolean); - method public void writeToParcel(android.os.Parcel, int); + method public void readFromParcel(@android.support.annotation.NonNull android.os.Parcel); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings setBlockMalware(boolean); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings setBlockPhishing(boolean); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings setConsoleOutputEnabled(boolean); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings setCookieBehavior(int); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings setCookieLifetime(int); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings setJavaScriptEnabled(boolean); + method public void setLocales(@android.support.annotation.Nullable java.lang.String[]); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings setRemoteDebuggingEnabled(boolean); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings setTrackingProtectionCategories(int); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings setWebFontsEnabled(boolean); field public static final int COOKIE_ACCEPT_ALL = 0; field public static final int COOKIE_ACCEPT_FIRST_PARTY = 1; field public static final int COOKIE_ACCEPT_NONE = 2; @@ -211,96 +199,92 @@ package org.mozilla.geckoview { @android.support.annotation.AnyThread public static final class GeckoRuntimeSettings.Builder { ctor public Builder(); ctor public Builder(org.mozilla.geckoview.GeckoRuntimeSettings); - method public org.mozilla.geckoview.GeckoRuntimeSettings.Builder arguments(java.lang.String[]); - method public org.mozilla.geckoview.GeckoRuntimeSettings.Builder blockMalware(boolean); - method public org.mozilla.geckoview.GeckoRuntimeSettings.Builder blockPhishing(boolean); - method public org.mozilla.geckoview.GeckoRuntimeSettings build(); - method public org.mozilla.geckoview.GeckoRuntimeSettings.Builder consoleOutput(boolean); - method public org.mozilla.geckoview.GeckoRuntimeSettings.Builder cookieBehavior(int); - method public org.mozilla.geckoview.GeckoRuntimeSettings.Builder cookieLifetime(int); - method public org.mozilla.geckoview.GeckoRuntimeSettings.Builder crashHandler(java.lang.Class); - method public org.mozilla.geckoview.GeckoRuntimeSettings.Builder displayDensityOverride(float); - method public org.mozilla.geckoview.GeckoRuntimeSettings.Builder displayDpiOverride(int); - method public org.mozilla.geckoview.GeckoRuntimeSettings.Builder extras(android.os.Bundle); - method public org.mozilla.geckoview.GeckoRuntimeSettings.Builder javaScriptEnabled(boolean); - method public org.mozilla.geckoview.GeckoRuntimeSettings.Builder locales(java.lang.String[]); - method public org.mozilla.geckoview.GeckoRuntimeSettings.Builder pauseForDebugger(boolean); - method public org.mozilla.geckoview.GeckoRuntimeSettings.Builder remoteDebuggingEnabled(boolean); - method public org.mozilla.geckoview.GeckoRuntimeSettings.Builder screenSizeOverride(int, int); - method public org.mozilla.geckoview.GeckoRuntimeSettings.Builder trackingProtectionCategories(int); - method public org.mozilla.geckoview.GeckoRuntimeSettings.Builder useContentProcessHint(boolean); - method public org.mozilla.geckoview.GeckoRuntimeSettings.Builder useMaxScreenDepth(boolean); - method public org.mozilla.geckoview.GeckoRuntimeSettings.Builder webFontsEnabled(boolean); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings.Builder arguments(@android.support.annotation.NonNull java.lang.String[]); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings.Builder blockMalware(boolean); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings.Builder blockPhishing(boolean); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings build(); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings.Builder consoleOutput(boolean); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings.Builder cookieBehavior(int); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings.Builder cookieLifetime(int); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings.Builder crashHandler(java.lang.Class); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings.Builder displayDensityOverride(float); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings.Builder displayDpiOverride(int); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings.Builder extras(@android.support.annotation.NonNull android.os.Bundle); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings.Builder javaScriptEnabled(boolean); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings.Builder locales(java.lang.String[]); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings.Builder pauseForDebugger(boolean); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings.Builder remoteDebuggingEnabled(boolean); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings.Builder screenSizeOverride(int, int); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings.Builder trackingProtectionCategories(int); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings.Builder useContentProcessHint(boolean); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings.Builder useMaxScreenDepth(boolean); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoRuntimeSettings.Builder webFontsEnabled(boolean); } public class GeckoSession implements android.os.Parcelable { ctor public GeckoSession(); - ctor public GeckoSession(org.mozilla.geckoview.GeckoSessionSettings); - method @android.support.annotation.UiThread public org.mozilla.geckoview.GeckoDisplay acquireDisplay(); + ctor public GeckoSession(@android.support.annotation.Nullable org.mozilla.geckoview.GeckoSessionSettings); + method @android.support.annotation.UiThread @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoDisplay acquireDisplay(); method @android.support.annotation.UiThread public void close(); - method @android.support.annotation.AnyThread public static java.lang.String createDataUri(byte[], java.lang.String); - method @android.support.annotation.AnyThread public static java.lang.String createDataUri(java.lang.String, java.lang.String); - method @android.support.annotation.AnyThread public int describeContents(); - method @android.support.annotation.AnyThread public boolean equals(java.lang.Object); + method @android.support.annotation.AnyThread public static java.lang.String createDataUri(@android.support.annotation.NonNull byte[], @android.support.annotation.Nullable java.lang.String); + method @android.support.annotation.AnyThread public static java.lang.String createDataUri(@android.support.annotation.NonNull java.lang.String, @android.support.annotation.Nullable java.lang.String); method @android.support.annotation.AnyThread public void exitFullScreen(); - method @android.support.annotation.UiThread public org.mozilla.geckoview.SessionAccessibility getAccessibility(); - method @android.support.annotation.UiThread public void getClientBounds(android.graphics.RectF); - method @android.support.annotation.UiThread public void getClientToScreenMatrix(android.graphics.Matrix); - method @android.support.annotation.UiThread public void getClientToSurfaceMatrix(android.graphics.Matrix); - method @android.support.annotation.UiThread public org.mozilla.geckoview.CompositorController getCompositorController(); - method @android.support.annotation.UiThread public org.mozilla.geckoview.GeckoSession.ContentDelegate getContentDelegate(); - method @android.support.annotation.UiThread public org.mozilla.geckoview.DynamicToolbarAnimator getDynamicToolbarAnimator(); - method @android.support.annotation.AnyThread public org.mozilla.gecko.EventDispatcher getEventDispatcher(); - method @android.support.annotation.AnyThread public org.mozilla.geckoview.SessionFinder getFinder(); - method @android.support.annotation.AnyThread public org.mozilla.geckoview.GeckoSession.HistoryDelegate getHistoryDelegate(); - method @android.support.annotation.AnyThread public org.mozilla.geckoview.GeckoSession.MediaDelegate getMediaDelegate(); - method @android.support.annotation.UiThread public org.mozilla.geckoview.GeckoSession.NavigationDelegate getNavigationDelegate(); - method @android.support.annotation.UiThread public org.mozilla.geckoview.OverscrollEdgeEffect getOverscrollEdgeEffect(); - method @android.support.annotation.UiThread public void getPageToScreenMatrix(android.graphics.Matrix); - method @android.support.annotation.UiThread public void getPageToSurfaceMatrix(android.graphics.Matrix); - method @android.support.annotation.UiThread public org.mozilla.geckoview.PanZoomController getPanZoomController(); - method @android.support.annotation.UiThread public org.mozilla.geckoview.GeckoSession.PermissionDelegate getPermissionDelegate(); - method @android.support.annotation.UiThread public org.mozilla.geckoview.GeckoSession.ProgressDelegate getProgressDelegate(); - method @android.support.annotation.AnyThread public org.mozilla.geckoview.GeckoSession.PromptDelegate getPromptDelegate(); - method @android.support.annotation.UiThread public org.mozilla.geckoview.GeckoSession.ScrollDelegate getScrollDelegate(); - method @android.support.annotation.AnyThread public org.mozilla.geckoview.GeckoSession.SelectionActionDelegate getSelectionActionDelegate(); - method @android.support.annotation.AnyThread public org.mozilla.geckoview.GeckoSessionSettings getSettings(); - method @android.support.annotation.UiThread public void getSurfaceBounds(android.graphics.Rect); - method @android.support.annotation.AnyThread public org.mozilla.geckoview.SessionTextInput getTextInput(); - method @android.support.annotation.AnyThread public org.mozilla.geckoview.GeckoSession.TrackingProtectionDelegate getTrackingProtectionDelegate(); - method @android.support.annotation.AnyThread public org.mozilla.geckoview.GeckoResult getUserAgent(); + method @android.support.annotation.UiThread @android.support.annotation.NonNull public org.mozilla.geckoview.SessionAccessibility getAccessibility(); + method @android.support.annotation.UiThread public void getClientBounds(@android.support.annotation.NonNull android.graphics.RectF); + method @android.support.annotation.UiThread public void getClientToScreenMatrix(@android.support.annotation.NonNull android.graphics.Matrix); + method @android.support.annotation.UiThread public void getClientToSurfaceMatrix(@android.support.annotation.NonNull android.graphics.Matrix); + method @android.support.annotation.UiThread @android.support.annotation.NonNull public org.mozilla.geckoview.CompositorController getCompositorController(); + method @android.support.annotation.UiThread @android.support.annotation.Nullable public org.mozilla.geckoview.GeckoSession.ContentDelegate getContentDelegate(); + method @android.support.annotation.UiThread @android.support.annotation.NonNull public org.mozilla.geckoview.DynamicToolbarAnimator getDynamicToolbarAnimator(); + method @android.support.annotation.AnyThread @android.support.annotation.NonNull public org.mozilla.gecko.EventDispatcher getEventDispatcher(); + method @android.support.annotation.AnyThread @android.support.annotation.NonNull public org.mozilla.geckoview.SessionFinder getFinder(); + method @android.support.annotation.AnyThread @android.support.annotation.Nullable public org.mozilla.geckoview.GeckoSession.HistoryDelegate getHistoryDelegate(); + method @android.support.annotation.AnyThread @android.support.annotation.Nullable public org.mozilla.geckoview.GeckoSession.MediaDelegate getMediaDelegate(); + method @android.support.annotation.UiThread @android.support.annotation.Nullable public org.mozilla.geckoview.GeckoSession.NavigationDelegate getNavigationDelegate(); + method @android.support.annotation.UiThread @android.support.annotation.NonNull public org.mozilla.geckoview.OverscrollEdgeEffect getOverscrollEdgeEffect(); + method @android.support.annotation.UiThread public void getPageToScreenMatrix(@android.support.annotation.NonNull android.graphics.Matrix); + method @android.support.annotation.UiThread public void getPageToSurfaceMatrix(@android.support.annotation.NonNull android.graphics.Matrix); + method @android.support.annotation.UiThread @android.support.annotation.NonNull public org.mozilla.geckoview.PanZoomController getPanZoomController(); + method @android.support.annotation.UiThread @android.support.annotation.Nullable public org.mozilla.geckoview.GeckoSession.PermissionDelegate getPermissionDelegate(); + method @android.support.annotation.UiThread @android.support.annotation.Nullable public org.mozilla.geckoview.GeckoSession.ProgressDelegate getProgressDelegate(); + method @android.support.annotation.AnyThread @android.support.annotation.Nullable public org.mozilla.geckoview.GeckoSession.PromptDelegate getPromptDelegate(); + method @android.support.annotation.UiThread @android.support.annotation.Nullable public org.mozilla.geckoview.GeckoSession.ScrollDelegate getScrollDelegate(); + method @android.support.annotation.AnyThread @android.support.annotation.Nullable public org.mozilla.geckoview.GeckoSession.SelectionActionDelegate getSelectionActionDelegate(); + method @android.support.annotation.AnyThread @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoSessionSettings getSettings(); + method @android.support.annotation.UiThread public void getSurfaceBounds(@android.support.annotation.NonNull android.graphics.Rect); + method @android.support.annotation.AnyThread @android.support.annotation.NonNull public org.mozilla.geckoview.SessionTextInput getTextInput(); + method @android.support.annotation.AnyThread @android.support.annotation.Nullable public org.mozilla.geckoview.GeckoSession.TrackingProtectionDelegate getTrackingProtectionDelegate(); + method @android.support.annotation.AnyThread @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoResult getUserAgent(); method @android.support.annotation.AnyThread public void goBack(); method @android.support.annotation.AnyThread public void goForward(); - method @android.support.annotation.AnyThread public int hashCode(); method @android.support.annotation.AnyThread public boolean isOpen(); - method @android.support.annotation.AnyThread public void loadData(byte[], java.lang.String); - method @android.support.annotation.AnyThread public void loadString(java.lang.String, java.lang.String); - method @android.support.annotation.AnyThread public void loadUri(java.lang.String); - method @android.support.annotation.AnyThread public void loadUri(java.lang.String, int); - method @android.support.annotation.AnyThread public void loadUri(java.lang.String, java.lang.String, int); - method @android.support.annotation.AnyThread public void loadUri(android.net.Uri); - method @android.support.annotation.AnyThread public void loadUri(android.net.Uri, int); - method @android.support.annotation.AnyThread public void loadUri(android.net.Uri, android.net.Uri, int); - method @android.support.annotation.UiThread public void open(org.mozilla.geckoview.GeckoRuntime); - method @android.support.annotation.AnyThread public void readFromParcel(android.os.Parcel); - method @android.support.annotation.UiThread public void releaseDisplay(org.mozilla.geckoview.GeckoDisplay); + method @android.support.annotation.AnyThread public void loadData(@android.support.annotation.NonNull byte[], @android.support.annotation.Nullable java.lang.String); + method @android.support.annotation.AnyThread public void loadString(@android.support.annotation.NonNull java.lang.String, @android.support.annotation.Nullable java.lang.String); + method @android.support.annotation.AnyThread public void loadUri(@android.support.annotation.NonNull java.lang.String); + method @android.support.annotation.AnyThread public void loadUri(@android.support.annotation.NonNull java.lang.String, int); + method @android.support.annotation.AnyThread public void loadUri(@android.support.annotation.NonNull java.lang.String, @android.support.annotation.Nullable java.lang.String, int); + method @android.support.annotation.AnyThread public void loadUri(@android.support.annotation.NonNull android.net.Uri); + method @android.support.annotation.AnyThread public void loadUri(@android.support.annotation.NonNull android.net.Uri, int); + method @android.support.annotation.AnyThread public void loadUri(@android.support.annotation.NonNull android.net.Uri, @android.support.annotation.Nullable android.net.Uri, int); + method @android.support.annotation.UiThread public void open(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoRuntime); + method @android.support.annotation.AnyThread public void readFromParcel(@android.support.annotation.NonNull android.os.Parcel); + method @android.support.annotation.UiThread public void releaseDisplay(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoDisplay); method @android.support.annotation.AnyThread public void reload(); - method @android.support.annotation.AnyThread public void restoreState(org.mozilla.geckoview.GeckoSession.SessionState); - method @android.support.annotation.AnyThread public org.mozilla.geckoview.GeckoResult saveState(); + method @android.support.annotation.AnyThread public void restoreState(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession.SessionState); + method @android.support.annotation.AnyThread @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoResult saveState(); method @android.support.annotation.AnyThread public void setActive(boolean); - method @android.support.annotation.UiThread public void setContentDelegate(org.mozilla.geckoview.GeckoSession.ContentDelegate); + method @android.support.annotation.UiThread public void setContentDelegate(@android.support.annotation.Nullable org.mozilla.geckoview.GeckoSession.ContentDelegate); method @android.support.annotation.AnyThread public void setFocused(boolean); - method @android.support.annotation.AnyThread public void setHistoryDelegate(org.mozilla.geckoview.GeckoSession.HistoryDelegate); - method @android.support.annotation.AnyThread public void setMediaDelegate(org.mozilla.geckoview.GeckoSession.MediaDelegate); - method @android.support.annotation.UiThread public void setNavigationDelegate(org.mozilla.geckoview.GeckoSession.NavigationDelegate); - method @android.support.annotation.UiThread public void setPermissionDelegate(org.mozilla.geckoview.GeckoSession.PermissionDelegate); - method @android.support.annotation.UiThread public void setProgressDelegate(org.mozilla.geckoview.GeckoSession.ProgressDelegate); - method @android.support.annotation.AnyThread public void setPromptDelegate(org.mozilla.geckoview.GeckoSession.PromptDelegate); - method @android.support.annotation.UiThread public void setScrollDelegate(org.mozilla.geckoview.GeckoSession.ScrollDelegate); - method @android.support.annotation.UiThread public void setSelectionActionDelegate(org.mozilla.geckoview.GeckoSession.SelectionActionDelegate); - method @android.support.annotation.AnyThread public void setTrackingProtectionDelegate(org.mozilla.geckoview.GeckoSession.TrackingProtectionDelegate); + method @android.support.annotation.AnyThread public void setHistoryDelegate(@android.support.annotation.Nullable org.mozilla.geckoview.GeckoSession.HistoryDelegate); + method @android.support.annotation.AnyThread public void setMediaDelegate(@android.support.annotation.Nullable org.mozilla.geckoview.GeckoSession.MediaDelegate); + method @android.support.annotation.UiThread public void setNavigationDelegate(@android.support.annotation.Nullable org.mozilla.geckoview.GeckoSession.NavigationDelegate); + method @android.support.annotation.UiThread public void setPermissionDelegate(@android.support.annotation.Nullable org.mozilla.geckoview.GeckoSession.PermissionDelegate); + method @android.support.annotation.UiThread public void setProgressDelegate(@android.support.annotation.Nullable org.mozilla.geckoview.GeckoSession.ProgressDelegate); + method @android.support.annotation.AnyThread public void setPromptDelegate(@android.support.annotation.Nullable org.mozilla.geckoview.GeckoSession.PromptDelegate); + method @android.support.annotation.UiThread public void setScrollDelegate(@android.support.annotation.Nullable org.mozilla.geckoview.GeckoSession.ScrollDelegate); + method @android.support.annotation.UiThread public void setSelectionActionDelegate(@android.support.annotation.Nullable org.mozilla.geckoview.GeckoSession.SelectionActionDelegate); + method @android.support.annotation.AnyThread public void setTrackingProtectionDelegate(@android.support.annotation.Nullable org.mozilla.geckoview.GeckoSession.TrackingProtectionDelegate); method @android.support.annotation.AnyThread public void stop(); - method @android.support.annotation.AnyThread public void writeToParcel(android.os.Parcel, int); method @android.support.annotation.UiThread protected void setShouldPinOnScreen(boolean); field public static final android.os.Parcelable.Creator CREATOR; field public static final int FINDER_DISPLAY_DIM_PAGE = 2; @@ -320,44 +304,44 @@ package org.mozilla.geckoview { } public static interface GeckoSession.ContentDelegate { - method @android.support.annotation.UiThread public void onCloseRequest(org.mozilla.geckoview.GeckoSession); - method @android.support.annotation.UiThread public void onContextMenu(org.mozilla.geckoview.GeckoSession, int, int, org.mozilla.geckoview.GeckoSession.ContentDelegate.ContextElement); - method @android.support.annotation.UiThread public void onCrash(org.mozilla.geckoview.GeckoSession); - method @android.support.annotation.UiThread public void onExternalResponse(org.mozilla.geckoview.GeckoSession, org.mozilla.geckoview.GeckoSession.WebResponseInfo); - method @android.support.annotation.UiThread public void onFirstComposite(org.mozilla.geckoview.GeckoSession); - method @android.support.annotation.UiThread public void onFocusRequest(org.mozilla.geckoview.GeckoSession); - method @android.support.annotation.UiThread public void onFullScreen(org.mozilla.geckoview.GeckoSession, boolean); - method @android.support.annotation.UiThread public void onTitleChange(org.mozilla.geckoview.GeckoSession, java.lang.String); + method @android.support.annotation.UiThread public void onCloseRequest(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession); + method @android.support.annotation.UiThread public void onContextMenu(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, int, int, @android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession.ContentDelegate.ContextElement); + method @android.support.annotation.UiThread public void onCrash(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession); + method @android.support.annotation.UiThread public void onExternalResponse(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession.WebResponseInfo); + method @android.support.annotation.UiThread public void onFirstComposite(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession); + method @android.support.annotation.UiThread public void onFocusRequest(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession); + method @android.support.annotation.UiThread public void onFullScreen(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, boolean); + method @android.support.annotation.UiThread public void onTitleChange(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.Nullable java.lang.String); } public static class GeckoSession.ContentDelegate.ContextElement { - ctor protected ContextElement(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String); + ctor protected ContextElement(@android.support.annotation.Nullable java.lang.String, @android.support.annotation.Nullable java.lang.String, @android.support.annotation.Nullable java.lang.String, @android.support.annotation.NonNull java.lang.String, @android.support.annotation.Nullable java.lang.String); field public static final int TYPE_AUDIO = 3; field public static final int TYPE_IMAGE = 1; field public static final int TYPE_NONE = 0; field public static final int TYPE_VIDEO = 2; - field public final java.lang.String altText; - field public final java.lang.String linkUri; - field public final java.lang.String srcUri; - field public final java.lang.String title; + field @android.support.annotation.Nullable public final java.lang.String altText; + field @android.support.annotation.Nullable public final java.lang.String linkUri; + field @android.support.annotation.Nullable public final java.lang.String srcUri; + field @android.support.annotation.Nullable public final java.lang.String title; field public final int type; } @android.support.annotation.AnyThread public static class GeckoSession.FinderResult { ctor protected FinderResult(); - field public final android.graphics.RectF clientRect; + field @android.support.annotation.Nullable public final android.graphics.RectF clientRect; field public final int current; field public final int flags; field public final boolean found; - field public final java.lang.String linkUri; - field public final java.lang.String searchString; + field @android.support.annotation.Nullable public final java.lang.String linkUri; + field @android.support.annotation.NonNull public final java.lang.String searchString; field public final int total; field public final boolean wrapped; } public static interface GeckoSession.HistoryDelegate { - method @android.support.annotation.UiThread public org.mozilla.geckoview.GeckoResult getVisited(org.mozilla.geckoview.GeckoSession, java.lang.String[]); - method @android.support.annotation.UiThread public org.mozilla.geckoview.GeckoResult onVisited(org.mozilla.geckoview.GeckoSession, java.lang.String, java.lang.String, int); + method @android.support.annotation.UiThread @android.support.annotation.Nullable public org.mozilla.geckoview.GeckoResult getVisited(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.NonNull java.lang.String[]); + method @android.support.annotation.UiThread @android.support.annotation.Nullable public org.mozilla.geckoview.GeckoResult onVisited(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.NonNull java.lang.String, @android.support.annotation.Nullable java.lang.String, int); field public static final int VISIT_REDIRECT_PERMANENT = 4; field public static final int VISIT_REDIRECT_SOURCE = 8; field public static final int VISIT_REDIRECT_SOURCE_PERMANENT = 16; @@ -370,17 +354,17 @@ package org.mozilla.geckoview { } public static interface GeckoSession.MediaDelegate { - method @android.support.annotation.UiThread public void onMediaAdd(org.mozilla.geckoview.GeckoSession, org.mozilla.geckoview.MediaElement); - method @android.support.annotation.UiThread public void onMediaRemove(org.mozilla.geckoview.GeckoSession, org.mozilla.geckoview.MediaElement); + method @android.support.annotation.UiThread public void onMediaAdd(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.NonNull org.mozilla.geckoview.MediaElement); + method @android.support.annotation.UiThread public void onMediaRemove(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.NonNull org.mozilla.geckoview.MediaElement); } public static interface GeckoSession.NavigationDelegate { - method @android.support.annotation.UiThread public void onCanGoBack(org.mozilla.geckoview.GeckoSession, boolean); - method @android.support.annotation.UiThread public void onCanGoForward(org.mozilla.geckoview.GeckoSession, boolean); - method @android.support.annotation.UiThread public org.mozilla.geckoview.GeckoResult onLoadError(org.mozilla.geckoview.GeckoSession, java.lang.String, org.mozilla.geckoview.WebRequestError); - method @android.support.annotation.UiThread public org.mozilla.geckoview.GeckoResult onLoadRequest(org.mozilla.geckoview.GeckoSession, org.mozilla.geckoview.GeckoSession.NavigationDelegate.LoadRequest); - method @android.support.annotation.UiThread public void onLocationChange(org.mozilla.geckoview.GeckoSession, java.lang.String); - method @android.support.annotation.UiThread public org.mozilla.geckoview.GeckoResult onNewSession(org.mozilla.geckoview.GeckoSession, java.lang.String); + method @android.support.annotation.UiThread public void onCanGoBack(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, boolean); + method @android.support.annotation.UiThread public void onCanGoForward(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, boolean); + method @android.support.annotation.UiThread @android.support.annotation.Nullable public org.mozilla.geckoview.GeckoResult onLoadError(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.Nullable java.lang.String, @android.support.annotation.NonNull org.mozilla.geckoview.WebRequestError); + method @android.support.annotation.UiThread @android.support.annotation.Nullable public org.mozilla.geckoview.GeckoResult onLoadRequest(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession.NavigationDelegate.LoadRequest); + method @android.support.annotation.UiThread public void onLocationChange(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.Nullable java.lang.String); + method @android.support.annotation.UiThread @android.support.annotation.Nullable public org.mozilla.geckoview.GeckoResult onNewSession(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.NonNull java.lang.String); field public static final int LOAD_REQUEST_IS_REDIRECT = 8388608; field public static final int TARGET_WINDOW_CURRENT = 1; field public static final int TARGET_WINDOW_NEW = 2; @@ -391,17 +375,17 @@ package org.mozilla.geckoview { ctor protected LoadRequest(); field public final boolean isRedirect; field public final int target; - field public final java.lang.String triggerUri; - field public final java.lang.String uri; + field @android.support.annotation.Nullable public final java.lang.String triggerUri; + field @android.support.annotation.NonNull public final java.lang.String uri; } public static interface GeckoSession.NavigationDelegate.TargetWindow implements java.lang.annotation.Annotation { } public static interface GeckoSession.PermissionDelegate { - method @android.support.annotation.UiThread public void onAndroidPermissionsRequest(org.mozilla.geckoview.GeckoSession, java.lang.String[], org.mozilla.geckoview.GeckoSession.PermissionDelegate.Callback); - method @android.support.annotation.UiThread public void onContentPermissionRequest(org.mozilla.geckoview.GeckoSession, java.lang.String, int, org.mozilla.geckoview.GeckoSession.PermissionDelegate.Callback); - method @android.support.annotation.UiThread public void onMediaPermissionRequest(org.mozilla.geckoview.GeckoSession, java.lang.String, org.mozilla.geckoview.GeckoSession.PermissionDelegate.MediaSource[], org.mozilla.geckoview.GeckoSession.PermissionDelegate.MediaSource[], org.mozilla.geckoview.GeckoSession.PermissionDelegate.MediaCallback); + method @android.support.annotation.UiThread public void onAndroidPermissionsRequest(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.Nullable java.lang.String[], @android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession.PermissionDelegate.Callback); + method @android.support.annotation.UiThread public void onContentPermissionRequest(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.Nullable java.lang.String, int, @android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession.PermissionDelegate.Callback); + method @android.support.annotation.UiThread public void onMediaPermissionRequest(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.NonNull java.lang.String, @android.support.annotation.Nullable org.mozilla.geckoview.GeckoSession.PermissionDelegate.MediaSource[], @android.support.annotation.Nullable org.mozilla.geckoview.GeckoSession.PermissionDelegate.MediaSource[], @android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession.PermissionDelegate.MediaCallback); field public static final int PERMISSION_AUTOPLAY_MEDIA = 2; field public static final int PERMISSION_DESKTOP_NOTIFICATION = 1; field public static final int PERMISSION_GEOLOCATION = 0; @@ -413,8 +397,8 @@ package org.mozilla.geckoview { } public static interface GeckoSession.PermissionDelegate.MediaCallback { - method @android.support.annotation.UiThread public void grant(java.lang.String, java.lang.String); - method @android.support.annotation.UiThread public void grant(org.mozilla.geckoview.GeckoSession.PermissionDelegate.MediaSource, org.mozilla.geckoview.GeckoSession.PermissionDelegate.MediaSource); + method @android.support.annotation.UiThread public void grant(@android.support.annotation.Nullable java.lang.String, @android.support.annotation.Nullable java.lang.String); + method @android.support.annotation.UiThread public void grant(@android.support.annotation.Nullable org.mozilla.geckoview.GeckoSession.PermissionDelegate.MediaSource, @android.support.annotation.Nullable org.mozilla.geckoview.GeckoSession.PermissionDelegate.MediaSource); method @android.support.annotation.UiThread public void reject(); } @@ -441,10 +425,10 @@ package org.mozilla.geckoview { } public static interface GeckoSession.ProgressDelegate { - method @android.support.annotation.UiThread public void onPageStart(org.mozilla.geckoview.GeckoSession, java.lang.String); - method @android.support.annotation.UiThread public void onPageStop(org.mozilla.geckoview.GeckoSession, boolean); - method @android.support.annotation.UiThread public void onProgressChange(org.mozilla.geckoview.GeckoSession, int); - method @android.support.annotation.UiThread public void onSecurityChange(org.mozilla.geckoview.GeckoSession, org.mozilla.geckoview.GeckoSession.ProgressDelegate.SecurityInformation); + method @android.support.annotation.UiThread public void onPageStart(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.NonNull java.lang.String); + method @android.support.annotation.UiThread public void onPageStop(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, boolean); + method @android.support.annotation.UiThread public void onProgressChange(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, int); + method @android.support.annotation.UiThread public void onSecurityChange(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession.ProgressDelegate.SecurityInformation); } public static class GeckoSession.ProgressDelegate.SecurityInformation { @@ -470,15 +454,15 @@ package org.mozilla.geckoview { } public static interface GeckoSession.PromptDelegate { - method @android.support.annotation.UiThread public void onAlert(org.mozilla.geckoview.GeckoSession, java.lang.String, java.lang.String, org.mozilla.geckoview.GeckoSession.PromptDelegate.AlertCallback); - method @android.support.annotation.UiThread public void onAuthPrompt(org.mozilla.geckoview.GeckoSession, java.lang.String, java.lang.String, org.mozilla.geckoview.GeckoSession.PromptDelegate.AuthOptions, org.mozilla.geckoview.GeckoSession.PromptDelegate.AuthCallback); - method @android.support.annotation.UiThread public void onButtonPrompt(org.mozilla.geckoview.GeckoSession, java.lang.String, java.lang.String, java.lang.String[], org.mozilla.geckoview.GeckoSession.PromptDelegate.ButtonCallback); - method @android.support.annotation.UiThread public void onChoicePrompt(org.mozilla.geckoview.GeckoSession, java.lang.String, java.lang.String, int, org.mozilla.geckoview.GeckoSession.PromptDelegate.Choice[], org.mozilla.geckoview.GeckoSession.PromptDelegate.ChoiceCallback); - method @android.support.annotation.UiThread public void onColorPrompt(org.mozilla.geckoview.GeckoSession, java.lang.String, java.lang.String, org.mozilla.geckoview.GeckoSession.PromptDelegate.TextCallback); - method @android.support.annotation.UiThread public void onDateTimePrompt(org.mozilla.geckoview.GeckoSession, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, org.mozilla.geckoview.GeckoSession.PromptDelegate.TextCallback); - method @android.support.annotation.UiThread public void onFilePrompt(org.mozilla.geckoview.GeckoSession, java.lang.String, int, java.lang.String[], org.mozilla.geckoview.GeckoSession.PromptDelegate.FileCallback); - method @android.support.annotation.UiThread public org.mozilla.geckoview.GeckoResult onPopupRequest(org.mozilla.geckoview.GeckoSession, java.lang.String); - method @android.support.annotation.UiThread public void onTextPrompt(org.mozilla.geckoview.GeckoSession, java.lang.String, java.lang.String, java.lang.String, org.mozilla.geckoview.GeckoSession.PromptDelegate.TextCallback); + method @android.support.annotation.UiThread public void onAlert(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.Nullable java.lang.String, @android.support.annotation.Nullable java.lang.String, @android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession.PromptDelegate.AlertCallback); + method @android.support.annotation.UiThread public void onAuthPrompt(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.Nullable java.lang.String, @android.support.annotation.Nullable java.lang.String, @android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession.PromptDelegate.AuthOptions, @android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession.PromptDelegate.AuthCallback); + method @android.support.annotation.UiThread public void onButtonPrompt(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.Nullable java.lang.String, @android.support.annotation.Nullable java.lang.String, @android.support.annotation.Nullable java.lang.String[], @android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession.PromptDelegate.ButtonCallback); + method @android.support.annotation.UiThread public void onChoicePrompt(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.Nullable java.lang.String, @android.support.annotation.Nullable java.lang.String, int, @android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession.PromptDelegate.Choice[], @android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession.PromptDelegate.ChoiceCallback); + method @android.support.annotation.UiThread public void onColorPrompt(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.Nullable java.lang.String, @android.support.annotation.Nullable java.lang.String, @android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession.PromptDelegate.TextCallback); + method @android.support.annotation.UiThread public void onDateTimePrompt(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.Nullable java.lang.String, int, @android.support.annotation.Nullable java.lang.String, @android.support.annotation.Nullable java.lang.String, @android.support.annotation.Nullable java.lang.String, @android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession.PromptDelegate.TextCallback); + method @android.support.annotation.UiThread public void onFilePrompt(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.Nullable java.lang.String, int, @android.support.annotation.Nullable java.lang.String[], @android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession.PromptDelegate.FileCallback); + method @android.support.annotation.UiThread public org.mozilla.geckoview.GeckoResult onPopupRequest(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.Nullable java.lang.String); + method @android.support.annotation.UiThread public void onTextPrompt(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.Nullable java.lang.String, @android.support.annotation.Nullable java.lang.String, @android.support.annotation.Nullable java.lang.String, @android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession.PromptDelegate.TextCallback); field public static final int BUTTON_TYPE_NEGATIVE = 2; field public static final int BUTTON_TYPE_NEUTRAL = 1; field public static final int BUTTON_TYPE_POSITIVE = 0; @@ -493,15 +477,15 @@ package org.mozilla.geckoview { public static interface GeckoSession.PromptDelegate.AlertCallback { method @android.support.annotation.UiThread public void dismiss(); - method @android.support.annotation.UiThread public java.lang.String getCheckboxMessage(); + method @android.support.annotation.UiThread @android.support.annotation.Nullable public java.lang.String getCheckboxMessage(); method @android.support.annotation.UiThread public boolean getCheckboxValue(); method @android.support.annotation.UiThread public boolean hasCheckbox(); method @android.support.annotation.UiThread public void setCheckboxValue(boolean); } public static interface GeckoSession.PromptDelegate.AuthCallback implements org.mozilla.geckoview.GeckoSession.PromptDelegate.AlertCallback { - method @android.support.annotation.UiThread public void confirm(java.lang.String); - method @android.support.annotation.UiThread public void confirm(java.lang.String, java.lang.String); + method @android.support.annotation.UiThread public void confirm(@android.support.annotation.Nullable java.lang.String); + method @android.support.annotation.UiThread public void confirm(@android.support.annotation.NonNull java.lang.String, @android.support.annotation.NonNull java.lang.String); } public static class GeckoSession.PromptDelegate.AuthOptions { @@ -540,34 +524,34 @@ package org.mozilla.geckoview { } public static interface GeckoSession.PromptDelegate.ChoiceCallback implements org.mozilla.geckoview.GeckoSession.PromptDelegate.AlertCallback { - method @android.support.annotation.UiThread public void confirm(java.lang.String); - method @android.support.annotation.UiThread public void confirm(java.lang.String[]); - method @android.support.annotation.UiThread public void confirm(org.mozilla.geckoview.GeckoSession.PromptDelegate.Choice); - method @android.support.annotation.UiThread public void confirm(org.mozilla.geckoview.GeckoSession.PromptDelegate.Choice[]); + method @android.support.annotation.UiThread public void confirm(@android.support.annotation.Nullable java.lang.String); + method @android.support.annotation.UiThread public void confirm(@android.support.annotation.NonNull java.lang.String[]); + method @android.support.annotation.UiThread public void confirm(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession.PromptDelegate.Choice); + method @android.support.annotation.UiThread public void confirm(@android.support.annotation.Nullable org.mozilla.geckoview.GeckoSession.PromptDelegate.Choice[]); } public static interface GeckoSession.PromptDelegate.DatetimeType implements java.lang.annotation.Annotation { } public static interface GeckoSession.PromptDelegate.FileCallback implements org.mozilla.geckoview.GeckoSession.PromptDelegate.AlertCallback { - method @android.support.annotation.UiThread public void confirm(android.content.Context, android.net.Uri); - method @android.support.annotation.UiThread public void confirm(android.content.Context, android.net.Uri[]); + method @android.support.annotation.UiThread public void confirm(@android.support.annotation.Nullable android.content.Context, @android.support.annotation.Nullable android.net.Uri); + method @android.support.annotation.UiThread public void confirm(@android.support.annotation.Nullable android.content.Context, @android.support.annotation.Nullable android.net.Uri[]); } public static interface GeckoSession.PromptDelegate.FileType implements java.lang.annotation.Annotation { } public static interface GeckoSession.PromptDelegate.TextCallback implements org.mozilla.geckoview.GeckoSession.PromptDelegate.AlertCallback { - method @android.support.annotation.UiThread public void confirm(java.lang.String); + method @android.support.annotation.UiThread public void confirm(@android.support.annotation.Nullable java.lang.String); } public static interface GeckoSession.ScrollDelegate { - method @android.support.annotation.UiThread public void onScrollChanged(org.mozilla.geckoview.GeckoSession, int, int); + method @android.support.annotation.UiThread public void onScrollChanged(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, int, int); } public static interface GeckoSession.SelectionActionDelegate { - method @android.support.annotation.UiThread public void onHideAction(org.mozilla.geckoview.GeckoSession, int); - method @android.support.annotation.UiThread public void onShowActionRequest(org.mozilla.geckoview.GeckoSession, org.mozilla.geckoview.GeckoSession.SelectionActionDelegate.Selection, java.lang.String[], org.mozilla.geckoview.GeckoResponse); + method @android.support.annotation.UiThread public void onHideAction(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, int); + method @android.support.annotation.UiThread public void onShowActionRequest(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession.SelectionActionDelegate.Selection, java.lang.String[], @android.support.annotation.NonNull org.mozilla.geckoview.GeckoResponse); field public static final java.lang.String ACTION_COLLAPSE_TO_END = "org.mozilla.geckoview.COLLAPSE_TO_END"; field public static final java.lang.String ACTION_COLLAPSE_TO_START = "org.mozilla.geckoview.COLLAPSE_TO_START"; field public static final java.lang.String ACTION_COPY = "org.mozilla.geckoview.COPY"; @@ -604,21 +588,18 @@ package org.mozilla.geckoview { @android.support.annotation.AnyThread public static class GeckoSession.SessionState implements android.os.Parcelable { ctor public SessionState(java.lang.String); - method public int describeContents(); - method public void readFromParcel(android.os.Parcel); - method public java.lang.String toString(); - method public void writeToParcel(android.os.Parcel, int); + method public void readFromParcel(@android.support.annotation.NonNull android.os.Parcel); field public static final android.os.Parcelable.Creator CREATOR; } public static interface GeckoSession.TextInputDelegate { - method @android.support.annotation.UiThread public void hideSoftInput(org.mozilla.geckoview.GeckoSession); - method @android.support.annotation.UiThread public void notifyAutoFill(org.mozilla.geckoview.GeckoSession, int, int); - method @android.support.annotation.UiThread public void restartInput(org.mozilla.geckoview.GeckoSession, int); - method @android.support.annotation.UiThread public void showSoftInput(org.mozilla.geckoview.GeckoSession); - method @android.support.annotation.UiThread public void updateCursorAnchorInfo(org.mozilla.geckoview.GeckoSession, android.view.inputmethod.CursorAnchorInfo); - method @android.support.annotation.UiThread public void updateExtractedText(org.mozilla.geckoview.GeckoSession, android.view.inputmethod.ExtractedTextRequest, android.view.inputmethod.ExtractedText); - method @android.support.annotation.UiThread public void updateSelection(org.mozilla.geckoview.GeckoSession, int, int, int, int); + method @android.support.annotation.UiThread public void hideSoftInput(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession); + method @android.support.annotation.UiThread public void notifyAutoFill(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, int, int); + method @android.support.annotation.UiThread public void restartInput(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, int); + method @android.support.annotation.UiThread public void showSoftInput(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession); + method @android.support.annotation.UiThread public void updateCursorAnchorInfo(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.NonNull android.view.inputmethod.CursorAnchorInfo); + method @android.support.annotation.UiThread public void updateExtractedText(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.NonNull android.view.inputmethod.ExtractedTextRequest, @android.support.annotation.NonNull android.view.inputmethod.ExtractedText); + method @android.support.annotation.UiThread public void updateSelection(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, int, int, int, int); field public static final int AUTO_FILL_NOTIFY_CANCELED = 2; field public static final int AUTO_FILL_NOTIFY_COMMITTED = 1; field public static final int AUTO_FILL_NOTIFY_STARTED = 0; @@ -639,7 +620,7 @@ package org.mozilla.geckoview { } public static interface GeckoSession.TrackingProtectionDelegate { - method @android.support.annotation.UiThread public void onTrackerBlocked(org.mozilla.geckoview.GeckoSession, java.lang.String, int); + method @android.support.annotation.UiThread public void onTrackerBlocked(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.Nullable java.lang.String, int); field public static final int CATEGORY_AD = 1; field public static final int CATEGORY_ALL = 31; field public static final int CATEGORY_ANALYTIC = 2; @@ -654,27 +635,22 @@ package org.mozilla.geckoview { @android.support.annotation.AnyThread public static class GeckoSession.WebResponseInfo { ctor protected WebResponseInfo(); - field public final long contentLength; - field public final java.lang.String contentType; - field public final java.lang.String filename; - field public final java.lang.String uri; + field @android.support.annotation.Nullable public final long contentLength; + field @android.support.annotation.Nullable public final java.lang.String contentType; + field @android.support.annotation.Nullable public final java.lang.String filename; + field @android.support.annotation.NonNull public final java.lang.String uri; } @android.support.annotation.AnyThread public final class GeckoSessionSettings implements android.os.Parcelable { ctor public GeckoSessionSettings(); - ctor public GeckoSessionSettings(org.mozilla.geckoview.GeckoSessionSettings); - method public int describeContents(); - method public boolean equals(java.lang.Object); - method public boolean getBoolean(org.mozilla.geckoview.GeckoSessionSettings.Key); - method public int getInt(org.mozilla.geckoview.GeckoSessionSettings.Key); - method public java.lang.String getString(org.mozilla.geckoview.GeckoSessionSettings.Key); - method public int hashCode(); - method public void readFromParcel(android.os.Parcel); - method public void setBoolean(org.mozilla.geckoview.GeckoSessionSettings.Key, boolean); - method public void setInt(org.mozilla.geckoview.GeckoSessionSettings.Key, int); - method public void setString(org.mozilla.geckoview.GeckoSessionSettings.Key, java.lang.String); - method public java.lang.String toString(); - method public void writeToParcel(android.os.Parcel, int); + ctor public GeckoSessionSettings(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSessionSettings); + method public boolean getBoolean(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSessionSettings.Key); + method public int getInt(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSessionSettings.Key); + method public java.lang.String getString(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSessionSettings.Key); + method public void readFromParcel(@android.support.annotation.NonNull android.os.Parcel); + method public void setBoolean(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSessionSettings.Key, boolean); + method public void setInt(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSessionSettings.Key, int); + method public void setString(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSessionSettings.Key, @android.support.annotation.Nullable java.lang.String); field public static final org.mozilla.geckoview.GeckoSessionSettings.Key ALLOW_JAVASCRIPT; field public static final org.mozilla.geckoview.GeckoSessionSettings.Key CHROME_URI; field public static final android.os.Parcelable.Creator CREATOR; @@ -702,36 +678,15 @@ package org.mozilla.geckoview { @android.support.annotation.UiThread public class GeckoView extends android.widget.FrameLayout { ctor public GeckoView(android.content.Context); ctor public GeckoView(android.content.Context, android.util.AttributeSet); - method public void autofill(android.util.SparseArray); method public void coverUntilFirstPaint(int); - method public void dispatchDraw(android.graphics.Canvas); - method public boolean gatherTransparentRegion(android.graphics.Region); - method public org.mozilla.geckoview.DynamicToolbarAnimator getDynamicToolbarAnimator(); - method @android.support.annotation.AnyThread public org.mozilla.gecko.EventDispatcher getEventDispatcher(); - method public android.os.Handler getHandler(); - method public org.mozilla.geckoview.PanZoomController getPanZoomController(); - method @android.support.annotation.AnyThread public org.mozilla.geckoview.GeckoSession getSession(); - method public void onAttachedToWindow(); - method public android.view.inputmethod.InputConnection onCreateInputConnection(android.view.inputmethod.EditorInfo); - method public void onDetachedFromWindow(); - method public boolean onGenericMotionEvent(android.view.MotionEvent); - method public boolean onKeyDown(int, android.view.KeyEvent); - method public boolean onKeyLongPress(int, android.view.KeyEvent); - method public boolean onKeyMultiple(int, int, android.view.KeyEvent); - method public boolean onKeyPreIme(int, android.view.KeyEvent); - method public boolean onKeyUp(int, android.view.KeyEvent); - method public void onProvideAutofillVirtualStructure(android.view.ViewStructure, int); - method public boolean onTouchEvent(android.view.MotionEvent); - method public void onWindowFocusChanged(boolean); - method public org.mozilla.geckoview.GeckoSession releaseSession(); - method public void setSession(org.mozilla.geckoview.GeckoSession); - method public void setSession(org.mozilla.geckoview.GeckoSession, org.mozilla.geckoview.GeckoRuntime); + method @android.support.annotation.NonNull public org.mozilla.geckoview.DynamicToolbarAnimator getDynamicToolbarAnimator(); + method @android.support.annotation.AnyThread @android.support.annotation.NonNull public org.mozilla.gecko.EventDispatcher getEventDispatcher(); + method @android.support.annotation.NonNull public org.mozilla.geckoview.PanZoomController getPanZoomController(); + method @android.support.annotation.AnyThread @android.support.annotation.Nullable public org.mozilla.geckoview.GeckoSession getSession(); + method @android.support.annotation.Nullable public org.mozilla.geckoview.GeckoSession releaseSession(); + method public void setSession(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession); + method public void setSession(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoSession, @android.support.annotation.Nullable org.mozilla.geckoview.GeckoRuntime); method public boolean shouldPinOnScreen(); - method protected void onConfigurationChanged(android.content.res.Configuration); - method protected void onFocusChanged(boolean, int, android.graphics.Rect); - method protected void onRestoreInstanceState(android.os.Parcelable); - method protected android.os.Parcelable onSaveInstanceState(); - method protected void onWindowVisibilityChanged(int); field protected final org.mozilla.geckoview.GeckoView.Display mDisplay; field protected org.mozilla.geckoview.GeckoRuntime mRuntime; field protected org.mozilla.geckoview.GeckoSession mSession; @@ -739,11 +694,11 @@ package org.mozilla.geckoview { } @android.support.annotation.AnyThread public class GeckoWebExecutor { - ctor public GeckoWebExecutor(org.mozilla.geckoview.GeckoRuntime); - method public org.mozilla.geckoview.GeckoResult fetch(org.mozilla.geckoview.WebRequest); - method public org.mozilla.geckoview.GeckoResult fetch(org.mozilla.geckoview.WebRequest, int); - method public org.mozilla.geckoview.GeckoResult resolve(java.lang.String); - method public void speculativeConnect(java.lang.String); + ctor public GeckoWebExecutor(@android.support.annotation.NonNull org.mozilla.geckoview.GeckoRuntime); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoResult fetch(@android.support.annotation.NonNull org.mozilla.geckoview.WebRequest); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoResult fetch(@android.support.annotation.NonNull org.mozilla.geckoview.WebRequest, int); + method public org.mozilla.geckoview.GeckoResult resolve(@android.support.annotation.NonNull java.lang.String); + method public void speculativeConnect(@android.support.annotation.NonNull java.lang.String); field public static final int FETCH_FLAGS_ANONYMOUS = 1; field public static final int FETCH_FLAGS_NONE = 0; } @@ -752,11 +707,11 @@ package org.mozilla.geckoview { } @android.support.annotation.AnyThread public class MediaElement { - method public org.mozilla.geckoview.MediaElement.Delegate getDelegate(); + method @android.support.annotation.Nullable public org.mozilla.geckoview.MediaElement.Delegate getDelegate(); method public void pause(); method public void play(); method public void seek(double); - method public void setDelegate(org.mozilla.geckoview.MediaElement.Delegate); + method public void setDelegate(@android.support.annotation.Nullable org.mozilla.geckoview.MediaElement.Delegate); method public void setMuted(boolean); method public void setPlaybackRate(double); method public void setVolume(double); @@ -787,20 +742,20 @@ package org.mozilla.geckoview { } public static interface MediaElement.Delegate { - method @android.support.annotation.UiThread public void onError(org.mozilla.geckoview.MediaElement, int); - method @android.support.annotation.UiThread public void onFullscreenChange(org.mozilla.geckoview.MediaElement, boolean); - method @android.support.annotation.UiThread public void onLoadProgress(org.mozilla.geckoview.MediaElement, org.mozilla.geckoview.MediaElement.LoadProgressInfo); - method @android.support.annotation.UiThread public void onMetadataChange(org.mozilla.geckoview.MediaElement, org.mozilla.geckoview.MediaElement.Metadata); - method @android.support.annotation.UiThread public void onPlaybackRateChange(org.mozilla.geckoview.MediaElement, double); - method @android.support.annotation.UiThread public void onPlaybackStateChange(org.mozilla.geckoview.MediaElement, int); - method @android.support.annotation.UiThread public void onReadyStateChange(org.mozilla.geckoview.MediaElement, int); - method @android.support.annotation.UiThread public void onTimeChange(org.mozilla.geckoview.MediaElement, double); - method @android.support.annotation.UiThread public void onVolumeChange(org.mozilla.geckoview.MediaElement, double, boolean); + method @android.support.annotation.UiThread public void onError(@android.support.annotation.NonNull org.mozilla.geckoview.MediaElement, int); + method @android.support.annotation.UiThread public void onFullscreenChange(@android.support.annotation.NonNull org.mozilla.geckoview.MediaElement, boolean); + method @android.support.annotation.UiThread public void onLoadProgress(@android.support.annotation.NonNull org.mozilla.geckoview.MediaElement, @android.support.annotation.NonNull org.mozilla.geckoview.MediaElement.LoadProgressInfo); + method @android.support.annotation.UiThread public void onMetadataChange(@android.support.annotation.NonNull org.mozilla.geckoview.MediaElement, @android.support.annotation.NonNull org.mozilla.geckoview.MediaElement.Metadata); + method @android.support.annotation.UiThread public void onPlaybackRateChange(@android.support.annotation.NonNull org.mozilla.geckoview.MediaElement, double); + method @android.support.annotation.UiThread public void onPlaybackStateChange(@android.support.annotation.NonNull org.mozilla.geckoview.MediaElement, int); + method @android.support.annotation.UiThread public void onReadyStateChange(@android.support.annotation.NonNull org.mozilla.geckoview.MediaElement, int); + method @android.support.annotation.UiThread public void onTimeChange(@android.support.annotation.NonNull org.mozilla.geckoview.MediaElement, double); + method @android.support.annotation.UiThread public void onVolumeChange(@android.support.annotation.NonNull org.mozilla.geckoview.MediaElement, double, boolean); } public static class MediaElement.LoadProgressInfo { ctor protected LoadProgressInfo(); - field public final org.mozilla.geckoview.MediaElement.LoadProgressInfo.TimeRange[] buffered; + field @android.support.annotation.Nullable public final org.mozilla.geckoview.MediaElement.LoadProgressInfo.TimeRange[] buffered; field public final long loadedBytes; field public final long totalBytes; } @@ -823,73 +778,71 @@ package org.mozilla.geckoview { } @android.support.annotation.UiThread public final class OverscrollEdgeEffect { - method public void draw(android.graphics.Canvas); - method public java.lang.Runnable getInvalidationCallback(); - method public void setInvalidationCallback(java.lang.Runnable); - method public void setTheme(android.content.Context); + method public void draw(@android.support.annotation.NonNull android.graphics.Canvas); + method @android.support.annotation.Nullable public java.lang.Runnable getInvalidationCallback(); + method public void setInvalidationCallback(@android.support.annotation.Nullable java.lang.Runnable); + method public void setTheme(@android.support.annotation.NonNull android.content.Context); } @android.support.annotation.UiThread public class PanZoomController extends org.mozilla.gecko.mozglue.JNIObject { ctor protected PanZoomController(org.mozilla.geckoview.GeckoSession); method public float getScrollFactor(); - method public boolean onMotionEvent(android.view.MotionEvent); - method public boolean onMouseEvent(android.view.MotionEvent); - method public boolean onTouchEvent(android.view.MotionEvent); + method public boolean onMotionEvent(@android.support.annotation.NonNull android.view.MotionEvent); + method public boolean onMouseEvent(@android.support.annotation.NonNull android.view.MotionEvent); + method public boolean onTouchEvent(@android.support.annotation.NonNull android.view.MotionEvent); method public void setIsLongpressEnabled(boolean); method public void setScrollFactor(float); - method protected void disposeNative(); - method protected void finalize(); } public final class RuntimeTelemetry { - method @android.support.annotation.AnyThread public org.mozilla.geckoview.GeckoResult getSnapshots(boolean); + method @android.support.annotation.AnyThread @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoResult getSnapshots(boolean); } @android.support.annotation.UiThread public class SessionAccessibility { - method public android.view.View getView(); - method public boolean onMotionEvent(android.view.MotionEvent); - method @android.support.annotation.UiThread public void setView(android.view.View); + method @android.support.annotation.Nullable public android.view.View getView(); + method public boolean onMotionEvent(@android.support.annotation.NonNull android.view.MotionEvent); + method @android.support.annotation.UiThread public void setView(@android.support.annotation.Nullable android.view.View); } @android.support.annotation.AnyThread public final class SessionFinder { method public void clear(); - method public org.mozilla.geckoview.GeckoResult find(java.lang.String, int); + method @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoResult find(@android.support.annotation.Nullable java.lang.String, int); method public int getDisplayFlags(); method public void setDisplayFlags(int); } public final class SessionTextInput { - method @android.support.annotation.UiThread public void autofill(android.util.SparseArray); - method @android.support.annotation.UiThread public org.mozilla.geckoview.GeckoSession.TextInputDelegate getDelegate(); - method @android.support.annotation.AnyThread public synchronized android.os.Handler getHandler(android.os.Handler); - method @android.support.annotation.UiThread public android.view.View getView(); - method @android.support.annotation.AnyThread public synchronized android.view.inputmethod.InputConnection onCreateInputConnection(android.view.inputmethod.EditorInfo); - method @android.support.annotation.UiThread public boolean onKeyDown(int, android.view.KeyEvent); - method @android.support.annotation.UiThread public boolean onKeyLongPress(int, android.view.KeyEvent); - method @android.support.annotation.UiThread public boolean onKeyMultiple(int, int, android.view.KeyEvent); - method @android.support.annotation.UiThread public boolean onKeyPreIme(int, android.view.KeyEvent); - method @android.support.annotation.UiThread public boolean onKeyUp(int, android.view.KeyEvent); - method @android.support.annotation.UiThread public void onProvideAutofillVirtualStructure(android.view.ViewStructure, int); - method @android.support.annotation.UiThread public void setDelegate(org.mozilla.geckoview.GeckoSession.TextInputDelegate); - method @android.support.annotation.UiThread public synchronized void setView(android.view.View); + method @android.support.annotation.UiThread public void autofill(@android.support.annotation.NonNull android.util.SparseArray); + method @android.support.annotation.UiThread @android.support.annotation.NonNull public org.mozilla.geckoview.GeckoSession.TextInputDelegate getDelegate(); + method @android.support.annotation.AnyThread @android.support.annotation.NonNull public synchronized android.os.Handler getHandler(@android.support.annotation.NonNull android.os.Handler); + method @android.support.annotation.UiThread @android.support.annotation.Nullable public android.view.View getView(); + method @android.support.annotation.AnyThread @android.support.annotation.Nullable public synchronized android.view.inputmethod.InputConnection onCreateInputConnection(@android.support.annotation.NonNull android.view.inputmethod.EditorInfo); + method @android.support.annotation.UiThread public boolean onKeyDown(int, @android.support.annotation.NonNull android.view.KeyEvent); + method @android.support.annotation.UiThread public boolean onKeyLongPress(int, @android.support.annotation.NonNull android.view.KeyEvent); + method @android.support.annotation.UiThread public boolean onKeyMultiple(int, int, @android.support.annotation.NonNull android.view.KeyEvent); + method @android.support.annotation.UiThread public boolean onKeyPreIme(int, @android.support.annotation.NonNull android.view.KeyEvent); + method @android.support.annotation.UiThread public boolean onKeyUp(int, @android.support.annotation.NonNull android.view.KeyEvent); + method @android.support.annotation.UiThread public void onProvideAutofillVirtualStructure(@android.support.annotation.NonNull android.view.ViewStructure, int); + method @android.support.annotation.UiThread public void setDelegate(@android.support.annotation.Nullable org.mozilla.geckoview.GeckoSession.TextInputDelegate); + method @android.support.annotation.UiThread public synchronized void setView(@android.support.annotation.Nullable android.view.View); } @android.support.annotation.AnyThread public abstract class WebMessage { - ctor protected WebMessage(org.mozilla.geckoview.WebMessage.Builder); - field public final java.nio.ByteBuffer body; - field public final java.util.Map headers; - field public final java.lang.String uri; + ctor protected WebMessage(@android.support.annotation.NonNull org.mozilla.geckoview.WebMessage.Builder); + field @android.support.annotation.Nullable public final java.nio.ByteBuffer body; + field @android.support.annotation.NonNull public final java.util.Map headers; + field @android.support.annotation.NonNull public final java.lang.String uri; } @android.support.annotation.AnyThread public abstract static class WebMessage.Builder { - method public org.mozilla.geckoview.WebMessage.Builder addHeader(java.lang.String, java.lang.String); - method public org.mozilla.geckoview.WebMessage.Builder body(java.nio.ByteBuffer); - method public org.mozilla.geckoview.WebMessage.Builder header(java.lang.String, java.lang.String); - method public org.mozilla.geckoview.WebMessage.Builder uri(java.lang.String); + method @android.support.annotation.NonNull public org.mozilla.geckoview.WebMessage.Builder addHeader(@android.support.annotation.NonNull java.lang.String, @android.support.annotation.NonNull java.lang.String); + method @android.support.annotation.NonNull public org.mozilla.geckoview.WebMessage.Builder body(@android.support.annotation.Nullable java.nio.ByteBuffer); + method @android.support.annotation.NonNull public org.mozilla.geckoview.WebMessage.Builder header(@android.support.annotation.NonNull java.lang.String, @android.support.annotation.NonNull java.lang.String); + method @android.support.annotation.NonNull public org.mozilla.geckoview.WebMessage.Builder uri(@android.support.annotation.NonNull java.lang.String); } @android.support.annotation.AnyThread public class WebRequest extends org.mozilla.geckoview.WebMessage { - ctor public WebRequest(java.lang.String); + ctor public WebRequest(@android.support.annotation.NonNull java.lang.String); field public static final int CACHE_MODE_DEFAULT = 1; field public static final int CACHE_MODE_FORCE_CACHE = 5; field public static final int CACHE_MODE_NO_CACHE = 4; @@ -897,20 +850,16 @@ package org.mozilla.geckoview { field public static final int CACHE_MODE_ONLY_IF_CACHED = 6; field public static final int CACHE_MODE_RELOAD = 3; field public final int cacheMode; - field public final java.lang.String method; - field public final java.lang.String referrer; + field @android.support.annotation.NonNull public final java.lang.String method; + field @android.support.annotation.Nullable public final java.lang.String referrer; } @android.support.annotation.AnyThread public static class WebRequest.Builder extends org.mozilla.geckoview.WebMessage.Builder { - ctor public Builder(java.lang.String); - method public org.mozilla.geckoview.WebRequest.Builder addHeader(java.lang.String, java.lang.String); - method public org.mozilla.geckoview.WebRequest.Builder body(java.nio.ByteBuffer); - method public org.mozilla.geckoview.WebRequest build(); - method public org.mozilla.geckoview.WebRequest.Builder cacheMode(int); - method public org.mozilla.geckoview.WebRequest.Builder header(java.lang.String, java.lang.String); - method public org.mozilla.geckoview.WebRequest.Builder method(java.lang.String); - method public org.mozilla.geckoview.WebRequest.Builder referrer(java.lang.String); - method public org.mozilla.geckoview.WebRequest.Builder uri(java.lang.String); + ctor public Builder(@android.support.annotation.NonNull java.lang.String); + method @android.support.annotation.NonNull public org.mozilla.geckoview.WebRequest build(); + method @android.support.annotation.NonNull public org.mozilla.geckoview.WebRequest.Builder cacheMode(int); + method @android.support.annotation.NonNull public org.mozilla.geckoview.WebRequest.Builder method(@android.support.annotation.NonNull java.lang.String); + method @android.support.annotation.NonNull public org.mozilla.geckoview.WebRequest.Builder referrer(@android.support.annotation.Nullable java.lang.String); } public static interface WebRequest.CacheMode implements java.lang.annotation.Annotation { @@ -918,8 +867,6 @@ package org.mozilla.geckoview { @android.support.annotation.AnyThread public class WebRequestError extends java.lang.Exception { ctor public WebRequestError(int, int); - method public boolean equals(java.lang.Object); - method public int hashCode(); field public static final int ERROR_CATEGORY_CONTENT = 4; field public static final int ERROR_CATEGORY_NETWORK = 3; field public static final int ERROR_CATEGORY_PROXY = 6; @@ -964,20 +911,16 @@ package org.mozilla.geckoview { } @android.support.annotation.AnyThread public class WebResponse extends org.mozilla.geckoview.WebMessage { - ctor protected WebResponse(org.mozilla.geckoview.WebResponse.Builder); + ctor protected WebResponse(@android.support.annotation.NonNull org.mozilla.geckoview.WebResponse.Builder); field public final boolean redirected; field public final int statusCode; } @android.support.annotation.AnyThread public static class WebResponse.Builder extends org.mozilla.geckoview.WebMessage.Builder { - ctor public Builder(java.lang.String); - method public org.mozilla.geckoview.WebResponse.Builder addHeader(java.lang.String, java.lang.String); - method public org.mozilla.geckoview.WebResponse.Builder body(java.nio.ByteBuffer); - method public org.mozilla.geckoview.WebResponse build(); - method public org.mozilla.geckoview.WebResponse.Builder header(java.lang.String, java.lang.String); - method public org.mozilla.geckoview.WebResponse.Builder redirected(boolean); - method public org.mozilla.geckoview.WebResponse.Builder statusCode(int); - method public org.mozilla.geckoview.WebResponse.Builder uri(java.lang.String); + ctor public Builder(@android.support.annotation.NonNull java.lang.String); + method @android.support.annotation.NonNull public org.mozilla.geckoview.WebResponse build(); + method @android.support.annotation.NonNull public org.mozilla.geckoview.WebResponse.Builder redirected(boolean); + method @android.support.annotation.NonNull public org.mozilla.geckoview.WebResponse.Builder statusCode(int); } } diff --git a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/ContentDelegateTest.kt b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/ContentDelegateTest.kt index fad0ccd7608b..714e31b969ff 100644 --- a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/ContentDelegateTest.kt +++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/ContentDelegateTest.kt @@ -46,7 +46,7 @@ class ContentDelegateTest : BaseSessionTest() { sessionRule.waitUntilCalled(object : Callbacks.ContentDelegate { @AssertCalled(count = 2) - override fun onTitleChange(session: GeckoSession, title: String) { + override fun onTitleChange(session: GeckoSession, title: String?) { assertThat("Title should match", title, equalTo(forEachCall("Title1", "Title2"))) } @@ -187,7 +187,7 @@ class ContentDelegateTest : BaseSessionTest() { sessionRule.forCallbacksDuringWait(object : Callbacks.NavigationDelegate { @AssertCalled - override fun onLocationChange(session: GeckoSession, url: String) { + override fun onLocationChange(session: GeckoSession, url: String?) { assertThat("URI should match", url, equalTo(startUri)) } }) diff --git a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/GeckoSessionTestRuleTest.kt b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/GeckoSessionTestRuleTest.kt index eeb7368eb5c8..ddf640430be5 100644 --- a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/GeckoSessionTestRuleTest.kt +++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/GeckoSessionTestRuleTest.kt @@ -874,7 +874,7 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) { @NullDelegate(GeckoSession.NavigationDelegate::class) fun delegateDuringNextWait_throwOnNullDelegate() { sessionRule.session.delegateDuringNextWait(object : Callbacks.NavigationDelegate { - override fun onLocationChange(session: GeckoSession, url: String) { + override fun onLocationChange(session: GeckoSession, url: String?) { } }) } @@ -1337,7 +1337,8 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) { @Test(expected = UiThreadUtils.TimeoutException::class) fun evaluateJS_canTimeout() { sessionRule.session.delegateUntilTestEnd(object : Callbacks.PromptDelegate { - override fun onAlert(session: GeckoSession, title: String, msg: String, callback: GeckoSession.PromptDelegate.AlertCallback) { + override fun onAlert(session: GeckoSession, title: String?, msg: String?, + callback: GeckoSession.PromptDelegate.AlertCallback) { // Do nothing for the alert, so it hangs forever. } }) @@ -1494,7 +1495,8 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) { sessionRule.session.forCallbacksDuringWait(object : Callbacks.PromptDelegate { @AssertCalled(count = 1) - override fun onAlert(session: GeckoSession, title: String, msg: String, callback: GeckoSession.PromptDelegate.AlertCallback) { + override fun onAlert(session: GeckoSession, title: String?, msg: String?, + callback: GeckoSession.PromptDelegate.AlertCallback) { } }) } @@ -1510,7 +1512,8 @@ class GeckoSessionTestRuleTest : BaseSessionTest(noErrorCollector = true) { @Test fun waitForJS_delegateDuringWait() { var count = 0 sessionRule.session.delegateDuringNextWait(object : Callbacks.PromptDelegate { - override fun onAlert(session: GeckoSession, title: String, msg: String, callback: GeckoSession.PromptDelegate.AlertCallback) { + override fun onAlert(session: GeckoSession, title: String?, msg: String?, + callback: GeckoSession.PromptDelegate.AlertCallback) { count++ callback.dismiss() } diff --git a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/LocaleTest.kt b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/LocaleTest.kt index 6c25b39dcbbd..9bf883c197a6 100644 --- a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/LocaleTest.kt +++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/LocaleTest.kt @@ -20,7 +20,7 @@ import org.junit.runner.RunWith class LocaleTest : BaseSessionTest() { @Test fun setLocale() { - sessionRule.runtime.getSettings().setLocales(arrayOf("en-GB")); + sessionRule.runtime.getSettings()!!.setLocales(arrayOf("en-GB")); val index = sessionRule.waitForChromeJS(String.format( "(function() {" + diff --git a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/NavigationDelegateTest.kt b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/NavigationDelegateTest.kt index 8f168160603a..30c89ce3295d 100644 --- a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/NavigationDelegateTest.kt +++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/NavigationDelegateTest.kt @@ -71,12 +71,12 @@ class NavigationDelegateTest : BaseSessionTest() { if (errorPageUrl != null) { sessionRule.waitUntilCalled(object : Callbacks.ContentDelegate, Callbacks.NavigationDelegate { @AssertCalled(count = 1, order = [1]) - override fun onLocationChange(session: GeckoSession, url: String) { + override fun onLocationChange(session: GeckoSession, url: String?) { assertThat("URL should match", url, equalTo(testUri)) } @AssertCalled(count = 1, order = [2]) - override fun onTitleChange(session: GeckoSession, title: String) { + override fun onTitleChange(session: GeckoSession, title: String?) { assertThat("Title should not be empty", title, not(isEmptyOrNullString())) } }) @@ -123,7 +123,7 @@ class NavigationDelegateTest : BaseSessionTest() { if (errorPageUrl != null) { sessionRule.waitUntilCalled(object: Callbacks.ContentDelegate { @AssertCalled(count = 1) - override fun onTitleChange(session: GeckoSession, title: String) { + override fun onTitleChange(session: GeckoSession, title: String?) { assertThat("Title should not be empty", title, not(isEmptyOrNullString())); } }) @@ -174,13 +174,13 @@ class NavigationDelegateTest : BaseSessionTest() { @Setting(key = Setting.Key.USE_TRACKING_PROTECTION, value = "true") @Test fun trackingProtection() { val category = TrackingProtectionDelegate.CATEGORY_TEST; - sessionRule.runtime.settings.trackingProtectionCategories = category + sessionRule.runtime.settings!!.trackingProtectionCategories = category sessionRule.session.loadTestPath(TRACKERS_PATH) sessionRule.waitUntilCalled( object : Callbacks.TrackingProtectionDelegate { @AssertCalled(count = 3) - override fun onTrackerBlocked(session: GeckoSession, uri: String, + override fun onTrackerBlocked(session: GeckoSession, uri: String?, categories: Int) { assertThat("Category should be set", categories, @@ -199,7 +199,7 @@ class NavigationDelegateTest : BaseSessionTest() { sessionRule.forCallbacksDuringWait( object : Callbacks.TrackingProtectionDelegate { @AssertCalled(false) - override fun onTrackerBlocked(session: GeckoSession, uri: String, + override fun onTrackerBlocked(session: GeckoSession, uri: String?, categories: Int) { } }) @@ -244,7 +244,7 @@ class NavigationDelegateTest : BaseSessionTest() { @Test fun bypassClassifier() { val phishingUri = "https://www.itisatrap.org/firefox/its-a-trap.html" - sessionRule.runtime.settings.blockPhishing = true + sessionRule.runtime.settings!!.blockPhishing = true sessionRule.session.loadUri(phishingUri + "?bypass=true", GeckoSession.LOAD_FLAGS_BYPASS_CLASSIFIER) @@ -263,14 +263,14 @@ class NavigationDelegateTest : BaseSessionTest() { @Test fun safebrowsingPhishing() { val phishingUri = "https://www.itisatrap.org/firefox/its-a-trap.html" - sessionRule.runtime.settings.blockPhishing = true + sessionRule.runtime.settings!!.blockPhishing = true // Add query string to avoid bypassing classifier check because of cache. testLoadExpectError(phishingUri + "?block=true", WebRequestError.ERROR_CATEGORY_SAFEBROWSING, WebRequestError.ERROR_SAFEBROWSING_PHISHING_URI) - sessionRule.runtime.settings.blockPhishing = false + sessionRule.runtime.settings!!.blockPhishing = false sessionRule.session.loadUri(phishingUri + "?block=false") sessionRule.session.waitForPageStop() @@ -288,13 +288,13 @@ class NavigationDelegateTest : BaseSessionTest() { @Test fun safebrowsingMalware() { val malwareUri = "https://www.itisatrap.org/firefox/its-an-attack.html" - sessionRule.runtime.settings.blockMalware = true + sessionRule.runtime.settings!!.blockMalware = true testLoadExpectError(malwareUri + "?block=true", WebRequestError.ERROR_CATEGORY_SAFEBROWSING, WebRequestError.ERROR_SAFEBROWSING_MALWARE_URI) - sessionRule.runtime.settings.blockMalware = false + sessionRule.runtime.settings!!.blockMalware = false sessionRule.session.loadUri(malwareUri + "?block=false") sessionRule.session.waitForPageStop() @@ -312,13 +312,13 @@ class NavigationDelegateTest : BaseSessionTest() { @Test fun safebrowsingUnwanted() { val unwantedUri = "https://www.itisatrap.org/firefox/unwanted.html" - sessionRule.runtime.settings.blockMalware = true + sessionRule.runtime.settings!!.blockMalware = true testLoadExpectError(unwantedUri + "?block=true", WebRequestError.ERROR_CATEGORY_SAFEBROWSING, WebRequestError.ERROR_SAFEBROWSING_UNWANTED_URI) - sessionRule.runtime.settings.blockMalware = false + sessionRule.runtime.settings!!.blockMalware = false sessionRule.session.loadUri(unwantedUri + "?block=false") sessionRule.session.waitForPageStop() @@ -336,13 +336,13 @@ class NavigationDelegateTest : BaseSessionTest() { @Test fun safebrowsingHarmful() { val harmfulUri = "https://www.itisatrap.org/firefox/harmful.html" - sessionRule.runtime.settings.blockMalware = true + sessionRule.runtime.settings!!.blockMalware = true testLoadExpectError(harmfulUri + "?block=true", WebRequestError.ERROR_CATEGORY_SAFEBROWSING, WebRequestError.ERROR_SAFEBROWSING_HARMFUL_URI) - sessionRule.runtime.settings.blockMalware = false + sessionRule.runtime.settings!!.blockMalware = false sessionRule.session.loadUri(harmfulUri + "?block=false") sessionRule.session.waitForPageStop() @@ -529,7 +529,7 @@ class NavigationDelegateTest : BaseSessionTest() { } @AssertCalled(count = 1, order = [2]) - override fun onLocationChange(session: GeckoSession, url: String) { + override fun onLocationChange(session: GeckoSession, url: String?) { assertThat("Session should not be null", session, notNullValue()) assertThat("URL should not be null", url, notNullValue()) assertThat("URL should match", url, endsWith(HELLO_HTML_PATH)) @@ -561,7 +561,7 @@ class NavigationDelegateTest : BaseSessionTest() { sessionRule.forCallbacksDuringWait(object : Callbacks.NavigationDelegate, Callbacks.ProgressDelegate { @AssertCalled(count = 1) - override fun onLocationChange(session: GeckoSession, url: String) { + override fun onLocationChange(session: GeckoSession, url: String?) { assertThat("URL should match the provided data URL", url, equalTo(dataUrl)) } @@ -587,7 +587,7 @@ class NavigationDelegateTest : BaseSessionTest() { // Test that if we unset the navigation delegate during a load, the load still proceeds. var onLocationCount = 0 sessionRule.session.navigationDelegate = object : Callbacks.NavigationDelegate { - override fun onLocationChange(session: GeckoSession, url: String) { + override fun onLocationChange(session: GeckoSession, url: String?) { onLocationCount++ } } @@ -613,12 +613,12 @@ class NavigationDelegateTest : BaseSessionTest() { sessionRule.forCallbacksDuringWait(object : Callbacks.NavigationDelegate, Callbacks.ProgressDelegate, Callbacks.ContentDelegate { @AssertCalled - override fun onTitleChange(session: GeckoSession, title: String) { + override fun onTitleChange(session: GeckoSession, title: String?) { assertThat("Title should match", title, equalTo("TheTitle")); } @AssertCalled(count = 1) - override fun onLocationChange(session: GeckoSession, url: String) { + override fun onLocationChange(session: GeckoSession, url: String?) { assertThat("URL should be a data URL", url, equalTo(GeckoSession.createDataUri(dataString, mimeType))) } @@ -636,7 +636,7 @@ class NavigationDelegateTest : BaseSessionTest() { sessionRule.forCallbacksDuringWait(object : Callbacks.NavigationDelegate, Callbacks.ProgressDelegate { @AssertCalled(count = 1) - override fun onLocationChange(session: GeckoSession, url: String) { + override fun onLocationChange(session: GeckoSession, url: String?) { assertThat("URL should be a data URL", url, startsWith("data:")) } @@ -656,12 +656,12 @@ class NavigationDelegateTest : BaseSessionTest() { sessionRule.forCallbacksDuringWait(object : Callbacks.NavigationDelegate, Callbacks.ProgressDelegate, Callbacks.ContentDelegate { @AssertCalled(count = 1) - override fun onTitleChange(session: GeckoSession, title: String) { + override fun onTitleChange(session: GeckoSession, title: String?) { assertThat("Title should match", title, equalTo("Hello, world!")) } @AssertCalled(count = 1) - override fun onLocationChange(session: GeckoSession, url: String) { + override fun onLocationChange(session: GeckoSession, url: String?) { assertThat("URL should match", url, equalTo(GeckoSession.createDataUri(bytes, "text/html"))) } @@ -681,7 +681,7 @@ class NavigationDelegateTest : BaseSessionTest() { sessionRule.forCallbacksDuringWait(object : Callbacks.NavigationDelegate, Callbacks.ProgressDelegate { @AssertCalled(count = 1) - override fun onLocationChange(session: GeckoSession, url: String) { + override fun onLocationChange(session: GeckoSession, url: String?) { assertThat("URL should match", url, equalTo(GeckoSession.createDataUri(bytes, mimeType))) } @@ -722,7 +722,7 @@ class NavigationDelegateTest : BaseSessionTest() { } @AssertCalled(count = 1, order = [2]) - override fun onLocationChange(session: GeckoSession, url: String) { + override fun onLocationChange(session: GeckoSession, url: String?) { assertThat("URL should match", url, endsWith(HELLO_HTML_PATH)) } @@ -752,7 +752,7 @@ class NavigationDelegateTest : BaseSessionTest() { sessionRule.forCallbacksDuringWait(object : Callbacks.NavigationDelegate { @AssertCalled(count = 1) - override fun onLocationChange(session: GeckoSession, url: String) { + override fun onLocationChange(session: GeckoSession, url: String?) { assertThat("URL should match", url, endsWith(HELLO2_HTML_PATH)) } }) @@ -774,7 +774,7 @@ class NavigationDelegateTest : BaseSessionTest() { } @AssertCalled(count = 1, order = [2]) - override fun onLocationChange(session: GeckoSession, url: String) { + override fun onLocationChange(session: GeckoSession, url: String?) { assertThat("URL should match", url, endsWith(HELLO_HTML_PATH)) } @@ -811,7 +811,7 @@ class NavigationDelegateTest : BaseSessionTest() { } @AssertCalled(count = 1, order = [2]) - override fun onLocationChange(session: GeckoSession, url: String) { + override fun onLocationChange(session: GeckoSession, url: String?) { assertThat("URL should match", url, endsWith(HELLO2_HTML_PATH)) } diff --git a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/PermissionDelegateTest.kt b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/PermissionDelegateTest.kt index 520ee78dbade..16ae1073239b 100644 --- a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/PermissionDelegateTest.kt +++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/PermissionDelegateTest.kt @@ -53,10 +53,12 @@ class PermissionDelegateTest : BaseSessionTest() { mainSession.delegateDuringNextWait(object : Callbacks.PermissionDelegate { @AssertCalled(count = 1) - override fun onAndroidPermissionsRequest(session: GeckoSession, permissions: Array, callback: GeckoSession.PermissionDelegate.Callback) { + override fun onAndroidPermissionsRequest( + session: GeckoSession, permissions: Array?, + callback: GeckoSession.PermissionDelegate.Callback) { assertThat("Permissions list should be correct", - listOf(*permissions), hasItems(Manifest.permission.CAMERA, - Manifest.permission.RECORD_AUDIO)) + listOf(*permissions!!), hasItems(Manifest.permission.CAMERA, + Manifest.permission.RECORD_AUDIO)) callback.grant() } }) @@ -72,11 +74,15 @@ class PermissionDelegateTest : BaseSessionTest() { mainSession.delegateDuringNextWait(object : Callbacks.PermissionDelegate { @AssertCalled(count = 1) - override fun onMediaPermissionRequest(session: GeckoSession, uri: String, video: Array, audio: Array, callback: GeckoSession.PermissionDelegate.MediaCallback) { + override fun onMediaPermissionRequest( + session: GeckoSession, uri: String, + video: Array?, + audio: Array?, + callback: GeckoSession.PermissionDelegate.MediaCallback) { assertThat("URI should match", uri, endsWith(HELLO_HTML_PATH)) assertThat("Video source should be valid", video, not(emptyArray())) assertThat("Audio source should be valid", audio, not(emptyArray())) - callback.grant(video[0], audio[0]) + callback.grant(video!![0], audio!![0]) } }) @@ -100,7 +106,11 @@ class PermissionDelegateTest : BaseSessionTest() { // Now test rejecting the request. mainSession.delegateDuringNextWait(object : Callbacks.PermissionDelegate { @AssertCalled(count = 1) - override fun onMediaPermissionRequest(session: GeckoSession, uri: String, video: Array, audio: Array, callback: GeckoSession.PermissionDelegate.MediaCallback) { + override fun onMediaPermissionRequest( + session: GeckoSession, uri: String, + video: Array?, + audio: Array?, + callback: GeckoSession.PermissionDelegate.MediaCallback) { callback.reject() } }) @@ -127,7 +137,9 @@ class PermissionDelegateTest : BaseSessionTest() { mainSession.delegateDuringNextWait(object : Callbacks.PermissionDelegate { // Ensure the content permission is asked first, before the Android permission. @AssertCalled(count = 1, order = [1]) - override fun onContentPermissionRequest(session: GeckoSession, uri: String, type: Int, callback: GeckoSession.PermissionDelegate.Callback) { + override fun onContentPermissionRequest( + session: GeckoSession, uri: String?, type: Int, + callback: GeckoSession.PermissionDelegate.Callback) { assertThat("URI should match", uri, endsWith(HELLO_HTML_PATH)) assertThat("Type should match", type, equalTo(GeckoSession.PermissionDelegate.PERMISSION_GEOLOCATION)) @@ -135,9 +147,11 @@ class PermissionDelegateTest : BaseSessionTest() { } @AssertCalled(count = 1, order = [2]) - override fun onAndroidPermissionsRequest(session: GeckoSession, permissions: Array, callback: GeckoSession.PermissionDelegate.Callback) { + override fun onAndroidPermissionsRequest( + session: GeckoSession, permissions: Array?, + callback: GeckoSession.PermissionDelegate.Callback) { assertThat("Permissions list should be correct", - listOf(*permissions), hasItems(Manifest.permission.ACCESS_FINE_LOCATION)) + listOf(*permissions!!), hasItems(Manifest.permission.ACCESS_FINE_LOCATION)) callback.grant() } }) @@ -158,12 +172,16 @@ class PermissionDelegateTest : BaseSessionTest() { mainSession.delegateDuringNextWait(object : Callbacks.PermissionDelegate { @AssertCalled(count = 1) - override fun onContentPermissionRequest(session: GeckoSession, uri: String, type: Int, callback: GeckoSession.PermissionDelegate.Callback) { + override fun onContentPermissionRequest( + session: GeckoSession, uri: String?, type: Int, + callback: GeckoSession.PermissionDelegate.Callback) { callback.reject() } @AssertCalled(count = 0) - override fun onAndroidPermissionsRequest(session: GeckoSession, permissions: Array, callback: GeckoSession.PermissionDelegate.Callback) { + override fun onAndroidPermissionsRequest( + session: GeckoSession, permissions: Array?, + callback: GeckoSession.PermissionDelegate.Callback) { } }) @@ -181,7 +199,9 @@ class PermissionDelegateTest : BaseSessionTest() { mainSession.delegateDuringNextWait(object : Callbacks.PermissionDelegate { @AssertCalled(count = 1) - override fun onContentPermissionRequest(session: GeckoSession, uri: String, type: Int, callback: GeckoSession.PermissionDelegate.Callback) { + override fun onContentPermissionRequest( + session: GeckoSession, uri: String?, type: Int, + callback: GeckoSession.PermissionDelegate.Callback) { assertThat("URI should match", uri, endsWith(HELLO_HTML_PATH)) assertThat("Type should match", type, equalTo(GeckoSession.PermissionDelegate.PERMISSION_DESKTOP_NOTIFICATION)) @@ -202,7 +222,9 @@ class PermissionDelegateTest : BaseSessionTest() { mainSession.delegateDuringNextWait(object : Callbacks.PermissionDelegate { @AssertCalled(count = 1) - override fun onContentPermissionRequest(session: GeckoSession, uri: String, type: Int, callback: GeckoSession.PermissionDelegate.Callback) { + override fun onContentPermissionRequest( + session: GeckoSession, uri: String?, type: Int, + callback: GeckoSession.PermissionDelegate.Callback) { callback.reject() } }) diff --git a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/PromptDelegateTest.kt b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/PromptDelegateTest.kt index 37078da856a3..b13627790f4f 100644 --- a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/PromptDelegateTest.kt +++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/PromptDelegateTest.kt @@ -27,7 +27,8 @@ class PromptDelegateTest : BaseSessionTest() { sessionRule.waitUntilCalled(object : Callbacks.PromptDelegate { @AssertCalled(count = 1) - override fun onPopupRequest(session: GeckoSession, targetUri: String): GeckoResult? { + override fun onPopupRequest(session: GeckoSession, targetUri: String?) + : GeckoResult? { assertThat("Session should not be null", session, notNullValue()) assertThat("URL should not be null", targetUri, notNullValue()) assertThat("URL should match", targetUri, endsWith(HELLO_HTML_PATH)) @@ -42,7 +43,8 @@ class PromptDelegateTest : BaseSessionTest() { sessionRule.delegateDuringNextWait(object : Callbacks.PromptDelegate, Callbacks.NavigationDelegate { @AssertCalled(count = 1) - override fun onPopupRequest(session: GeckoSession, targetUri: String): GeckoResult? { + override fun onPopupRequest(session: GeckoSession, targetUri: String?) + : GeckoResult? { assertThat("Session should not be null", session, notNullValue()) assertThat("URL should not be null", targetUri, notNullValue()) assertThat("URL should match", targetUri, endsWith(HELLO_HTML_PATH)) @@ -69,7 +71,8 @@ class PromptDelegateTest : BaseSessionTest() { sessionRule.delegateDuringNextWait(object : Callbacks.PromptDelegate, Callbacks.NavigationDelegate { @AssertCalled(count = 1) - override fun onPopupRequest(session: GeckoSession, targetUri: String): GeckoResult? { + override fun onPopupRequest(session: GeckoSession, targetUri: String?) + : GeckoResult? { assertThat("Session should not be null", session, notNullValue()) assertThat("URL should not be null", targetUri, notNullValue()) assertThat("URL should match", targetUri, endsWith(HELLO_HTML_PATH)) diff --git a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/SessionLifecycleTest.kt b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/SessionLifecycleTest.kt index 62ac6a94a48a..4d9e5a4f569f 100644 --- a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/SessionLifecycleTest.kt +++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/SessionLifecycleTest.kt @@ -242,7 +242,7 @@ class SessionLifecycleTest : BaseSessionTest() { // Enable navigation notifications on the new, closed session. var onLocationCount = 0 sessionRule.session.navigationDelegate = object : Callbacks.NavigationDelegate { - override fun onLocationChange(session: GeckoSession, url: String) { + override fun onLocationChange(session: GeckoSession, url: String?) { onLocationCount++ } } @@ -393,15 +393,15 @@ class SessionLifecycleTest : BaseSessionTest() { @Test fun restoreInstanceState_sameClosedSession() { val view = testRestoreInstanceState(mainSession, mainSession) assertThat("View session is unchanged", view.session, equalTo(mainSession)) - assertThat("View session is closed", view.session.isOpen, equalTo(false)) + assertThat("View session is closed", view.session!!.isOpen, equalTo(false)) } @Test fun restoreInstanceState_sameOpenSession() { // We should keep the session open when restoring the same open session. val view = testRestoreInstanceState(mainSession, mainSession) assertThat("View session is unchanged", view.session, equalTo(mainSession)) - assertThat("View session is open", view.session.isOpen, equalTo(true)) - view.session.reload() + assertThat("View session is open", view.session!!.isOpen, equalTo(true)) + view.session!!.reload() sessionRule.waitForPageStop() } diff --git a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/WebExecutorTest.kt b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/WebExecutorTest.kt index f9e6b07eca2d..6add031baeee 100644 --- a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/WebExecutorTest.kt +++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/WebExecutorTest.kt @@ -79,7 +79,7 @@ class WebExecutorTest { } private fun fetch(request: WebRequest, @GeckoWebExecutor.FetchFlags flags: Int): WebResponse { - return executor.fetch(request, flags).poll(env.defaultTimeoutMillis) + return executor.fetch(request, flags).poll(env.defaultTimeoutMillis)!! } fun String.toDirectByteBuffer(): ByteBuffer { @@ -211,7 +211,7 @@ class WebExecutorTest { @Test fun testResolveV4() { - val addresses = executor.resolve("localhost").poll() + val addresses = executor.resolve("localhost").poll()!! assertThat("Addresses should not be null", addresses, notNullValue()) assertThat("First address should be loopback", @@ -223,7 +223,7 @@ class WebExecutorTest { @Test @SdkSuppress(minSdkVersion = Build.VERSION_CODES.LOLLIPOP) fun testResolveV6() { - val addresses = executor.resolve("ip6-localhost").poll() + val addresses = executor.resolve("ip6-localhost").poll()!! assertThat("Addresses should not be null", addresses, notNullValue()) assertThat("First address should be loopback", diff --git a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/util/Callbacks.kt b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/util/Callbacks.kt index be71c94127de..2352a51ae5ec 100644 --- a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/util/Callbacks.kt +++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/util/Callbacks.kt @@ -27,7 +27,7 @@ class Callbacks private constructor() { TextInputDelegate, TrackingProtectionDelegate interface ContentDelegate : GeckoSession.ContentDelegate { - override fun onTitleChange(session: GeckoSession, title: String) { + override fun onTitleChange(session: GeckoSession, title: String?) { } override fun onFocusRequest(session: GeckoSession) { @@ -55,7 +55,7 @@ class Callbacks private constructor() { } interface NavigationDelegate : GeckoSession.NavigationDelegate { - override fun onLocationChange(session: GeckoSession, url: String) { + override fun onLocationChange(session: GeckoSession, url: String?) { } override fun onCanGoBack(session: GeckoSession, canGoBack: Boolean) { @@ -80,15 +80,23 @@ class Callbacks private constructor() { } interface PermissionDelegate : GeckoSession.PermissionDelegate { - override fun onAndroidPermissionsRequest(session: GeckoSession, permissions: Array, callback: GeckoSession.PermissionDelegate.Callback) { + override fun onAndroidPermissionsRequest( + session: GeckoSession, permissions: Array?, + callback: GeckoSession.PermissionDelegate.Callback) { callback.reject() } - override fun onContentPermissionRequest(session: GeckoSession, uri: String, type: Int, callback: GeckoSession.PermissionDelegate.Callback) { + override fun onContentPermissionRequest( + session: GeckoSession, uri: String?, type: Int, + callback: GeckoSession.PermissionDelegate.Callback) { callback.reject() } - override fun onMediaPermissionRequest(session: GeckoSession, uri: String, video: Array, audio: Array, callback: GeckoSession.PermissionDelegate.MediaCallback) { + override fun onMediaPermissionRequest( + session: GeckoSession, uri: String, + video: Array?, + audio: Array?, + callback: GeckoSession.PermissionDelegate.MediaCallback) { callback.reject() } } @@ -108,39 +116,54 @@ class Callbacks private constructor() { } interface PromptDelegate : GeckoSession.PromptDelegate { - override fun onAlert(session: GeckoSession, title: String, msg: String, callback: GeckoSession.PromptDelegate.AlertCallback) { + override fun onAlert(session: GeckoSession, title: String?, msg: String?, + callback: GeckoSession.PromptDelegate.AlertCallback) { callback.dismiss() } - override fun onButtonPrompt(session: GeckoSession, title: String, msg: String, btnMsg: Array, callback: GeckoSession.PromptDelegate.ButtonCallback) { + override fun onButtonPrompt(session: GeckoSession, title: String?, msg: String?, + btnMsg: Array?, + callback: GeckoSession.PromptDelegate.ButtonCallback) { callback.dismiss() } - override fun onTextPrompt(session: GeckoSession, title: String, msg: String, value: String, callback: GeckoSession.PromptDelegate.TextCallback) { + override fun onTextPrompt(session: GeckoSession, title: String?, msg: String?, + value: String?, + callback: GeckoSession.PromptDelegate.TextCallback) { callback.dismiss() } - override fun onAuthPrompt(session: GeckoSession, title: String, msg: String, options: GeckoSession.PromptDelegate.AuthOptions, callback: GeckoSession.PromptDelegate.AuthCallback) { + override fun onAuthPrompt(session: GeckoSession, title: String?, msg: String?, + options: GeckoSession.PromptDelegate.AuthOptions, + callback: GeckoSession.PromptDelegate.AuthCallback) { callback.dismiss() } - override fun onChoicePrompt(session: GeckoSession, title: String, msg: String, type: Int, choices: Array, callback: GeckoSession.PromptDelegate.ChoiceCallback) { + override fun onChoicePrompt(session: GeckoSession, title: String?, msg: String?, type: Int, + choices: Array, + callback: GeckoSession.PromptDelegate.ChoiceCallback) { callback.dismiss() } - override fun onColorPrompt(session: GeckoSession, title: String, value: String, callback: GeckoSession.PromptDelegate.TextCallback) { + override fun onColorPrompt(session: GeckoSession, title: String?, value: String?, + callback: GeckoSession.PromptDelegate.TextCallback) { callback.dismiss() } - override fun onDateTimePrompt(session: GeckoSession, title: String, type: Int, value: String, min: String, max: String, callback: GeckoSession.PromptDelegate.TextCallback) { + override fun onDateTimePrompt(session: GeckoSession, title: String?, type: Int, + value: String?, min: String?, max: String?, + callback: GeckoSession.PromptDelegate.TextCallback) { callback.dismiss() } - override fun onFilePrompt(session: GeckoSession, title: String, type: Int, mimeTypes: Array, callback: GeckoSession.PromptDelegate.FileCallback) { + override fun onFilePrompt(session: GeckoSession, title: String?, type: Int, + mimeTypes: Array?, + callback: GeckoSession.PromptDelegate.FileCallback) { callback.dismiss() } - override fun onPopupRequest(session: GeckoSession, targetUri: String): GeckoResult? { + override fun onPopupRequest(session: GeckoSession, targetUri: String?) + : GeckoResult? { return null } } @@ -151,7 +174,7 @@ class Callbacks private constructor() { } interface TrackingProtectionDelegate : GeckoSession.TrackingProtectionDelegate { - override fun onTrackerBlocked(session: GeckoSession, uri: String, categories: Int) { + override fun onTrackerBlocked(session: GeckoSession, uri: String?, categories: Int) { } } diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoThread.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoThread.java index ab3b822a0baa..caeff77488d1 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoThread.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoThread.java @@ -330,11 +330,11 @@ public class GeckoThread extends Thread { } @RobocopTarget - public static GeckoProfile getActiveProfile() { + public static @Nullable GeckoProfile getActiveProfile() { return INSTANCE.getProfile(); } - public synchronized GeckoProfile getProfile() { + public synchronized @Nullable GeckoProfile getProfile() { if (!mInitialized) { return null; } diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/BasicSelectionActionDelegate.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/BasicSelectionActionDelegate.java index fa8d4a0eaa50..a3033840e973 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/BasicSelectionActionDelegate.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/BasicSelectionActionDelegate.java @@ -16,6 +16,7 @@ import android.graphics.Rect; import android.graphics.RectF; import android.os.Build; import android.support.annotation.NonNull; +import android.support.annotation.Nullable; import android.support.annotation.UiThread; import android.util.Log; import android.view.ActionMode; @@ -348,7 +349,8 @@ public class BasicSelectionActionDelegate implements ActionMode.Callback, mActionMode = null; } - public void onGetContentRect(final ActionMode mode, final View view, final Rect outRect) { + public void onGetContentRect(final @Nullable ActionMode mode, final @Nullable View view, + final @NonNull Rect outRect) { ThreadUtils.assertOnUiThread(); if (mSelection.clientRect == null) { return; diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/CompositorController.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/CompositorController.java index 3c902c89faa5..5b285574d2f2 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/CompositorController.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/CompositorController.java @@ -10,6 +10,7 @@ import org.mozilla.gecko.util.ThreadUtils; import android.graphics.Color; import android.support.annotation.NonNull; +import android.support.annotation.Nullable; import android.support.annotation.UiThread; import java.nio.IntBuffer; @@ -22,7 +23,7 @@ public final class CompositorController { public interface GetPixelsCallback { @UiThread - void onPixelsResult(int width, int height, IntBuffer pixels); + void onPixelsResult(int width, int height, @Nullable IntBuffer pixels); } private List mDrawCallbacks; @@ -147,7 +148,7 @@ public final class CompositorController { * * @return Current first paint callback or null if not set. */ - public Runnable getFirstPaintCallback() { + public @Nullable Runnable getFirstPaintCallback() { ThreadUtils.assertOnUiThread(); return mFirstPaintCallback; } @@ -157,7 +158,7 @@ public final class CompositorController { * * @param callback First paint callback. */ - public void setFirstPaintCallback(final Runnable callback) { + public void setFirstPaintCallback(final @Nullable Runnable callback) { ThreadUtils.assertOnUiThread(); mFirstPaintCallback = callback; } diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/CrashReporter.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/CrashReporter.java index 1c842f23e685..7caeb60391d4 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/CrashReporter.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/CrashReporter.java @@ -7,6 +7,7 @@ import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.support.annotation.AnyThread; +import android.support.annotation.NonNull; import android.util.Log; import java.io.BufferedReader; @@ -71,7 +72,9 @@ public class CrashReporter { * @see GeckoRuntime#ACTION_CRASHED */ @AnyThread - public static GeckoResult sendCrashReport(Context context, Intent intent, String appName) + public static GeckoResult sendCrashReport(@NonNull Context context, + @NonNull Intent intent, + @NonNull String appName) throws IOException, URISyntaxException { return sendCrashReport(context, intent.getExtras(), appName); } @@ -94,7 +97,9 @@ public class CrashReporter { * @see GeckoRuntime#ACTION_CRASHED */ @AnyThread - public static GeckoResult sendCrashReport(Context context, Bundle intentExtras, String appName) + public static @NonNull GeckoResult sendCrashReport(@NonNull Context context, + @NonNull Bundle intentExtras, + @NonNull String appName) throws IOException, URISyntaxException { final File dumpFile = new File(intentExtras.getString(GeckoRuntime.EXTRA_MINIDUMP_PATH)); final File extrasFile = new File(intentExtras.getString(GeckoRuntime.EXTRA_EXTRAS_PATH)); @@ -123,8 +128,12 @@ public class CrashReporter { * @see GeckoRuntime#ACTION_CRASHED */ @AnyThread - public static GeckoResult sendCrashReport(Context context, File minidumpFile, File extrasFile, - boolean success, String appName) throws IOException, URISyntaxException { + public static @NonNull GeckoResult sendCrashReport(@NonNull Context context, + @NonNull File minidumpFile, + @NonNull File extrasFile, + boolean success, + @NonNull String appName) + throws IOException, URISyntaxException { // Compute the minidump hash and generate the stack traces computeMinidumpHash(extrasFile, minidumpFile); @@ -150,9 +159,12 @@ public class CrashReporter { * @see GeckoRuntime#ACTION_CRASHED */ @AnyThread - public static GeckoResult sendCrashReport(Context context, File minidumpFile, - Map extras, boolean success, - String appName) throws IOException, URISyntaxException { + public static @NonNull GeckoResult sendCrashReport(@NonNull Context context, + @NonNull File minidumpFile, + @NonNull Map extras, + boolean success, + @NonNull String appName) + throws IOException, URISyntaxException { Log.d(LOGTAG, "Sending crash report: " + minidumpFile.getPath()); String spec = extras.get(SERVER_URL_KEY); diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/DynamicToolbarAnimator.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/DynamicToolbarAnimator.java index 45856d813fa4..e38dc1779ae1 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/DynamicToolbarAnimator.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/DynamicToolbarAnimator.java @@ -9,6 +9,8 @@ import org.mozilla.gecko.util.ThreadUtils; import android.graphics.Bitmap; import android.support.annotation.AnyThread; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; import android.support.annotation.UiThread; import android.util.Log; @@ -38,7 +40,7 @@ public final class DynamicToolbarAnimator { public interface ToolbarChromeProxy { @UiThread - public Bitmap getBitmapOfToolbarChrome(); + public @Nullable Bitmap getBitmapOfToolbarChrome(); @UiThread public boolean isToolbarChromeVisible(); @UiThread @@ -57,12 +59,12 @@ public final class DynamicToolbarAnimator { mCompositor = aTarget.mCompositor; } - public ToolbarChromeProxy getToolbarChromeProxy() { + public @Nullable ToolbarChromeProxy getToolbarChromeProxy() { ThreadUtils.assertOnUiThread(); return mToolbarChromeProxy; } - public void setToolbarChromeProxy(ToolbarChromeProxy aToolbarChromeProxy) { + public void setToolbarChromeProxy(@Nullable ToolbarChromeProxy aToolbarChromeProxy) { ThreadUtils.assertOnUiThread(); mToolbarChromeProxy = aToolbarChromeProxy; } @@ -98,13 +100,13 @@ public final class DynamicToolbarAnimator { return !mPinFlags.isEmpty(); } - public boolean isPinnedBy(PinReason reason) { + public boolean isPinnedBy(@NonNull PinReason reason) { ThreadUtils.assertOnUiThread(); return mPinFlags.contains(reason); } - public void setPinned(final boolean pinned, final PinReason reason) { + public void setPinned(final boolean pinned, final @NonNull PinReason reason) { ThreadUtils.assertOnUiThread(); if (pinned != mPinFlags.contains(reason) && mCompositor.isReady()) { diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoDisplay.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoDisplay.java index c4845213607e..ab1de977d318 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoDisplay.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoDisplay.java @@ -6,6 +6,7 @@ package org.mozilla.geckoview; +import android.support.annotation.NonNull; import android.support.annotation.UiThread; import android.view.Surface; @@ -36,7 +37,7 @@ public class GeckoDisplay { * @param height New height of the Surface. Can not be negative. */ @UiThread - public void surfaceChanged(Surface surface, int width, int height) { + public void surfaceChanged(@NonNull Surface surface, int width, int height) { surfaceChanged(surface, 0, 0, width, height); } @@ -56,7 +57,7 @@ public class GeckoDisplay { * @throws IllegalArgumentException if left or top are negative. */ @UiThread - public void surfaceChanged(Surface surface, int left, int top, int width, int height) { + public void surfaceChanged(@NonNull Surface surface, int left, int top, int width, int height) { ThreadUtils.assertOnUiThread(); if ((left < 0) || (top < 0)) { diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoResponse.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoResponse.java index 04af44eb97ec..2bde2602a66d 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoResponse.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoResponse.java @@ -7,6 +7,7 @@ package org.mozilla.geckoview; import android.support.annotation.AnyThread; +import android.support.annotation.Nullable; /** * This is used to receive async responses from delegate methods. @@ -18,5 +19,5 @@ public interface GeckoResponse { * @param value The value contained in the response. */ @AnyThread - void respond(T value); + void respond(@Nullable T value); } diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoResult.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoResult.java index ed452fa95392..56b98451d214 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoResult.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoResult.java @@ -452,7 +452,7 @@ public class GeckoResult { * @throws Throwable The {@link Throwable} contained in this result, if any. * @throws IllegalThreadStateException if this method is called on a thread that has a {@link Looper}. */ - public synchronized T poll() throws Throwable { + public synchronized @Nullable T poll() throws Throwable { if (Looper.myLooper() != null) { throw new IllegalThreadStateException("Cannot poll indefinitely from thread with Looper"); } @@ -477,7 +477,7 @@ public class GeckoResult { * @throws TimeoutException if we wait more than timeoutMillis before the result * is completed. */ - public synchronized T poll(long timeoutMillis) throws Throwable { + public synchronized @Nullable T poll(long timeoutMillis) throws Throwable { final long start = SystemClock.uptimeMillis(); long remaining = timeoutMillis; while (!mComplete && remaining > 0) { @@ -508,7 +508,7 @@ public class GeckoResult { * @throws IllegalStateException If the result is already completed. */ @WrapForJNI - public synchronized void complete(final T value) { + public synchronized void complete(final @Nullable T value) { if (mComplete) { throw new IllegalStateException("result is already complete"); } diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntime.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntime.java index 6efd0801e077..531908189647 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntime.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntime.java @@ -317,7 +317,7 @@ public final class GeckoRuntime implements Parcelable { * @param delegate an implementation of {@link GeckoRuntime.Delegate}. */ @UiThread - public void setDelegate(final Delegate delegate) { + public void setDelegate(final @Nullable Delegate delegate) { ThreadUtils.assertOnUiThread(); mDelegate = delegate; } @@ -333,7 +333,7 @@ public final class GeckoRuntime implements Parcelable { } @AnyThread - public GeckoRuntimeSettings getSettings() { + public @Nullable GeckoRuntimeSettings getSettings() { return mSettings; } @@ -352,7 +352,7 @@ public final class GeckoRuntime implements Parcelable { * @return The telemetry object. */ @UiThread - public RuntimeTelemetry getTelemetry() { + public @NonNull RuntimeTelemetry getTelemetry() { ThreadUtils.assertOnUiThread(); if (mTelemetry == null) { @@ -369,7 +369,7 @@ public final class GeckoRuntime implements Parcelable { * @return Profile directory */ @UiThread - public File getProfileDir() { + public @Nullable File getProfileDir() { ThreadUtils.assertOnUiThread(); return GeckoThread.getActiveProfile().getDir(); } @@ -408,7 +408,7 @@ public final class GeckoRuntime implements Parcelable { // AIDL code may call readFromParcel even though it's not part of Parcelable. @AnyThread - public void readFromParcel(final Parcel source) { + public void readFromParcel(final @NonNull Parcel source) { mSettings = source.readParcelable(getClass().getClassLoader()); } diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java index d59f35476800..6b90c2e716bc 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java @@ -501,7 +501,7 @@ public final class GeckoRuntimeSettings implements Parcelable { * * @return The Gecko process arguments. */ - public String[] getArguments() { + public @NonNull String[] getArguments() { return mArgs; } @@ -510,7 +510,7 @@ public final class GeckoRuntimeSettings implements Parcelable { * * @return The Gecko intent extras. */ - public Bundle getExtras() { + public @NonNull Bundle getExtras() { return mExtras; } @@ -593,7 +593,7 @@ public final class GeckoRuntimeSettings implements Parcelable { * * @return Returns a positive number. Will return null if not set. */ - public Float getDisplayDensityOverride() { + public @Nullable Float getDisplayDensityOverride() { if (mDisplayDensityOverride > 0.0f) { return mDisplayDensityOverride; } @@ -605,14 +605,14 @@ public final class GeckoRuntimeSettings implements Parcelable { * * @return Returns a positive number. Will return null if not set. */ - public Integer getDisplayDpiOverride() { + public @Nullable Integer getDisplayDpiOverride() { if (mDisplayDpiOverride > 0) { return mDisplayDpiOverride; } return null; } - public Class getCrashHandler() { + public @Nullable Class getCrashHandler() { return mCrashHandler; } @@ -622,7 +622,7 @@ public final class GeckoRuntimeSettings implements Parcelable { * @return Returns a Rect containing the dimensions to use for the window size. * Will return null if not set. */ - public Rect getScreenSizeOverride() { + public @Nullable Rect getScreenSizeOverride() { if ((mScreenWidthOverride > 0) && (mScreenHeightOverride > 0)) { return new Rect(0, 0, mScreenWidthOverride, mScreenHeightOverride); } @@ -634,7 +634,7 @@ public final class GeckoRuntimeSettings implements Parcelable { * * @return A list of locale codes in Gecko format ("en" or "en-US"). */ - public String[] getLocales() { + public @Nullable String[] getLocales() { return mRequestedLocales; } @@ -643,7 +643,7 @@ public final class GeckoRuntimeSettings implements Parcelable { * * @param requestedLocales An ordered list of locales in Gecko format ("en-US"). */ - public void setLocales(String[] requestedLocales) { + public void setLocales(@Nullable String[] requestedLocales) { mRequestedLocales = requestedLocales; flushLocales(); } @@ -877,7 +877,7 @@ public final class GeckoRuntimeSettings implements Parcelable { } // AIDL code may call readFromParcel even though it's not part of Parcelable. - public void readFromParcel(final Parcel source) { + public void readFromParcel(final @NonNull Parcel source) { mUseContentProcess = ParcelableUtils.readBoolean(source); mArgs = source.createStringArray(); mExtras.readFromParcel(source); diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoSession.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoSession.java index 9b8097b38121..989360b2ba6f 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoSession.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoSession.java @@ -896,7 +896,7 @@ public class GeckoSession implements Parcelable { * @return PromptDelegate instance or null if using default delegate. */ @UiThread - public PermissionDelegate getPermissionDelegate() { + public @Nullable PermissionDelegate getPermissionDelegate() { ThreadUtils.assertOnUiThread(); return mPermissionHandler.getDelegate(); } @@ -906,7 +906,7 @@ public class GeckoSession implements Parcelable { * @param delegate PermissionDelegate instance or null to use the default delegate. */ @UiThread - public void setPermissionDelegate(final PermissionDelegate delegate) { + public void setPermissionDelegate(final @Nullable PermissionDelegate delegate) { ThreadUtils.assertOnUiThread(); mPermissionHandler.setDelegate(delegate, this); } @@ -1169,7 +1169,7 @@ public class GeckoSession implements Parcelable { // AIDL code may call readFromParcel even though it's not part of Parcelable. @AnyThread - public void readFromParcel(final Parcel source) { + public void readFromParcel(final @NonNull Parcel source) { final IBinder binder = source.readStrongBinder(); final IInterface ifce = (binder != null) ? binder.queryLocalInterface(Window.class.getName()) : null; @@ -1654,7 +1654,7 @@ public class GeckoSession implements Parcelable { * @return SessionFinder instance. */ @AnyThread - public SessionFinder getFinder() { + public @NonNull SessionFinder getFinder() { if (mFinder == null) { mFinder = new SessionFinder(getEventDispatcher()); } @@ -1727,7 +1727,7 @@ public class GeckoSession implements Parcelable { } // AIDL code may call readFromParcel even though it's not part of Parcelable. - public void readFromParcel(final Parcel source) { + public void readFromParcel(final @NonNull Parcel source) { mState = source.readString(); } @@ -1773,7 +1773,7 @@ public class GeckoSession implements Parcelable { * @param state A saved session state; this should originate from GeckoSession.saveState(). */ @AnyThread - public void restoreState(final SessionState state) { + public void restoreState(final @NonNull SessionState state) { final GeckoBundle msg = new GeckoBundle(1); msg.putString("state", state.toString()); mEventDispatcher.dispatch("GeckoView:RestoreState", msg); @@ -1825,7 +1825,7 @@ public class GeckoSession implements Parcelable { } @AnyThread - public GeckoSessionSettings getSettings() { + public @NonNull GeckoSessionSettings getSettings() { return mSettings; } @@ -1843,7 +1843,7 @@ public class GeckoSession implements Parcelable { * @param delegate An implementation of ContentDelegate. */ @UiThread - public void setContentDelegate(ContentDelegate delegate) { + public void setContentDelegate(@Nullable ContentDelegate delegate) { ThreadUtils.assertOnUiThread(); mContentHandler.setDelegate(delegate, this); } @@ -1853,7 +1853,7 @@ public class GeckoSession implements Parcelable { * @return The current content callback handler. */ @UiThread - public ContentDelegate getContentDelegate() { + public @Nullable ContentDelegate getContentDelegate() { ThreadUtils.assertOnUiThread(); return mContentHandler.getDelegate(); } @@ -1864,7 +1864,7 @@ public class GeckoSession implements Parcelable { * @param delegate An implementation of ProgressDelegate. */ @UiThread - public void setProgressDelegate(ProgressDelegate delegate) { + public void setProgressDelegate(@Nullable ProgressDelegate delegate) { ThreadUtils.assertOnUiThread(); mProgressHandler.setDelegate(delegate, this); } @@ -1874,7 +1874,7 @@ public class GeckoSession implements Parcelable { * @return The current progress callback handler. */ @UiThread - public ProgressDelegate getProgressDelegate() { + public @Nullable ProgressDelegate getProgressDelegate() { ThreadUtils.assertOnUiThread(); return mProgressHandler.getDelegate(); } @@ -1885,7 +1885,7 @@ public class GeckoSession implements Parcelable { * @param delegate An implementation of NavigationDelegate. */ @UiThread - public void setNavigationDelegate(NavigationDelegate delegate) { + public void setNavigationDelegate(@Nullable NavigationDelegate delegate) { ThreadUtils.assertOnUiThread(); mNavigationHandler.setDelegate(delegate, this); } @@ -1895,7 +1895,7 @@ public class GeckoSession implements Parcelable { * @return The current navigation callback handler. */ @UiThread - public NavigationDelegate getNavigationDelegate() { + public @Nullable NavigationDelegate getNavigationDelegate() { ThreadUtils.assertOnUiThread(); return mNavigationHandler.getDelegate(); } @@ -1906,13 +1906,13 @@ public class GeckoSession implements Parcelable { * @param delegate An implementation of ScrollDelegate. */ @UiThread - public void setScrollDelegate(ScrollDelegate delegate) { + public void setScrollDelegate(@Nullable ScrollDelegate delegate) { ThreadUtils.assertOnUiThread(); mScrollHandler.setDelegate(delegate, this); } @UiThread - public ScrollDelegate getScrollDelegate() { + public @Nullable ScrollDelegate getScrollDelegate() { ThreadUtils.assertOnUiThread(); return mScrollHandler.getDelegate(); } @@ -1940,7 +1940,7 @@ public class GeckoSession implements Parcelable { * @param delegate An implementation of TrackingProtectionDelegate. */ @AnyThread - public void setTrackingProtectionDelegate(TrackingProtectionDelegate delegate) { + public void setTrackingProtectionDelegate(@Nullable TrackingProtectionDelegate delegate) { mTrackingProtectionHandler.setDelegate(delegate, this); } @@ -1949,7 +1949,7 @@ public class GeckoSession implements Parcelable { * @return The current tracking protection callback handler. */ @AnyThread - public TrackingProtectionDelegate getTrackingProtectionDelegate() { + public @Nullable TrackingProtectionDelegate getTrackingProtectionDelegate() { return mTrackingProtectionHandler.getDelegate(); } @@ -1958,7 +1958,7 @@ public class GeckoSession implements Parcelable { * @param delegate PromptDelegate instance or null to use the built-in delegate. */ @AnyThread - public void setPromptDelegate(PromptDelegate delegate) { + public void setPromptDelegate(@Nullable PromptDelegate delegate) { mPromptDelegate = delegate; } @@ -1967,7 +1967,7 @@ public class GeckoSession implements Parcelable { * @return PromptDelegate instance or null if using built-in delegate. */ @AnyThread - public PromptDelegate getPromptDelegate() { + public @Nullable PromptDelegate getPromptDelegate() { return mPromptDelegate; } @@ -2427,7 +2427,7 @@ public class GeckoSession implements Parcelable { } @AnyThread - public EventDispatcher getEventDispatcher() { + public @NonNull EventDispatcher getEventDispatcher() { return mEventDispatcher; } @@ -2548,7 +2548,7 @@ public class GeckoSession implements Parcelable { * @param url The resource being loaded. */ @UiThread - void onPageStart(GeckoSession session, String url); + void onPageStart(@NonNull GeckoSession session, @NonNull String url); /** * A View has finished loading content from the network. @@ -2556,7 +2556,7 @@ public class GeckoSession implements Parcelable { * @param success Whether the page loaded successfully or an error occurred. */ @UiThread - void onPageStop(GeckoSession session, boolean success); + void onPageStop(@NonNull GeckoSession session, boolean success); /** * Page loading has progressed. @@ -2564,7 +2564,7 @@ public class GeckoSession implements Parcelable { * @param progress Current page load progress value [0, 100]. */ @UiThread - void onProgressChange(GeckoSession session, int progress); + void onProgressChange(@NonNull GeckoSession session, int progress); /** * The security status has been updated. @@ -2572,7 +2572,8 @@ public class GeckoSession implements Parcelable { * @param securityInfo The new security information. */ @UiThread - void onSecurityChange(GeckoSession session, SecurityInformation securityInfo); + void onSecurityChange(@NonNull GeckoSession session, + @NonNull SecurityInformation securityInfo); } /** @@ -2631,7 +2632,7 @@ public class GeckoSession implements Parcelable { * @param title The title sent from the content. */ @UiThread - void onTitleChange(GeckoSession session, String title); + void onTitleChange(@NonNull GeckoSession session, @Nullable String title); /** * A page has requested focus. Note that window.focus() in content will not result @@ -2639,14 +2640,14 @@ public class GeckoSession implements Parcelable { * @param session The GeckoSession that initiated the callback. */ @UiThread - void onFocusRequest(GeckoSession session); + void onFocusRequest(@NonNull GeckoSession session); /** * A page has requested to close * @param session The GeckoSession that initiated the callback. */ @UiThread - void onCloseRequest(GeckoSession session); + void onCloseRequest(@NonNull GeckoSession session); /** * A page has entered or exited full screen mode. Typically, the implementation @@ -2657,7 +2658,7 @@ public class GeckoSession implements Parcelable { * @param fullScreen True if the page is in full screen mode. */ @UiThread - void onFullScreen(GeckoSession session, boolean fullScreen); + void onFullScreen(@NonNull GeckoSession session, boolean fullScreen); /** * Element details for onContextMenu callbacks. @@ -2746,7 +2747,7 @@ public class GeckoSession implements Parcelable { * @param response the WebResponseInfo for the external response */ @UiThread - void onExternalResponse(GeckoSession session, WebResponseInfo response); + void onExternalResponse(@NonNull GeckoSession session, @NonNull WebResponseInfo response); /** * The content process hosting this GeckoSession has crashed. The @@ -2758,7 +2759,7 @@ public class GeckoSession implements Parcelable { * @param session The GeckoSession that crashed. */ @UiThread - void onCrash(GeckoSession session); + void onCrash(@NonNull GeckoSession session); /** * Notification that the first content composition has occurred. @@ -2767,7 +2768,7 @@ public class GeckoSession implements Parcelable { * @param session The GeckoSession that had a first paint event. */ @UiThread - void onFirstComposite(GeckoSession session); + void onFirstComposite(@NonNull GeckoSession session); } public interface SelectionActionDelegate { @@ -2920,8 +2921,8 @@ public class GeckoSession implements Parcelable { * multiple times to perform multiple actions at once. */ @UiThread - void onShowActionRequest(GeckoSession session, Selection selection, - @Action String[] actions, GeckoResponse response); + void onShowActionRequest(@NonNull GeckoSession session, @NonNull Selection selection, + @Action String[] actions, @NonNull GeckoResponse response); @Retention(RetentionPolicy.SOURCE) @IntDef({HIDE_REASON_NO_SELECTION, @@ -2962,7 +2963,7 @@ public class GeckoSession implements Parcelable { * {@link #HIDE_REASON_NO_SELECTION HIDE_REASON_*} constants. */ @UiThread - void onHideAction(GeckoSession session, @HideReason int reason); + void onHideAction(@NonNull GeckoSession session, @HideReason int reason); } public interface NavigationDelegate { @@ -2972,7 +2973,7 @@ public class GeckoSession implements Parcelable { * @param url The resource being loaded. */ @UiThread - void onLocationChange(GeckoSession session, String url); + void onLocationChange(@NonNull GeckoSession session, @Nullable String url); /** * The view's ability to go back has changed. @@ -2980,7 +2981,7 @@ public class GeckoSession implements Parcelable { * @param canGoBack The new value for the ability. */ @UiThread - void onCanGoBack(GeckoSession session, boolean canGoBack); + void onCanGoBack(@NonNull GeckoSession session, boolean canGoBack); /** * The view's ability to go forward has changed. @@ -2988,7 +2989,7 @@ public class GeckoSession implements Parcelable { * @param canGoForward The new value for the ability. */ @UiThread - void onCanGoForward(GeckoSession session, boolean canGoForward); + void onCanGoForward(@NonNull GeckoSession session, boolean canGoForward); @Retention(RetentionPolicy.SOURCE) @IntDef({TARGET_WINDOW_NONE, TARGET_WINDOW_CURRENT, TARGET_WINDOW_NEW}) @@ -3102,7 +3103,9 @@ public class GeckoSession implements Parcelable { * @return A URI to display as an error. Returning null will halt the load entirely. */ @UiThread - GeckoResult onLoadError(GeckoSession session, String uri, WebRequestError error); + @Nullable GeckoResult onLoadError(@NonNull GeckoSession session, + @Nullable String uri, + @NonNull WebRequestError error); } /** @@ -3142,7 +3145,7 @@ public class GeckoSession implements Parcelable { * @return Checkbox message or null if none. */ @UiThread - String getCheckboxMessage(); + @Nullable String getCheckboxMessage(); /** * Return the initial value for the optional checkbox. @@ -3170,7 +3173,8 @@ public class GeckoSession implements Parcelable { * @param callback Callback interface. */ @UiThread - void onAlert(GeckoSession session, String title, String msg, AlertCallback callback); + void onAlert(@NonNull GeckoSession session, @Nullable String title, @Nullable String msg, + @NonNull AlertCallback callback); /** * Callback interface for notifying the result of a button prompt. @@ -3204,8 +3208,9 @@ public class GeckoSession implements Parcelable { * @param callback Callback interface. */ @UiThread - void onButtonPrompt(GeckoSession session, String title, String msg, - String[] btnMsg, ButtonCallback callback); + void onButtonPrompt(@NonNull GeckoSession session, @Nullable String title, + @Nullable String msg, @Nullable String[] btnMsg, + @NonNull ButtonCallback callback); /** * Callback interface for notifying the result of prompts that have text results, @@ -3219,7 +3224,7 @@ public class GeckoSession implements Parcelable { * @param text Text result. */ @UiThread - void confirm(String text); + void confirm(@Nullable String text); } /** @@ -3232,8 +3237,9 @@ public class GeckoSession implements Parcelable { * @param callback Callback interface. */ @UiThread - void onTextPrompt(GeckoSession session, String title, String msg, - String value, TextCallback callback); + void onTextPrompt(@NonNull GeckoSession session, @Nullable String title, + @Nullable String msg, @Nullable String value, + @NonNull TextCallback callback); /** * Callback interface for notifying the result of authentication prompts. @@ -3246,7 +3252,7 @@ public class GeckoSession implements Parcelable { * @param password Entered password. */ @UiThread - void confirm(String password); + void confirm(@Nullable String password); /** * Called by the prompt implementation when a username/password prompt is @@ -3256,7 +3262,7 @@ public class GeckoSession implements Parcelable { * @param password Entered password. */ @UiThread - void confirm(String username, String password); + void confirm(@NonNull String username, @NonNull String password); } class AuthOptions { @@ -3360,8 +3366,9 @@ public class GeckoSession implements Parcelable { * @param callback Callback interface. */ @UiThread - void onAuthPrompt(GeckoSession session, String title, String msg, - AuthOptions options, AuthCallback callback); + void onAuthPrompt(@NonNull GeckoSession session, @Nullable String title, + @Nullable String msg, @NonNull AuthOptions options, + @NonNull AuthCallback callback); class Choice { @Retention(RetentionPolicy.SOURCE) @@ -3466,7 +3473,7 @@ public class GeckoSession implements Parcelable { * @param id ID of the selected item. */ @UiThread - void confirm(String id); + void confirm(@Nullable String id); /** * Called by the prompt implementation when the multiple-choice list is @@ -3475,7 +3482,7 @@ public class GeckoSession implements Parcelable { * @param ids IDs of the selected items. */ @UiThread - void confirm(String[] ids); + void confirm(@NonNull String[] ids); /** * Called by the prompt implementation when the menu or single-choice list is @@ -3485,7 +3492,7 @@ public class GeckoSession implements Parcelable { * Choice object that was passed to the implementation. */ @UiThread - void confirm(Choice item); + void confirm(@NonNull Choice item); /** * Called by the prompt implementation when the multiple-choice list is @@ -3495,7 +3502,7 @@ public class GeckoSession implements Parcelable { * Choice objects that were passed to the implementation. */ @UiThread - void confirm(Choice[] items); + void confirm(@Nullable Choice[] items); } @@ -3510,9 +3517,9 @@ public class GeckoSession implements Parcelable { * @param callback Callback interface. */ @UiThread - void onChoicePrompt(GeckoSession session, String title, String msg, - @Choice.ChoiceType int type, Choice[] choices, - ChoiceCallback callback); + void onChoicePrompt(@NonNull GeckoSession session, @Nullable String title, + @Nullable String msg, @Choice.ChoiceType int type, + @NonNull Choice[] choices, @NonNull ChoiceCallback callback); /** * Display a color prompt. @@ -3524,8 +3531,8 @@ public class GeckoSession implements Parcelable { * HTML color format. */ @UiThread - void onColorPrompt(GeckoSession session, String title, String value, - TextCallback callback); + void onColorPrompt(@NonNull GeckoSession session, @Nullable String title, + @Nullable String value, @NonNull TextCallback callback); @Retention(RetentionPolicy.SOURCE) @IntDef({DATETIME_TYPE_DATE, DATETIME_TYPE_MONTH, DATETIME_TYPE_WEEK, @@ -3570,9 +3577,9 @@ public class GeckoSession implements Parcelable { * HTML date/time format. */ @UiThread - void onDateTimePrompt(GeckoSession session, String title, - @DatetimeType int type, String value, String min, - String max, TextCallback callback); + void onDateTimePrompt(@NonNull GeckoSession session, @Nullable String title, + @DatetimeType int type, @Nullable String value, @Nullable String min, + @Nullable String max, @NonNull TextCallback callback); /** * Callback interface for notifying the result of file prompts. @@ -3586,7 +3593,7 @@ public class GeckoSession implements Parcelable { * @param uri The URI of the selected file. */ @UiThread - void confirm(Context context, Uri uri); + void confirm(@Nullable Context context, @Nullable Uri uri); /** * Called by the prompt implementation when the user makes file selections in @@ -3596,7 +3603,7 @@ public class GeckoSession implements Parcelable { * @param uris Array of URI objects for the selected files. */ @UiThread - void confirm(Context context, Uri[] uris); + void confirm(@Nullable Context context, @Nullable Uri[] uris); } @Retention(RetentionPolicy.SOURCE) @@ -3617,8 +3624,8 @@ public class GeckoSession implements Parcelable { * @param callback Callback interface. */ @UiThread - void onFilePrompt(GeckoSession session, String title, @FileType int type, - String[] mimeTypes, FileCallback callback); + void onFilePrompt(@NonNull GeckoSession session, @Nullable String title, @FileType int type, + @Nullable String[] mimeTypes, @NonNull FileCallback callback); /** * Display a popup request prompt; this occurs when content attempts to open @@ -3631,7 +3638,8 @@ public class GeckoSession implements Parcelable { * whether or not the popup should be allowed to open. */ @UiThread - GeckoResult onPopupRequest(GeckoSession session, String targetUri); + GeckoResult onPopupRequest(@NonNull GeckoSession session, + @Nullable String targetUri); } /** @@ -3647,7 +3655,7 @@ public class GeckoSession implements Parcelable { * @param scrollY The new vertical scroll position in pixels. */ @UiThread - public void onScrollChanged(GeckoSession session, int scrollX, int scrollY); + public void onScrollChanged(@NonNull GeckoSession session, int scrollX, int scrollY); } /** @@ -3656,7 +3664,7 @@ public class GeckoSession implements Parcelable { * @return PanZoomController instance. */ @UiThread - public PanZoomController getPanZoomController() { + public @NonNull PanZoomController getPanZoomController() { ThreadUtils.assertOnUiThread(); if (mNPZC == null) { @@ -3674,7 +3682,7 @@ public class GeckoSession implements Parcelable { * @return OverscrollEdgeEffect instance. */ @UiThread - public OverscrollEdgeEffect getOverscrollEdgeEffect() { + public @NonNull OverscrollEdgeEffect getOverscrollEdgeEffect() { ThreadUtils.assertOnUiThread(); if (mOverscroll == null) { @@ -3863,7 +3871,7 @@ public class GeckoSession implements Parcelable { * One or more of the {@link #CATEGORY_AD CATEGORY_*} flags. */ @UiThread - void onTrackerBlocked(GeckoSession session, String uri, + void onTrackerBlocked(@NonNull GeckoSession session, @Nullable String uri, @Category int categories); } @@ -3929,8 +3937,9 @@ public class GeckoSession implements Parcelable { * @param callback Callback interface. */ @UiThread - void onAndroidPermissionsRequest(GeckoSession session, String[] permissions, - Callback callback); + void onAndroidPermissionsRequest(@NonNull GeckoSession session, + @Nullable String[] permissions, + @NonNull Callback callback); /** * Request content permission. @@ -3944,8 +3953,8 @@ public class GeckoSession implements Parcelable { * @param callback Callback interface. */ @UiThread - void onContentPermissionRequest(GeckoSession session, String uri, - @Permission int type, Callback callback); + void onContentPermissionRequest(@NonNull GeckoSession session, @Nullable String uri, + @Permission int type, @NonNull Callback callback); class MediaSource { @Retention(RetentionPolicy.SOURCE) @@ -4108,7 +4117,7 @@ public class GeckoSession implements Parcelable { * or null when audio is not requested. */ @UiThread - void grant(final String video, final String audio); + void grant(final @Nullable String video, final @Nullable String audio); /** * Called by the implementation after permissions are granted; the @@ -4122,7 +4131,7 @@ public class GeckoSession implements Parcelable { * or null when audio is not requested. */ @UiThread - void grant(final MediaSource video, final MediaSource audio); + void grant(final @Nullable MediaSource video, final @Nullable MediaSource audio); /** * Called by the implementation when permissions are not granted; the @@ -4143,8 +4152,9 @@ public class GeckoSession implements Parcelable { * @param callback Callback interface. */ @UiThread - void onMediaPermissionRequest(GeckoSession session, String uri, MediaSource[] video, - MediaSource[] audio, MediaCallback callback); + void onMediaPermissionRequest(@NonNull GeckoSession session, @NonNull String uri, + @Nullable MediaSource[] video, @Nullable MediaSource[] audio, + @NonNull MediaCallback callback); } /** diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoSessionSettings.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoSessionSettings.java index 6109dff65b81..2775f237a263 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoSessionSettings.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoSessionSettings.java @@ -156,7 +156,7 @@ public final class GeckoSessionSettings implements Parcelable { mBundle.putInt(DISPLAY_MODE.name, DISPLAY_MODE_BROWSER); } - public void setBoolean(final Key key, final boolean value) { + public void setBoolean(final @NonNull Key key, final boolean value) { synchronized (mBundle) { if (valueChangedLocked(key, value)) { mBundle.putBoolean(key.name, value); @@ -165,13 +165,13 @@ public final class GeckoSessionSettings implements Parcelable { } } - public boolean getBoolean(final Key key) { + public boolean getBoolean(final @NonNull Key key) { synchronized (mBundle) { return mBundle.getBoolean(key.name); } } - public void setInt(final Key key, final int value) { + public void setInt(final @NonNull Key key, final int value) { synchronized (mBundle) { if (valueChangedLocked(key, value)) { mBundle.putInt(key.name, value); @@ -180,13 +180,13 @@ public final class GeckoSessionSettings implements Parcelable { } } - public int getInt(final Key key) { + public int getInt(final @NonNull Key key) { synchronized (mBundle) { return mBundle.getInt(key.name); } } - public void setString(final Key key, final String value) { + public void setString(final @NonNull Key key, final @Nullable String value) { synchronized (mBundle) { if (valueChangedLocked(key, value)) { mBundle.putString(key.name, value); @@ -195,7 +195,7 @@ public final class GeckoSessionSettings implements Parcelable { } } - public String getString(final Key key) { + public String getString(final @NonNull Key key) { synchronized (mBundle) { return mBundle.getString(key.name); } @@ -244,12 +244,12 @@ public final class GeckoSessionSettings implements Parcelable { } @Override // Parcelable - public void writeToParcel(Parcel out, int flags) { + public void writeToParcel(@NonNull Parcel out, int flags) { mBundle.writeToParcel(out, flags); } // AIDL code may call readFromParcel even though it's not part of Parcelable. - public void readFromParcel(final Parcel source) { + public void readFromParcel(final @NonNull Parcel source) { mBundle.readFromParcel(source); } diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoView.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoView.java index 049eee3c94c3..43d4728e2ce7 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoView.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoView.java @@ -242,7 +242,7 @@ public class GeckoView extends FrameLayout { } } - public GeckoSession releaseSession() { + public @Nullable GeckoSession releaseSession() { ThreadUtils.assertOnUiThread(); if (mSession == null) { @@ -371,21 +371,21 @@ public class GeckoView extends FrameLayout { } @AnyThread - public GeckoSession getSession() { + public @Nullable GeckoSession getSession() { return mSession; } @AnyThread - public EventDispatcher getEventDispatcher() { + public @NonNull EventDispatcher getEventDispatcher() { return mSession.getEventDispatcher(); } - public PanZoomController getPanZoomController() { + public @NonNull PanZoomController getPanZoomController() { ThreadUtils.assertOnUiThread(); return mSession.getPanZoomController(); } - public DynamicToolbarAnimator getDynamicToolbarAnimator() { + public @NonNull DynamicToolbarAnimator getDynamicToolbarAnimator() { ThreadUtils.assertOnUiThread(); return mSession.getDynamicToolbarAnimator(); } diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/MediaElement.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/MediaElement.java index 2c5b7868b737..73f3b3173545 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/MediaElement.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/MediaElement.java @@ -8,6 +8,7 @@ package org.mozilla.geckoview; import android.support.annotation.AnyThread; import android.support.annotation.IntDef; +import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.annotation.UiThread; import android.util.Log; @@ -291,7 +292,7 @@ public class MediaElement { * One of the {@link #MEDIA_STATE_PLAY MEDIA_STATE_*} flags. */ @UiThread - void onPlaybackStateChange(MediaElement mediaElement, @MediaStateFlags int mediaState); + void onPlaybackStateChange(@NonNull MediaElement mediaElement, @MediaStateFlags int mediaState); /** * The readiness state of the media has changed. @@ -301,7 +302,7 @@ public class MediaElement { * One of the {@link #MEDIA_READY_STATE_HAVE_NOTHING MEDIA_READY_STATE_*} flags. */ @UiThread - void onReadyStateChange(MediaElement mediaElement, @ReadyStateFlags int readyState); + void onReadyStateChange(@NonNull MediaElement mediaElement, @ReadyStateFlags int readyState); /** * The media metadata has loaded or changed. @@ -310,7 +311,7 @@ public class MediaElement { * @param metaData The MetaData values of the media. */ @UiThread - void onMetadataChange(MediaElement mediaElement, Metadata metaData); + void onMetadataChange(@NonNull MediaElement mediaElement, @NonNull Metadata metaData); /** * Indicates that a loading operation is in progress for the media. @@ -319,7 +320,8 @@ public class MediaElement { * @param progressInfo Information about the load progress and buffered ranges. */ @UiThread - void onLoadProgress(MediaElement mediaElement, LoadProgressInfo progressInfo); + void onLoadProgress(@NonNull MediaElement mediaElement, + @NonNull LoadProgressInfo progressInfo); /** * The media audio volume has changed. @@ -329,7 +331,7 @@ public class MediaElement { * @param muted True if the media is muted. */ @UiThread - void onVolumeChange(MediaElement mediaElement, double volume, boolean muted); + void onVolumeChange(@NonNull MediaElement mediaElement, double volume, boolean muted); /** * The current playback time has changed. This event is usually dispatched every 250ms. @@ -338,7 +340,7 @@ public class MediaElement { * @param time The current playback time in seconds. */ @UiThread - void onTimeChange(MediaElement mediaElement, double time); + void onTimeChange(@NonNull MediaElement mediaElement, double time); /** * The media playback speed has changed. @@ -347,7 +349,7 @@ public class MediaElement { * @param rate The current playback rate. A value of 1.0 indicates normal speed. */ @UiThread - void onPlaybackRateChange(MediaElement mediaElement, double rate); + void onPlaybackRateChange(@NonNull MediaElement mediaElement, double rate); /** * A media element has entered or exited fullscreen mode. @@ -356,7 +358,7 @@ public class MediaElement { * @param fullscreen True if the media has entered full screen mode. */ @UiThread - void onFullscreenChange(MediaElement mediaElement, boolean fullscreen); + void onFullscreenChange(@NonNull MediaElement mediaElement, boolean fullscreen); /** * An error has occurred. @@ -366,7 +368,7 @@ public class MediaElement { * One of the {@link #MEDIA_ERROR_NETWORK_NO_SOURCE MEDIA_ERROR_*} flags. */ @UiThread - void onError(MediaElement mediaElement, @MediaErrorFlags int errorCode); + void onError(@NonNull MediaElement mediaElement, @MediaErrorFlags int errorCode); } /* package */ long getVideoId() { diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/OverscrollEdgeEffect.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/OverscrollEdgeEffect.java index 1f5bf18879a8..6b33311aa3a6 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/OverscrollEdgeEffect.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/OverscrollEdgeEffect.java @@ -14,6 +14,8 @@ import android.graphics.PorterDuff; import android.graphics.PorterDuffXfermode; import android.graphics.Rect; import android.os.Build; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; import android.support.annotation.UiThread; import android.view.View; import android.widget.EdgeEffect; @@ -48,7 +50,7 @@ public final class OverscrollEdgeEffect { * * @param context Context to use for the overscroll theme. */ - public void setTheme(final Context context) { + public void setTheme(final @NonNull Context context) { ThreadUtils.assertOnUiThread(); final PorterDuffXfermode mode = new PorterDuffXfermode(PorterDuff.Mode.SRC); @@ -90,7 +92,7 @@ public final class OverscrollEdgeEffect { * @param runnable Invalidation Runnable. * @see #getInvalidationCallback() */ - public void setInvalidationCallback(final Runnable runnable) { + public void setInvalidationCallback(final @Nullable Runnable runnable) { ThreadUtils.assertOnUiThread(); mInvalidationCallback = runnable; } @@ -101,7 +103,7 @@ public final class OverscrollEdgeEffect { * @return Invalidation Runnable. * @see #setInvalidationCallback(Runnable) */ - public Runnable getInvalidationCallback() { + public @Nullable Runnable getInvalidationCallback() { ThreadUtils.assertOnUiThread(); return mInvalidationCallback; } @@ -167,7 +169,7 @@ public final class OverscrollEdgeEffect { * * @param canvas Canvas to draw on. */ - public void draw(final Canvas canvas) { + public void draw(final @NonNull Canvas canvas) { ThreadUtils.assertOnUiThread(); final Rect pageRect = new Rect(); diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/PanZoomController.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/PanZoomController.java index fc17117aa45f..04a45998c890 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/PanZoomController.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/PanZoomController.java @@ -11,6 +11,7 @@ import org.mozilla.gecko.util.ThreadUtils; import android.graphics.Rect; import android.os.SystemClock; +import android.support.annotation.NonNull; import android.support.annotation.UiThread; import android.util.Log; import android.util.Pair; @@ -185,7 +186,7 @@ public class PanZoomController extends JNIObject { * @param event MotionEvent to process. * @return True if the event was handled. */ - public boolean onTouchEvent(final MotionEvent event) { + public boolean onTouchEvent(final @NonNull MotionEvent event) { ThreadUtils.assertOnUiThread(); return handleMotionEvent(event); } @@ -198,7 +199,7 @@ public class PanZoomController extends JNIObject { * @param event MotionEvent to process. * @return True if the event was handled. */ - public boolean onMouseEvent(final MotionEvent event) { + public boolean onMouseEvent(final @NonNull MotionEvent event) { ThreadUtils.assertOnUiThread(); if (event.getToolType(0) == MotionEvent.TOOL_TYPE_MOUSE) { @@ -220,7 +221,7 @@ public class PanZoomController extends JNIObject { * @param event MotionEvent to process. * @return True if the event was handled. */ - public boolean onMotionEvent(MotionEvent event) { + public boolean onMotionEvent(@NonNull MotionEvent event) { ThreadUtils.assertOnUiThread(); final int action = event.getActionMasked(); diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/SessionAccessibility.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/SessionAccessibility.java index a962382605d0..e9edf51553d1 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/SessionAccessibility.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/SessionAccessibility.java @@ -19,6 +19,8 @@ import android.graphics.Matrix; import android.graphics.Rect; import android.os.Build; import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; import android.support.annotation.UiThread; import android.util.Log; import android.util.SparseArray; @@ -494,7 +496,7 @@ public class SessionAccessibility { * * @return View instance. */ - public View getView() { + public @Nullable View getView() { ThreadUtils.assertOnUiThread(); return mView; @@ -506,7 +508,7 @@ public class SessionAccessibility { * @param view View instance. */ @UiThread - public void setView(final View view) { + public void setView(final @Nullable View view) { ThreadUtils.assertOnUiThread(); if (mView != null) { @@ -619,7 +621,7 @@ public class SessionAccessibility { private static native void toggleNativeAccessibility(boolean enable); } - public boolean onMotionEvent(final MotionEvent event) { + public boolean onMotionEvent(final @NonNull MotionEvent event) { ThreadUtils.assertOnUiThread(); if (!Settings.isTouchExplorationEnabled()) { diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/SessionTextInput.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/SessionTextInput.java index e9f17fb0c890..74b723d696d3 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/SessionTextInput.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/SessionTextInput.java @@ -483,7 +483,7 @@ public final class SessionTextInput { * @return TextInputDelegate instance or a default instance if no delegate has been set. */ @UiThread - public GeckoSession.TextInputDelegate getDelegate() { + public @NonNull GeckoSession.TextInputDelegate getDelegate() { ThreadUtils.assertOnUiThread(); if (mDelegate == null) { mDelegate = DefaultDelegate.INSTANCE; @@ -534,7 +534,7 @@ public final class SessionTextInput { * @param values Map of auto-fill IDs to values. */ @UiThread - public void autofill(final SparseArray values) { + public void autofill(final @NonNull SparseArray values) { if (mAutoFillRoots == null) { return; } diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/doc-files/CHANGELOG.md b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/doc-files/CHANGELOG.md index 18a8b717c744..3a271db19e4e 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/doc-files/CHANGELOG.md +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/doc-files/CHANGELOG.md @@ -4,6 +4,9 @@ layout: geckoview

GeckoView API Changelog.

+## v66 +- Added `@NonNull` or `@Nullable` to all APIs. + ## v65 - Moved `CompositorController`, `DynamicToolbarAnimator`, `OverscrollEdgeEffect`, `PanZoomController` from `org.mozilla.gecko.gfx` to @@ -36,4 +39,4 @@ layout: geckoview - Update `CrashReporter.sendCrashReport()` to return the crash ID as a GeckoResult. -[api-version]: bb945ae930ebf055f11821c685a6691faa7e5a3a +[api-version]: cdbaa3fa639126d2d45a0cd8e9508f95a9e98e33 From 55e3f21b2b756a1ed044fe3c92a67c921a089c03 Mon Sep 17 00:00:00 2001 From: Alex Gaynor Date: Wed, 19 Dec 2018 21:46:49 +0000 Subject: [PATCH 21/39] Bug 1515437 - mark several IPC methods as final; r=froydnj Differential Revision: https://phabricator.services.mozilla.com/D15011 --HG-- extra : moz-landing-system : lando --- dom/filehandle/ActorsParent.h | 6 +++--- dom/filesystem/FileSystemTaskBase.h | 2 +- dom/indexedDB/ActorsParent.cpp | 10 +++++----- dom/localstorage/ActorsParent.cpp | 4 ++-- dom/quota/ActorsParent.cpp | 2 +- gfx/layers/IPDLActor.h | 2 +- gfx/layers/composite/TextureHost.cpp | 2 +- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/dom/filehandle/ActorsParent.h b/dom/filehandle/ActorsParent.h index 2b1f0b42ffb6..b78496b277db 100644 --- a/dom/filehandle/ActorsParent.h +++ b/dom/filehandle/ActorsParent.h @@ -159,11 +159,11 @@ class BackgroundMutableFileParentBase : public PBackgroundMutableFileParent { PBackgroundFileHandleParent* aActor, const FileMode& aMode) override; virtual bool DeallocPBackgroundFileHandleParent( - PBackgroundFileHandleParent* aActor) override; + PBackgroundFileHandleParent* aActor) final; - virtual mozilla::ipc::IPCResult RecvDeleteMe() override; + mozilla::ipc::IPCResult RecvDeleteMe() final; - virtual mozilla::ipc::IPCResult RecvGetFileId(int64_t* aFileId) override; + mozilla::ipc::IPCResult RecvGetFileId(int64_t* aFileId) override; }; } // namespace dom diff --git a/dom/filesystem/FileSystemTaskBase.h b/dom/filesystem/FileSystemTaskBase.h index f05e4e7824f9..2a5e2c6a1176 100644 --- a/dom/filesystem/FileSystemTaskBase.h +++ b/dom/filesystem/FileSystemTaskBase.h @@ -154,7 +154,7 @@ class FileSystemTaskChildBase : public PFileSystemRequestChild { // Overrides PFileSystemRequestChild virtual mozilla::ipc::IPCResult Recv__delete__( - const FileSystemResponseValue& value) override; + const FileSystemResponseValue& value) final; nsresult mErrorValue; RefPtr mFileSystem; diff --git a/dom/indexedDB/ActorsParent.cpp b/dom/indexedDB/ActorsParent.cpp index 4154fa0f8fe3..d70f40afada8 100644 --- a/dom/indexedDB/ActorsParent.cpp +++ b/dom/indexedDB/ActorsParent.cpp @@ -6423,12 +6423,12 @@ class MutableFile : public BackgroundMutableFileParentBase { ~MutableFile() override; PBackgroundFileHandleParent* AllocPBackgroundFileHandleParent( - const FileMode& aMode) override; + const FileMode& aMode) final; mozilla::ipc::IPCResult RecvPBackgroundFileHandleConstructor( - PBackgroundFileHandleParent* aActor, const FileMode& aMode) override; + PBackgroundFileHandleParent* aActor, const FileMode& aMode) final; - mozilla::ipc::IPCResult RecvGetFileId(int64_t* aFileId) override; + mozilla::ipc::IPCResult RecvGetFileId(int64_t* aFileId) final; }; class FactoryOp : public DatabaseOperationBase, @@ -6617,7 +6617,7 @@ class FactoryOp : public DatabaseOperationBase, // IPDL methods. void ActorDestroy(ActorDestroyReason aWhy) override; - mozilla::ipc::IPCResult RecvPermissionRetry() override; + mozilla::ipc::IPCResult RecvPermissionRetry() final; virtual void SendBlockedNotification() = 0; @@ -7115,7 +7115,7 @@ class NormalTransactionOp : public TransactionDatabaseOperationBase, void ActorDestroy(ActorDestroyReason aWhy) override; mozilla::ipc::IPCResult RecvContinue( - const PreprocessResponse& aResponse) override; + const PreprocessResponse& aResponse) final; }; class ObjectStoreAddOrPutRequestOp final : public NormalTransactionOp { diff --git a/dom/localstorage/ActorsParent.cpp b/dom/localstorage/ActorsParent.cpp index 40cc0728297d..ab83f5707107 100644 --- a/dom/localstorage/ActorsParent.cpp +++ b/dom/localstorage/ActorsParent.cpp @@ -1964,9 +1964,9 @@ class LSRequestBase : public DatastoreOperationBase, void ActorDestroy(ActorDestroyReason aWhy) override; private: - mozilla::ipc::IPCResult RecvCancel() override; + mozilla::ipc::IPCResult RecvCancel() final; - mozilla::ipc::IPCResult RecvFinish() override; + mozilla::ipc::IPCResult RecvFinish() final; }; class PrepareDatastoreOp : public LSRequestBase, public OpenDirectoryListener { diff --git a/dom/quota/ActorsParent.cpp b/dom/quota/ActorsParent.cpp index dfeb0c315e05..2361cdc5f66a 100644 --- a/dom/quota/ActorsParent.cpp +++ b/dom/quota/ActorsParent.cpp @@ -989,7 +989,7 @@ class QuotaUsageRequestBase : public NormalOriginOperationBase, // IPDL methods. void ActorDestroy(ActorDestroyReason aWhy) override; - mozilla::ipc::IPCResult RecvCancel() override; + mozilla::ipc::IPCResult RecvCancel() final; }; class GetUsageOp final : public QuotaUsageRequestBase { diff --git a/gfx/layers/IPDLActor.h b/gfx/layers/IPDLActor.h index 6fe7df6e90d3..63858015beca 100644 --- a/gfx/layers/IPDLActor.h +++ b/gfx/layers/IPDLActor.h @@ -31,7 +31,7 @@ class ParentActor : public Protocol { // Override this rather than ActorDestroy virtual void Destroy() {} - virtual mozilla::ipc::IPCResult RecvDestroy() override { + mozilla::ipc::IPCResult RecvDestroy() final { DestroyIfNeeded(); Unused << Protocol::Send__delete__(this); return IPC_OK(); diff --git a/gfx/layers/composite/TextureHost.cpp b/gfx/layers/composite/TextureHost.cpp index aef8bc2fa130..f6d72a574e50 100644 --- a/gfx/layers/composite/TextureHost.cpp +++ b/gfx/layers/composite/TextureHost.cpp @@ -86,7 +86,7 @@ class TextureParent : public ParentActor { void NotifyNotUsed(uint64_t aTransactionId); virtual mozilla::ipc::IPCResult RecvRecycleTexture( - const TextureFlags& aTextureFlags) override; + const TextureFlags& aTextureFlags) final; TextureHost* GetTextureHost() { return mTextureHost; } From 0fd53c5fc27d844e7ef5628606b82507e934d801 Mon Sep 17 00:00:00 2001 From: Ehsan Akhgari Date: Thu, 20 Dec 2018 13:41:19 +0000 Subject: [PATCH 22/39] Bug 1512397 - Sync the content blocking settings stored in the profile; r=baku Differential Revision: https://phabricator.services.mozilla.com/D15028 --HG-- extra : moz-landing-system : lando --- browser/app/profile/firefox.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js index 2b4eb2b71933..05fd45ac629c 100644 --- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js @@ -1168,6 +1168,8 @@ pref("services.sync.prefs.sync.addons.ignoreUserEnabledChanges", true); // could weaken the pref locally, install an add-on from an untrusted // source, and this would propagate automatically to other, // uncompromised Sync-connected devices. +pref("services.sync.prefs.sync.browser.contentblocking.category", true); +pref("services.sync.prefs.sync.browser.contentblocking.introCount", true); pref("services.sync.prefs.sync.browser.ctrlTab.recentlyUsedOrder", true); pref("services.sync.prefs.sync.browser.download.useDownloadDir", true); pref("services.sync.prefs.sync.browser.formfill.enable", true); From d97e5333915279c6dc30eab733ca0ae04d4f09a8 Mon Sep 17 00:00:00 2001 From: Ehsan Akhgari Date: Thu, 20 Dec 2018 13:40:57 +0000 Subject: [PATCH 23/39] Bug 1515498 - Fix the argument types StorageAccessGrantPromise is resolved with; r=baku This is a non-functional fix (since int converts to bool implicitly) which reverts a mistake I made when rebasing the fix in bug 1509047. Differential Revision: https://phabricator.services.mozilla.com/D15026 --HG-- extra : moz-landing-system : lando --- toolkit/components/antitracking/AntiTrackingCommon.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/toolkit/components/antitracking/AntiTrackingCommon.cpp b/toolkit/components/antitracking/AntiTrackingCommon.cpp index 9a4c22a0050e..52e92a9fab72 100644 --- a/toolkit/components/antitracking/AntiTrackingCommon.cpp +++ b/toolkit/components/antitracking/AntiTrackingCommon.cpp @@ -473,13 +473,11 @@ AntiTrackingCommon::AddFirstPartyStorageAccessGrantedFor( ("Disabled by network.cookie.cookieBehavior pref (%d), bailing out " "early", StaticPrefs::network_cookie_cookieBehavior())); - return StorageAccessGrantPromise::CreateAndResolve(eAllowOnAnySite, - __func__); + return StorageAccessGrantPromise::CreateAndResolve(true, __func__); } if (CheckContentBlockingAllowList(aParentWindow)) { - return StorageAccessGrantPromise::CreateAndResolve(eAllowOnAnySite, - __func__); + return StorageAccessGrantPromise::CreateAndResolve(true, __func__); } nsCOMPtr topLevelStoragePrincipal; From d5c51c8c6b1377ce7c908d97259314e16d8bac50 Mon Sep 17 00:00:00 2001 From: Ehsan Akhgari Date: Thu, 20 Dec 2018 13:40:24 +0000 Subject: [PATCH 24/39] Bug 1515343 - Emit the correct rejection code from the anti-tracking backend when a dynamic storage check fails with a doubly nested iframe; r=baku Differential Revision: https://phabricator.services.mozilla.com/D14993 --HG-- extra : moz-landing-system : lando --- .../base/content/test/trackingUI/browser.ini | 3 ++ .../browser_trackingUI_cookies_subview.js | 33 +++++++++++++++++++ .../test/trackingUI/containerPage.html | 6 ++++ .../test/trackingUI/cookieSetterPage.html | 6 ++++ .../content/test/trackingUI/embeddedPage.html | 6 ++++ .../antitracking/AntiTrackingCommon.cpp | 2 ++ 6 files changed, 56 insertions(+) create mode 100644 browser/base/content/test/trackingUI/containerPage.html create mode 100644 browser/base/content/test/trackingUI/cookieSetterPage.html create mode 100644 browser/base/content/test/trackingUI/embeddedPage.html diff --git a/browser/base/content/test/trackingUI/browser.ini b/browser/base/content/test/trackingUI/browser.ini index e35c115363de..7c9cf181932f 100644 --- a/browser/base/content/test/trackingUI/browser.ini +++ b/browser/base/content/test/trackingUI/browser.ini @@ -3,8 +3,11 @@ tags = trackingprotection support-files = head.js benignPage.html + containerPage.html cookiePage.html + cookieSetterPage.html cookieServer.sjs + embeddedPage.html trackingAPI.js trackingPage.html diff --git a/browser/base/content/test/trackingUI/browser_trackingUI_cookies_subview.js b/browser/base/content/test/trackingUI/browser_trackingUI_cookies_subview.js index 3dbe945a593b..d78aab99ace8 100644 --- a/browser/base/content/test/trackingUI/browser_trackingUI_cookies_subview.js +++ b/browser/base/content/test/trackingUI/browser_trackingUI_cookies_subview.js @@ -6,6 +6,7 @@ "use strict"; const COOKIE_PAGE = "http://not-tracking.example.com/browser/browser/base/content/test/trackingUI/cookiePage.html"; +const CONTAINER_PAGE = "http://not-tracking.example.com/browser/browser/base/content/test/trackingUI/containerPage.html"; const TPC_PREF = "network.cookie.cookieBehavior"; @@ -242,3 +243,35 @@ add_task(async function testCookiesSubViewAllowedHeuristic() { Services.prefs.clearUserPref(TPC_PREF); }); + +add_task(async function testCookiesSubViewBlockedDoublyNested() { + Services.prefs.setIntPref(TPC_PREF, Ci.nsICookieService.BEHAVIOR_REJECT_TRACKER); + + await BrowserTestUtils.withNewTab(CONTAINER_PAGE, async function(browser) { + await openIdentityPopup(); + + let categoryItem = + document.getElementById("identity-popup-content-blocking-category-cookies"); + ok(BrowserTestUtils.is_visible(categoryItem), "TP category item is visible"); + let cookiesView = document.getElementById("identity-popup-cookiesView"); + let viewShown = BrowserTestUtils.waitForEvent(cookiesView, "ViewShown"); + categoryItem.click(); + await viewShown; + + ok(true, "Cookies view was shown"); + + let listItems = cookiesView.querySelectorAll(".identity-popup-content-blocking-list-item"); + is(listItems.length, 1, "We have 1 cookie in the list"); + + let listItem = listItems[0]; + let label = listItem.querySelector(".identity-popup-content-blocking-list-host-label"); + is(label.value, "http://trackertest.org", "Has an item for trackertest.org"); + ok(BrowserTestUtils.is_visible(listItem), "List item is visible"); + ok(!listItem.classList.contains("allowed"), "Indicates whether the cookie was blocked or allowed"); + + let button = listItem.querySelector(".identity-popup-permission-remove-button"); + ok(!button, "Permission remove button doesn't exist"); + }); + + Services.prefs.clearUserPref(TPC_PREF); +}); diff --git a/browser/base/content/test/trackingUI/containerPage.html b/browser/base/content/test/trackingUI/containerPage.html new file mode 100644 index 000000000000..b4b12c9892ce --- /dev/null +++ b/browser/base/content/test/trackingUI/containerPage.html @@ -0,0 +1,6 @@ + + + + + + diff --git a/browser/base/content/test/trackingUI/cookieSetterPage.html b/browser/base/content/test/trackingUI/cookieSetterPage.html new file mode 100644 index 000000000000..aab18e0afff9 --- /dev/null +++ b/browser/base/content/test/trackingUI/cookieSetterPage.html @@ -0,0 +1,6 @@ + + + + + + diff --git a/browser/base/content/test/trackingUI/embeddedPage.html b/browser/base/content/test/trackingUI/embeddedPage.html new file mode 100644 index 000000000000..013abe194b2e --- /dev/null +++ b/browser/base/content/test/trackingUI/embeddedPage.html @@ -0,0 +1,6 @@ + + + + + + diff --git a/toolkit/components/antitracking/AntiTrackingCommon.cpp b/toolkit/components/antitracking/AntiTrackingCommon.cpp index 52e92a9fab72..628b99538e56 100644 --- a/toolkit/components/antitracking/AntiTrackingCommon.cpp +++ b/toolkit/components/antitracking/AntiTrackingCommon.cpp @@ -912,6 +912,7 @@ bool AntiTrackingCommon::IsFirstPartyStorageAccessGrantedFor( nsGlobalWindowInner::Cast(aWindow), getter_AddRefs(parentPrincipal), trackingOrigin, getter_AddRefs(trackingURI), nullptr)) { LOG(("Failed to obtain the parent principal and the tracking origin")); + *aRejectedReason = nsIWebProgressListener::STATE_COOKIES_BLOCKED_TRACKER; return false; } Unused << parentPrincipal->GetURI(getter_AddRefs(parentPrincipalURI)); @@ -1150,6 +1151,7 @@ bool AntiTrackingCommon::IsFirstPartyStorageAccessGrantedFor( // window. if (loadInfo->GetTopLevelPrincipal()) { LOG(("Parent window is the top-level window, bail out early")); + *aRejectedReason = nsIWebProgressListener::STATE_COOKIES_BLOCKED_TRACKER; return false; } From 46b43617830f322e2d5bb76314ebeefbd96d003d Mon Sep 17 00:00:00 2001 From: Tobias Renwick Date: Wed, 19 Dec 2018 21:33:04 +0000 Subject: [PATCH 25/39] Bug 1513917 - Change capitalization for titles in about:addons r=mstriemer,aswan Differential Revision: https://phabricator.services.mozilla.com/D14990 --HG-- extra : moz-landing-system : lando --- .../chrome/mozapps/extensions/extensions.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/toolkit/locales/en-US/chrome/mozapps/extensions/extensions.properties b/toolkit/locales/en-US/chrome/mozapps/extensions/extensions.properties index b123ef131f18..227d75323722 100644 --- a/toolkit/locales/en-US/chrome/mozapps/extensions/extensions.properties +++ b/toolkit/locales/en-US/chrome/mozapps/extensions/extensions.properties @@ -105,11 +105,11 @@ legacyWarning.description=Missing something? Some extensions are no longer suppo #LOCALIZATION NOTE(legacyThemeWarning.description) %S is the brandShortName legacyThemeWarning.description=Missing something? Some themes are no longer supported by %S. -listHeading.extension=Manage your extensions -listHeading.theme=Manage your themes -listHeading.plugin=Manage your plugins -listHeading.locale=Manage your languages -listHeading.dictionary=Manage your dictionaries +listHeading.extension=Manage Your Extensions +listHeading.theme=Manage Your Themes +listHeading.plugin=Manage Your Plugins +listHeading.locale=Manage Your Languages +listHeading.dictionary=Manage Your Dictionaries searchLabel.extension=Find more extensions searchLabel.theme=Find more themes From 6708bcc3dc4c7eb6fd20ab7437c2315a352db7fa Mon Sep 17 00:00:00 2001 From: "arthur.iakab" Date: Thu, 20 Dec 2018 18:53:20 +0200 Subject: [PATCH 26/39] Backed out changeset 185b7717cc2e (bug 1441168) for causing devtools leak failures on browser_webconsole_split.js CLOSED TREE --- dom/base/nsGlobalWindowInner.cpp | 4 ---- .../test/browser_promiseDocumentFlushed.js | 19 ------------------- 2 files changed, 23 deletions(-) diff --git a/dom/base/nsGlobalWindowInner.cpp b/dom/base/nsGlobalWindowInner.cpp index af8f9351a609..aa03b3f406fd 100644 --- a/dom/base/nsGlobalWindowInner.cpp +++ b/dom/base/nsGlobalWindowInner.cpp @@ -809,16 +809,12 @@ class PromiseDocumentFlushedResolver final { virtual ~PromiseDocumentFlushedResolver() = default; void Call() { - nsMutationGuard guard; ErrorResult error; JS::Rooted returnVal(RootingCx()); mCallback->Call(&returnVal, error); if (error.Failed()) { mPromise->MaybeReject(error); - } else if (guard.Mutated(0)) { - // Something within the callback mutated the DOM. - mPromise->MaybeReject(NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR); } else { mPromise->MaybeResolve(returnVal); } diff --git a/dom/base/test/browser_promiseDocumentFlushed.js b/dom/base/test/browser_promiseDocumentFlushed.js index 4ac9462c6943..c0678437b32b 100644 --- a/dom/base/test/browser_promiseDocumentFlushed.js +++ b/dom/base/test/browser_promiseDocumentFlushed.js @@ -243,23 +243,4 @@ add_task(async function test_execution_order() { Assert.equal(result[i], i, "Callbacks and Promises should have run in the expected order."); } - - await cleanTheDOM(); -}); - -/** - * Tests that modifying the DOM within a promiseDocumentFlushed callback - * will result in the Promise being rejected. - */ -add_task(async function test_reject_on_modification() { - dirtyStyleAndLayout(1); - assertFlushesRequired(); - - let promise = window.promiseDocumentFlushed(() => { - dirtyStyleAndLayout(2); - }); - - await Assert.rejects(promise, /NoModificationAllowedError/); - - await cleanTheDOM(); }); From 05b841868e2ec9cc388d4c48026bd8be02ee4107 Mon Sep 17 00:00:00 2001 From: Michael Kaply Date: Thu, 20 Dec 2018 16:32:24 +0000 Subject: [PATCH 27/39] Bug 1510296 - Update Google search for new codes. r=daleharvey Differential Revision: https://phabricator.services.mozilla.com/D13087 --HG-- extra : moz-landing-system : lando --- .../search/searchplugins/google-2018.xml | 2 +- .../search/searchplugins/google-b-1-d.xml | 15 ++ .../search/searchplugins/google-b-1-e.xml | 15 ++ .../search/searchplugins/google-b-d.xml | 15 ++ .../search/searchplugins/google-b-e.xml | 15 ++ .../search/searchplugins/google.xml | 2 +- .../search/searchplugins/images/google.ico | Bin 0 -> 5430 bytes .../components/search/searchplugins/list.json | 218 +++++++++--------- .../search/test/browser/browser_google.js | 20 +- .../test/browser/browser_google_behavior.js | 6 +- toolkit/components/search/nsSearchService.js | 30 +++ 11 files changed, 208 insertions(+), 130 deletions(-) create mode 100644 browser/components/search/searchplugins/google-b-1-d.xml create mode 100644 browser/components/search/searchplugins/google-b-1-e.xml create mode 100644 browser/components/search/searchplugins/google-b-d.xml create mode 100644 browser/components/search/searchplugins/google-b-e.xml create mode 100644 browser/components/search/searchplugins/images/google.ico diff --git a/browser/components/search/searchplugins/google-2018.xml b/browser/components/search/searchplugins/google-2018.xml index a078c1de505c..48fa1bef5551 100644 --- a/browser/components/search/searchplugins/google-2018.xml +++ b/browser/components/search/searchplugins/google-2018.xml @@ -6,7 +6,7 @@ Google Google Search UTF-8 -data:image/x-icon;base64,AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zD9/f2W/f392P39/fn9/f35/f391/39/ZT+/v4uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+Cf39/Zn///////////////////////////////////////////39/ZX///8IAAAAAAAAAAAAAAAA/v7+Cf39/cH/////+v35/7TZp/92ul3/WKs6/1iqOv9yuFn/rNWd//j79v///////f39v////wgAAAAAAAAAAP39/Zn/////7PXp/3G3WP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP+Or1j//vDo///////9/f2VAAAAAP///zD/////+vz5/3G3V/9TqDT/WKo6/6LQkf/U6cz/1urO/6rUm/+Zo0r/8IZB//adZ////v7///////7+/i79/f2Y/////4nWzf9Lqkj/Vqo4/9Xqzv///////////////////////ebY//SHRv/0hUL//NjD///////9/f2U/f392v////8sxPH/Ebzt/43RsP/////////////////////////////////4roL/9IVC//i1jf///////f391/39/fr/////Cr37/wW8+/+16/7/////////////////9IVC//SFQv/0hUL/9IVC//SFQv/3pnX///////39/fn9/f36/////wu++/8FvPv/tuz+//////////////////SFQv/0hUL/9IVC//SFQv/0hUL/96p7///////9/f35/f392/////81yfz/CrL5/2uk9v///////////////////////////////////////////////////////f392P39/Zn/////ks/7/zdS7P84Rur/0NT6///////////////////////9/f////////////////////////39/Zb+/v4y//////n5/v9WYu3/NUPq/ztJ6/+VnPT/z9L6/9HU+v+WnfT/Ul7t/+Hj/P////////////////////8wAAAAAP39/Z3/////6Or9/1hj7v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v9sdvD////////////9/f2YAAAAAAAAAAD///8K/f39w//////5+f7/paz2/11p7v88Suv/Okfq/1pm7v+iqfX/+fn+///////9/f3B/v7+CQAAAAAAAAAAAAAAAP///wr9/f2d///////////////////////////////////////////9/f2Z/v7+CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/jL9/f2Z/f392/39/fr9/f36/f392v39/Zj///8wAAAAAAAAAAAAAAAAAAAAAPAPAADAAwAAgAEAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAACAAQAAwAMAAPAPAAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/g3+/v5X/f39mf39/cj9/f3q/f39+f39/fn9/f3q/f39yP39/Zn+/v5W////DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/iT9/f2c/f399f/////////////////////////////////////////////////////9/f31/f39mv7+/iMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gn9/f2K/f39+////////////////////////////////////////////////////////////////////////////f39+v39/Yf///8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4k/f390v////////////////////////////////////////////////////////////////////////////////////////////////39/dD///8iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////MP39/er//////////////////////////+r05v+v16H/gsBs/2WxSf9Wqjj/Vqk3/2OwRv99vWX/pdKV/97u2P////////////////////////////39/ej+/v4vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/iT9/f3q/////////////////////+v15/+Pxnv/VKk2/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/36+Z//d7tf///////////////////////39/ej///8iAAAAAAAAAAAAAAAAAAAAAAAAAAD///8K/f390//////////////////////E4bn/XKw+/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1apN/+x0pv///////////////////////39/dD///8IAAAAAAAAAAAAAAAAAAAAAP39/Yv/////////////////////sdij/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/YKU1/8qOPv/5wZ////////////////////////39/YcAAAAAAAAAAAAAAAD+/v4l/f39+////////////////8Lgt/9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9utlT/n86N/7faqv+426v/pdKV/3u8ZP9UqDX/U6g0/3egN//jiUH/9IVC//SFQv/82MP//////////////////f39+v7+/iMAAAAAAAAAAP39/Z3////////////////q9Ob/W6w+/1OoNP9TqDT/U6g0/1OoNP9nskz/zOXC/////////////////////////////////+Dv2v+osWP/8YVC//SFQv/0hUL/9IVC//WQVP/++fb//////////////////f39mgAAAAD+/v4O/f399v///////////////4LHj/9TqDT/U6g0/1OoNP9TqDT/dblc//L58P/////////////////////////////////////////////8+v/3p3f/9IVC//SFQv/0hUL/9IVC//rIqf/////////////////9/f31////DP7+/ln////////////////f9v7/Cbz2/zOwhv9TqDT/U6g0/2KwRv/v9+z///////////////////////////////////////////////////////738//1kFT/9IVC//SFQv/0hUL/9plg///////////////////////+/v5W/f39nP///////////////4jf/f8FvPv/Bbz7/yG1s/9QqDz/vN2w//////////////////////////////////////////////////////////////////rHqP/0hUL/9IVC//SFQv/0hUL//vDn//////////////////39/Zn9/f3L////////////////R878/wW8+/8FvPv/Bbz7/y7C5P/7/fr//////////////////////////////////////////////////////////////////ere//SFQv/0hUL/9IVC//SFQv/718H//////////////////f39yP39/ez///////////////8cwvv/Bbz7/wW8+/8FvPv/WNL8///////////////////////////////////////0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//rIqv/////////////////9/f3q/f39+v///////////////we9+/8FvPv/Bbz7/wW8+/993P3///////////////////////////////////////SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/+cGf//////////////////39/fn9/f36////////////////B737/wW8+/8FvPv/Bbz7/33c/f//////////////////////////////////////9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/6xaX//////////////////f39+f39/e3///////////////8cwvv/Bbz7/wW8+/8FvPv/WdP8///////////////////////////////////////0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//vVv//////////////////9/f3q/f39y////////////////0bN/P8FvPv/Bbz7/wW8+/8hrvn/+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/cj9/f2c////////////////ht/9/wW8+/8FvPv/FZP1/zRJ6/+zuPf//////////////////////////////////////////////////////////////////////////////////////////////////////////////////f39mf7+/lr////////////////d9v7/B7n7/yB38f81Q+r/NUPq/0hV7P/u8P3////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v5X////D/39/ff///////////////9tkPT/NUPq/zVD6v81Q+r/NUPq/2Fs7//y8v7////////////////////////////////////////////09f7//////////////////////////////////////////////////f399f7+/g0AAAAA/f39n////////////////+Tm/P89Suv/NUPq/zVD6v81Q+r/NUPq/1Bc7f/IzPn/////////////////////////////////x8v5/0xY7P+MlPP////////////////////////////////////////////9/f2cAAAAAAAAAAD+/v4n/f39/P///////////////7W69/81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v9ZZe7/k5v0/6609/+vtff/lJv0/1pm7v81Q+r/NUPq/zVD6v+GjvL//v7//////////////////////////////f39+/7+/iQAAAAAAAAAAAAAAAD9/f2N/////////////////////6Cn9f81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v+BivL////////////////////////////9/f2KAAAAAAAAAAAAAAAAAAAAAP7+/gv9/f3V/////////////////////7W69/8+S+v/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/P0zr/7q/+P///////////////////////f390v7+/gkAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/ib9/f3r/////////////////////+Xn/P94gfH/NkTq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NkTq/3Z/8f/l5/z///////////////////////39/er+/v4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/jL9/f3r///////////////////////////k5vz/nqX1/2p08P9IVez/OEbq/zdF6v9GU+z/aHLv/5qh9f/i5Pz////////////////////////////9/f3q////MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/ib9/f3V/////////////////////////////////////////////////////////////////////////////////////////////////f390v7+/iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wr9/f2N/f39/P///////////////////////////////////////////////////////////////////////////f39+/39/Yv+/v4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4n/f39n/39/ff//////////////////////////////////////////////////////f399v39/Z3+/v4lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+Dv7+/lr9/f2c/f39y/39/e39/f36/f39+v39/ez9/f3L/f39nP7+/ln+/v4OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AA///AAD//AAAP/gAAB/wAAAP4AAAB8AAAAPAAAADgAAAAYAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABgAAAAcAAAAPAAAAD4AAAB/AAAA/4AAAf/AAAP/8AAP//wAP/ +resource://search-plugins/images/google.ico diff --git a/browser/components/search/searchplugins/google-b-1-d.xml b/browser/components/search/searchplugins/google-b-1-d.xml new file mode 100644 index 000000000000..2d43390a0e70 --- /dev/null +++ b/browser/components/search/searchplugins/google-b-1-d.xml @@ -0,0 +1,15 @@ + + + +Google +Google Search +UTF-8 +resource://search-plugins/images/google.ico + + + + + + diff --git a/browser/components/search/searchplugins/google-b-1-e.xml b/browser/components/search/searchplugins/google-b-1-e.xml new file mode 100644 index 000000000000..ea251fc80161 --- /dev/null +++ b/browser/components/search/searchplugins/google-b-1-e.xml @@ -0,0 +1,15 @@ + + + +Google +Google Search +UTF-8 +resource://search-plugins/images/google.ico + + + + + + diff --git a/browser/components/search/searchplugins/google-b-d.xml b/browser/components/search/searchplugins/google-b-d.xml new file mode 100644 index 000000000000..9b7f5e77185e --- /dev/null +++ b/browser/components/search/searchplugins/google-b-d.xml @@ -0,0 +1,15 @@ + + + +Google +Google Search +UTF-8 +resource://search-plugins/images/google.ico + + + + + + diff --git a/browser/components/search/searchplugins/google-b-e.xml b/browser/components/search/searchplugins/google-b-e.xml new file mode 100644 index 000000000000..43b48a0a175d --- /dev/null +++ b/browser/components/search/searchplugins/google-b-e.xml @@ -0,0 +1,15 @@ + + + +Google +Google Search +UTF-8 +resource://search-plugins/images/google.ico + + + + + + diff --git a/browser/components/search/searchplugins/google.xml b/browser/components/search/searchplugins/google.xml index c71fa350433d..f41c8cbe335a 100644 --- a/browser/components/search/searchplugins/google.xml +++ b/browser/components/search/searchplugins/google.xml @@ -6,7 +6,7 @@ Google Google Search UTF-8 -data:image/x-icon;base64,AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zD9/f2W/f392P39/fn9/f35/f391/39/ZT+/v4uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+Cf39/Zn///////////////////////////////////////////39/ZX///8IAAAAAAAAAAAAAAAA/v7+Cf39/cH/////+v35/7TZp/92ul3/WKs6/1iqOv9yuFn/rNWd//j79v///////f39v////wgAAAAAAAAAAP39/Zn/////7PXp/3G3WP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP+Or1j//vDo///////9/f2VAAAAAP///zD/////+vz5/3G3V/9TqDT/WKo6/6LQkf/U6cz/1urO/6rUm/+Zo0r/8IZB//adZ////v7///////7+/i79/f2Y/////4nWzf9Lqkj/Vqo4/9Xqzv///////////////////////ebY//SHRv/0hUL//NjD///////9/f2U/f392v////8sxPH/Ebzt/43RsP/////////////////////////////////4roL/9IVC//i1jf///////f391/39/fr/////Cr37/wW8+/+16/7/////////////////9IVC//SFQv/0hUL/9IVC//SFQv/3pnX///////39/fn9/f36/////wu++/8FvPv/tuz+//////////////////SFQv/0hUL/9IVC//SFQv/0hUL/96p7///////9/f35/f392/////81yfz/CrL5/2uk9v///////////////////////////////////////////////////////f392P39/Zn/////ks/7/zdS7P84Rur/0NT6///////////////////////9/f////////////////////////39/Zb+/v4y//////n5/v9WYu3/NUPq/ztJ6/+VnPT/z9L6/9HU+v+WnfT/Ul7t/+Hj/P////////////////////8wAAAAAP39/Z3/////6Or9/1hj7v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v9sdvD////////////9/f2YAAAAAAAAAAD///8K/f39w//////5+f7/paz2/11p7v88Suv/Okfq/1pm7v+iqfX/+fn+///////9/f3B/v7+CQAAAAAAAAAAAAAAAP///wr9/f2d///////////////////////////////////////////9/f2Z/v7+CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/jL9/f2Z/f392/39/fr9/f36/f392v39/Zj///8wAAAAAAAAAAAAAAAAAAAAAPAPAADAAwAAgAEAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAACAAQAAwAMAAPAPAAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/g3+/v5X/f39mf39/cj9/f3q/f39+f39/fn9/f3q/f39yP39/Zn+/v5W////DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/iT9/f2c/f399f/////////////////////////////////////////////////////9/f31/f39mv7+/iMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gn9/f2K/f39+////////////////////////////////////////////////////////////////////////////f39+v39/Yf///8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4k/f390v////////////////////////////////////////////////////////////////////////////////////////////////39/dD///8iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////MP39/er//////////////////////////+r05v+v16H/gsBs/2WxSf9Wqjj/Vqk3/2OwRv99vWX/pdKV/97u2P////////////////////////////39/ej+/v4vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/iT9/f3q/////////////////////+v15/+Pxnv/VKk2/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/36+Z//d7tf///////////////////////39/ej///8iAAAAAAAAAAAAAAAAAAAAAAAAAAD///8K/f390//////////////////////E4bn/XKw+/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1apN/+x0pv///////////////////////39/dD///8IAAAAAAAAAAAAAAAAAAAAAP39/Yv/////////////////////sdij/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/YKU1/8qOPv/5wZ////////////////////////39/YcAAAAAAAAAAAAAAAD+/v4l/f39+////////////////8Lgt/9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9utlT/n86N/7faqv+426v/pdKV/3u8ZP9UqDX/U6g0/3egN//jiUH/9IVC//SFQv/82MP//////////////////f39+v7+/iMAAAAAAAAAAP39/Z3////////////////q9Ob/W6w+/1OoNP9TqDT/U6g0/1OoNP9nskz/zOXC/////////////////////////////////+Dv2v+osWP/8YVC//SFQv/0hUL/9IVC//WQVP/++fb//////////////////f39mgAAAAD+/v4O/f399v///////////////4LHj/9TqDT/U6g0/1OoNP9TqDT/dblc//L58P/////////////////////////////////////////////8+v/3p3f/9IVC//SFQv/0hUL/9IVC//rIqf/////////////////9/f31////DP7+/ln////////////////f9v7/Cbz2/zOwhv9TqDT/U6g0/2KwRv/v9+z///////////////////////////////////////////////////////738//1kFT/9IVC//SFQv/0hUL/9plg///////////////////////+/v5W/f39nP///////////////4jf/f8FvPv/Bbz7/yG1s/9QqDz/vN2w//////////////////////////////////////////////////////////////////rHqP/0hUL/9IVC//SFQv/0hUL//vDn//////////////////39/Zn9/f3L////////////////R878/wW8+/8FvPv/Bbz7/y7C5P/7/fr//////////////////////////////////////////////////////////////////ere//SFQv/0hUL/9IVC//SFQv/718H//////////////////f39yP39/ez///////////////8cwvv/Bbz7/wW8+/8FvPv/WNL8///////////////////////////////////////0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//rIqv/////////////////9/f3q/f39+v///////////////we9+/8FvPv/Bbz7/wW8+/993P3///////////////////////////////////////SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/+cGf//////////////////39/fn9/f36////////////////B737/wW8+/8FvPv/Bbz7/33c/f//////////////////////////////////////9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/6xaX//////////////////f39+f39/e3///////////////8cwvv/Bbz7/wW8+/8FvPv/WdP8///////////////////////////////////////0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//vVv//////////////////9/f3q/f39y////////////////0bN/P8FvPv/Bbz7/wW8+/8hrvn/+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/cj9/f2c////////////////ht/9/wW8+/8FvPv/FZP1/zRJ6/+zuPf//////////////////////////////////////////////////////////////////////////////////////////////////////////////////f39mf7+/lr////////////////d9v7/B7n7/yB38f81Q+r/NUPq/0hV7P/u8P3////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v5X////D/39/ff///////////////9tkPT/NUPq/zVD6v81Q+r/NUPq/2Fs7//y8v7////////////////////////////////////////////09f7//////////////////////////////////////////////////f399f7+/g0AAAAA/f39n////////////////+Tm/P89Suv/NUPq/zVD6v81Q+r/NUPq/1Bc7f/IzPn/////////////////////////////////x8v5/0xY7P+MlPP////////////////////////////////////////////9/f2cAAAAAAAAAAD+/v4n/f39/P///////////////7W69/81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v9ZZe7/k5v0/6609/+vtff/lJv0/1pm7v81Q+r/NUPq/zVD6v+GjvL//v7//////////////////////////////f39+/7+/iQAAAAAAAAAAAAAAAD9/f2N/////////////////////6Cn9f81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v+BivL////////////////////////////9/f2KAAAAAAAAAAAAAAAAAAAAAP7+/gv9/f3V/////////////////////7W69/8+S+v/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/P0zr/7q/+P///////////////////////f390v7+/gkAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/ib9/f3r/////////////////////+Xn/P94gfH/NkTq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NkTq/3Z/8f/l5/z///////////////////////39/er+/v4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/jL9/f3r///////////////////////////k5vz/nqX1/2p08P9IVez/OEbq/zdF6v9GU+z/aHLv/5qh9f/i5Pz////////////////////////////9/f3q////MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/ib9/f3V/////////////////////////////////////////////////////////////////////////////////////////////////f390v7+/iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wr9/f2N/f39/P///////////////////////////////////////////////////////////////////////////f39+/39/Yv+/v4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4n/f39n/39/ff//////////////////////////////////////////////////////f399v39/Z3+/v4lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+Dv7+/lr9/f2c/f39y/39/e39/f36/f39+v39/ez9/f3L/f39nP7+/ln+/v4OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AA///AAD//AAAP/gAAB/wAAAP4AAAB8AAAAPAAAADgAAAAYAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABgAAAAcAAAAPAAAAD4AAAB/AAAA/4AAAf/AAAP/8AAP//wAP/ +resource://search-plugins/images/google.ico diff --git a/browser/components/search/searchplugins/images/google.ico b/browser/components/search/searchplugins/images/google.ico new file mode 100644 index 0000000000000000000000000000000000000000..82339b3b1dbbcf4550b737faf99c7774196fb8cb GIT binary patch literal 5430 zcmcgwX>3$g6n=;X+3|<}Oe_lM4}(N0C5Rv{W&J^*wo?RyAcBe}5&;u}0*OVy7L=Ay zXf2DCb|BCKWlMolQL5~P(pm(H?9=IVT4p+(_4u9l<_-5P?F_|ulQZ|;bI*6abC-9Q zk)%%2V^W_!67o1{&f}6aK$4`mIHg_yeFk(dLWd$O6g@IYf<9UzqCvr6a2=!u;tfkR z^2|^uG_Wl^+PcCf8~An;Y_eeRr06G%J;p#^&`W#&+C~cwO(V;@`5-Yh&vvE5}7=D}8hx zzSiZsXwv%)bp1v^?_?0K0r<(~hP$>PS!Oz9AM8gja~C)xcwp8umJ^iSP?sl_;1=C2bSk~ zIqV~QVl4FGK3B%d6U`1WoP*7Cv2eqV&l#JUPn+vD?W*2P%gW}`tm3iqo|;^kKr@RH zY4PD%lwX-eR~DX!e8cgN$vb75Ey(67=P7uRfkXkImj>G|>W zXT}Kf9?R3aA>af^1Lr9{g9Fh;$_Uj zO$l^k#i+>nrk<;6AmH+WGxBYsuGwFCoxNu==CgNCpi{TXRX2vbuCbO1if2-j?re3h zNurQfd;WoQ1CIgX=!LSTaoLI0hQ7}~IF*{c56&3_xvB{G$g^!>r0?n(@2eryDTfPDUI#V#9aW zg7STZ?<{>w_Rz$F;Z%C1NHmG5>^o7Q;pZ4a&N~_`xcMwODJn;w2}JlghJocb$*)|6 zM6;;npzW%G-(M|XWg}Q{^O>a?*k{U>`xbMvSSk&7lL(#*;uuFO`zov&EV%jH)Lg2% zgzt+g|Kh(*E?9z>Xq;lZelGwwpWpu*zwftvA#(Y?#rzGTQa}Ew7yi5P_g5Visdyjc z@z<=s#M9dK*LSCv{F%%UeQ!jK5^1Z6D)T6KJ>Z&m?k z4s&xt950}*S?DE)JO+L>j?`HWTD#FjJNJ5MSBZx*QRcUd+Rk}eMzi`HHqe9156*rH zyYdU2@^}@jH*Irke2V^KDKA~wEO>iR1lLNDo6Cr&JM>i#tdtUu!-(<5xroL;azZ^F zI@+pt$MaqZF3lTHjRpDvXs_3UZruscS4*2{$lJ!Zr#=q0S@2C0F-D)@+om6Pm0Qix z&hJD+4D5^7IInszx) -1) { + engineNames[index] = overrides[engine]; + } + } + return engineNames; +} + // This will make an HTTP request to a Mozilla server that will return // JSON data telling us what engine should be set as the default for // the current region, and how soon we should check again. @@ -3568,6 +3596,8 @@ SearchService.prototype = { } } + engineNames = convertGoogleEngines(engineNames); + for (let name of engineNames) { uris.push(APP_SEARCH_PREFIX + name + ".xml"); } From 41b6e48c5df9298e2d9b5ef5f684904a7c8882da Mon Sep 17 00:00:00 2001 From: Marco Bonardo Date: Thu, 20 Dec 2018 17:05:50 +0000 Subject: [PATCH 28/39] Bug 1492149 - Add MOZ_OBJDIR to the pgo env, so cygprofile.txt can be found. r=froydnj Differential Revision: https://phabricator.services.mozilla.com/D15115 --HG-- extra : moz-landing-system : lando --- build/pgo/profileserver.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/build/pgo/profileserver.py b/build/pgo/profileserver.py index 5e909c00ffcb..1474e79bb9df 100755 --- a/build/pgo/profileserver.py +++ b/build/pgo/profileserver.py @@ -91,6 +91,9 @@ if __name__ == '__main__': env['PATH'] = '%s;%s' % (vcdir, env['PATH']) break + # Add MOZ_OBJDIR to the env so that cygprofile.cpp can use it. + env["MOZ_OBJDIR"] = build.topobjdir + # Run Firefox a first time to initialize its profile runner = FirefoxRunner(profile=profile, binary=binary, From a95d5a13143975d773b5ed412be3f8688b7144f0 Mon Sep 17 00:00:00 2001 From: Gijs Kruitbosch Date: Thu, 20 Dec 2018 16:59:05 +0000 Subject: [PATCH 29/39] Bug 1515109 - reduce minimum width for certificate dialog, r=mconley Differential Revision: https://phabricator.services.mozilla.com/D15102 --HG-- extra : moz-landing-system : lando --- security/manager/pki/resources/content/certManager.xul | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/security/manager/pki/resources/content/certManager.xul b/security/manager/pki/resources/content/certManager.xul index 2e777971628f..f3344a9fb41d 100644 --- a/security/manager/pki/resources/content/certManager.xul +++ b/security/manager/pki/resources/content/certManager.xul @@ -13,7 +13,7 @@ data-l10n-id="certmgr-title" onload="LoadCerts();" buttons="accept" - style="width: 63em; height: 32em;" + style="width: 40em; height: 32em;" persist="screenX screenY width height"> From 7b8d7ae83a37f1ca333c6d18aca132a5d651e3a1 Mon Sep 17 00:00:00 2001 From: Jim Blandy Date: Thu, 20 Dec 2018 17:27:51 +0000 Subject: [PATCH 30/39] Bug 1145201: Document OffThreadPromiseTask. r=luke Differential Revision: https://phabricator.services.mozilla.com/D14927 --HG-- extra : moz-landing-system : lando --- js/public/Promise.h | 30 ++++++++++------ js/src/builtin/Promise.cpp | 38 +++++++++++++------- js/src/builtin/Promise.h | 71 ++++++++++++++++++++++++++++++++++---- js/src/vm/HelperThreads.h | 21 +++++++++-- 4 files changed, 129 insertions(+), 31 deletions(-) diff --git a/js/public/Promise.h b/js/public/Promise.h index 7f769568d330..cdb5a43f30e6 100644 --- a/js/public/Promise.h +++ b/js/public/Promise.h @@ -308,16 +308,26 @@ class JS_PUBLIC_API Dispatchable { }; /** - * DispatchToEventLoopCallback may be called from any thread, being passed the - * same 'closure' passed to InitDispatchToEventLoop() and Dispatchable from the - * same JSRuntime. If the embedding returns 'true', the embedding must call - * Dispatchable::run() on an active JSContext thread for the same JSRuntime on - * which 'closure' was registered. If DispatchToEventLoopCallback returns - * 'false', SpiderMonkey will assume a shutdown of the JSRuntime is in progress. - * This contract implies that, by the time the final JSContext is destroyed in - * the JSRuntime, the embedding must have (1) run all Dispatchables for which - * DispatchToEventLoopCallback returned true, (2) already started returning - * false from calls to DispatchToEventLoopCallback. + * Callback to dispatch a JS::Dispatchable to a JSContext's thread's event loop. + * + * The DispatchToEventLoopCallback set on a particular JSContext must accept + * JS::Dispatchable instances and arrange for their `run` methods to be called + * eventually on the JSContext's thread. This is used for cross-thread dispatch, + * so the callback itself must be safe to call from any thread. + * + * If the callback returns `true`, it must eventually run the given + * Dispatchable; otherwise, SpiderMonkey may leak memory or hang. + * + * The callback may return `false` to indicate that the JSContext's thread is + * shutting down and is no longer accepting runnables. Shutting down is a + * one-way transition: once the callback has rejected a runnable, it must reject + * all subsequently submitted runnables as well. + * + * To establish a DispatchToEventLoopCallback, the embedding may either call + * InitDispatchToEventLoop to provide its own, or call js::UseInternalJobQueues + * to select a default implementation built into SpiderMonkey. This latter + * depends on the embedding to call js::RunJobs on the JavaScript thread to + * process queued Dispatchables at appropriate times. */ typedef bool (*DispatchToEventLoopCallback)(void* closure, diff --git a/js/src/builtin/Promise.cpp b/js/src/builtin/Promise.cpp index 2ede6a86218f..6f5738ea222a 100644 --- a/js/src/builtin/Promise.cpp +++ b/js/src/builtin/Promise.cpp @@ -4969,12 +4969,11 @@ void OffThreadPromiseTask::dispatchResolveAndDestroy() { return; } - // We assume, by interface contract, that if the dispatch fails, it's - // because the embedding is in the process of shutting down the JSRuntime. - // Since JSRuntime destruction calls shutdown(), we can rely on shutdown() - // to delete the task on its active JSContext thread. shutdown() waits for - // numCanceled_ == live_.length, so we notify when this condition is - // reached. + // The DispatchToEventLoopCallback has rejected this task, indicating that + // shutdown has begun. Count the number of rejected tasks that have called + // dispatchResolveAndDestroy, and when they account for the entire contents of + // live_, notify OffThreadPromiseRuntimeState::shutdown that it is safe to + // destruct them. LockGuard lock(state.mutex_); state.numCanceled_++; if (state.numCanceled_ == state.live_.count()) { @@ -5105,8 +5104,22 @@ void OffThreadPromiseRuntimeState::shutdown(JSContext* cx) { } { - // Wait until all live OffThreadPromiseRuntimeState have been confirmed - // canceled by OffThreadPromiseTask::dispatchResolve(). + // An OffThreadPromiseTask may only be safely deleted on its JSContext's + // thread (since it contains a PersistentRooted holding its promise), and + // only after it has called dispatchResolveAndDestroy (since that is our + // only indication that its owner is done writing into it). + // + // OffThreadPromiseTasks accepted by the DispatchToEventLoopCallback are + // deleted by their 'run' methods. Only dispatchResolveAndDestroy invokes + // the callback, and the point of the callback is to call 'run' on the + // JSContext's thread, so the conditions above are met. + // + // But although the embedding's DispatchToEventLoopCallback promises to run + // every task it accepts before shutdown, when shutdown does begin it starts + // rejecting tasks; we cannot count on 'run' to clean those up for us. + // Instead, dispatchResolveAndDestroy keeps a count of rejected ('canceled') + // tasks; once that count covers everything in live_, this function itself + // runs only on the JSContext's thread, so we can delete them all here. LockGuard lock(mutex_); while (live_.count() != numCanceled_) { MOZ_ASSERT(numCanceled_ < live_.count()); @@ -5114,13 +5127,14 @@ void OffThreadPromiseRuntimeState::shutdown(JSContext* cx) { } } - // Now that all the tasks have stopped concurrent execution, we can just - // delete everything. We don't want each OffThreadPromiseTask to unregister - // itself (which would mutate live_ while we are iterating over it) so reset - // the tasks' internal registered_ flag. + // Now that live_ contains only cancelled tasks, we can just delete + // everything. for (OffThreadPromiseTaskSet::Range r = live_.all(); !r.empty(); r.popFront()) { OffThreadPromiseTask* task = r.front(); + + // We don't want 'task' to unregister itself (which would mutate live_ while + // we are iterating over it) so reset its internal registered_ flag. MOZ_ASSERT(task->registered_); task->registered_ = false; js_delete(task); diff --git a/js/src/builtin/Promise.h b/js/src/builtin/Promise.h index dbcc0248399c..f3ad86632523 100644 --- a/js/src/builtin/Promise.h +++ b/js/src/builtin/Promise.h @@ -419,13 +419,70 @@ class MOZ_NON_TEMPORARY_CLASS PromiseLookup final { } }; -// An OffThreadPromiseTask holds a rooted Promise JSObject while executing an -// off-thread task (defined by the subclass) that needs to resolve the Promise -// on completion. Because OffThreadPromiseTask contains a PersistentRooted, it -// must be destroyed on an active JSContext thread of the Promise's JSRuntime. -// OffThreadPromiseTasks may be run off-thread in various ways (e.g., see -// PromiseHelperTask). At any time, the task can be dispatched to an active -// JSContext of the Promise's JSRuntime by calling dispatchResolve(). +// [SMDOC] OffThreadPromiseTask: an off-main-thread task that resolves a promise +// +// An OffThreadPromiseTask is an abstract base class holding a JavaScript +// promise that will be resolved (fulfilled or rejected) with the results of a +// task possibly performed by some other thread. +// +// An OffThreadPromiseTask's lifecycle is as follows: +// +// - Some JavaScript native wishes to return a promise of the result of some +// computation that might be performed by other threads (say, helper threads +// or the embedding's I/O threads), so it creates a PromiseObject to represent +// the result, and an OffThreadPromiseTask referring to it. After handing the +// OffThreadPromiseTask to the code doing the actual work, the native is free +// to return the PromiseObject to its caller. +// +// - When the computation is done, successfully or otherwise, it populates the +// OffThreadPromiseTask—which is actually an instance of some concrete +// subclass specific to the task—with the information needed to resolve the +// promise, and calls OffThreadPromiseTask::dispatchResolveAndDestroy. This +// enqueues a runnable on the JavaScript thread to which the promise belongs. +// +// - When it gets around to the runnable, the JavaScript thread calls the +// OffThreadPromiseTask's `resolve` method, which the concrete subclass has +// overriden to resolve the promise appropriately. This probably enqueues a +// promise reaction job. +// +// - The JavaScript thread then deletes the OffThreadPromiseTask. +// +// During shutdown, the process is slightly different. Enqueuing runnables to +// the JavaScript thread begins to fail. JSRuntime shutdown waits for all +// outstanding tasks to call dispatchResolveAndDestroy, and then deletes them on +// the main thread, without calling `resolve`. +// +// For example, the JavaScript function WebAssembly.compile uses +// OffThreadPromiseTask to manage the result of a helper thread task, accepting +// binary WebAssembly code and returning a promise of a compiled +// WebAssembly.Module. It would like to do this compilation work on a helper +// thread. When called by JavaScript, WebAssembly.compile creates a promise, +// builds a CompileBufferTask (the OffThreadPromiseTask concrete subclass) to +// keep track of it, and then hands that to a helper thread. When the helper +// thread is done, successfully or otherwise, it calls the CompileBufferTask's +// dispatchResolveAndDestroy method, which enqueues a runnable to the JavaScript +// thread to resolve the promise and delete the CompileBufferTask. +// (CompileBufferTask actually implements PromiseHelperTask, which implements +// OffThreadPromiseTask; PromiseHelperTask is what our helper thread scheduler +// requires.) +// +// OffThreadPromiseTasks are not limited to use with helper threads. For +// example, a function returning a promise of the result of a network operation +// could provide the code collecting the incoming data with an +// OffThreadPromiseTask for the promise, and let the embedding's network I/O +// threads call dispatchResolveAndDestroy. +// +// An OffThreadPromiseTask has a JSContext, and must be constructed and have its +// 'init' method called on that JSContext's thread. Once initialized, its +// dispatchResolveAndDestroy method may be called from any thread. This is the +// only safe way to destruct an OffThreadPromiseTask; doing so ensures the +// OffThreadPromiseTask's destructor will run on the JSContext's thread, either +// from the event loop or during shutdown. +// +// OffThreadPromiseTask::dispatchResolveAndDestroy uses the +// JS::DispatchToEventLoopCallback provided by the embedding to enqueue +// runnables on the JavaScript thread. See the comments for +// DispatchToEventLoopCallback for details. class OffThreadPromiseTask : public JS::Dispatchable { friend class OffThreadPromiseRuntimeState; diff --git a/js/src/vm/HelperThreads.h b/js/src/vm/HelperThreads.h index 40c117bd131a..39830fc3e2e3 100644 --- a/js/src/vm/HelperThreads.h +++ b/js/src/vm/HelperThreads.h @@ -519,10 +519,22 @@ void CancelOffThreadWasmTier2Generator(); * If helper threads are available, call execute() then dispatchResolve() on the * given task in a helper thread. If no helper threads are available, the given * task is executed and resolved synchronously. + * + * This function takes ownership of task unconditionally; if it fails, task is + * deleted. */ bool StartOffThreadPromiseHelperTask(JSContext* cx, UniquePtr task); +/* + * Like the JSContext-accepting version, but only safe to use when helper + * threads are available, so we can be sure we'll never need to fall back on + * synchronous execution. + * + * This function can be called from any thread, but takes ownership of the task + * only on success. On OOM, it is the caller's responsibility to arrange for the + * task to be cleaned up properly. + */ bool StartOffThreadPromiseHelperTask(PromiseHelperTask* task); /* @@ -838,8 +850,13 @@ class SourceCompressionTask { }; // A PromiseHelperTask is an OffThreadPromiseTask that executes a single job on -// a helper thread. Derived classes do their helper-thread work by implementing -// execute(). +// a helper thread. Call js::StartOffThreadPromiseHelperTask to submit a +// PromiseHelperTask for execution. +// +// Concrete subclasses must implement execute and OffThreadPromiseTask::resolve. +// The helper thread will call execute() to do the main work. Then, the thread +// of the JSContext used to create the PromiseHelperTask will call resolve() to +// resolve promise according to those results. struct PromiseHelperTask : OffThreadPromiseTask { PromiseHelperTask(JSContext* cx, Handle promise) : OffThreadPromiseTask(cx, promise) {} From 18724ec869e60f6a64b44286dca8e0d9dcd68a0d Mon Sep 17 00:00:00 2001 From: Tom Prince Date: Thu, 20 Dec 2018 17:04:04 +0000 Subject: [PATCH 31/39] Bug 1515652: [release] Only build bz2 mars based on esr60 release-type (rather than specific branches); Differential Revision: https://phabricator.services.mozilla.com/D15116 --HG-- extra : moz-landing-system : lando --- taskcluster/ci/repackage-l10n/kind.yml | 5 ++--- taskcluster/ci/repackage/kind.yml | 5 ++--- taskcluster/taskgraph/transforms/repackage.py | 7 +++++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/taskcluster/ci/repackage-l10n/kind.yml b/taskcluster/ci/repackage-l10n/kind.yml index 62d92f23a1c4..ea047959501c 100644 --- a/taskcluster/ci/repackage-l10n/kind.yml +++ b/taskcluster/ci/repackage-l10n/kind.yml @@ -49,9 +49,8 @@ job-template: - repackage/base.py - repackage/win64_signed.py package-formats: - by-project: - # Build bz2 mar's on try to excerise the code - (mozilla-esr60|try): + by-release-type: + esr60: by-build-platform: linux.*: [mar, mar-bz2] linux4\b.*: [mar, mar-bz2] diff --git a/taskcluster/ci/repackage/kind.yml b/taskcluster/ci/repackage/kind.yml index d5e3b018daa6..3625c7f1ef7c 100644 --- a/taskcluster/ci/repackage/kind.yml +++ b/taskcluster/ci/repackage/kind.yml @@ -56,9 +56,8 @@ job-template: - repackage/base.py - repackage/win64_signed.py package-formats: - by-project: - # Build bz2 mar's on try to excerise the code - (mozilla-esr60|try): + by-release-type: + esr60: by-build-platform: linux.*: [mar, mar-bz2] linux4\b.*: [mar, mar-bz2] diff --git a/taskcluster/taskgraph/transforms/repackage.py b/taskcluster/taskgraph/transforms/repackage.py index 51c13634f257..d3dba4de92d8 100644 --- a/taskcluster/taskgraph/transforms/repackage.py +++ b/taskcluster/taskgraph/transforms/repackage.py @@ -60,7 +60,8 @@ packaging_description_schema = schema.extend({ Optional('shipping-product'): job_description_schema['shipping-product'], Optional('shipping-phase'): job_description_schema['shipping-phase'], - Required('package-formats'): optionally_keyed_by('build-platform', 'project', [basestring]), + Required('package-formats'): optionally_keyed_by( + 'build-platform', 'release-type', [basestring]), # All l10n jobs use mozharness Required('mozharness'): { @@ -179,8 +180,10 @@ def handle_keyed_by(config, jobs): for field in fields: resolve_keyed_by( item=job, field=field, - project=config.params['project'], item_name="?", + **{ + 'release-type': config.params['release_type'], + } ) yield job From ac7b92625cf52f991fc2d0d7f9a337a8f7928b2a Mon Sep 17 00:00:00 2001 From: Tom Prince Date: Thu, 20 Dec 2018 17:05:12 +0000 Subject: [PATCH 32/39] Bug 1515652: Pass arch to repackage bz2 mars as well; r=Callek The argument is required, so this causes builds to fail when bz2 mars are created. Differential Revision: https://phabricator.services.mozilla.com/D15117 --HG-- extra : moz-landing-system : lando --- taskcluster/taskgraph/transforms/repackage.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/taskcluster/taskgraph/transforms/repackage.py b/taskcluster/taskgraph/transforms/repackage.py index d3dba4de92d8..6a649f81cf6f 100644 --- a/taskcluster/taskgraph/transforms/repackage.py +++ b/taskcluster/taskgraph/transforms/repackage.py @@ -90,8 +90,10 @@ packaging_description_schema = schema.extend({ # directory. PACKAGE_FORMATS = { 'mar': { - 'args': ['mar', - '--arch', '{architecture}'], + 'args': [ + 'mar', + '--arch', '{architecture}', + ], 'inputs': { 'input': 'target{archive_format}', 'mar': 'mar{executable_extension}', @@ -99,7 +101,10 @@ PACKAGE_FORMATS = { 'output': "target.complete.mar", }, 'mar-bz2': { - 'args': ['mar', "--format", "bz2"], + 'args': [ + 'mar', "--format", "bz2", + '--arch', '{architecture}', + ], 'inputs': { 'input': 'target{archive_format}', 'mar': 'mar{executable_extension}', From 7904bce009ddeb8b11b4df8f3587137fb40c4b31 Mon Sep 17 00:00:00 2001 From: Dan Minor Date: Thu, 20 Dec 2018 17:57:58 +0000 Subject: [PATCH 33/39] Bug 1515548 - Fix potential divide by zero in DesktopCaptureImpl; r=jib This clamps requests for FPS that are below 1 to 1. As far as I can tell, the getDisplayMedia specification does not provide any guidance on how to interpret negative or zero FPS constraints, so this seems like a reasonable limitation. I'm not adding a test here as there will be a wpt test that covers this as part of Bug 1321221. Differential Revision: https://phabricator.services.mozilla.com/D15105 --HG-- extra : moz-landing-system : lando --- .../systemservices/video_engine/desktop_capture_impl.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dom/media/systemservices/video_engine/desktop_capture_impl.cc b/dom/media/systemservices/video_engine/desktop_capture_impl.cc index 7767cc399383..e121420ca363 100644 --- a/dom/media/systemservices/video_engine/desktop_capture_impl.cc +++ b/dom/media/systemservices/video_engine/desktop_capture_impl.cc @@ -592,7 +592,9 @@ int32_t DesktopCaptureImpl::StartCapture( const VideoCaptureCapability& capability) { _requestedCapability = capability; #if defined(_WIN32) - uint32_t maxFPSNeeded = 1000 / _requestedCapability.maxFPS; + uint32_t maxFPSNeeded = _requestedCapability.maxFPS > 0 + ? 1000 / _requestedCapability.maxFPS + : 1000; capturer_thread_->RequestCallbackTimer(maxFPSNeeded); #endif @@ -674,7 +676,9 @@ void DesktopCaptureImpl::process() { ((uint32_t)(rtc::TimeNanos() - startProcessTime)) / rtc::kNumNanosecsPerMillisec; // Use at most x% CPU or limit framerate - const uint32_t maxFPSNeeded = 1000 / _requestedCapability.maxFPS; + const uint32_t maxFPSNeeded = _requestedCapability.maxFPS > 0 + ? 1000 / _requestedCapability.maxFPS + : 1000; const float sleepTimeFactor = (100.0f / kMaxDesktopCaptureCpuUsage) - 1.0f; const uint32_t sleepTime = sleepTimeFactor * processTime; time_event_->Wait(std::max(maxFPSNeeded, sleepTime)); From abae103d6bebb77ddcd3ce45300f46f21b28769b Mon Sep 17 00:00:00 2001 From: Nicolas Chevobbe Date: Thu, 20 Dec 2018 14:37:41 +0000 Subject: [PATCH 34/39] Bug 1514815 - Add an `onReady` prop to the SmartTrace component; r=bgrins. Since the component renders asynchronously, consumers might want to hook up to the actual first rendering. We provide an `onRender` prop that will be called once, when the component is ready. Differential Revision: https://phabricator.services.mozilla.com/D14999 --HG-- extra : moz-landing-system : lando --- .../client/shared/components/SmartTrace.js | 15 ++++++++++++ .../test_smart-trace-source-maps.html | 24 ++++++++++++++++++- .../test/mochitest/test_smart-trace.html | 7 ++++++ 3 files changed, 45 insertions(+), 1 deletion(-) diff --git a/devtools/client/shared/components/SmartTrace.js b/devtools/client/shared/components/SmartTrace.js index db040cb4d1a2..c05595f4e63c 100644 --- a/devtools/client/shared/components/SmartTrace.js +++ b/devtools/client/shared/components/SmartTrace.js @@ -24,6 +24,9 @@ class SmartTrace extends Component { sourceMapService: PropTypes.object, initialRenderDelay: PropTypes.number, onSourceMapResultDebounceDelay: PropTypes.number, + // Function that will be called when the SmartTrace is ready, i.e. once it was + // rendered. + onReady: PropTypes.func, }; } @@ -83,6 +86,12 @@ class SmartTrace extends Component { } } + componentDidMount() { + if (this.props.onReady && this.state.ready) { + this.props.onReady(); + } + } + shouldComponentUpdate(_, nextState) { if (this.state.ready === false && nextState.ready === true) { return true; @@ -95,6 +104,12 @@ class SmartTrace extends Component { return false; } + componentDidUpdate(_, previousState) { + if (this.props.onReady && !previousState.ready && this.state.ready) { + this.props.onReady(); + } + } + componentWillUnmount() { if (this.initialRenderDelayTimeoutId) { clearTimeout(this.initialRenderDelayTimeoutId); diff --git a/devtools/client/shared/components/test/mochitest/test_smart-trace-source-maps.html b/devtools/client/shared/components/test/mochitest/test_smart-trace-source-maps.html index b22e48d4bd1f..2e8bff2e8318 100644 --- a/devtools/client/shared/components/test/mochitest/test_smart-trace-source-maps.html +++ b/devtools/client/shared/components/test/mochitest/test_smart-trace-source-maps.html @@ -39,11 +39,15 @@ window.onload = function() { }, ]; + let onReadyCount = 0; const props = { stacktrace, initialRenderDelay: 2000, onViewSourceInDebugger: () => {}, onViewSourceInScratchpad: () => {}, + onReady: () => { + onReadyCount++; + }, // A mock source map service. sourceMapService: { subscribe: function (url, line, column, callback) { @@ -79,6 +83,8 @@ window.onload = function() { location: "original.js:22", tooltip: "View source in Debugger → https://bugzilla.mozilla.org/original.js:22", }); + + is(onReadyCount, 1, "onReady was called once"); }); add_task(async function testSlowSourcemapService() { @@ -99,12 +105,16 @@ window.onload = function() { const sourcemapTimeout = 2000; const initialRenderDelay = 300; + let onReadyCount = 0; const props = { stacktrace, initialRenderDelay, onViewSourceInDebugger: () => {}, onViewSourceInScratchpad: () => {}, + onReady: () => { + onReadyCount++; + }, // A mock source map service. sourceMapService: { subscribe: function (url, line, column, callback) { @@ -123,6 +133,7 @@ window.onload = function() { let traceEl = ReactDOM.findDOMNode(trace); ok(!traceEl, "Nothing was rendered at first"); + is(onReadyCount, 0, "onReady isn't called if SmartTrace isn't rendered"); info("Wait for the initial delay to be over"); await new Promise(res => setTimeout(res, initialRenderDelay)); @@ -149,6 +160,8 @@ window.onload = function() { tooltip: "View source in Debugger → http://myfile.com/bundle.js:2", }); + is(onReadyCount, 1, "onReady was called once"); + info("Check the the sourcemapped version is rendered after the sourcemapTimeout"); await waitFor(() => !!traceEl.querySelector(".group")); @@ -158,6 +171,8 @@ window.onload = function() { const groups = Array.from(traceEl.querySelectorAll(".group")); is(groups.length, 1, "SmartTrace has a group"); is(groups[0].textContent, "last2React", "A collapsed React group is displayed"); + + is(onReadyCount, 1, "onReady was only called once"); }); add_task(async function testFlakySourcemapService() { @@ -184,6 +199,7 @@ window.onload = function() { const initialRenderDelay = 300; const onSourceMapResultDebounceDelay = 50; + let onReadyCount = 0; const props = { stacktrace, @@ -191,6 +207,9 @@ window.onload = function() { onSourceMapResultDebounceDelay, onViewSourceInDebugger: () => {}, onViewSourceInScratchpad: () => {}, + onReady: () => { + onReadyCount++; + }, // A mock source map service. sourceMapService: { subscribe: function (url, line, column, callback) { @@ -212,6 +231,7 @@ window.onload = function() { let traceEl = ReactDOM.findDOMNode(trace); ok(!traceEl, "Nothing was rendered at first"); + is(onReadyCount, 0, "onReady isn't called if SmartTrace isn't rendered"); info("Wait for the initial delay + debounce to be over"); await waitFor(() => { @@ -224,7 +244,7 @@ window.onload = function() { let frameEls = Array.from(traceEl.querySelectorAll(".frame")); ok(frameEls, "Rendered SmartTrace has frames"); - is(frameEls.length, 3, "SmartTrace has 2 frames"); + is(frameEls.length, 3, "SmartTrace has 3 frames"); info("Check that the original frames are displayed even if there's no sourcemap " + "response for some frames"); @@ -248,6 +268,8 @@ window.onload = function() { location: "file-3.js:33", tooltip: "View source in Debugger → http://myfile.com/file-3.js:33", }); + + is(onReadyCount, 1, "onReady was only called once"); }); }; diff --git a/devtools/client/shared/components/test/mochitest/test_smart-trace.html b/devtools/client/shared/components/test/mochitest/test_smart-trace.html index cc3b39f9dca6..6edf7fb2e24d 100644 --- a/devtools/client/shared/components/test/mochitest/test_smart-trace.html +++ b/devtools/client/shared/components/test/mochitest/test_smart-trace.html @@ -40,10 +40,15 @@ window.onload = function() { }, ]; + let onReadyCount = 0; + const props = { stacktrace, onViewSourceInDebugger: () => {}, onViewSourceInScratchpad: () => {}, + onReady: () => { + onReadyCount++; + } }; const trace = ReactDOM.render(SmartTrace(props), window.document.body); @@ -70,6 +75,8 @@ window.onload = function() { location: "http://myfile.com/loadee.js:10", tooltip: "View source in Debugger → http://myfile.com/loadee.js:10", }); + + is(onReadyCount, 1, "onReady was called once"); }); }; From 9afd273d39d471f6e83ef45ed059a1475259498b Mon Sep 17 00:00:00 2001 From: Nicolas Chevobbe Date: Thu, 20 Dec 2018 14:37:41 +0000 Subject: [PATCH 35/39] Bug 1514815 - Keep console scrolled to bottom when rendering SmartTrace; r=bgrins. Differential Revision: https://phabricator.services.mozilla.com/D15010 --HG-- extra : moz-landing-system : lando --- .../webconsole/components/ConsoleOutput.js | 8 +- .../webconsole/components/GripMessageBody.js | 3 + .../client/webconsole/components/Message.js | 2 + .../message-types/ConsoleApiCall.js | 6 ++ .../message-types/ConsoleCommand.js | 3 + .../message-types/EvaluationResult.js | 4 + .../components/message-types/PageError.js | 3 + .../mochitest/browser_webconsole_scroll.js | 74 ++++++++++++++----- .../webconsole/utils/object-inspector.js | 1 + 9 files changed, 86 insertions(+), 18 deletions(-) diff --git a/devtools/client/webconsole/components/ConsoleOutput.js b/devtools/client/webconsole/components/ConsoleOutput.js index 2d06c1e8d6d6..b9861d40b736 100644 --- a/devtools/client/webconsole/components/ConsoleOutput.js +++ b/devtools/client/webconsole/components/ConsoleOutput.js @@ -67,6 +67,7 @@ class ConsoleOutput extends Component { constructor(props) { super(props); this.onContextMenu = this.onContextMenu.bind(this); + this.maybeScrollToBottom = this.maybeScrollToBottom.bind(this); } componentDidMount() { @@ -125,7 +126,11 @@ class ConsoleOutput extends Component { } componentDidUpdate() { - if (this.shouldScrollBottom) { + this.maybeScrollToBottom(); + } + + maybeScrollToBottom() { + if (this.outputNode && this.shouldScrollBottom) { scrollToBottom(this.outputNode); } } @@ -177,6 +182,7 @@ class ConsoleOutput extends Component { pausedExecutionPoint, getMessage: () => messages.get(messageId), isPaused: pausedMessage && pausedMessage.id == messageId, + maybeScrollToBottom: this.maybeScrollToBottom, })); return ( diff --git a/devtools/client/webconsole/components/GripMessageBody.js b/devtools/client/webconsole/components/GripMessageBody.js index 0a8ff4db4ba0..46d777e9bc7d 100644 --- a/devtools/client/webconsole/components/GripMessageBody.js +++ b/devtools/client/webconsole/components/GripMessageBody.js @@ -36,6 +36,7 @@ GripMessageBody.propTypes = { escapeWhitespace: PropTypes.bool, type: PropTypes.string, helperType: PropTypes.string, + maybeScrollToBottom: PropTypes.func, }; GripMessageBody.defaultProps = { @@ -51,6 +52,7 @@ function GripMessageBody(props) { escapeWhitespace, mode = MODE.LONG, dispatch, + maybeScrollToBottom, } = props; let styleObject; @@ -61,6 +63,7 @@ function GripMessageBody(props) { const objectInspectorProps = { autoExpandDepth: shouldAutoExpandObjectInspector(props) ? 1 : 0, mode, + maybeScrollToBottom, // TODO: we disable focus since the tabbing trail is a bit weird in the output (e.g. // location links are not focused). Let's remove the property below when we found and // fixed the issue (See Bug 1456060). diff --git a/devtools/client/webconsole/components/Message.js b/devtools/client/webconsole/components/Message.js index 8899aaf33064..93e1af35d9fd 100644 --- a/devtools/client/webconsole/components/Message.js +++ b/devtools/client/webconsole/components/Message.js @@ -70,6 +70,7 @@ class Message extends Component { frame: PropTypes.any, })), isPaused: PropTypes.bool, + maybeScrollToBottom: PropTypes.func, }; } @@ -210,6 +211,7 @@ class Message extends Component { onViewSourceInScratchpad: serviceContainer.onViewSourceInScratchpad || serviceContainer.onViewSource, onViewSource: serviceContainer.onViewSource, + onReady: this.props.maybeScrollToBottom, sourceMapService: serviceContainer.sourceMapService, }), ); diff --git a/devtools/client/webconsole/components/message-types/ConsoleApiCall.js b/devtools/client/webconsole/components/message-types/ConsoleApiCall.js index bfcf2991e3b5..72db471c7b40 100644 --- a/devtools/client/webconsole/components/message-types/ConsoleApiCall.js +++ b/devtools/client/webconsole/components/message-types/ConsoleApiCall.js @@ -24,6 +24,7 @@ ConsoleApiCall.propTypes = { open: PropTypes.bool, serviceContainer: PropTypes.object.isRequired, timestampsVisible: PropTypes.bool.isRequired, + maybeScrollToBottom: PropTypes.func, }; ConsoleApiCall.defaultProps = { @@ -41,6 +42,7 @@ function ConsoleApiCall(props) { repeat, pausedExecutionPoint, isPaused, + maybeScrollToBottom, } = props; const { id: messageId, @@ -66,6 +68,7 @@ function ConsoleApiCall(props) { userProvidedStyles, serviceContainer, type, + maybeScrollToBottom, }; if (type === "trace") { @@ -137,6 +140,7 @@ function ConsoleApiCall(props) { timeStamp, timestampsVisible, parameters, + maybeScrollToBottom, }); } @@ -150,6 +154,7 @@ function formatReps(options = {}) { serviceContainer, userProvidedStyles, type, + maybeScrollToBottom, } = options; return ( @@ -166,6 +171,7 @@ function formatReps(options = {}) { loadedObjectProperties, loadedObjectEntries, type, + maybeScrollToBottom, })) // Interleave spaces. .reduce((arr, v, i) => { diff --git a/devtools/client/webconsole/components/message-types/ConsoleCommand.js b/devtools/client/webconsole/components/message-types/ConsoleCommand.js index 0aa9e3ec8ca5..2fcbea2cf046 100644 --- a/devtools/client/webconsole/components/message-types/ConsoleCommand.js +++ b/devtools/client/webconsole/components/message-types/ConsoleCommand.js @@ -17,6 +17,7 @@ ConsoleCommand.propTypes = { message: PropTypes.object.isRequired, timestampsVisible: PropTypes.bool.isRequired, serviceContainer: PropTypes.object, + maybeScrollToBottom: PropTypes.func, }; /** @@ -27,6 +28,7 @@ function ConsoleCommand(props) { message, timestampsVisible, serviceContainer, + maybeScrollToBottom, } = props; const { @@ -51,6 +53,7 @@ function ConsoleCommand(props) { indent, timeStamp, timestampsVisible, + maybeScrollToBottom, }); } diff --git a/devtools/client/webconsole/components/message-types/EvaluationResult.js b/devtools/client/webconsole/components/message-types/EvaluationResult.js index d4837af963cb..497a3b67e550 100644 --- a/devtools/client/webconsole/components/message-types/EvaluationResult.js +++ b/devtools/client/webconsole/components/message-types/EvaluationResult.js @@ -19,6 +19,7 @@ EvaluationResult.propTypes = { message: PropTypes.object.isRequired, timestampsVisible: PropTypes.bool.isRequired, serviceContainer: PropTypes.object, + maybeScrollToBottom: PropTypes.func, }; function EvaluationResult(props) { @@ -27,6 +28,7 @@ function EvaluationResult(props) { message, serviceContainer, timestampsVisible, + maybeScrollToBottom, } = props; const { @@ -63,6 +65,7 @@ function EvaluationResult(props) { escapeWhitespace: false, type, helperType, + maybeScrollToBottom, }); } @@ -83,6 +86,7 @@ function EvaluationResult(props) { parameters, notes, timestampsVisible, + maybeScrollToBottom, }); } diff --git a/devtools/client/webconsole/components/message-types/PageError.js b/devtools/client/webconsole/components/message-types/PageError.js index 3c5fcf281424..71dfed37f4fb 100644 --- a/devtools/client/webconsole/components/message-types/PageError.js +++ b/devtools/client/webconsole/components/message-types/PageError.js @@ -18,6 +18,7 @@ PageError.propTypes = { open: PropTypes.bool, timestampsVisible: PropTypes.bool.isRequired, serviceContainer: PropTypes.object, + maybeScrollToBottom: PropTypes.func, }; PageError.defaultProps = { @@ -33,6 +34,7 @@ function PageError(props) { serviceContainer, timestampsVisible, isPaused, + maybeScrollToBottom, } = props; const { id: messageId, @@ -77,6 +79,7 @@ function PageError(props) { timeStamp, notes, timestampsVisible, + maybeScrollToBottom, }); } diff --git a/devtools/client/webconsole/test/mochitest/browser_webconsole_scroll.js b/devtools/client/webconsole/test/mochitest/browser_webconsole_scroll.js index 49ef23d7db64..91eba671d79f 100644 --- a/devtools/client/webconsole/test/mochitest/browser_webconsole_scroll.js +++ b/devtools/client/webconsole/test/mochitest/browser_webconsole_scroll.js @@ -8,9 +8,16 @@ const TEST_URI = `data:text/html;charset=utf-8,

Web Console test for scroll.

`; add_task(async function() { @@ -23,6 +30,10 @@ add_task(async function() { ok(hasVerticalOverflow(outputContainer), "There is a vertical overflow"); ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); + info("Wait until all stacktraces are rendered"); + await waitFor(() => outputContainer.querySelectorAll(".frames").length === 10); + ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); + await refreshTab(); info("Console should be scrolled to bottom after refresh from page logs"); @@ -30,39 +41,68 @@ add_task(async function() { ok(hasVerticalOverflow(outputContainer), "There is a vertical overflow"); ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); + info("Wait until all stacktraces are rendered"); + await waitFor(() => outputContainer.querySelectorAll(".frames").length === 10); + ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); + info("Scroll up"); outputContainer.scrollTop = 0; - info("Add a message to check that the scroll isn't impacted"); - let receievedMessages = waitForMessages({hud, messages: [{ - text: "stay", - }]}); + info("Add a console.trace message to check that the scroll isn't impacted"); + let onMessage = waitForMessage(hud, "trace in C"); ContentTask.spawn(gBrowser.selectedBrowser, {}, function() { - content.wrappedJSObject.console.log("stay"); + content.wrappedJSObject.c(); }); - await receievedMessages; + let message = await onMessage; ok(hasVerticalOverflow(outputContainer), "There is a vertical overflow"); is(outputContainer.scrollTop, 0, "The console stayed scrolled to the top"); + info("Wait until the stacktrace is rendered"); + await waitFor(() => message.node.querySelector(".frame")); + is(outputContainer.scrollTop, 0, "The console stayed scrolled to the top"); + info("Evaluate a command to check that the console scrolls to the bottom"); - receievedMessages = waitForMessages({hud, messages: [{ - text: "42", - }]}); + onMessage = waitForMessage(hud, "42"); ui.jsterm.execute("21 + 21"); - await receievedMessages; + await onMessage; ok(hasVerticalOverflow(outputContainer), "There is a vertical overflow"); ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); info("Add a message to check that the console do scroll since we're at the bottom"); - receievedMessages = waitForMessages({hud, messages: [{ - text: "scroll", - }]}); + onMessage = waitForMessage(hud, "scroll"); ContentTask.spawn(gBrowser.selectedBrowser, {}, function() { content.wrappedJSObject.console.log("scroll"); }); - await receievedMessages; + await onMessage; ok(hasVerticalOverflow(outputContainer), "There is a vertical overflow"); ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); + + info("Evaluate an Error object to check that the console scrolls to the bottom"); + onMessage = waitForMessage(hud, "myErrorObject", ".message.result"); + ui.jsterm.execute(` + x = new Error("myErrorObject"); + x.stack = "a@b/c.js:1:2\\nd@e/f.js:3:4"; + x;` + ); + message = await onMessage; + ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); + + info("Wait until the stacktrace is rendered and check the console is scrolled"); + await waitFor(() => message.node.querySelector(".objectBox-stackTrace .frame")); + ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); + + info("Add a console.trace message to check that the console stays scrolled to bottom"); + onMessage = waitForMessage(hud, "trace in C"); + ContentTask.spawn(gBrowser.selectedBrowser, {}, function() { + content.wrappedJSObject.c(); + }); + message = await onMessage; + ok(hasVerticalOverflow(outputContainer), "There is a vertical overflow"); + ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); + + info("Wait until the stacktrace is rendered"); + await waitFor(() => message.node.querySelector(".frame")); + ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom"); }); function hasVerticalOverflow(container) { diff --git a/devtools/client/webconsole/utils/object-inspector.js b/devtools/client/webconsole/utils/object-inspector.js index d0a725cc8432..c6bda44f64e7 100644 --- a/devtools/client/webconsole/utils/object-inspector.js +++ b/devtools/client/webconsole/utils/object-inspector.js @@ -62,6 +62,7 @@ function getObjectInspector(grip, serviceContainer, override = {}) { ? serviceContainer.onViewSourceInScratchpad || serviceContainer.onViewSource : null, onViewSource: serviceContainer.onViewSource, + onReady: override.maybeScrollToBottom, sourceMapService: serviceContainer ? serviceContainer.sourceMapService : null, }), }; From 298b2de7c15d734dcef6094d03bfd3584fc26a3c Mon Sep 17 00:00:00 2001 From: Mike Hommey Date: Thu, 20 Dec 2018 18:50:04 +0000 Subject: [PATCH 36/39] Bug 1515604 - Fix artifact builds after bug 1513798. r=nalexander Differential Revision: https://phabricator.services.mozilla.com/D15079 --HG-- extra : moz-landing-system : lando --- build/macosx/cross-mozconfig.common | 4 ++-- build/moz.configure/toolchain.configure | 6 ++++-- build/mozconfig.no-compile | 2 ++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/build/macosx/cross-mozconfig.common b/build/macosx/cross-mozconfig.common index 636171a59f02..651fcf2c3a25 100644 --- a/build/macosx/cross-mozconfig.common +++ b/build/macosx/cross-mozconfig.common @@ -36,8 +36,8 @@ export HOST_CXXFLAGS="-g" export HOST_LDFLAGS="-g" ac_add_options --target=x86_64-apple-darwin11 -ac_add_options --with-macos-sdk=$CROSS_SYSROOT -ac_add_options --with-macos-private-frameworks=$CROSS_PRIVATE_FRAMEWORKS +export MACOS_SDK_DIR=$CROSS_SYSROOT +export MACOS_PRIVATE_FRAMEWORKS_DIR=$CROSS_PRIVATE_FRAMEWORKS if [ "x$MOZ_PKG_SPECIAL" != "xasan" -a -z "$MOZ_AUTOMATION_ARTIFACT_BUILDS" ]; then # Enable static analysis checks by default on OSX cross builds. diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure index 75ca005a16dd..a04611c964f8 100755 --- a/build/moz.configure/toolchain.configure +++ b/build/moz.configure/toolchain.configure @@ -222,7 +222,8 @@ with only_when(target_is_osx): # MacOS SDK # ========= - option('--with-macos-sdk', nargs=1, help='Location of platform SDK to use') + option('--with-macos-sdk', env='MACOS_SDK_DIR', nargs=1, + help='Location of platform SDK to use') @depends_if('--with-macos-sdk') @imports(_from='os.path', _import='isdir') @@ -237,7 +238,8 @@ with only_when(target_is_osx): set_config('MACOS_SDK_DIR', macos_sdk) with only_when(cross_compiling): - option('--with-macos-private-frameworks', nargs=1, + option('--with-macos-private-frameworks', + env="MACOS_PRIVATE_FRAMEWORKS_DIR", nargs=1, help='Location of private frameworks to use') @depends_if('--with-macos-private-frameworks') diff --git a/build/mozconfig.no-compile b/build/mozconfig.no-compile index 41624a84437d..f9aeba2ff540 100644 --- a/build/mozconfig.no-compile +++ b/build/mozconfig.no-compile @@ -25,6 +25,8 @@ unset LLVM_PROFDATA unset WIN64_LINK unset WIN64_LIB unset ENABLE_CLANG_PLUGIN +unset MACOS_SDK_DIR +unset MACOS_PRIVATE_FRAMEWORKS_DIR unset MOZ_STDCXX_COMPAT unset MOZ_NO_PIE_COMPAT From f9b2cfb233818fbb619424fdedfa1893263f65e5 Mon Sep 17 00:00:00 2001 From: "ui.manish" <1991manish.kumar@gmail.com> Date: Tue, 18 Dec 2018 23:01:07 +0000 Subject: [PATCH 37/39] Bug 1324479 remove unused SSL_OCSP_MAY_FETCH telemetry probe from Histograms.json r=keeler Differential Revision: https://phabricator.services.mozilla.com/D14888 --HG-- extra : moz-landing-system : lando --- toolkit/components/telemetry/Histograms.json | 8 -------- toolkit/components/telemetry/histogram-whitelists.json | 2 -- 2 files changed, 10 deletions(-) diff --git a/toolkit/components/telemetry/Histograms.json b/toolkit/components/telemetry/Histograms.json index 33a631e8b7c3..7ddd7324643a 100644 --- a/toolkit/components/telemetry/Histograms.json +++ b/toolkit/components/telemetry/Histograms.json @@ -11024,14 +11024,6 @@ "n_values": 8, "description": "Status of OCSP stapling on this handshake (1=present, good; 2=none; 3=present, expired; 4=present, other error)" }, - "SSL_OCSP_MAY_FETCH": { - "record_in_processes": ["main", "content"], - "alert_emails": ["seceng-telemetry@mozilla.com"], - "expires_in_version": "default", - "kind": "enumerated", - "n_values": 8, - "description": "For non-stapling cases, is OCSP fetching a possibility? (0=yes, 1=no because missing/invalid OCSP URI, 2=no because fetching disabled, 3=no because both)" - }, "SSL_CERT_ERROR_OVERRIDES": { "record_in_processes": ["main", "content"], "alert_emails": ["seceng-telemetry@mozilla.com"], diff --git a/toolkit/components/telemetry/histogram-whitelists.json b/toolkit/components/telemetry/histogram-whitelists.json index 1fbf677371ca..00aca0cfc779 100644 --- a/toolkit/components/telemetry/histogram-whitelists.json +++ b/toolkit/components/telemetry/histogram-whitelists.json @@ -1034,7 +1034,6 @@ "SSL_KEY_EXCHANGE_ALGORITHM_RESUMED", "SSL_NPN_TYPE", "SSL_OBSERVED_END_ENTITY_CERTIFICATE_LIFETIME", - "SSL_OCSP_MAY_FETCH", "SSL_OCSP_STAPLING", "SSL_PERMANENT_CERT_ERROR_OVERRIDES", "SSL_REASONS_FOR_NOT_FALSE_STARTING", @@ -1330,7 +1329,6 @@ "CERT_CHAIN_KEY_SIZE_STATUS", "CHANGES_OF_TARGET_LANGUAGE", "PDF_VIEWER_TIME_TO_VIEW_MS", - "SSL_OCSP_MAY_FETCH", "MOZ_SQLITE_OTHER_READ_B", "TRANSLATION_OPPORTUNITIES", "NEWTAB_PAGE_BLOCKED_SITES_COUNT", From 4d5fd1304edf76dc40566f4999fac8f3f00213fa Mon Sep 17 00:00:00 2001 From: Cosmin Sabou Date: Thu, 20 Dec 2018 18:07:02 +0200 Subject: [PATCH 38/39] Backed out 6 changesets (bug 1504756) as requested by whimboo in order to stop some wpt and mn intermittents. a=backout Backed out changeset d7d78e79f0b3 (bug 1504756) Backed out changeset 5c495fd7f64d (bug 1504756) Backed out changeset 5c2826c58f9e (bug 1504756) Backed out changeset f23b667d8bfa (bug 1504756) Backed out changeset 6068c233f4ef (bug 1504756) Backed out changeset 65858c8c0fbd (bug 1504756) --HG-- extra : rebase_source : 6b895c62a74c6f7521e4a4baff3b0498c65fcbf9 --- testing/marionette/browser.js | 160 ++++------- .../client/marionette_driver/marionette.py | 14 - testing/marionette/doc/internals/sync.rst | 9 +- testing/marionette/driver.js | 119 ++------- .../runner/mixins/window_manager.py | 47 ++-- .../tests/unit/test_chrome.py | 29 +- .../tests/unit/test_click.py | 12 +- .../tests/unit/test_key_actions.py | 19 ++ .../tests/unit/test_navigation.py | 26 +- .../tests/unit/test_screenshot.py | 8 +- .../tests/unit/test_switch_window_chrome.py | 76 +++++- .../tests/unit/test_switch_window_content.py | 82 ++++-- .../tests/unit/test_window_close_chrome.py | 22 +- .../tests/unit/test_window_close_content.py | 47 ++-- .../tests/unit/test_window_handles_chrome.py | 220 ++++++++++----- .../tests/unit/test_window_handles_content.py | 72 ++++- .../tests/unit/test_window_management.py | 86 +++--- .../tests/unit/test_window_status_content.py | 55 ++-- testing/marionette/proxy.js | 6 +- testing/marionette/server.js | 3 +- testing/marionette/sync.js | 250 +++--------------- testing/marionette/test/unit/test_sync.js | 246 ----------------- testing/marionette/transport.js | 19 +- .../tests/execute_script/promise.py.ini | 1 + 24 files changed, 685 insertions(+), 943 deletions(-) diff --git a/testing/marionette/browser.js b/testing/marionette/browser.js index ad02132f08b8..ca276dbe08b4 100644 --- a/testing/marionette/browser.js +++ b/testing/marionette/browser.js @@ -12,8 +12,7 @@ const { UnsupportedOperationError, } = ChromeUtils.import("chrome://marionette/content/error.js", {}); const { - waitForEvent, - waitForObserverTopic, + MessageManagerDestroyedPromise, } = ChromeUtils.import("chrome://marionette/content/sync.js", {}); this.EXPORTED_SYMBOLS = ["browser", "Context", "WindowState"]; @@ -71,11 +70,11 @@ this.Context = Context; */ browser.getBrowserForTab = function(tab) { // Fennec - if (tab && "browser" in tab) { + if ("browser" in tab) { return tab.browser; // Firefox - } else if (tab && "linkedBrowser" in tab) { + } else if ("linkedBrowser" in tab) { return tab.linkedBrowser; } @@ -288,59 +287,17 @@ browser.Context = class { * A promise which is resolved when the current window has been closed. */ closeWindow() { - // Create a copy of the messageManager before it is disconnected - let messageManager = this.window.messageManager; - let disconnected = waitForObserverTopic("message-manager-disconnect", - subject => subject === messageManager); - let unloaded = waitForEvent(this.window, "unload"); + return new Promise(resolve => { + // Wait for the window message manager to be destroyed + let destroyed = new MessageManagerDestroyedPromise( + this.window.messageManager); - this.window.close(); - - return Promise.all([disconnected, unloaded]); - } - - /** - * Open a new browser window. - * - * @return {Promise} - * A promise resolving to the newly created chrome window. - */ - async openBrowserWindow(focus = false) { - switch (this.driver.appName) { - case "firefox": - // Open new browser window, and wait until it is fully loaded. - // Also wait for the window to be focused and activated to prevent a - // race condition when promptly focusing to the original window again. - let win = this.window.OpenBrowserWindow(); - - // Bug 1509380 - Missing focus/activate event when Firefox is not - // the top-most application. As such wait for the next tick, and - // manually focus the newly opened window. - win.setTimeout(() => win.focus(), 0); - - let activated = waitForEvent(win, "activate"); - let focused = waitForEvent(win, "focus", {capture: true}); - let startup = waitForObserverTopic("browser-delayed-startup-finished", - subject => subject == win); - await Promise.all([activated, focused, startup]); - - if (!focus) { - // The new window shouldn't get focused. As such set the - // focus back to the currently selected window. - activated = waitForEvent(this.window, "activate"); - focused = waitForEvent(this.window, "focus", {capture: true}); - - this.window.focus(); - - await Promise.all([activated, focused]); - } - - return win; - - default: - throw new UnsupportedOperationError( - `openWindow() not supported in ${this.driver.appName}`); - } + this.window.addEventListener("unload", async () => { + await destroyed; + resolve(); + }, {once: true}); + this.window.close(); + }); } /** @@ -362,65 +319,40 @@ browser.Context = class { return this.closeWindow(); } - // Create a copy of the messageManager before it is disconnected - let messageManager = this.messageManager; - let disconnected = waitForObserverTopic("message-manager-disconnect", - subject => subject === messageManager); + return new Promise((resolve, reject) => { + // Wait for the browser message manager to be destroyed + let browserDetached = async () => { + await new MessageManagerDestroyedPromise(this.messageManager); + resolve(); + }; - let tabClosed; - - switch (this.driver.appName) { - case "fennec": + if (this.tabBrowser.closeTab) { // Fennec - tabClosed = waitForEvent(this.tabBrowser.deck, "TabClose"); + this.tabBrowser.deck.addEventListener( + "TabClose", browserDetached, {once: true}); this.tabBrowser.closeTab(this.tab); - break; - case "firefox": - tabClosed = waitForEvent(this.tab, "TabClose"); + } else if (this.tabBrowser.removeTab) { + // Firefox + this.tab.addEventListener( + "TabClose", browserDetached, {once: true}); this.tabBrowser.removeTab(this.tab); - break; - default: - throw new UnsupportedOperationError( - `closeTab() not supported in ${this.driver.appName}`); - } - - return Promise.all([disconnected, tabClosed]); + } else { + reject(new UnsupportedOperationError( + `closeTab() not supported in ${this.driver.appName}`)); + } + }); } /** - * Open a new tab in the currently selected chrome window. + * Opens a tab with given URI. + * + * @param {string} uri + * URI to open. */ - async openTab(focus = false) { - let tab = null; - let tabOpened = waitForEvent(this.window, "TabOpen"); - - switch (this.driver.appName) { - case "fennec": - tab = this.tabBrowser.addTab(null, {selected: focus}); - break; - - case "firefox": - this.window.BrowserOpenTab(); - tab = this.tabBrowser.selectedTab; - - // The new tab is always selected by default. If focus is not wanted, - // the previously tab needs to be selected again. - if (!focus) { - this.tabBrowser.selectedTab = this.tab; - } - - break; - - default: - throw new UnsupportedOperationError( - `openTab() not supported in ${this.driver.appName}`); - } - - await tabOpened; - - return tab; + addTab(uri) { + return this.tabBrowser.addTab(uri, true); } /** @@ -454,18 +386,16 @@ browser.Context = class { this.tab = this.tabBrowser.tabs[index]; if (focus) { - switch (this.driver.appName) { - case "fennec": - this.tabBrowser.selectTab(this.tab); - break; + if (this.tabBrowser.selectTab) { + // Fennec + this.tabBrowser.selectTab(this.tab); - case "firefox": - this.tabBrowser.selectedTab = this.tab; - break; + } else if ("selectedTab" in this.tabBrowser) { + // Firefox + this.tabBrowser.selectedTab = this.tab; - default: - throw new UnsupportedOperationError( - `switchToTab() not supported in ${this.driver.appName}`); + } else { + throw new UnsupportedOperationError("switchToTab() not supported"); } } } diff --git a/testing/marionette/client/marionette_driver/marionette.py b/testing/marionette/client/marionette_driver/marionette.py index 425e678f77fd..3f5b09057b71 100644 --- a/testing/marionette/client/marionette_driver/marionette.py +++ b/testing/marionette/client/marionette_driver/marionette.py @@ -1428,20 +1428,6 @@ class Marionette(object): return self._send_message("WebDriver:GetPageSource", key="value") - def open(self, type=None, focus=False): - """Open a new window, or tab based on the specified context type. - - If no context type is given the application will choose the best - option based on tab and window support. - - :param type: Type of window to be opened. Can be one of "tab" or "window" - :param focus: If true, the opened window will be focused - - :returns: Dict with new window handle, and type of opened window - """ - body = {"type": type, "focus": focus} - return self._send_message("WebDriver:NewWindow", body) - def close(self): """Close the current window, ending the session if it's the last window currently open. diff --git a/testing/marionette/doc/internals/sync.rst b/testing/marionette/doc/internals/sync.rst index 0ec60ff5600d..d5f35dedf94e 100644 --- a/testing/marionette/doc/internals/sync.rst +++ b/testing/marionette/doc/internals/sync.rst @@ -3,7 +3,8 @@ sync module Provides an assortment of synchronisation primitives. -.. js:autofunction:: executeSoon +.. js:autoclass:: MessageManagerDestroyedPromise + :members: .. js:autoclass:: PollPromise :members: @@ -13,9 +14,3 @@ Provides an assortment of synchronisation primitives. .. js:autoclass:: TimedPromise :members: - -.. js:autofunction:: waitForEvent - -.. js:autofunction:: waitForMessage - -.. js:autofunction:: waitForObserverTopic diff --git a/testing/marionette/driver.js b/testing/marionette/driver.js index ac59a7e9d242..af9f758676fe 100644 --- a/testing/marionette/driver.js +++ b/testing/marionette/driver.js @@ -62,8 +62,6 @@ const { IdlePromise, PollPromise, TimedPromise, - waitForEvent, - waitForObserverTopic, } = ChromeUtils.import("chrome://marionette/content/sync.js", {}); XPCOMUtils.defineLazyGetter(this, "logger", Log.get); @@ -108,12 +106,13 @@ const globalMessageManager = Services.mm; * * @class GeckoDriver * + * @param {string} appId + * Unique identifier of the application. * @param {MarionetteServer} server * The instance of Marionette server. */ -this.GeckoDriver = function(server) { - this.appId = Services.appinfo.ID; - this.appName = Services.appinfo.name.toLowerCase(); +this.GeckoDriver = function(appId, server) { + this.appId = appId; this._server = server; this.sessionID = null; @@ -1308,7 +1307,6 @@ GeckoDriver.prototype.getIdForBrowser = function(browser) { if (browser === null) { return null; } - let permKey = browser.permanentKey; if (this._browserIds.has(permKey)) { return this._browserIds.get(permKey); @@ -2724,73 +2722,6 @@ GeckoDriver.prototype.deleteCookie = async function(cmd) { } }; -/** - * Open a new top-level browsing context. - * - * @param {string=} type - * Optional type of the new top-level browsing context. Can be one of - * `tab` or `window`. - * @param {boolean=} focus - * Optional flag if the new top-level browsing context should be opened - * in foreground (focused) or background (not focused). - * - * @return {Object.} - * Handle and type of the new browsing context. - */ -GeckoDriver.prototype.newWindow = async function(cmd) { - assert.open(this.getCurrentWindow(Context.Content)); - await this._handleUserPrompts(); - - let focus = false; - if (typeof cmd.parameters.focus != "undefined") { - focus = assert.boolean(cmd.parameters.focus, - pprint`Expected "focus" to be a boolean, got ${cmd.parameters.focus}`); - } - - let type; - if (typeof cmd.parameters.type != "undefined") { - type = assert.string(cmd.parameters.type, - pprint`Expected "type" to be a string, got ${cmd.parameters.type}`); - } - - let types = ["tab", "window"]; - switch (this.appName) { - case "firefox": - if (typeof type == "undefined" || !types.includes(type)) { - type = "window"; - } - break; - case "fennec": - if (typeof type == "undefined" || !types.includes(type)) { - type = "tab"; - } - break; - } - - let contentBrowser; - - switch (type) { - case "tab": - let tab = await this.curBrowser.openTab(focus); - contentBrowser = browser.getBrowserForTab(tab); - break; - - default: - let win = await this.curBrowser.openBrowserWindow(focus); - contentBrowser = browser.getTabBrowser(win).selectedBrowser; - } - - // Even with the framescript registered, the browser might not be known to - // the parent process yet. Wait until it is available. - // TODO: Fix by using `Browser:Init` or equivalent on bug 1311041 - let windowId = await new PollPromise((resolve, reject) => { - let id = this.getIdForBrowser(contentBrowser); - this.windowHandles.includes(id) ? resolve(id) : reject(); - }); - - return {"handle": windowId.toString(), type}; -}; - /** * Close the currently selected tab/window. * @@ -3170,14 +3101,16 @@ GeckoDriver.prototype.dismissDialog = async function() { let win = assert.open(this.getCurrentWindow()); this._checkIfAlertIsPresent(); - let dialogClosed = waitForEvent(win, "DOMModalDialogClosed"); + await new Promise(resolve => { + win.addEventListener("DOMModalDialogClosed", async () => { + await new IdlePromise(win); + this.dialog = null; + resolve(); + }, {once: true}); - let {button0, button1} = this.dialog.ui; - (button1 ? button1 : button0).click(); - - await dialogClosed; - - this.dialog = null; + let {button0, button1} = this.dialog.ui; + (button1 ? button1 : button0).click(); + }); }; /** @@ -3188,14 +3121,16 @@ GeckoDriver.prototype.acceptDialog = async function() { let win = assert.open(this.getCurrentWindow()); this._checkIfAlertIsPresent(); - let dialogClosed = waitForEvent(win, "DOMModalDialogClosed"); + await new Promise(resolve => { + win.addEventListener("DOMModalDialogClosed", async () => { + await new IdlePromise(win); + this.dialog = null; + resolve(); + }, {once: true}); - let {button0} = this.dialog.ui; - button0.click(); - - await dialogClosed; - - this.dialog = null; + let {button0} = this.dialog.ui; + button0.click(); + }); }; /** @@ -3366,10 +3301,15 @@ GeckoDriver.prototype.quit = async function(cmd) { this.deleteSession(); // delay response until the application is about to quit - let quitApplication = waitForObserverTopic("quit-application"); + let quitApplication = new Promise(resolve => { + Services.obs.addObserver( + (subject, topic, data) => resolve(data), + "quit-application"); + }); + Services.startup.quit(mode); - return {cause: (await quitApplication).data}; + return {cause: await quitApplication}; }; GeckoDriver.prototype.installAddon = function(cmd) { @@ -3631,7 +3571,6 @@ GeckoDriver.prototype.commands = { "WebDriver:MaximizeWindow": GeckoDriver.prototype.maximizeWindow, "WebDriver:Navigate": GeckoDriver.prototype.get, "WebDriver:NewSession": GeckoDriver.prototype.newSession, - "WebDriver:NewWindow": GeckoDriver.prototype.newWindow, "WebDriver:PerformActions": GeckoDriver.prototype.performActions, "WebDriver:Refresh": GeckoDriver.prototype.refresh, "WebDriver:ReleaseActions": GeckoDriver.prototype.releaseActions, diff --git a/testing/marionette/harness/marionette_harness/runner/mixins/window_manager.py b/testing/marionette/harness/marionette_harness/runner/mixins/window_manager.py index 2eccee63f6f1..42172a285a1f 100644 --- a/testing/marionette/harness/marionette_harness/runner/mixins/window_manager.py +++ b/testing/marionette/harness/marionette_harness/runner/mixins/window_manager.py @@ -6,12 +6,14 @@ from __future__ import absolute_import import sys -from marionette_driver import Wait +from marionette_driver import By, Wait from six import reraise class WindowManagerMixin(object): + _menu_item_new_tab = (By.ID, "menu_newNavigatorTab") + def setUp(self): super(WindowManagerMixin, self).setUp() @@ -58,18 +60,15 @@ class WindowManagerMixin(object): self.marionette.switch_to_window(self.start_window) - def open_tab(self, callback=None, focus=False): + def open_tab(self, trigger="menu"): current_tabs = self.marionette.window_handles try: - if callable(callback): - callback() - else: - result = self.marionette.open(type="tab", focus=focus) - if result["type"] != "tab": - raise Exception( - "Newly opened browsing context is of type {} and not tab.".format( - result["type"])) + if callable(trigger): + trigger() + elif trigger == 'menu': + with self.marionette.using_context("chrome"): + self.marionette.find_element(*self._menu_item_new_tab).click() except Exception: exc, val, tb = sys.exc_info() reraise(exc, 'Failed to trigger opening a new tab: {}'.format(val), tb) @@ -83,9 +82,8 @@ class WindowManagerMixin(object): return new_tab - def open_window(self, callback=None, focus=False): + def open_window(self, trigger=None): current_windows = self.marionette.chrome_window_handles - current_tabs = self.marionette.window_handles def loaded(handle): with self.marionette.using_context("chrome"): @@ -97,14 +95,11 @@ class WindowManagerMixin(object): """, script_args=[handle]) try: - if callable(callback): - callback() + if callable(trigger): + trigger() else: - result = self.marionette.open(type="window", focus=focus) - if result["type"] != "window": - raise Exception( - "Newly opened browsing context is of type {} and not window.".format( - result["type"])) + with self.marionette.using_context("chrome"): + self.marionette.execute_script("OpenBrowserWindow();") except Exception: exc, val, tb = sys.exc_info() reraise(exc, 'Failed to trigger opening a new window: {}'.format(val), tb) @@ -121,16 +116,9 @@ class WindowManagerMixin(object): lambda _: loaded(new_window), message="Window with handle '{}'' did not finish loading".format(new_window)) - # Bug 1507771 - Return the correct handle based on the currently selected context - # as long as "WebDriver:NewWindow" is not handled separtely in chrome context - context = self.marionette._send_message("Marionette:GetContext", key="value") - if context == "chrome": - return new_window - elif context == "content": - [new_tab] = list(set(self.marionette.window_handles) - set(current_tabs)) - return new_tab + return new_window - def open_chrome_window(self, url, focus=False): + def open_chrome_window(self, url): """Open a new chrome window with the specified chrome URL. Can be replaced with "WebDriver:NewWindow" once the command @@ -178,5 +166,4 @@ class WindowManagerMixin(object): })(); """, script_args=(url,)) - with self.marionette.using_context("chrome"): - return self.open_window(callback=open_with_js, focus=focus) + return self.open_window(trigger=open_with_js) diff --git a/testing/marionette/harness/marionette_harness/tests/unit/test_chrome.py b/testing/marionette/harness/marionette_harness/tests/unit/test_chrome.py index ad40ebee7e55..fbe9ec2885a2 100644 --- a/testing/marionette/harness/marionette_harness/tests/unit/test_chrome.py +++ b/testing/marionette/harness/marionette_harness/tests/unit/test_chrome.py @@ -1,5 +1,22 @@ +#Copyright 2007-2009 WebDriver committers +#Copyright 2007-2009 Google Inc. +# +#Licensed under the Apache License, Version 2.0 (the "License"); +#you may not use this file except in compliance with the License. +#You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +#Unless required by applicable law or agreed to in writing, software +#distributed under the License is distributed on an "AS IS" BASIS, +#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +#See the License for the specific language governing permissions and +#limitations under the License. + from __future__ import absolute_import +from marionette_driver import By + from marionette_harness import MarionetteTestCase, WindowManagerMixin @@ -8,13 +25,18 @@ class ChromeTests(WindowManagerMixin, MarionetteTestCase): def setUp(self): super(ChromeTests, self).setUp() + self.marionette.set_context('chrome') + def tearDown(self): self.close_all_windows() super(ChromeTests, self).tearDown() def test_hang_until_timeout(self): - with self.marionette.using_context("chrome"): - new_window = self.open_window() + def open_with_menu(): + menu = self.marionette.find_element(By.ID, 'aboutName') + menu.click() + + new_window = self.open_window(trigger=open_with_menu) self.marionette.switch_to_window(new_window) try: @@ -23,8 +45,7 @@ class ChromeTests(WindowManagerMixin, MarionetteTestCase): # while running this test. Otherwise it would mask eg. IOError as # thrown for a socket timeout. raise NotImplementedError('Exception should not cause a hang when ' - 'closing the chrome window in content ' - 'context') + 'closing the chrome window') finally: self.marionette.close_chrome_window() self.marionette.switch_to_window(self.start_window) diff --git a/testing/marionette/harness/marionette_harness/tests/unit/test_click.py b/testing/marionette/harness/marionette_harness/tests/unit/test_click.py index 9cf5b4a3bbc6..d1bde3b2bbf3 100644 --- a/testing/marionette/harness/marionette_harness/tests/unit/test_click.py +++ b/testing/marionette/harness/marionette_harness/tests/unit/test_click.py @@ -449,16 +449,20 @@ class TestClickCloseContext(WindowManagerMixin, MarionetteTestCase): super(TestClickCloseContext, self).tearDown() def test_click_close_tab(self): - new_tab = self.open_tab() - self.marionette.switch_to_window(new_tab) + self.marionette.navigate(self.marionette.absolute_url("windowHandles.html")) + tab = self.open_tab( + lambda: self.marionette.find_element(By.ID, "new-tab").click()) + self.marionette.switch_to_window(tab) self.marionette.navigate(self.test_page) self.marionette.find_element(By.ID, "close-window").click() @skip_if_mobile("Fennec doesn't support other chrome windows") def test_click_close_window(self): - new_tab = self.open_window() - self.marionette.switch_to_window(new_tab) + self.marionette.navigate(self.marionette.absolute_url("windowHandles.html")) + win = self.open_window( + lambda: self.marionette.find_element(By.ID, "new-window").click()) + self.marionette.switch_to_window(win) self.marionette.navigate(self.test_page) self.marionette.find_element(By.ID, "close-window").click() diff --git a/testing/marionette/harness/marionette_harness/tests/unit/test_key_actions.py b/testing/marionette/harness/marionette_harness/tests/unit/test_key_actions.py index 75f89fb250ac..4a7544b792da 100644 --- a/testing/marionette/harness/marionette_harness/tests/unit/test_key_actions.py +++ b/testing/marionette/harness/marionette_harness/tests/unit/test_key_actions.py @@ -77,3 +77,22 @@ class TestKeyActions(WindowManagerMixin, MarionetteTestCase): .key_down("x") .perform()) self.assertEqual(self.key_reporter_value, "") + + @skip_if_mobile("Interacting with chrome windows not available for Fennec") + def test_open_in_new_window_shortcut(self): + + def open_window_with_action(): + el = self.marionette.find_element(By.TAG_NAME, "a") + (self.key_action.key_down(Keys.SHIFT) + .press(el) + .release() + .key_up(Keys.SHIFT) + .perform()) + + self.marionette.navigate(inline("Click")) + new_window = self.open_window(trigger=open_window_with_action) + + self.marionette.switch_to_window(new_window) + self.marionette.close_chrome_window() + + self.marionette.switch_to_window(self.start_window) diff --git a/testing/marionette/harness/marionette_harness/tests/unit/test_navigation.py b/testing/marionette/harness/marionette_harness/tests/unit/test_navigation.py index 1c0dc3db0854..fa47f81adf95 100644 --- a/testing/marionette/harness/marionette_harness/tests/unit/test_navigation.py +++ b/testing/marionette/harness/marionette_harness/tests/unit/test_navigation.py @@ -55,8 +55,13 @@ class BaseNavigationTestCase(WindowManagerMixin, MarionetteTestCase): else: self.mod_key = Keys.CONTROL + def open_with_link(): + link = self.marionette.find_element(By.ID, "new-blank-tab") + link.click() + # Always use a blank new tab for an empty history - self.new_tab = self.open_tab() + self.marionette.navigate(self.marionette.absolute_url("windowHandles.html")) + self.new_tab = self.open_tab(open_with_link) self.marionette.switch_to_window(self.new_tab) Wait(self.marionette, timeout=self.marionette.timeout.page_load).until( lambda _: self.history_length == 1, @@ -293,6 +298,7 @@ class TestNavigate(BaseNavigationTestCase): focus_el = self.marionette.find_element(By.CSS_SELECTOR, ":focus") self.assertEqual(self.marionette.get_active_element(), focus_el) + @skip_if_mobile("Needs application independent method to open a new tab") def test_no_hang_when_navigating_after_closing_original_tab(self): # Close the start tab self.marionette.switch_to_window(self.start_tab) @@ -334,6 +340,22 @@ class TestNavigate(BaseNavigationTestCase): message="'{}' hasn't been loaded".format(self.test_page_remote)) self.assertTrue(self.is_remote_tab) + @skip_if_mobile("On Android no shortcuts are available") + def test_navigate_shortcut_key(self): + + def open_with_shortcut(): + self.marionette.navigate(self.test_page_remote) + with self.marionette.using_context("chrome"): + main_win = self.marionette.find_element(By.ID, "main-window") + main_win.send_keys(self.mod_key, Keys.SHIFT, "a") + + new_tab = self.open_tab(trigger=open_with_shortcut) + self.marionette.switch_to_window(new_tab) + + Wait(self.marionette, timeout=self.marionette.timeout.page_load).until( + lambda mn: mn.get_url() == "about:addons", + message="'about:addons' hasn't been loaded") + class TestBackForwardNavigation(BaseNavigationTestCase): @@ -801,7 +823,7 @@ class TestPageLoadStrategy(BaseNavigationTestCase): @skip("Bug 1422741 - Causes following tests to fail in loading remote browser") @run_if_e10s("Requires e10s mode enabled") def test_strategy_after_remoteness_change(self): - """Bug 1378191 - Reset of capabilities after listener reload.""" + """Bug 1378191 - Reset of capabilities after listener reload""" self.marionette.delete_session() self.marionette.start_session({"pageLoadStrategy": "eager"}) diff --git a/testing/marionette/harness/marionette_harness/tests/unit/test_screenshot.py b/testing/marionette/harness/marionette_harness/tests/unit/test_screenshot.py index 5c5928eb4ca7..afb2d929404e 100644 --- a/testing/marionette/harness/marionette_harness/tests/unit/test_screenshot.py +++ b/testing/marionette/harness/marionette_harness/tests/unit/test_screenshot.py @@ -253,8 +253,7 @@ class TestScreenCaptureChrome(WindowManagerMixin, ScreenCaptureTestCase): chrome_document_element = self.document_element with self.marionette.using_context('content'): - self.assertRaisesRegexp(NoSuchElementException, - "Web element reference not seen before", + self.assertRaisesRegexp(NoSuchElementException, "Web element reference not seen before", self.marionette.screenshot, highlights=[chrome_document_element]) @@ -275,9 +274,10 @@ class TestScreenCaptureContent(WindowManagerMixin, ScreenCaptureTestCase): return [document.body.scrollWidth, document.body.scrollHeight] """)) + @skip_if_mobile("Needs application independent method to open a new tab") def test_capture_tab_already_closed(self): - new_tab = self.open_tab() - self.marionette.switch_to_window(new_tab) + tab = self.open_tab() + self.marionette.switch_to_window(tab) self.marionette.close() self.assertRaises(NoSuchWindowException, self.marionette.screenshot) diff --git a/testing/marionette/harness/marionette_harness/tests/unit/test_switch_window_chrome.py b/testing/marionette/harness/marionette_harness/tests/unit/test_switch_window_chrome.py index 111ae1f970d5..2ff58cfa35c6 100644 --- a/testing/marionette/harness/marionette_harness/tests/unit/test_switch_window_chrome.py +++ b/testing/marionette/harness/marionette_harness/tests/unit/test_switch_window_chrome.py @@ -6,9 +6,10 @@ from __future__ import absolute_import import os import sys - from unittest import skipIf +from marionette_driver import By + # add this directory to the path sys.path.append(os.path.dirname(__file__)) @@ -27,70 +28,119 @@ class TestSwitchWindowChrome(TestSwitchToWindowContent): super(TestSwitchWindowChrome, self).tearDown() - @skipIf(sys.platform.startswith("linux"), - "Bug 1511970 - New window isn't moved to the background on Linux") + def open_window_in_background(self): + with self.marionette.using_context("chrome"): + self.marionette.execute_async_script(""" + let callback = arguments[0]; + (async function() { + function promiseEvent(target, type, args) { + return new Promise(r => { + let params = Object.assign({once: true}, args); + target.addEventListener(type, r, params); + }); + } + function promiseWindowFocus(w) { + return Promise.all([ + promiseEvent(w, "focus", {capture: true}), + promiseEvent(w, "activate"), + ]); + } + // Open a window, wait for it to receive focus + let win = OpenBrowserWindow(); + await promiseWindowFocus(win); + + // Now refocus our original window and wait for that to happen. + let windowFocusPromise = promiseWindowFocus(window); + window.focus(); + return windowFocusPromise; + })().then(() => { + // can't just pass `callback`, as we can't JSON-ify the events it'd get passed. + callback() + }); + """) + + def open_window_in_foreground(self): + with self.marionette.using_context("content"): + self.marionette.navigate(self.test_page) + link = self.marionette.find_element(By.ID, "new-window") + link.click() + def test_switch_tabs_for_new_background_window_without_focus_change(self): - # Open an additional tab in the original window so we can better check + # Open an addition tab in the original window so we can better check # the selected index in thew new window to be opened. - second_tab = self.open_tab(focus=True) + second_tab = self.open_tab(trigger=self.open_tab_in_foreground) self.marionette.switch_to_window(second_tab, focus=True) second_tab_index = self.get_selected_tab_index() self.assertNotEqual(second_tab_index, self.selected_tab_index) - # Open a new background window, but we are interested in the tab - with self.marionette.using_context("content"): - tab_in_new_window = self.open_window() + # Opens a new background window, but we are interested in the tab + tab_in_new_window = self.open_tab(trigger=self.open_window_in_background) self.assertEqual(self.marionette.current_window_handle, second_tab) self.assertEqual(self.marionette.current_chrome_window_handle, self.start_window) self.assertEqual(self.get_selected_tab_index(), second_tab_index) + with self.marionette.using_context("content"): + self.assertEqual(self.marionette.get_url(), self.empty_page) # Switch to the tab in the new window but don't focus it self.marionette.switch_to_window(tab_in_new_window, focus=False) self.assertEqual(self.marionette.current_window_handle, tab_in_new_window) self.assertNotEqual(self.marionette.current_chrome_window_handle, self.start_window) self.assertEqual(self.get_selected_tab_index(), second_tab_index) + with self.marionette.using_context("content"): + self.assertEqual(self.marionette.get_url(), "about:blank") def test_switch_tabs_for_new_foreground_window_with_focus_change(self): # Open an addition tab in the original window so we can better check # the selected index in thew new window to be opened. - second_tab = self.open_tab() + second_tab = self.open_tab(trigger=self.open_tab_in_foreground) self.marionette.switch_to_window(second_tab, focus=True) second_tab_index = self.get_selected_tab_index() self.assertNotEqual(second_tab_index, self.selected_tab_index) # Opens a new window, but we are interested in the tab - with self.marionette.using_context("content"): - tab_in_new_window = self.open_window(focus=True) + tab_in_new_window = self.open_tab(trigger=self.open_window_in_foreground) self.assertEqual(self.marionette.current_window_handle, second_tab) self.assertEqual(self.marionette.current_chrome_window_handle, self.start_window) self.assertNotEqual(self.get_selected_tab_index(), second_tab_index) + with self.marionette.using_context("content"): + self.assertEqual(self.marionette.get_url(), self.test_page) self.marionette.switch_to_window(tab_in_new_window) self.assertEqual(self.marionette.current_window_handle, tab_in_new_window) self.assertNotEqual(self.marionette.current_chrome_window_handle, self.start_window) self.assertNotEqual(self.get_selected_tab_index(), second_tab_index) + with self.marionette.using_context("content"): + self.assertEqual(self.marionette.get_url(), self.empty_page) self.marionette.switch_to_window(second_tab, focus=True) self.assertEqual(self.marionette.current_window_handle, second_tab) self.assertEqual(self.marionette.current_chrome_window_handle, self.start_window) # Bug 1335085 - The focus doesn't change even as requested so. # self.assertEqual(self.get_selected_tab_index(), second_tab_index) + with self.marionette.using_context("content"): + self.assertEqual(self.marionette.get_url(), self.test_page) def test_switch_tabs_for_new_foreground_window_without_focus_change(self): # Open an addition tab in the original window so we can better check # the selected index in thew new window to be opened. - second_tab = self.open_tab() + second_tab = self.open_tab(trigger=self.open_tab_in_foreground) self.marionette.switch_to_window(second_tab, focus=True) second_tab_index = self.get_selected_tab_index() self.assertNotEqual(second_tab_index, self.selected_tab_index) - self.open_window(focus=True) + # Opens a new window, but we are interested in the tab which automatically + # gets the focus. + self.open_tab(trigger=self.open_window_in_foreground) self.assertEqual(self.marionette.current_window_handle, second_tab) self.assertEqual(self.marionette.current_chrome_window_handle, self.start_window) self.assertNotEqual(self.get_selected_tab_index(), second_tab_index) + with self.marionette.using_context("content"): + self.assertEqual(self.marionette.get_url(), self.test_page) # Switch to the second tab in the first window, but don't focus it. self.marionette.switch_to_window(second_tab, focus=False) self.assertEqual(self.marionette.current_window_handle, second_tab) self.assertEqual(self.marionette.current_chrome_window_handle, self.start_window) self.assertNotEqual(self.get_selected_tab_index(), second_tab_index) + with self.marionette.using_context("content"): + self.assertEqual(self.marionette.get_url(), self.test_page) diff --git a/testing/marionette/harness/marionette_harness/tests/unit/test_switch_window_content.py b/testing/marionette/harness/marionette_harness/tests/unit/test_switch_window_content.py index e8ff9b25dc7d..ccf5c1262952 100644 --- a/testing/marionette/harness/marionette_harness/tests/unit/test_switch_window_content.py +++ b/testing/marionette/harness/marionette_harness/tests/unit/test_switch_window_content.py @@ -4,10 +4,10 @@ from __future__ import absolute_import -from marionette_driver import By +from marionette_driver import Actions, By, Wait from marionette_driver.keys import Keys -from marionette_harness import MarionetteTestCase, WindowManagerMixin +from marionette_harness import MarionetteTestCase, skip_if_mobile, WindowManagerMixin class TestSwitchToWindowContent(WindowManagerMixin, MarionetteTestCase): @@ -20,8 +20,14 @@ class TestSwitchToWindowContent(WindowManagerMixin, MarionetteTestCase): else: self.mod_key = Keys.CONTROL + self.empty_page = self.marionette.absolute_url("empty.html") + self.test_page = self.marionette.absolute_url("windowHandles.html") + self.selected_tab_index = self.get_selected_tab_index() + with self.marionette.using_context("content"): + self.marionette.navigate(self.test_page) + def tearDown(self): self.close_all_tabs() @@ -63,51 +69,78 @@ class TestSwitchToWindowContent(WindowManagerMixin, MarionetteTestCase): } """) + def open_tab_in_background(self): + with self.marionette.using_context("content"): + link = self.marionette.find_element(By.ID, "new-tab") + + action = Actions(self.marionette) + action.key_down(self.mod_key).click(link).perform() + + def open_tab_in_foreground(self): + with self.marionette.using_context("content"): + link = self.marionette.find_element(By.ID, "new-tab") + link.click() + def test_switch_tabs_with_focus_change(self): - new_tab = self.open_tab(focus=True) + new_tab = self.open_tab(self.open_tab_in_foreground) self.assertEqual(self.marionette.current_window_handle, self.start_tab) self.assertNotEqual(self.get_selected_tab_index(), self.selected_tab_index) + with self.marionette.using_context("content"): + self.assertEqual(self.marionette.get_url(), self.test_page) - # Switch to new tab first because it is already selected self.marionette.switch_to_window(new_tab) self.assertEqual(self.marionette.current_window_handle, new_tab) self.assertNotEqual(self.get_selected_tab_index(), self.selected_tab_index) - # Switch to original tab by explicitely setting the focus + with self.marionette.using_context("content"): + Wait(self.marionette, timeout=self.marionette.timeout.page_load).until( + lambda _: self.marionette.get_url() == self.empty_page, + message="{} has been loaded in the newly opened tab.".format(self.empty_page)) + self.marionette.switch_to_window(self.start_tab, focus=True) self.assertEqual(self.marionette.current_window_handle, self.start_tab) self.assertEqual(self.get_selected_tab_index(), self.selected_tab_index) + with self.marionette.using_context("content"): + self.assertEqual(self.marionette.get_url(), self.test_page) self.marionette.switch_to_window(new_tab) self.marionette.close() - self.marionette.switch_to_window(self.start_tab) + self.assertEqual(self.marionette.current_window_handle, self.start_tab) self.assertEqual(self.get_selected_tab_index(), self.selected_tab_index) + with self.marionette.using_context("content"): + self.assertEqual(self.marionette.get_url(), self.test_page) def test_switch_tabs_without_focus_change(self): - new_tab = self.open_tab(focus=True) + new_tab = self.open_tab(self.open_tab_in_foreground) self.assertEqual(self.marionette.current_window_handle, self.start_tab) self.assertNotEqual(self.get_selected_tab_index(), self.selected_tab_index) + with self.marionette.using_context("content"): + self.assertEqual(self.marionette.get_url(), self.test_page) # Switch to new tab first because it is already selected self.marionette.switch_to_window(new_tab) self.assertEqual(self.marionette.current_window_handle, new_tab) - # Switch to original tab by explicitely not setting the focus self.marionette.switch_to_window(self.start_tab, focus=False) self.assertEqual(self.marionette.current_window_handle, self.start_tab) self.assertNotEqual(self.get_selected_tab_index(), self.selected_tab_index) + with self.marionette.using_context("content"): + self.assertEqual(self.marionette.get_url(), self.test_page) + self.marionette.switch_to_window(new_tab) self.marionette.close() self.marionette.switch_to_window(self.start_tab) self.assertEqual(self.marionette.current_window_handle, self.start_tab) self.assertEqual(self.get_selected_tab_index(), self.selected_tab_index) + with self.marionette.using_context("content"): + self.assertEqual(self.marionette.get_url(), self.test_page) def test_switch_from_content_to_chrome_window_should_not_change_selected_tab(self): - new_tab = self.open_tab(focus=True) + new_tab = self.open_tab(self.open_tab_in_foreground) self.marionette.switch_to_window(new_tab) self.assertEqual(self.marionette.current_window_handle, new_tab) @@ -117,31 +150,24 @@ class TestSwitchToWindowContent(WindowManagerMixin, MarionetteTestCase): self.assertEqual(self.marionette.current_window_handle, new_tab) self.assertEqual(self.get_selected_tab_index(), new_tab_index) - def test_switch_to_new_private_browsing_tab(self): + @skip_if_mobile("New windows not supported in Fennec") + def test_switch_to_new_private_browsing_window_has_to_register_browsers(self): # Test that tabs (browsers) are correctly registered for a newly opened - # private browsing window/tab. This has to also happen without explicitely + # private browsing window. This has to also happen without explicitely # switching to the tab itself before using any commands in content scope. # # Note: Not sure why this only affects private browsing windows only. - new_tab = self.open_tab(focus=True) - self.marionette.switch_to_window(new_tab) - def open_private_browsing_window_firefox(): + def open_private_browsing_window(): with self.marionette.using_context("content"): - self.marionette.find_element(By.ID, "startPrivateBrowsing").click() + self.marionette.navigate("about:privatebrowsing") + button = self.marionette.find_element(By.ID, "startPrivateBrowsing") + button.click() - def open_private_browsing_tab_fennec(): - with self.marionette.using_context("content"): - self.marionette.find_element(By.ID, "newPrivateTabLink").click() + new_window = self.open_window(open_private_browsing_window) + self.marionette.switch_to_window(new_window) + self.assertEqual(self.marionette.current_chrome_window_handle, new_window) + self.assertNotEqual(self.marionette.current_window_handle, self.start_tab) with self.marionette.using_context("content"): - self.marionette.navigate("about:privatebrowsing") - if self.marionette.session_capabilities["browserName"] == "fennec": - new_pb_tab = self.open_tab(open_private_browsing_tab_fennec) - else: - new_pb_tab = self.open_tab(open_private_browsing_window_firefox) - - self.marionette.switch_to_window(new_pb_tab) - self.assertEqual(self.marionette.current_window_handle, new_pb_tab) - - self.marionette.execute_script(" return true; ") + self.marionette.execute_script(" return true; ") diff --git a/testing/marionette/harness/marionette_harness/tests/unit/test_window_close_chrome.py b/testing/marionette/harness/marionette_harness/tests/unit/test_window_close_chrome.py index 79d9d6ddefea..ec13c5a4ed19 100644 --- a/testing/marionette/harness/marionette_harness/tests/unit/test_window_close_chrome.py +++ b/testing/marionette/harness/marionette_harness/tests/unit/test_window_close_chrome.py @@ -21,14 +21,14 @@ class TestCloseWindow(WindowManagerMixin, MarionetteTestCase): super(TestCloseWindow, self).tearDown() def test_close_chrome_window_for_browser_window(self): - new_window = self.open_window() - self.marionette.switch_to_window(new_window) + win = self.open_window() + self.marionette.switch_to_window(win) - self.assertNotIn(new_window, self.marionette.window_handles) + self.assertNotIn(win, self.marionette.window_handles) chrome_window_handles = self.marionette.close_chrome_window() - self.assertNotIn(new_window, chrome_window_handles) + self.assertNotIn(win, chrome_window_handles) self.assertListEqual(self.start_windows, chrome_window_handles) - self.assertNotIn(new_window, self.marionette.window_handles) + self.assertNotIn(win, self.marionette.window_handles) def test_close_chrome_window_for_non_browser_window(self): win = self.open_chrome_window("chrome://marionette/content/test.xul") @@ -50,20 +50,20 @@ class TestCloseWindow(WindowManagerMixin, MarionetteTestCase): self.assertIsNotNone(self.marionette.session) def test_close_window_for_browser_tab(self): - new_tab = self.open_tab() - self.marionette.switch_to_window(new_tab) + tab = self.open_tab() + self.marionette.switch_to_window(tab) window_handles = self.marionette.close() - self.assertNotIn(new_tab, window_handles) + self.assertNotIn(tab, window_handles) self.assertListEqual(self.start_tabs, window_handles) def test_close_window_for_browser_window_with_single_tab(self): - new_window = self.open_window() - self.marionette.switch_to_window(new_window) + win = self.open_window() + self.marionette.switch_to_window(win) self.assertEqual(len(self.start_tabs) + 1, len(self.marionette.window_handles)) window_handles = self.marionette.close() - self.assertNotIn(new_window, window_handles) + self.assertNotIn(win, window_handles) self.assertListEqual(self.start_tabs, window_handles) self.assertListEqual(self.start_windows, self.marionette.chrome_window_handles) diff --git a/testing/marionette/harness/marionette_harness/tests/unit/test_window_close_content.py b/testing/marionette/harness/marionette_harness/tests/unit/test_window_close_content.py index 46b4f6ba4a63..4107ae235233 100644 --- a/testing/marionette/harness/marionette_harness/tests/unit/test_window_close_content.py +++ b/testing/marionette/harness/marionette_harness/tests/unit/test_window_close_content.py @@ -24,27 +24,26 @@ class TestCloseWindow(WindowManagerMixin, MarionetteTestCase): @skip_if_mobile("Interacting with chrome windows not available for Fennec") def test_close_chrome_window_for_browser_window(self): - with self.marionette.using_context("chrome"): - new_window = self.open_window() - self.marionette.switch_to_window(new_window) + win = self.open_window() + self.marionette.switch_to_window(win) - self.assertIn(new_window, self.marionette.chrome_window_handles) + self.assertNotIn(win, self.marionette.window_handles) chrome_window_handles = self.marionette.close_chrome_window() - self.assertNotIn(new_window, chrome_window_handles) + self.assertNotIn(win, chrome_window_handles) self.assertListEqual(self.start_windows, chrome_window_handles) - self.assertNotIn(new_window, self.marionette.window_handles) + self.assertNotIn(win, self.marionette.window_handles) @skip_if_mobile("Interacting with chrome windows not available for Fennec") def test_close_chrome_window_for_non_browser_window(self): - new_window = self.open_chrome_window("chrome://marionette/content/test.xul") - self.marionette.switch_to_window(new_window) + win = self.open_chrome_window("chrome://marionette/content/test.xul") + self.marionette.switch_to_window(win) - self.assertIn(new_window, self.marionette.chrome_window_handles) - self.assertNotIn(new_window, self.marionette.window_handles) + self.assertIn(win, self.marionette.chrome_window_handles) + self.assertNotIn(win, self.marionette.window_handles) chrome_window_handles = self.marionette.close_chrome_window() - self.assertNotIn(new_window, chrome_window_handles) + self.assertNotIn(win, chrome_window_handles) self.assertListEqual(self.start_windows, chrome_window_handles) - self.assertNotIn(new_window, self.marionette.window_handles) + self.assertNotIn(win, self.marionette.window_handles) @skip_if_mobile("Interacting with chrome windows not available for Fennec") def test_close_chrome_window_for_last_open_window(self): @@ -55,17 +54,19 @@ class TestCloseWindow(WindowManagerMixin, MarionetteTestCase): self.assertListEqual([self.start_window], self.marionette.chrome_window_handles) self.assertIsNotNone(self.marionette.session) + @skip_if_mobile("Needs application independent method to open a new tab") def test_close_window_for_browser_tab(self): - new_tab = self.open_tab() - self.marionette.switch_to_window(new_tab) + tab = self.open_tab() + self.marionette.switch_to_window(tab) window_handles = self.marionette.close() - self.assertNotIn(new_tab, window_handles) + self.assertNotIn(tab, window_handles) self.assertListEqual(self.start_tabs, window_handles) + @skip_if_mobile("Needs application independent method to open a new tab") def test_close_window_with_dismissed_beforeunload_prompt(self): - new_tab = self.open_tab() - self.marionette.switch_to_window(new_tab) + tab = self.open_tab() + self.marionette.switch_to_window(tab) self.marionette.navigate(inline(""" @@ -81,12 +82,12 @@ class TestCloseWindow(WindowManagerMixin, MarionetteTestCase): @skip_if_mobile("Interacting with chrome windows not available for Fennec") def test_close_window_for_browser_window_with_single_tab(self): - new_tab = self.open_window() - self.marionette.switch_to_window(new_tab) + win = self.open_window() + self.marionette.switch_to_window(win) - self.assertEqual(len(self.marionette.window_handles), len(self.start_tabs) + 1) + self.assertEqual(len(self.start_tabs) + 1, len(self.marionette.window_handles)) window_handles = self.marionette.close() - self.assertNotIn(new_tab, window_handles) + self.assertNotIn(win, window_handles) self.assertListEqual(self.start_tabs, window_handles) self.assertListEqual(self.start_windows, self.marionette.chrome_window_handles) @@ -103,8 +104,8 @@ class TestCloseWindow(WindowManagerMixin, MarionetteTestCase): self.close_all_tabs() test_page = self.marionette.absolute_url("windowHandles.html") - new_tab = self.open_tab() - self.marionette.switch_to_window(new_tab) + tab = self.open_tab() + self.marionette.switch_to_window(tab) self.marionette.navigate(test_page) self.marionette.switch_to_window(self.start_tab) diff --git a/testing/marionette/harness/marionette_harness/tests/unit/test_window_handles_chrome.py b/testing/marionette/harness/marionette_harness/tests/unit/test_window_handles_chrome.py index b55cc45f9383..c850a0286757 100644 --- a/testing/marionette/harness/marionette_harness/tests/unit/test_window_handles_chrome.py +++ b/testing/marionette/harness/marionette_harness/tests/unit/test_window_handles_chrome.py @@ -6,7 +6,7 @@ from __future__ import absolute_import import types -from marionette_driver import errors +from marionette_driver import By, errors, Wait from marionette_harness import MarionetteTestCase, WindowManagerMixin @@ -16,7 +16,9 @@ class TestWindowHandles(WindowManagerMixin, MarionetteTestCase): def setUp(self): super(TestWindowHandles, self).setUp() - self.xul_dialog = "chrome://marionette/content/test_dialog.xul" + self.empty_page = self.marionette.absolute_url("empty.html") + self.test_page = self.marionette.absolute_url("windowHandles.html") + self.marionette.navigate(self.test_page) self.marionette.set_context("chrome") @@ -40,16 +42,17 @@ class TestWindowHandles(WindowManagerMixin, MarionetteTestCase): self.assertIsInstance(handle, types.StringTypes) def test_chrome_window_handles_with_scopes(self): - new_browser = self.open_window() + # Open a browser and a non-browser (about window) chrome window + self.open_window( + trigger=lambda: self.marionette.execute_script("OpenBrowserWindow();")) self.assert_window_handles() self.assertEqual(len(self.marionette.chrome_window_handles), len(self.start_windows) + 1) - self.assertIn(new_browser, self.marionette.chrome_window_handles) self.assertEqual(self.marionette.current_chrome_window_handle, self.start_window) - new_dialog = self.open_chrome_window(self.xul_dialog) + self.open_window( + trigger=lambda: self.marionette.find_element(By.ID, "aboutName").click()) self.assert_window_handles() self.assertEqual(len(self.marionette.chrome_window_handles), len(self.start_windows) + 2) - self.assertIn(new_dialog, self.marionette.chrome_window_handles) self.assertEqual(self.marionette.current_chrome_window_handle, self.start_window) chrome_window_handles_in_chrome_scope = self.marionette.chrome_window_handles @@ -61,112 +64,117 @@ class TestWindowHandles(WindowManagerMixin, MarionetteTestCase): self.assertEqual(self.marionette.window_handles, window_handles_in_chrome_scope) - def test_chrome_window_handles_after_opening_new_chrome_window(self): - new_window = self.open_chrome_window(self.xul_dialog) + def test_chrome_window_handles_after_opening_new_dialog(self): + xul_dialog = "chrome://marionette/content/test_dialog.xul" + new_win = self.open_chrome_window(xul_dialog) self.assert_window_handles() self.assertEqual(len(self.marionette.chrome_window_handles), len(self.start_windows) + 1) - self.assertIn(new_window, self.marionette.chrome_window_handles) self.assertEqual(self.marionette.current_chrome_window_handle, self.start_window) - # Check that the new chrome window has the correct URL loaded - self.marionette.switch_to_window(new_window) + # Check that the new tab has the correct page loaded + self.marionette.switch_to_window(new_win) self.assert_window_handles() - self.assertEqual(self.marionette.current_chrome_window_handle, new_window) - self.assertEqual(self.marionette.get_url(), self.xul_dialog) + self.assertEqual(self.marionette.current_chrome_window_handle, new_win) + self.assertEqual(self.marionette.get_url(), xul_dialog) - # Close the chrome window, and carry on in our original window. + # Close the opened dialog and carry on in our original tab. self.marionette.close_chrome_window() self.assert_window_handles() self.assertEqual(len(self.marionette.chrome_window_handles), len(self.start_windows)) - self.assertNotIn(new_window, self.marionette.chrome_window_handles) self.marionette.switch_to_window(self.start_window) self.assert_window_handles() self.assertEqual(self.marionette.current_chrome_window_handle, self.start_window) + with self.marionette.using_context("content"): + self.assertEqual(self.marionette.get_url(), self.test_page) def test_chrome_window_handles_after_opening_new_window(self): - new_window = self.open_window() + def open_with_link(): + with self.marionette.using_context("content"): + link = self.marionette.find_element(By.ID, "new-window") + link.click() + + # We open a new window but are actually interested in the new tab + new_win = self.open_window(trigger=open_with_link) self.assert_window_handles() self.assertEqual(len(self.marionette.chrome_window_handles), len(self.start_windows) + 1) - self.assertIn(new_window, self.marionette.chrome_window_handles) self.assertEqual(self.marionette.current_chrome_window_handle, self.start_window) - self.marionette.switch_to_window(new_window) + # Check that the new tab has the correct page loaded + self.marionette.switch_to_window(new_win) self.assert_window_handles() - self.assertEqual(self.marionette.current_chrome_window_handle, new_window) + self.assertEqual(self.marionette.current_chrome_window_handle, new_win) + with self.marionette.using_context("content"): + Wait(self.marionette, timeout=self.marionette.timeout.page_load).until( + lambda mn: mn.get_url() == self.empty_page, + message="{} did not load after opening a new tab".format(self.empty_page)) - # Close the opened window and carry on in our original window. + # Ensure navigate works in our current window + other_page = self.marionette.absolute_url("test.html") + with self.marionette.using_context("content"): + self.marionette.navigate(other_page) + self.assertEqual(self.marionette.get_url(), other_page) + + # Close the opened window and carry on in our original tab. self.marionette.close() self.assert_window_handles() self.assertEqual(len(self.marionette.chrome_window_handles), len(self.start_windows)) - self.assertNotIn(new_window, self.marionette.chrome_window_handles) self.marionette.switch_to_window(self.start_window) self.assert_window_handles() self.assertEqual(self.marionette.current_chrome_window_handle, self.start_window) + with self.marionette.using_context("content"): + self.assertEqual(self.marionette.get_url(), self.test_page) def test_window_handles_after_opening_new_tab(self): - with self.marionette.using_context("content"): - new_tab = self.open_tab() + def open_with_link(): + with self.marionette.using_context("content"): + link = self.marionette.find_element(By.ID, "new-tab") + link.click() + + new_tab = self.open_tab(trigger=open_with_link) self.assert_window_handles() self.assertEqual(len(self.marionette.window_handles), len(self.start_tabs) + 1) - self.assertIn(new_tab, self.marionette.window_handles) self.assertEqual(self.marionette.current_window_handle, self.start_tab) self.marionette.switch_to_window(new_tab) self.assert_window_handles() self.assertEqual(self.marionette.current_window_handle, new_tab) + with self.marionette.using_context("content"): + Wait(self.marionette, timeout=self.marionette.timeout.page_load).until( + lambda mn: mn.get_url() == self.empty_page, + message="{} did not load after opening a new tab".format(self.empty_page)) + + # Ensure navigate works in our current tab + other_page = self.marionette.absolute_url("test.html") + with self.marionette.using_context("content"): + self.marionette.navigate(other_page) + self.assertEqual(self.marionette.get_url(), other_page) self.marionette.switch_to_window(self.start_tab) self.assert_window_handles() self.assertEqual(self.marionette.current_window_handle, self.start_tab) + with self.marionette.using_context("content"): + self.assertEqual(self.marionette.get_url(), self.test_page) self.marionette.switch_to_window(new_tab) self.marionette.close() self.assert_window_handles() self.assertEqual(len(self.marionette.window_handles), len(self.start_tabs)) - self.assertNotIn(new_tab, self.marionette.window_handles) self.marionette.switch_to_window(self.start_tab) - self.assert_window_handles() self.assertEqual(self.marionette.current_window_handle, self.start_tab) - def test_window_handles_after_opening_new_foreground_tab(self): - with self.marionette.using_context("content"): - new_tab = self.open_tab(focus=True) - self.assert_window_handles() - self.assertEqual(len(self.marionette.window_handles), len(self.start_tabs) + 1) - self.assertIn(new_tab, self.marionette.window_handles) - self.assertEqual(self.marionette.current_window_handle, self.start_tab) - - # We still have the default tab set as our window handle. This - # get_url command should be sent immediately, and not be forever-queued. - with self.marionette.using_context("content"): - self.marionette.get_url() - - self.marionette.switch_to_window(new_tab) - self.assert_window_handles() - self.assertEqual(self.marionette.current_window_handle, new_tab) - - self.marionette.close() + def test_window_handles_after_opening_new_dialog(self): + xul_dialog = "chrome://marionette/content/test_dialog.xul" + new_win = self.open_chrome_window(xul_dialog) self.assert_window_handles() self.assertEqual(len(self.marionette.window_handles), len(self.start_tabs)) - self.assertNotIn(new_tab, self.marionette.window_handles) - - self.marionette.switch_to_window(self.start_tab) - self.assert_window_handles() self.assertEqual(self.marionette.current_window_handle, self.start_tab) - def test_window_handles_after_opening_new_chrome_window(self): - new_window = self.open_chrome_window(self.xul_dialog) + self.marionette.switch_to_window(new_win) self.assert_window_handles() - self.assertEqual(len(self.marionette.window_handles), len(self.start_tabs)) - self.assertNotIn(new_window, self.marionette.window_handles) - self.assertEqual(self.marionette.current_window_handle, self.start_tab) - - self.marionette.switch_to_window(new_window) - self.assert_window_handles() - self.assertEqual(self.marionette.get_url(), self.xul_dialog) + self.assertEqual(self.marionette.get_url(), xul_dialog) # Check that the opened dialog is not accessible via window handles with self.assertRaises(errors.NoSuchWindowException): @@ -182,24 +190,112 @@ class TestWindowHandles(WindowManagerMixin, MarionetteTestCase): self.marionette.switch_to_window(self.start_tab) self.assert_window_handles() self.assertEqual(self.marionette.current_window_handle, self.start_tab) - - def test_window_handles_after_closing_original_tab(self): with self.marionette.using_context("content"): - new_tab = self.open_tab() + self.assertEqual(self.marionette.get_url(), self.test_page) + + def test_window_handles_after_opening_new_window(self): + def open_with_link(): + with self.marionette.using_context("content"): + link = self.marionette.find_element(By.ID, "new-window") + link.click() + + # We open a new window but are actually interested in the new tab + new_tab = self.open_tab(trigger=open_with_link) + self.assert_window_handles() + self.assertEqual(len(self.marionette.window_handles), len(self.start_tabs) + 1) + self.assertEqual(self.marionette.current_window_handle, self.start_tab) + + # Check that the new tab has the correct page loaded + self.marionette.switch_to_window(new_tab) + self.assert_window_handles() + self.assertEqual(self.marionette.current_window_handle, new_tab) + with self.marionette.using_context("content"): + Wait(self.marionette, timeout=self.marionette.timeout.page_load).until( + lambda mn: mn.get_url() == self.empty_page, + message="{} did not load after opening a new tab".format(self.empty_page)) + + # Ensure navigate works in our current window + other_page = self.marionette.absolute_url("test.html") + with self.marionette.using_context("content"): + self.marionette.navigate(other_page) + self.assertEqual(self.marionette.get_url(), other_page) + + # Close the opened window and carry on in our original tab. + self.marionette.close() + self.assert_window_handles() + self.assertEqual(len(self.marionette.window_handles), len(self.start_tabs)) + + self.marionette.switch_to_window(self.start_tab) + self.assert_window_handles() + self.assertEqual(self.marionette.current_window_handle, self.start_tab) + with self.marionette.using_context("content"): + self.assertEqual(self.marionette.get_url(), self.test_page) + + def test_window_handles_after_closing_original_tab(self): + def open_with_link(): + with self.marionette.using_context("content"): + link = self.marionette.find_element(By.ID, "new-tab") + link.click() + + new_tab = self.open_tab(trigger=open_with_link) self.assert_window_handles() self.assertEqual(len(self.marionette.window_handles), len(self.start_tabs) + 1) - self.assertIn(new_tab, self.marionette.window_handles) self.assertEqual(self.marionette.current_window_handle, self.start_tab) self.marionette.close() self.assert_window_handles() self.assertEqual(len(self.marionette.window_handles), len(self.start_tabs)) - self.assertIn(new_tab, self.marionette.window_handles) + + self.marionette.switch_to_window(new_tab) + self.assert_window_handles() + self.assertEqual(self.marionette.current_window_handle, new_tab) + with self.marionette.using_context("content"): + Wait(self.marionette, timeout=self.marionette.timeout.page_load).until( + lambda mn: mn.get_url() == self.empty_page, + message="{} did not load after opening a new tab".format(self.empty_page)) + + def test_window_handles_no_switch(self): + """Regression test for bug 1294456. + This test is testing the case where Marionette attempts to send a + command to a window handle when the browser has opened and selected + a new tab. Before bug 1294456 landed, the Marionette driver was getting + confused about which window handle the client cared about, and assumed + it was the window handle for the newly opened and selected tab. + + This caused Marionette to think that the browser needed to do a remoteness + flip in the e10s case, since the tab opened by menu_newNavigatorTab is + about:newtab (which is currently non-remote). This meant that commands + sent to what should have been the original window handle would be + queued and never sent, since the remoteness flip in the new tab was + never going to happen. + """ + def open_with_menu(): + menu_new_tab = self.marionette.find_element(By.ID, 'menu_newNavigatorTab') + menu_new_tab.click() + + new_tab = self.open_tab(trigger=open_with_menu) + self.assert_window_handles() + + # We still have the default tab set as our window handle. This + # get_url command should be sent immediately, and not be forever-queued. + with self.marionette.using_context("content"): + self.assertEqual(self.marionette.get_url(), self.test_page) + + self.assertEqual(len(self.marionette.window_handles), len(self.start_tabs) + 1) + self.assertEqual(self.marionette.current_window_handle, self.start_tab) self.marionette.switch_to_window(new_tab) self.assert_window_handles() self.assertEqual(self.marionette.current_window_handle, new_tab) + self.marionette.close() + self.assert_window_handles() + self.assertEqual(len(self.marionette.window_handles), len(self.start_tabs)) + + self.marionette.switch_to_window(self.start_tab) + self.assert_window_handles() + self.assertEqual(self.marionette.current_window_handle, self.start_tab) + def test_window_handles_after_closing_last_window(self): self.close_all_windows() self.assertEqual(self.marionette.close_chrome_window(), []) diff --git a/testing/marionette/harness/marionette_harness/tests/unit/test_window_handles_content.py b/testing/marionette/harness/marionette_harness/tests/unit/test_window_handles_content.py index bc95f9a30be4..2a19bdb82fa8 100644 --- a/testing/marionette/harness/marionette_harness/tests/unit/test_window_handles_content.py +++ b/testing/marionette/harness/marionette_harness/tests/unit/test_window_handles_content.py @@ -7,7 +7,7 @@ from __future__ import absolute_import import types import urllib -from marionette_driver import errors +from marionette_driver import By, errors, Wait from marionette_harness import MarionetteTestCase, skip_if_mobile, WindowManagerMixin @@ -21,7 +21,9 @@ class TestWindowHandles(WindowManagerMixin, MarionetteTestCase): def setUp(self): super(TestWindowHandles, self).setUp() - self.xul_dialog = "chrome://marionette/content/test_dialog.xul" + self.empty_page = self.marionette.absolute_url("empty.html") + self.test_page = self.marionette.absolute_url("windowHandles.html") + self.marionette.navigate(self.test_page) def tearDown(self): self.close_all_tabs() @@ -37,8 +39,12 @@ class TestWindowHandles(WindowManagerMixin, MarionetteTestCase): for handle in self.marionette.window_handles: self.assertIsInstance(handle, types.StringTypes) - def tst_window_handles_after_opening_new_tab(self): - new_tab = self.open_tab() + def test_window_handles_after_opening_new_tab(self): + def open_with_link(): + link = self.marionette.find_element(By.ID, "new-tab") + link.click() + + new_tab = self.open_tab(trigger=open_with_link) self.assert_window_handles() self.assertEqual(len(self.marionette.window_handles), len(self.start_tabs) + 1) self.assertEqual(self.marionette.current_window_handle, self.start_tab) @@ -46,9 +52,13 @@ class TestWindowHandles(WindowManagerMixin, MarionetteTestCase): self.marionette.switch_to_window(new_tab) self.assert_window_handles() self.assertEqual(self.marionette.current_window_handle, new_tab) + Wait(self.marionette, timeout=self.marionette.timeout.page_load).until( + lambda mn: mn.get_url() == self.empty_page, + message="{} did not load after opening a new tab".format(self.empty_page)) self.marionette.switch_to_window(self.start_tab) self.assertEqual(self.marionette.current_window_handle, self.start_tab) + self.assertEqual(self.marionette.get_url(), self.test_page) self.marionette.switch_to_window(new_tab) self.marionette.close() @@ -59,15 +69,29 @@ class TestWindowHandles(WindowManagerMixin, MarionetteTestCase): self.assert_window_handles() self.assertEqual(self.marionette.current_window_handle, self.start_tab) - def tst_window_handles_after_opening_new_browser_window(self): - new_tab = self.open_window() + def test_window_handles_after_opening_new_browser_window(self): + def open_with_link(): + link = self.marionette.find_element(By.ID, "new-window") + link.click() + + # We open a new window but are actually interested in the new tab + new_tab = self.open_tab(trigger=open_with_link) self.assert_window_handles() self.assertEqual(len(self.marionette.window_handles), len(self.start_tabs) + 1) self.assertEqual(self.marionette.current_window_handle, self.start_tab) + # Check that the new tab has the correct page loaded self.marionette.switch_to_window(new_tab) self.assert_window_handles() self.assertEqual(self.marionette.current_window_handle, new_tab) + Wait(self.marionette, self.marionette.timeout.page_load).until( + lambda _: self.marionette.get_url() == self.empty_page, + message="The expected page '{}' has not been loaded".format(self.empty_page)) + + # Ensure navigate works in our current window + other_page = self.marionette.absolute_url("test.html") + self.marionette.navigate(other_page) + self.assertEqual(self.marionette.get_url(), other_page) # Close the opened window and carry on in our original tab. self.marionette.close() @@ -77,16 +101,31 @@ class TestWindowHandles(WindowManagerMixin, MarionetteTestCase): self.marionette.switch_to_window(self.start_tab) self.assert_window_handles() self.assertEqual(self.marionette.current_window_handle, self.start_tab) + self.assertEqual(self.marionette.get_url(), self.test_page) @skip_if_mobile("Fennec doesn't support other chrome windows") - def tst_window_handles_after_opening_new_non_browser_window(self): - new_window = self.open_chrome_window(self.xul_dialog) + def test_window_handles_after_opening_new_non_browser_window(self): + def open_with_link(): + self.marionette.navigate(inline(""" + Download + + + """)) + link = self.marionette.find_element(By.ID, "blob-download") + link.click() + + new_win = self.open_window(trigger=open_with_link) self.assert_window_handles() self.assertEqual(len(self.marionette.window_handles), len(self.start_tabs)) self.assertEqual(self.marionette.current_window_handle, self.start_tab) - self.assertNotIn(new_window, self.marionette.window_handles) - self.marionette.switch_to_window(new_window) + self.marionette.switch_to_window(new_win) self.assert_window_handles() # Check that the opened window is not accessible via window handles @@ -105,21 +144,26 @@ class TestWindowHandles(WindowManagerMixin, MarionetteTestCase): self.assertEqual(self.marionette.current_window_handle, self.start_tab) def test_window_handles_after_closing_original_tab(self): - new_tab = self.open_tab() + def open_with_link(): + link = self.marionette.find_element(By.ID, "new-tab") + link.click() + + new_tab = self.open_tab(trigger=open_with_link) self.assert_window_handles() self.assertEqual(len(self.marionette.window_handles), len(self.start_tabs) + 1) self.assertEqual(self.marionette.current_window_handle, self.start_tab) - self.assertIn(new_tab, self.marionette.window_handles) self.marionette.close() self.assert_window_handles() self.assertEqual(len(self.marionette.window_handles), len(self.start_tabs)) - self.assertNotIn(self.start_tab, self.marionette.window_handles) self.marionette.switch_to_window(new_tab) self.assert_window_handles() self.assertEqual(self.marionette.current_window_handle, new_tab) + Wait(self.marionette, self.marionette.timeout.page_load).until( + lambda _: self.marionette.get_url() == self.empty_page, + message="The expected page '{}' has not been loaded".format(self.empty_page)) - def tst_window_handles_after_closing_last_tab(self): + def test_window_handles_after_closing_last_tab(self): self.close_all_tabs() self.assertEqual(self.marionette.close(), []) diff --git a/testing/marionette/harness/marionette_harness/tests/unit/test_window_management.py b/testing/marionette/harness/marionette_harness/tests/unit/test_window_management.py index 0a0062b02868..5923c55935aa 100644 --- a/testing/marionette/harness/marionette_harness/tests/unit/test_window_management.py +++ b/testing/marionette/harness/marionette_harness/tests/unit/test_window_management.py @@ -21,9 +21,15 @@ class TestNoSuchWindowContent(WindowManagerMixin, MarionetteTestCase): @skip_if_mobile("Fennec doesn't support other chrome windows") def test_closed_chrome_window(self): - with self.marionette.using_context("chrome"): - new_window = self.open_window() - self.marionette.switch_to_window(new_window) + + def open_with_link(): + with self.marionette.using_context("content"): + test_page = self.marionette.absolute_url("windowHandles.html") + self.marionette.navigate(test_page) + self.marionette.find_element(By.ID, "new-window").click() + + win = self.open_window(open_with_link) + self.marionette.switch_to_window(win) self.marionette.close_chrome_window() # When closing a browser window both handles are not available @@ -37,12 +43,12 @@ class TestNoSuchWindowContent(WindowManagerMixin, MarionetteTestCase): self.marionette.switch_to_window(self.start_window) with self.assertRaises(NoSuchWindowException): - self.marionette.switch_to_window(new_window) + self.marionette.switch_to_window(win) @skip_if_mobile("Fennec doesn't support other chrome windows") def test_closed_chrome_window_while_in_frame(self): - new_window = self.open_chrome_window("chrome://marionette/content/test.xul") - self.marionette.switch_to_window(new_window) + win = self.open_chrome_window("chrome://marionette/content/test.xul") + self.marionette.switch_to_window(win) with self.marionette.using_context("chrome"): self.marionette.switch_to_frame("iframe") self.marionette.close_chrome_window() @@ -55,12 +61,13 @@ class TestNoSuchWindowContent(WindowManagerMixin, MarionetteTestCase): self.marionette.switch_to_window(self.start_window) with self.assertRaises(NoSuchWindowException): - self.marionette.switch_to_window(new_window) + self.marionette.switch_to_window(win) def test_closed_tab(self): - new_tab = self.open_tab() - self.marionette.switch_to_window(new_tab) - self.marionette.close() + with self.marionette.using_context("content"): + tab = self.open_tab() + self.marionette.switch_to_window(tab) + self.marionette.close() # Check that only the content window is not available in both contexts for context in ("chrome", "content"): @@ -72,26 +79,25 @@ class TestNoSuchWindowContent(WindowManagerMixin, MarionetteTestCase): self.marionette.switch_to_window(self.start_tab) with self.assertRaises(NoSuchWindowException): - self.marionette.switch_to_window(new_tab) + self.marionette.switch_to_window(tab) def test_closed_tab_while_in_frame(self): - new_tab = self.open_tab() - self.marionette.switch_to_window(new_tab) - with self.marionette.using_context("content"): + tab = self.open_tab() + self.marionette.switch_to_window(tab) self.marionette.navigate(self.marionette.absolute_url("test_iframe.html")) frame = self.marionette.find_element(By.ID, "test_iframe") self.marionette.switch_to_frame(frame) - self.marionette.close() + self.marionette.close() - with self.assertRaises(NoSuchWindowException): - self.marionette.current_window_handle - self.marionette.current_chrome_window_handle + with self.assertRaises(NoSuchWindowException): + self.marionette.current_window_handle + self.marionette.current_chrome_window_handle self.marionette.switch_to_window(self.start_tab) with self.assertRaises(NoSuchWindowException): - self.marionette.switch_to_window(new_tab) + self.marionette.switch_to_window(tab) class TestNoSuchWindowChrome(TestNoSuchWindowContent): @@ -115,22 +121,42 @@ class TestSwitchWindow(WindowManagerMixin, MarionetteTestCase): self.close_all_windows() super(TestSwitchWindow, self).tearDown() - def test_switch_window_after_open_and_close(self): - with self.marionette.using_context("chrome"): - new_window = self.open_window() - self.assertEqual(len(self.marionette.chrome_window_handles), len(self.start_windows) + 1) - self.assertIn(new_window, self.marionette.chrome_window_handles) + def test_windows(self): + def open_browser_with_js(): + self.marionette.execute_script(" window.open(); ") + + new_window = self.open_window(trigger=open_browser_with_js) self.assertEqual(self.marionette.current_chrome_window_handle, self.start_window) - # switch to the new chrome window and close it + # switch to the other window self.marionette.switch_to_window(new_window) self.assertEqual(self.marionette.current_chrome_window_handle, new_window) self.assertNotEqual(self.marionette.current_chrome_window_handle, self.start_window) - self.marionette.close_chrome_window() - self.assertEqual(len(self.marionette.chrome_window_handles), len(self.start_windows)) - self.assertNotIn(new_window, self.marionette.chrome_window_handles) - - # switch back to the original chrome window + # switch back and close original window self.marionette.switch_to_window(self.start_window) self.assertEqual(self.marionette.current_chrome_window_handle, self.start_window) + self.marionette.close_chrome_window() + + self.assertNotIn(self.start_window, self.marionette.chrome_window_handles) + self.assertEqual(len(self.marionette.chrome_window_handles), len(self.start_windows)) + + def test_should_load_and_close_a_window(self): + def open_window_with_link(): + test_html = self.marionette.absolute_url("test_windows.html") + with self.marionette.using_context("content"): + self.marionette.navigate(test_html) + self.marionette.find_element(By.LINK_TEXT, "Open new window").click() + + new_window = self.open_window(trigger=open_window_with_link) + self.marionette.switch_to_window(new_window) + self.assertEqual(self.marionette.current_chrome_window_handle, new_window) + self.assertEqual(len(self.marionette.chrome_window_handles), 2) + + with self.marionette.using_context('content'): + self.assertEqual(self.marionette.title, "We Arrive Here") + + # Let's close and check + self.marionette.close_chrome_window() + self.marionette.switch_to_window(self.start_window) + self.assertEqual(len(self.marionette.chrome_window_handles), 1) diff --git a/testing/marionette/harness/marionette_harness/tests/unit/test_window_status_content.py b/testing/marionette/harness/marionette_harness/tests/unit/test_window_status_content.py index c9aee1cbbc8e..16f5449707ff 100644 --- a/testing/marionette/harness/marionette_harness/tests/unit/test_window_status_content.py +++ b/testing/marionette/harness/marionette_harness/tests/unit/test_window_status_content.py @@ -15,15 +15,30 @@ class TestNoSuchWindowContent(WindowManagerMixin, MarionetteTestCase): def setUp(self): super(TestNoSuchWindowContent, self).setUp() + self.test_page = self.marionette.absolute_url("windowHandles.html") + with self.marionette.using_context("content"): + self.marionette.navigate(self.test_page) + def tearDown(self): self.close_all_windows() super(TestNoSuchWindowContent, self).tearDown() + def open_tab_in_foreground(self): + with self.marionette.using_context("content"): + link = self.marionette.find_element(By.ID, "new-tab") + link.click() + @skip_if_mobile("Fennec doesn't support other chrome windows") def test_closed_chrome_window(self): - with self.marionette.using_context("chrome"): - new_window = self.open_window() - self.marionette.switch_to_window(new_window) + + def open_with_link(): + with self.marionette.using_context("content"): + test_page = self.marionette.absolute_url("windowHandles.html") + self.marionette.navigate(test_page) + self.marionette.find_element(By.ID, "new-window").click() + + win = self.open_window(open_with_link) + self.marionette.switch_to_window(win) self.marionette.close_chrome_window() # When closing a browser window both handles are not available @@ -37,13 +52,12 @@ class TestNoSuchWindowContent(WindowManagerMixin, MarionetteTestCase): self.marionette.switch_to_window(self.start_window) with self.assertRaises(NoSuchWindowException): - self.marionette.switch_to_window(new_window) + self.marionette.switch_to_window(win) @skip_if_mobile("Fennec doesn't support other chrome windows") def test_closed_chrome_window_while_in_frame(self): - new_window = self.open_chrome_window("chrome://marionette/content/test.xul") - self.marionette.switch_to_window(new_window) - + win = self.open_chrome_window("chrome://marionette/content/test.xul") + self.marionette.switch_to_window(win) with self.marionette.using_context("chrome"): self.marionette.switch_to_frame("iframe") self.marionette.close_chrome_window() @@ -56,12 +70,13 @@ class TestNoSuchWindowContent(WindowManagerMixin, MarionetteTestCase): self.marionette.switch_to_window(self.start_window) with self.assertRaises(NoSuchWindowException): - self.marionette.switch_to_window(new_window) + self.marionette.switch_to_window(win) def test_closed_tab(self): - new_tab = self.open_tab(focus=True) - self.marionette.switch_to_window(new_tab) - self.marionette.close() + with self.marionette.using_context("content"): + tab = self.open_tab(self.open_tab_in_foreground) + self.marionette.switch_to_window(tab) + self.marionette.close() # Check that only the content window is not available in both contexts for context in ("chrome", "content"): @@ -73,24 +88,22 @@ class TestNoSuchWindowContent(WindowManagerMixin, MarionetteTestCase): self.marionette.switch_to_window(self.start_tab) with self.assertRaises(NoSuchWindowException): - self.marionette.switch_to_window(new_tab) + self.marionette.switch_to_window(tab) def test_closed_tab_while_in_frame(self): - new_tab = self.open_tab() - self.marionette.switch_to_window(new_tab) - with self.marionette.using_context("content"): + tab = self.open_tab(self.open_tab_in_foreground) + self.marionette.switch_to_window(tab) self.marionette.navigate(self.marionette.absolute_url("test_iframe.html")) frame = self.marionette.find_element(By.ID, "test_iframe") self.marionette.switch_to_frame(frame) + self.marionette.close() - self.marionette.close() - - with self.assertRaises(NoSuchWindowException): - self.marionette.current_window_handle - self.marionette.current_chrome_window_handle + with self.assertRaises(NoSuchWindowException): + self.marionette.current_window_handle + self.marionette.current_chrome_window_handle self.marionette.switch_to_window(self.start_tab) with self.assertRaises(NoSuchWindowException): - self.marionette.switch_to_window(new_tab) + self.marionette.switch_to_window(tab) diff --git a/testing/marionette/proxy.js b/testing/marionette/proxy.js index 458443563471..55097c012172 100644 --- a/testing/marionette/proxy.js +++ b/testing/marionette/proxy.js @@ -15,7 +15,7 @@ ChromeUtils.import("chrome://marionette/content/evaluate.js"); const {Log} = ChromeUtils.import("chrome://marionette/content/log.js", {}); ChromeUtils.import("chrome://marionette/content/modal.js"); const { - waitForObserverTopic, + MessageManagerDestroyedPromise, } = ChromeUtils.import("chrome://marionette/content/sync.js", {}); this.EXPORTED_SYMBOLS = ["proxy"]; @@ -156,9 +156,7 @@ proxy.AsyncMessageChannel = class { break; } - await waitForObserverTopic("message-manager-disconnect", - subject => subject === messageManager); - + await new MessageManagerDestroyedPromise(messageManager); this.removeHandlers(); resolve(); }; diff --git a/testing/marionette/server.js b/testing/marionette/server.js index f2cbf756fbfd..33a7df51f159 100644 --- a/testing/marionette/server.js +++ b/testing/marionette/server.js @@ -11,6 +11,7 @@ const ServerSocket = CC( "nsIServerSocket", "initSpecialConnection"); +ChromeUtils.import("resource://gre/modules/Services.jsm"); ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm"); ChromeUtils.import("chrome://marionette/content/assert.js"); @@ -73,7 +74,7 @@ class TCPListener { */ driverFactory() { MarionettePrefs.contentListener = false; - return new GeckoDriver(this); + return new GeckoDriver(Services.appinfo.ID, this); } set acceptConnections(value) { diff --git a/testing/marionette/sync.js b/testing/marionette/sync.js index df15d8596609..e3f7759a9c74 100644 --- a/testing/marionette/sync.js +++ b/testing/marionette/sync.js @@ -13,42 +13,23 @@ const { stack, TimeoutError, } = ChromeUtils.import("chrome://marionette/content/error.js", {}); -const {truncate} = ChromeUtils.import("chrome://marionette/content/format.js", {}); const {Log} = ChromeUtils.import("chrome://marionette/content/log.js", {}); XPCOMUtils.defineLazyGetter(this, "log", Log.get); this.EXPORTED_SYMBOLS = [ - "executeSoon", "DebounceCallback", "IdlePromise", + "MessageManagerDestroyedPromise", "PollPromise", "Sleep", "TimedPromise", - "waitForEvent", - "waitForMessage", - "waitForObserverTopic", ]; const {TYPE_ONE_SHOT, TYPE_REPEATING_SLACK} = Ci.nsITimer; const PROMISE_TIMEOUT = AppConstants.DEBUG ? 4500 : 1500; - -/** - * Dispatch a function to be executed on the main thread. - * - * @param {function} func - * Function to be executed. - */ -function executeSoon(func) { - if (typeof func != "function") { - throw new TypeError(); - } - - Services.tm.dispatchToMainThread(func); -} - /** * @callback Condition * @@ -255,6 +236,46 @@ function Sleep(timeout) { return new TimedPromise(() => {}, {timeout, throws: null}); } +/** + * Detects when the specified message manager has been destroyed. + * + * One can observe the removal and detachment of a content browser + * (``) or a chrome window by its message manager + * disconnecting. + * + * When a browser is associated with a tab, this is safer than only + * relying on the event `TabClose` which signalises the _intent to_ + * remove a tab and consequently would lead to the destruction of + * the content browser and its browser message manager. + * + * When closing a chrome window it is safer than only relying on + * the event 'unload' which signalises the _intent to_ close the + * chrome window and consequently would lead to the destruction of + * the window and its window message manager. + * + * @param {MessageListenerManager} messageManager + * The message manager to observe for its disconnect state. + * Use the browser message manager when closing a content browser, + * and the window message manager when closing a chrome window. + * + * @return {Promise} + * A promise that resolves when the message manager has been destroyed. + */ +function MessageManagerDestroyedPromise(messageManager) { + return new Promise(resolve => { + function observe(subject, topic) { + log.trace(`Received observer notification ${topic}`); + + if (subject == messageManager) { + Services.obs.removeObserver(this, "message-manager-disconnect"); + resolve(); + } + } + + Services.obs.addObserver(observe, "message-manager-disconnect"); + }); +} + /** * Throttle until the main thread is idle and `window` has performed * an animation frame (in that order). @@ -330,192 +351,3 @@ class DebounceCallback { } } this.DebounceCallback = DebounceCallback; - -/** - * Wait for an event to be fired on a specified element. - * - * This method has been duplicated from BrowserTestUtils.jsm. - * - * Because this function is intended for testing, any error in checkFn - * will cause the returned promise to be rejected instead of waiting for - * the next event, since this is probably a bug in the test. - * - * Usage:: - * - * let promiseEvent = waitForEvent(element, "eventName"); - * // Do some processing here that will cause the event to be fired - * // ... - * // Now wait until the Promise is fulfilled - * let receivedEvent = await promiseEvent; - * - * The promise resolution/rejection handler for the returned promise is - * guaranteed not to be called until the next event tick after the event - * listener gets called, so that all other event listeners for the element - * are executed before the handler is executed:: - * - * let promiseEvent = waitForEvent(element, "eventName"); - * // Same event tick here. - * await promiseEvent; - * // Next event tick here. - * - * If some code, such like adding yet another event listener, needs to be - * executed in the same event tick, use raw addEventListener instead and - * place the code inside the event listener:: - * - * element.addEventListener("load", () => { - * // Add yet another event listener in the same event tick as the load - * // event listener. - * p = waitForEvent(element, "ready"); - * }, { once: true }); - * - * @param {Element} subject - * The element that should receive the event. - * @param {string} eventName - * Name of the event to listen to. - * @param {Object=} options - * Extra options. - * @param {boolean=} options.capture - * True to use a capturing listener. - * @param {function(Event)=} options.checkFn - * Called with the ``Event`` object as argument, should return ``true`` - * if the event is the expected one, or ``false`` if it should be - * ignored and listening should continue. If not specified, the first - * event with the specified name resolves the returned promise. - * @param {boolean=} options.wantsUntrusted - * True to receive synthetic events dispatched by web content. - * - * @return {Promise.} - * Promise which resolves to the received ``Event`` object, or rejects - * in case of a failure. - */ -function waitForEvent(subject, eventName, - {capture = false, checkFn = null, wantsUntrusted = false} = {}) { - if (subject == null || !("addEventListener" in subject)) { - throw new TypeError(); - } - if (typeof eventName != "string") { - throw new TypeError(); - } - if (capture != null && typeof capture != "boolean") { - throw new TypeError(); - } - if (checkFn != null && typeof checkFn != "function") { - throw new TypeError(); - } - if (wantsUntrusted != null && typeof wantsUntrusted != "boolean") { - throw new TypeError(); - } - - return new Promise((resolve, reject) => { - subject.addEventListener(eventName, function listener(event) { - log.trace(`Received DOM event ${event.type} for ${event.target}`); - try { - if (checkFn && !checkFn(event)) { - return; - } - subject.removeEventListener(eventName, listener, capture); - executeSoon(() => resolve(event)); - } catch (ex) { - try { - subject.removeEventListener(eventName, listener, capture); - } catch (ex2) { - // Maybe the provided object does not support removeEventListener. - } - executeSoon(() => reject(ex)); - } - }, capture, wantsUntrusted); - }); -} - -/** - * Wait for a message to be fired from a particular message manager. - * - * This method has been duplicated from BrowserTestUtils.jsm. - * - * @param {nsIMessageManager} messageManager - * The message manager that should be used. - * @param {string} messageName - * The message to wait for. - * @param {Object=} options - * Extra options. - * @param {function(Message)=} options.checkFn - * Called with the ``Message`` object as argument, should return ``true`` - * if the message is the expected one, or ``false`` if it should be - * ignored and listening should continue. If not specified, the first - * message with the specified name resolves the returned promise. - * - * @return {Promise.} - * Promise which resolves to the data property of the received - * ``Message``. - */ -function waitForMessage(messageManager, messageName, - {checkFn = undefined} = {}) { - if (messageManager == null || !("addMessageListener" in messageManager)) { - throw new TypeError(); - } - if (typeof messageName != "string") { - throw new TypeError(); - } - if (checkFn && typeof checkFn != "function") { - throw new TypeError(); - } - - return new Promise(resolve => { - messageManager.addMessageListener(messageName, function onMessage(msg) { - log.trace(`Received ${messageName} for ${msg.target}`); - if (checkFn && !checkFn(msg)) { - return; - } - messageManager.removeMessageListener(messageName, onMessage); - resolve(msg.data); - }); - }); -} - -/** - * Wait for the specified observer topic to be observed. - * - * This method has been duplicated from TestUtils.jsm. - * - * Because this function is intended for testing, any error in checkFn - * will cause the returned promise to be rejected instead of waiting for - * the next notification, since this is probably a bug in the test. - * - * @param {string} topic - * The topic to observe. - * @param {Object=} options - * Extra options. - * @param {function(String,Object)=} options.checkFn - * Called with ``subject``, and ``data`` as arguments, should return true - * if the notification is the expected one, or false if it should be - * ignored and listening should continue. If not specified, the first - * notification for the specified topic resolves the returned promise. - * - * @return {Promise.>} - * Promise which resolves to an array of ``subject``, and ``data`` from - * the observed notification. - */ -function waitForObserverTopic(topic, {checkFn = null} = {}) { - if (typeof topic != "string") { - throw new TypeError(); - } - if (checkFn != null && typeof checkFn != "function") { - throw new TypeError(); - } - - return new Promise((resolve, reject) => { - Services.obs.addObserver(function observer(subject, topic, data) { - log.trace(`Received observer notification ${topic}`); - try { - if (checkFn && !checkFn(subject, data)) { - return; - } - Services.obs.removeObserver(observer, topic); - resolve({subject, data}); - } catch (ex) { - Services.obs.removeObserver(observer, topic); - reject(ex); - } - }, topic); - }); -} diff --git a/testing/marionette/test/unit/test_sync.js b/testing/marionette/test/unit/test_sync.js index 83efce4fe459..e7dbcb54a541 100644 --- a/testing/marionette/test/unit/test_sync.js +++ b/testing/marionette/test/unit/test_sync.js @@ -2,93 +2,16 @@ * 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/. */ -ChromeUtils.import("resource://gre/modules/Services.jsm"); - const { DebounceCallback, IdlePromise, PollPromise, Sleep, TimedPromise, - waitForEvent, - waitForMessage, - waitForObserverTopic, } = ChromeUtils.import("chrome://marionette/content/sync.js", {}); const DEFAULT_TIMEOUT = 2000; -/** - * Mimic a DOM node for listening for events. - */ -class MockElement { - constructor() { - this.capture = false; - this.func = null; - this.eventName = null; - this.untrusted = false; - } - - addEventListener(name, func, capture, untrusted) { - this.eventName = name; - this.func = func; - if (capture != null) { - this.capture = capture; - } - if (untrusted != null) { - this.untrusted = untrusted; - } - } - - click() { - if (this.func) { - let details = { - capture: this.capture, - target: this, - type: this.eventName, - untrusted: this.untrusted, - }; - this.func(details); - } - } - - removeEventListener(name, func) { - this.capture = false; - this.func = null; - this.eventName = null; - this.untrusted = false; - } -} - -/** - * Mimic a message manager for sending messages. - */ -class MessageManager { - constructor() { - this.func = null; - this.message = null; - } - - addMessageListener(message, func) { - this.func = func; - this.message = message; - } - - removeMessageListener(message) { - this.func = null; - this.message = null; - } - - send(message, data) { - if (this.func) { - this.func({ - data, - message, - target: this, - }); - } - } -} - /** * Mimics nsITimer, but instead of using a system clock you can * preprogram it to invoke the callback after a given number of ticks. @@ -112,23 +35,6 @@ class MockTimer { } } -add_test(function test_executeSoon_callback() { - // executeSoon() is already defined for xpcshell in head.js. As such import - // our implementation into a custom namespace. - let sync = {}; - ChromeUtils.import("chrome://marionette/content/sync.js", sync); - - for (let func of ["foo", null, true, [], {}]) { - Assert.throws(() => sync.executeSoon(func), /TypeError/); - } - - let a; - sync.executeSoon(() => { a = 1; }); - executeSoon(() => equal(1, a)); - - run_next_test(); -}); - add_test(function test_PollPromise_funcTypes() { for (let type of ["foo", 42, null, undefined, true, [], {}]) { Assert.throws(() => new PollPromise(type), /TypeError/); @@ -307,155 +213,3 @@ add_task(async function test_DebounceCallback_repeatedCallback() { equal(ncalls, 1); ok(debouncer.timer.cancelled); }); - -add_task(async function test_waitForEvent_subjectAndEventNameTypes() { - let element = new MockElement(); - - for (let subject of ["foo", 42, null, undefined, true, [], {}]) { - Assert.throws(() => waitForEvent(subject, "click"), /TypeError/); - } - - for (let eventName of [42, null, undefined, true, [], {}]) { - Assert.throws(() => waitForEvent(element, eventName), /TypeError/); - } - - let clicked = waitForEvent(element, "click"); - element.click(); - let event = await clicked; - equal(element, event.target); -}); - -add_task(async function test_waitForEvent_captureTypes() { - let element = new MockElement(); - - for (let capture of ["foo", 42, [], {}]) { - Assert.throws(() => waitForEvent( - element, "click", {capture}), /TypeError/); - } - - for (let capture of [null, undefined, false, true]) { - let expected_capture = (capture == null) ? false : capture; - - element = new MockElement(); - let clicked = waitForEvent(element, "click", {capture}); - element.click(); - let event = await clicked; - equal(element, event.target); - equal(expected_capture, event.capture); - } -}); - -add_task(async function test_waitForEvent_checkFnTypes() { - let element = new MockElement(); - - for (let checkFn of ["foo", 42, true, [], {}]) { - Assert.throws(() => waitForEvent( - element, "click", {checkFn}), /TypeError/); - } - - let count; - for (let checkFn of [null, undefined, event => count++ > 0]) { - let expected_count = (checkFn == null) ? 0 : 2; - count = 0; - - element = new MockElement(); - let clicked = waitForEvent(element, "click", {checkFn}); - element.click(); - element.click(); - let event = await clicked; - equal(element, event.target); - equal(expected_count, count); - } -}); - -add_task(async function test_waitForEvent_wantsUntrustedTypes() { - let element = new MockElement(); - - for (let wantsUntrusted of ["foo", 42, [], {}]) { - Assert.throws(() => waitForEvent( - element, "click", {wantsUntrusted}), /TypeError/); - } - - for (let wantsUntrusted of [null, undefined, false, true]) { - let expected_untrusted = (wantsUntrusted == null) ? false : wantsUntrusted; - - element = new MockElement(); - let clicked = waitForEvent(element, "click", {wantsUntrusted}); - element.click(); - let event = await clicked; - equal(element, event.target); - equal(expected_untrusted, event.untrusted); - } -}); - -add_task(async function test_waitForMessage_messageManagerAndMessageTypes() { - let messageManager = new MessageManager(); - - for (let manager of ["foo", 42, null, undefined, true, [], {}]) { - Assert.throws(() => waitForMessage(manager, "message"), /TypeError/); - } - - for (let message of [42, null, undefined, true, [], {}]) { - Assert.throws(() => waitForEvent(messageManager, message), /TypeError/); - } - - let data = {"foo": "bar"}; - let sent = waitForMessage(messageManager, "message"); - messageManager.send("message", data); - equal(data, await sent); -}); - -add_task(async function test_waitForMessage_checkFnTypes() { - let messageManager = new MessageManager(); - - for (let checkFn of ["foo", 42, true, [], {}]) { - Assert.throws(() => waitForMessage( - messageManager, "message", {checkFn}), /TypeError/); - } - - let data1 = {"fo": "bar"}; - let data2 = {"foo": "bar"}; - - for (let checkFn of [null, undefined, msg => "foo" in msg.data]) { - let expected_data = (checkFn == null) ? data1 : data2; - - messageManager = new MessageManager(); - let sent = waitForMessage(messageManager, "message", {checkFn}); - messageManager.send("message", data1); - messageManager.send("message", data2); - equal(expected_data, await sent); - } -}); - -add_task(async function test_waitForObserverTopic_topicTypes() { - for (let topic of [42, null, undefined, true, [], {}]) { - Assert.throws(() => waitForObserverTopic(topic), /TypeError/); - } - - let data = {"foo": "bar"}; - let sent = waitForObserverTopic("message"); - Services.obs.notifyObservers(this, "message", data); - let result = await sent; - equal(this, result.subject); - equal(data, result.data); -}); - -add_task(async function test_waitForObserverTopic_checkFnTypes() { - for (let checkFn of ["foo", 42, true, [], {}]) { - Assert.throws(() => waitForObserverTopic( - "message", {checkFn}), /TypeError/); - } - - let data1 = {"fo": "bar"}; - let data2 = {"foo": "bar"}; - - for (let checkFn of [null, undefined, (subject, data) => data == data2]) { - let expected_data = (checkFn == null) ? data1 : data2; - - let sent = waitForObserverTopic("message"); - Services.obs.notifyObservers(this, "message", data1); - Services.obs.notifyObservers(this, "message", data2); - let result = await sent; - equal(expected_data, result.data); - } -}); diff --git a/testing/marionette/transport.js b/testing/marionette/transport.js index 61e927bcef62..e357d360f0a2 100644 --- a/testing/marionette/transport.js +++ b/testing/marionette/transport.js @@ -10,17 +10,14 @@ const CC = Components.Constructor; ChromeUtils.import("resource://gre/modules/Services.jsm"); ChromeUtils.import("resource://gre/modules/EventEmitter.jsm"); -const { - StreamUtils, -} = ChromeUtils.import("chrome://marionette/content/stream-utils.js", {}); -const { - BulkPacket, - JSONPacket, - Packet, -} = ChromeUtils.import("chrome://marionette/content/packets.js", {}); -const { - executeSoon, -} = ChromeUtils.import("chrome://marionette/content/sync.js", {}); +const {StreamUtils} = + ChromeUtils.import("chrome://marionette/content/stream-utils.js", {}); +const {Packet, JSONPacket, BulkPacket} = + ChromeUtils.import("chrome://marionette/content/packets.js", {}); + +const executeSoon = function(func) { + Services.tm.dispatchToMainThread(func); +}; const flags = {wantVerbose: false, wantLogging: false}; diff --git a/testing/web-platform/meta/webdriver/tests/execute_script/promise.py.ini b/testing/web-platform/meta/webdriver/tests/execute_script/promise.py.ini index f1544e24b8ba..97bf2cf50f85 100644 --- a/testing/web-platform/meta/webdriver/tests/execute_script/promise.py.ini +++ b/testing/web-platform/meta/webdriver/tests/execute_script/promise.py.ini @@ -1,4 +1,5 @@ [promise.py] + expected: TIMEOUT [test_promise_timeout] expected: FAIL From b2efb6be11cbb3ac77d3c77f2dd5093f6646d9cc Mon Sep 17 00:00:00 2001 From: L10n Bumper Bot Date: Thu, 20 Dec 2018 10:00:31 -0800 Subject: [PATCH 39/39] no bug - Bumping Firefox l10n changesets r=release a=l10n-bump DONTBUILD ach -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] af -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] an -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] ar -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] as -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] ast -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] az -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] be -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] bg -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] bn-BD -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] bn-IN -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] br -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] bs -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] ca -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] cak -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] crh -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] cs -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] cy -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] da -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] de -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] dsb -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] el -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] en-CA -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] en-GB -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] en-ZA -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] eo -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] es-AR -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] es-CL -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] es-ES -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] es-MX -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] et -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] eu -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] fa -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] ff -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] fi -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] fr -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] fy-NL -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] ga-IE -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] gd -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] gl -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] gn -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] gu-IN -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] he -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] hi-IN -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] hr -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] hsb -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] hu -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] hy-AM -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] ia -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] id -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] is -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] it -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] ja -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] ka -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] kab -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] kk -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] km -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] kn -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] ko -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] lij -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] lo -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] lt -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] ltg -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] lv -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] mai -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] mk -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] ml -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] mr -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] ms -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] my -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] nb-NO -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] ne-NP -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] nl -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] nn-NO -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] oc -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] or -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] pa-IN -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] pl -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] pt-BR -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] pt-PT -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] rm -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] ro -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] ru -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] si -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] sk -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] sl -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] son -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] sq -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] sr -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] sv-SE -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] ta -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] te -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] th -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] tl -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] tr -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] trs -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] uk -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] ur -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] uz -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] vi -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] wo -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] xh -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] zh-CN -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] zh-TW -> ['linux', 'linux-devedition', 'linux64', 'linux64-devedition', 'macosx64', 'macosx64-devedition', 'win32', 'win32-devedition', 'win64', 'win64-aarch64-msvc', 'win64-aarch64-msvc-devedition', 'win64-devedition'] --- browser/locales/l10n-changesets.json | 208 +++++++++++++++++++++++++++ 1 file changed, 208 insertions(+) diff --git a/browser/locales/l10n-changesets.json b/browser/locales/l10n-changesets.json index 8cde019351e8..55df559c9fee 100644 --- a/browser/locales/l10n-changesets.json +++ b/browser/locales/l10n-changesets.json @@ -10,6 +10,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -25,6 +27,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -40,6 +44,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -55,6 +61,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -70,6 +78,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -85,6 +95,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -100,6 +112,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -115,6 +129,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -130,6 +146,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -145,6 +163,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -160,6 +180,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -175,6 +197,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -190,6 +214,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -205,6 +231,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -220,6 +248,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -235,6 +265,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -250,6 +282,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -265,6 +299,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -280,6 +316,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -295,6 +333,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -310,6 +350,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -325,6 +367,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -340,6 +384,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -355,6 +401,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -370,6 +418,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -385,6 +435,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -400,6 +452,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -415,6 +469,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -430,6 +486,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -445,6 +503,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -460,6 +520,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -475,6 +537,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -490,6 +554,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -505,6 +571,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -520,6 +588,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -535,6 +605,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -550,6 +622,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -565,6 +639,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -580,6 +656,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -595,6 +673,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -610,6 +690,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -625,6 +707,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -640,6 +724,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -655,6 +741,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -670,6 +758,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -685,6 +775,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -700,6 +792,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -715,6 +809,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -730,6 +826,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -745,6 +843,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -760,6 +860,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -775,6 +877,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -788,6 +892,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -810,6 +916,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -825,6 +933,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -840,6 +950,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -855,6 +967,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -870,6 +984,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -885,6 +1001,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -900,6 +1018,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -915,6 +1035,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -930,6 +1052,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -945,6 +1069,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -960,6 +1086,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -975,6 +1103,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -990,6 +1120,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1005,6 +1137,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1020,6 +1154,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1035,6 +1171,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1050,6 +1188,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1065,6 +1205,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1080,6 +1222,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1095,6 +1239,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1110,6 +1256,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1125,6 +1273,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1140,6 +1290,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1155,6 +1307,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1170,6 +1324,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1185,6 +1341,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1200,6 +1358,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1215,6 +1375,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1230,6 +1392,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1245,6 +1409,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1260,6 +1426,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1275,6 +1443,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1290,6 +1460,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1305,6 +1477,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1320,6 +1494,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1335,6 +1511,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1350,6 +1528,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1365,6 +1545,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1380,6 +1562,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1395,6 +1579,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1410,6 +1596,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1425,6 +1613,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1440,6 +1630,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1455,6 +1647,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1470,6 +1664,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1485,6 +1681,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1500,6 +1698,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1515,6 +1715,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1530,6 +1732,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1545,6 +1749,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default" @@ -1560,6 +1766,8 @@ "win32", "win32-devedition", "win64", + "win64-aarch64-msvc", + "win64-aarch64-msvc-devedition", "win64-devedition" ], "revision": "default"