Bug 1390706 - Remove Flash CTP rollout addon and make it CTP by default through prefs. r=bsmedberg
MozReview-Commit-ID: CPIoiXnx5WT
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -692,24 +692,18 @@ pref("plugins.remember_infobar_dismissal
pref("plugin.default.state", 1);
// Plugins bundled in XPIs are enabled by default.
pref("plugin.defaultXpi.state", 2);
// Java is Click-to-Activate by default on all channels.
pref("plugin.state.java", 1);
-// Flash is Click-to-Activate by default on Nightly.
-// On other channels, it will be controlled by a
-// rollout system addon.
-#ifdef NIGHTLY_BUILD
+// Flash is Click-to-Activate by default on all channels.
pref("plugin.state.flash", 1);
-#else
-pref("plugin.state.flash", 2);
-#endif
// Enables the download and use of the flash blocklists.
pref("plugins.flashBlock.enabled", true);
// Prefer HTML5 video over Flash content, and don't
// load plugin instances with no src declared.
// These prefs are documented in details on all.js.
// With the "follow-ctp" setting, this will only
deleted file mode 100644
--- a/browser/extensions/clicktoplay-rollout/bootstrap.js
+++ /dev/null
@@ -1,148 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-"use strict";
-
-const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
-
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-Cu.import("resource://gre/modules/Services.jsm");
-Cu.import("resource://gre/modules/UpdateUtils.jsm");
-Cu.import("resource://gre/modules/AppConstants.jsm");
-Cu.import("resource://gre/modules/TelemetryEnvironment.jsm");
-
-// The amount of people to be part of the rollout
-const TEST_THRESHOLD = {
- "beta": 1.0, // 100%
- "release": 1.0, // 100%
-};
-
-if (AppConstants.RELEASE_OR_BETA) {
- // The rollout is controlled by the channel name, which
- // is the only way to distinguish between Beta and Release.
- // However, non-official release builds (like the ones done by distros
- // to ship Firefox on their package managers) do not set a value
- // for the release channel, which gets them to the default value
- // of.. (drumroll) "default".
- // But we can't just always configure the same settings for the
- // "default" channel because that's also the name that a locally
- // built Firefox gets, and CTP is already directly set there
- // through an #ifdef in firefox.js
- TEST_THRESHOLD.default = TEST_THRESHOLD.release;
-}
-
-const PREF_COHORT_SAMPLE = "plugins.ctprollout.cohortSample";
-const PREF_COHORT_NAME = "plugins.ctprollout.cohort";
-const PREF_FLASH_STATE = "plugin.state.flash";
-
-function startup() {
- defineCohort();
-}
-
-function defineCohort() {
- let updateChannel = UpdateUtils.getUpdateChannel(false);
- if (!(updateChannel in TEST_THRESHOLD)) {
- return;
- }
-
- let cohort = Services.prefs.getStringPref(PREF_COHORT_NAME, undefined);
-
- if (!cohort) {
- // The cohort has not been defined yet: this is the first
- // time that we're running. Let's see if the user has
- // a non-default setting to avoid changing it.
- let currentPluginState = Services.prefs.getIntPref(PREF_FLASH_STATE);
- switch (currentPluginState) {
- case Ci.nsIPluginTag.STATE_CLICKTOPLAY:
- cohort = "early-adopter-ctp";
- break;
-
- case Ci.nsIPluginTag.STATE_DISABLED:
- cohort = "early-adopter-disabled";
- break;
-
- default:
- // intentionally missing from the list is STATE_ENABLED,
- // which will keep cohort undefined.
- break;
- }
- }
-
- switch (cohort) {
- case undefined:
- case null:
- case "":
- case "test":
- case "control":
- case "excluded":
- {
- // If it's either test/control, the cohort might have changed
- // if the desired sampling has been changed.
- let testThreshold = TEST_THRESHOLD[updateChannel];
- let userSample = getUserSample();
-
- if (userSample < testThreshold) {
- cohort = "test";
- let defaultPrefs = Services.prefs.getDefaultBranch("");
- defaultPrefs.setIntPref(PREF_FLASH_STATE, Ci.nsIPluginTag.STATE_CLICKTOPLAY);
- } else if (userSample >= 1.0 - testThreshold) {
- cohort = "control";
- } else {
- cohort = "excluded";
- }
-
- setCohort(cohort);
- watchForPrefChanges();
- break;
- }
-
- case "early-adopter-ctp":
- case "early-adopter-disabled":
- default:
- // "user-changed-from-*" will fall into this default case and
- // not do anything special.
- setCohort(cohort);
- break;
- }
-}
-
-function getUserSample() {
- let prefType = Services.prefs.getPrefType(PREF_COHORT_SAMPLE);
-
- if (prefType == Ci.nsIPrefBranch.PREF_STRING) {
- return parseFloat(Services.prefs.getStringPref(PREF_COHORT_SAMPLE), 10);
- }
-
- let value = Math.random();
- Services.prefs.setStringPref(PREF_COHORT_SAMPLE, value.toString().substr(0, 8));
- return value;
-}
-
-function setCohort(cohortName) {
- Services.prefs.setStringPref(PREF_COHORT_NAME, cohortName);
- TelemetryEnvironment.setExperimentActive("clicktoplay-rollout", cohortName);
-
- try {
- if (Ci.nsICrashReporter) {
- Services.appinfo.QueryInterface(Ci.nsICrashReporter).annotateCrashReport("CTPCohort", cohortName);
- }
- } catch (e) {}
-}
-
-function watchForPrefChanges() {
- Services.prefs.addObserver(PREF_FLASH_STATE, function prefWatcher() {
- let currentCohort = Services.prefs.getStringPref(PREF_COHORT_NAME, "unknown");
- setCohort(`user-changed-from-${currentCohort}`);
- Services.prefs.removeObserver(PREF_FLASH_STATE, prefWatcher);
- });
-}
-
-function install() {
-}
-
-function shutdown(data, reason) {
-}
-
-function uninstall() {
-}
deleted file mode 100644
--- a/browser/extensions/clicktoplay-rollout/install.rdf.in
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0"?>
-<!-- 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/. -->
-
-#filter substitution
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-
- <Description about="urn:mozilla:install-manifest">
- <em:id>clicktoplay-rollout@mozilla.org</em:id>
- <em:version>1.4</em:version>
- <em:type>2</em:type>
- <em:bootstrap>true</em:bootstrap>
- <em:multiprocessCompatible>true</em:multiprocessCompatible>
-
- <!-- Target Application this theme can install into,
- with minimum and maximum supported versions. -->
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>@MOZ_APP_VERSION@</em:minVersion>
- <em:maxVersion>@MOZ_APP_MAXVERSION@</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <!-- Front End MetaData -->
- <em:name>Click-to-Play staged rollout</em:name>
- <em:description>Staged rollout for Click-to-Play Flash.</em:description>
- </Description>
-</RDF>
deleted file mode 100644
--- a/browser/extensions/clicktoplay-rollout/moz.build
+++ /dev/null
@@ -1,19 +0,0 @@
-# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# 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/.
-
-with Files("**"):
- BUG_COMPONENT = ("Core", "Plug-ins")
-
-DEFINES['MOZ_APP_VERSION'] = CONFIG['MOZ_APP_VERSION']
-DEFINES['MOZ_APP_MAXVERSION'] = CONFIG['MOZ_APP_MAXVERSION']
-
-FINAL_TARGET_FILES.features['clicktoplay-rollout@mozilla.org'] += [
- 'bootstrap.js'
-]
-
-FINAL_TARGET_PP_FILES.features['clicktoplay-rollout@mozilla.org'] += [
- 'install.rdf.in'
-]
--- a/browser/extensions/moz.build
+++ b/browser/extensions/moz.build
@@ -2,17 +2,16 @@
# vim: set filetype=python:
# 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/.
DIRS += [
'activity-stream',
'aushelper',
- 'clicktoplay-rollout',
'e10srollout',
'followonsearch',
'formautofill',
'onboarding',
'pdfjs',
'pocket',
'screenshots',
'shield-recipe-client',
--- a/testing/talos/talos/xtalos/xperf_whitelist.json
+++ b/testing/talos/talos/xtalos/xperf_whitelist.json
@@ -2,17 +2,16 @@
"C:\\$Mft": {"ignore": true},
"C:\\$Extend\\$UsnJrnl:$J": {"ignore": true},
"C:\\Windows\\Prefetch\\{prefetch}.pf": {"ignore": true},
"C:\\$Secure": {"ignore": true},
"C:\\$logfile": {"ignore": true},
"{firefox}\\omni.ja": {"mincount": 0, "maxcount": 46, "minbytes": 0, "maxbytes": 3014656},
"{firefox}\\browser\\omni.ja": {"mincount": 0, "maxcount": 28, "minbytes": 0, "maxbytes": 1835008},
"{firefox}\\browser\\features\\aushelper@mozilla.org.xpi": {"mincount": 0, "maxcount": 100, "minbytes": 0, "maxbytes": 10000000},
- "{firefox}\\browser\\features\\clicktoplay-rollout@mozilla.org.xpi": {"mincount": 0, "maxcount": 100, "minbytes": 0, "maxbytes": 10000000},
"{firefox}\\browser\\features\\e10srollout@mozilla.org.xpi": {"mincount": 0, "maxcount": 100, "minbytes": 0, "maxbytes": 10000000},
"{firefox}\\browser\\features\\flyweb@mozilla.org.xpi": {"mincount": 0, "maxcount": 100, "minbytes": 0, "maxbytes": 10000000},
"{firefox}\\browser\\features\\formautofill@mozilla.org.xpi": {"mincount": 0, "maxcount": 100, "minbytes": 0, "maxbytes": 10000000},
"{firefox}\\browser\\features\\loop@mozilla.org.xpi": {"mincount": 0, "maxcount": 100, "minbytes": 0, "maxbytes": 10000000},
"{firefox}\\browser\\features\\firefox@getpocket.com.xpi": {"mincount": 0, "maxcount": 100, "minbytes": 0, "maxbytes": 10000000},
"{firefox}\\browser\\features\\presentation@mozilla.org.xpi": {"mincount": 0, "maxcount": 100, "minbytes": 0, "maxbytes": 10000000},
"{firefox}\\browser\\features\\webcompat@mozilla.org.xpi": {"mincount": 0, "maxcount": 100, "minbytes": 0, "maxbytes": 10000000},
"{firefox}\\browser\\features\\webcompat-reporter@mozilla.org.xpi": {"mincount": 0, "maxcount": 100, "minbytes": 0, "maxbytes": 10000000},