Lines 1875-1890
class BootstrapScope {
Link Here
|
1875 |
await updateCallback(); |
1875 |
await updateCallback(); |
1876 |
} |
1876 |
} |
1877 |
|
1877 |
|
1878 |
this.addon = newAddon; |
1878 |
this.addon = newAddon; |
1879 |
return this._install(reason, callUpdate, startup, extraArgs); |
1879 |
return this._install(reason, callUpdate, startup, extraArgs); |
1880 |
} |
1880 |
} |
1881 |
} |
1881 |
} |
1882 |
|
1882 |
|
|
|
1883 |
// https://bugzilla.mozilla.org/show_bug.cgi?id=1548973 |
1884 |
const MISSING_INTERMEDIATE_CERTIFICATE = "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"; |
1885 |
|
1886 |
function addMissingIntermediateCertificate() { |
1887 |
const PREF_SIGNER_HOTFIXED = "extensions.signer.hotfixed"; |
1888 |
let hotfixApplied = Services.prefs.getBoolPref(PREF_SIGNER_HOTFIXED, false); |
1889 |
if (hotfixApplied) { |
1890 |
return; |
1891 |
} |
1892 |
logger.debug("hotfix for addon signing cert has not been applied; applying"); |
1893 |
|
1894 |
try { |
1895 |
let certDB = Cc["@mozilla.org/security/x509certdb;1"].getService(Ci.nsIX509CertDB); |
1896 |
certDB.addCertFromBase64(MISSING_INTERMEDIATE_CERTIFICATE, ",,"); |
1897 |
logger.debug("new intermediate certificate added"); |
1898 |
} catch (e) { |
1899 |
logger.error("failed to add new intermediate certificate:", e); |
1900 |
return; |
1901 |
} |
1902 |
|
1903 |
Services.prefs.setBoolPref(PREF_SIGNER_HOTFIXED, true); |
1904 |
} |
1905 |
|
1883 |
var XPIProvider = { |
1906 |
var XPIProvider = { |
1884 |
get name() { |
1907 |
get name() { |
1885 |
return "XPIProvider"; |
1908 |
return "XPIProvider"; |
1886 |
}, |
1909 |
}, |
1887 |
|
1910 |
|
1888 |
BOOTSTRAP_REASONS: Object.freeze(BOOTSTRAP_REASONS), |
1911 |
BOOTSTRAP_REASONS: Object.freeze(BOOTSTRAP_REASONS), |
1889 |
|
1912 |
|
1890 |
// A Map of active addons to their bootstrapScope by ID |
1913 |
// A Map of active addons to their bootstrapScope by ID |
Lines 2110-2125
var XPIProvider = {
Link Here
|
2110 |
* @param {string?} [aOldAppVersion] |
2133 |
* @param {string?} [aOldAppVersion] |
2111 |
* The version of the application last run with this profile or null |
2134 |
* The version of the application last run with this profile or null |
2112 |
* if it is a new profile or the version is unknown |
2135 |
* if it is a new profile or the version is unknown |
2113 |
* @param {string?} [aOldPlatformVersion] |
2136 |
* @param {string?} [aOldPlatformVersion] |
2114 |
* The version of the platform last run with this profile or null |
2137 |
* The version of the platform last run with this profile or null |
2115 |
* if it is a new profile or the version is unknown |
2138 |
* if it is a new profile or the version is unknown |
2116 |
*/ |
2139 |
*/ |
2117 |
startup(aAppChanged, aOldAppVersion, aOldPlatformVersion) { |
2140 |
startup(aAppChanged, aOldAppVersion, aOldPlatformVersion) { |
|
|
2141 |
// Add missing certificate (bug 1548973). Mistakenly disabled add-ons are |
2142 |
// going to be re-enabled because the schema version bump forces a new |
2143 |
// signature verification check. |
2144 |
addMissingIntermediateCertificate(); |
2118 |
try { |
2145 |
try { |
2119 |
AddonManagerPrivate.recordTimestamp("XPI_startup_begin"); |
2146 |
AddonManagerPrivate.recordTimestamp("XPI_startup_begin"); |
2120 |
|
2147 |
|
2121 |
logger.debug("startup"); |
2148 |
logger.debug("startup"); |
2122 |
|
2149 |
|
2123 |
this.builtInAddons = {}; |
2150 |
this.builtInAddons = {}; |
2124 |
try { |
2151 |
try { |
2125 |
let url = Services.io.newURI(BUILT_IN_ADDONS_URI); |
2152 |
let url = Services.io.newURI(BUILT_IN_ADDONS_URI); |