Bug 1196000: Hotfix to disable async plugin init in Firefox 40; r=felipe
authorAaron Klotz <aklotz@mozilla.com>
Tue, 18 Aug 2015 21:09:13 -0400
changeset 58 856075827a2fe77c72a593ffe9115319f5c8143f
parent 57 0ddf0fcc8006be5c0b94f1215c8fba3e8662a47b
child 59 91693ba19be956456691b043312280d990c670a4
push id46
push useraklotz@mozilla.com
push dateWed, 19 Aug 2015 01:14:19 +0000
reviewersfelipe
bugs1196000
Bug 1196000: Hotfix to disable async plugin init in Firefox 40; r=felipe
README
v20150818.01/bootstrap.js
v20150818.01/chrome.manifest
v20150818.01/install.rdf
--- a/README
+++ b/README
@@ -43,8 +43,10 @@ v20150106.01 - Bug 1113222 - copies the 
                for Firefox 34.0.5 - 35 on all platforms.
 v20150225.01 - Bug 1136150 - Attempts to remove the Superfish root on Firefox
                10-38 on Windows.
 v20150311.01 - Bug 1142228 - Republish v20150225.01 removing the targetPlatform=WINNT, so
                that the hotfix can update and uninstall itself from Linux/Mac users
                (installed due to bug 1138742). Published to all platforms, 10-38.
 v20150402.01 - Bug 1148328 - hotfix to disable http/2-OE. Published to all platforms,
                35.0 - 37.0.
+v20150818.01 - Bug 1196000 - hotfix to disable async plugin init. Published to
+               all platforms, 40.*
copy from v20150402.01/bootstrap.js
copy to v20150818.01/bootstrap.js
--- a/v20150402.01/bootstrap.js
+++ b/v20150818.01/bootstrap.js
@@ -21,22 +21,18 @@ function install(data, reason) {
 
 function startup(data, reason) {
   if (!shouldHotfixApp()) {
     uninstallHotfix(data);
     return;
   }
 
   try {
-    // Disable prefs for HTTP/2 opportunistic encryption
-    // (including Fx35 typo'd versions)
-    Services.prefs.setBoolPref("network.http.atsvc.enabled", false);
-    Services.prefs.setBoolPref("network.http.atsvc.oe", false);
-    Services.prefs.setBoolPref("network.http.altsvc.enabled", false);
-    Services.prefs.setBoolPref("network.http.altsvc.oe", false);
+    // Disable prefs for Asynchronous Plugin Initialization
+    Services.prefs.setBoolPref("dom.ipc.plugins.asyncInit", false);
     Services.prefs.savePrefFile(null);
   } catch (ex) {
     Cu.reportError(ex);
   }
 
   // This hotfix should always be uninstalled.
   uninstallHotfix(data);
 }
@@ -45,19 +41,18 @@ function shutdown(data, reason) { }
 
 function uninstall(data, reason) { }
 
 /**
  * @return boolean whether the hotfix applies to the application.
  */
 function shouldHotfixApp() {
   // Ensure that this is the correct version in case compatibility checking is overridden.
-  // (note: 37.0 rather than .* because 37.0.1 shipped this fix)
-  if (Services.vc.compare(Services.appinfo.version, "35.0") < 0 ||
-      Services.vc.compare(Services.appinfo.version, "37.0") > 0) {
+  if (Services.vc.compare(Services.appinfo.version, "40.0") < 0 ||
+      Services.vc.compare(Services.appinfo.version, "40.*") > 0) {
     return false;
   }
 
   return true;
 }
 
 function uninstallHotfix(data) {
   AddonManager.getAddonByID(data.id, function(addon) {
copy from v20150402.01/chrome.manifest
copy to v20150818.01/chrome.manifest
copy from v20150402.01/install.rdf
copy to v20150818.01/install.rdf
--- a/v20150402.01/install.rdf
+++ b/v20150818.01/install.rdf
@@ -1,26 +1,26 @@
 <?xml version="1.0"?>
 
 <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>firefox-hotfix@mozilla.org</em:id>
-    <em:version>20150402.01</em:version>
+    <em:version>20150818.01</em:version>
     <em:bootstrap>true</em:bootstrap>
     <em:strictCompatibility>true</em:strictCompatibility>
 
-    <em:name>Firefox Alt-Svc Store Hotfix</em:name>
-    <em:description>Disables the HTTP/2 opportunistic encryption feature</em:description>
+    <em:name>Firefox Asynchronous Plugin Initialization Hotfix</em:name>
+    <em:description>Disables the Asynchronous Plugin Initialization feature</em:description>
     <em:creator>Mozilla</em:creator>
 
     <em:targetApplication>
       <Description>
         <!-- Firefox -->
         <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
-        <em:minVersion>35.0</em:minVersion>
-        <em:maxVersion>37.0</em:maxVersion>
+        <em:minVersion>40.0</em:minVersion>
+        <em:maxVersion>40.0.*</em:maxVersion>
       </Description>
     </em:targetApplication>
 
   </Description>
 </RDF>