mirror of
https://git.freebsd.org/ports.git
synced 2025-06-07 05:40:30 -04:00
- Update Firefox and gmp-api to 39.0 - Update Firefox ESR and libxul to 38.1.0 Changes: https://developer.mozilla.org/docs/Mozilla/Projects/NSS/NSS_3.19.2_release_notes Changes: https://www.mozilla.org/firefox/39.0/releasenotes/ Changes: https://www.mozilla.org/firefox/38.1.0/releasenotes/ MFH: 2015Q3 Security: https://vuxml.freebsd.org/freebsd/44d9daee-940c-4179-86bb-6e3ffd617869.html
238 lines
9.5 KiB
Text
238 lines
9.5 KiB
Text
# Revert bug 1045209 to allow using absolute path
|
|
|
|
diff --git dom/media/gmp/GMPChild.cpp dom/media/gmp/GMPChild.cpp
|
|
index 1dde3ac..12c88cf 100644
|
|
--- dom/media/gmp/GMPChild.cpp
|
|
+++ dom/media/gmp/GMPChild.cpp
|
|
@@ -76,21 +76,14 @@ GetFileBase(const std::string& aPluginPa
|
|
}
|
|
#endif
|
|
|
|
- nsCOMPtr<nsIFile> parent;
|
|
- rv = aFileBase->GetParent(getter_AddRefs(parent));
|
|
- if (NS_FAILED(rv)) {
|
|
- return false;
|
|
- }
|
|
-
|
|
- nsAutoString parentLeafName;
|
|
- rv = parent->GetLeafName(parentLeafName);
|
|
- if (NS_FAILED(rv)) {
|
|
+ nsAutoString leafName;
|
|
+ if (NS_FAILED(aFileBase->GetLeafName(leafName))) {
|
|
return false;
|
|
}
|
|
|
|
- aBaseName = Substring(parentLeafName,
|
|
+ aBaseName = Substring(leafName,
|
|
4,
|
|
- parentLeafName.Length() - 1);
|
|
+ leafName.Length() - 1);
|
|
return true;
|
|
}
|
|
|
|
diff --git dom/media/gmp/GMPParent.cpp dom/media/gmp/GMPParent.cpp
|
|
index aa60acf..90878ca 100644
|
|
--- dom/media/gmp/GMPParent.cpp
|
|
+++ dom/media/gmp/GMPParent.cpp
|
|
@@ -93,22 +93,15 @@
|
|
mService = aService;
|
|
mDirectory = aPluginDir;
|
|
|
|
- // aPluginDir is <profile-dir>/<gmp-plugin-id>/<version>
|
|
- // where <gmp-plugin-id> should be gmp-gmpopenh264
|
|
- nsCOMPtr<nsIFile> parent;
|
|
- nsresult rv = aPluginDir->GetParent(getter_AddRefs(parent));
|
|
+ nsAutoString leafname;
|
|
+ nsresult rv = aPluginDir->GetLeafName(leafname);
|
|
if (NS_FAILED(rv)) {
|
|
return rv;
|
|
}
|
|
- nsAutoString parentLeafName;
|
|
- rv = parent->GetLeafName(parentLeafName);
|
|
- if (NS_FAILED(rv)) {
|
|
- return rv;
|
|
- }
|
|
- LOGD("%s: for %s", __FUNCTION__, NS_LossyConvertUTF16toASCII(parentLeafName).get());
|
|
+ LOGD("%s: for %s", __FUNCTION__, NS_LossyConvertUTF16toASCII(leafname).get());
|
|
|
|
- MOZ_ASSERT(parentLeafName.Length() > 4);
|
|
- mName = Substring(parentLeafName, 4);
|
|
+ MOZ_ASSERT(leafname.Length() > 4);
|
|
+ mName = Substring(leafname, 4);
|
|
|
|
return ReadGMPMetaData();
|
|
}
|
|
diff --git toolkit/modules/GMPInstallManager.jsm toolkit/modules/GMPInstallManager.jsm
|
|
index 9593492..470384b 100644
|
|
--- toolkit/modules/GMPInstallManager.jsm
|
|
+++ toolkit/modules/GMPInstallManager.jsm
|
|
@@ -888,9 +889,7 @@
|
|
let gmpAddon = this._gmpAddon;
|
|
let installToDirPath = Cc["@mozilla.org/file/local;1"].
|
|
createInstance(Ci.nsIFile);
|
|
- let path = OS.Path.join(OS.Constants.Path.profileDir,
|
|
- gmpAddon.id,
|
|
- gmpAddon.version);
|
|
+ let path = OS.Path.join(OS.Constants.Path.profileDir, gmpAddon.id);
|
|
installToDirPath.initWithPath(path);
|
|
log.info("install to directory path: " + installToDirPath.path);
|
|
let gmpInstaller = new GMPExtractor(zipPath, installToDirPath.path);
|
|
@@ -885,10 +883,12 @@
|
|
// Success, set the prefs
|
|
let now = Math.round(Date.now() / 1000);
|
|
GMPPrefs.set(GMPPrefs.KEY_PLUGIN_LAST_UPDATE, now, gmpAddon.id);
|
|
- // Setting the version pref signals installation completion to consumers,
|
|
- // if you need to set other prefs etc. do it before this.
|
|
+ // Setting the path pref signals installation completion to consumers,
|
|
+ // so set the version and potential other information they use first.
|
|
GMPPrefs.set(GMPPrefs.KEY_PLUGIN_VERSION, gmpAddon.version,
|
|
gmpAddon.id);
|
|
+ GMPPrefs.set(GMPPrefs.KEY_PLUGIN_PATH,
|
|
+ installToDirPath.path, gmpAddon.id);
|
|
this._deferred.resolve(extractedPaths);
|
|
}, err => {
|
|
this._deferred.reject(err);
|
|
diff --git toolkit/modules/GMPUtils.jsm toolkit/modules/GMPUtils.jsm
|
|
index 1f3a0b1..93517be 100644
|
|
--- toolkit/modules/GMPUtils.jsm
|
|
+++ toolkit/modules/GMPUtils.jsm
|
|
@@ -70,6 +70,7 @@ this.GMPPrefs = {
|
|
KEY_EME_ENABLED: "media.eme.enabled",
|
|
KEY_PLUGIN_ENABLED: "media.{0}.enabled",
|
|
KEY_PLUGIN_LAST_UPDATE: "media.{0}.lastUpdate",
|
|
+ KEY_PLUGIN_PATH: "media.{0}.path",
|
|
KEY_PLUGIN_VERSION: "media.{0}.version",
|
|
KEY_PLUGIN_AUTOUPDATE: "media.{0}.autoupdate",
|
|
KEY_PLUGIN_FORCEVISIBLE: "media.{0}.forcevisible",
|
|
diff --git toolkit/mozapps/extensions/internal/GMPProvider.jsm toolkit/mozapps/extensions/internal/GMPProvider.jsm
|
|
index 1f3a0b1..93517be 100644
|
|
--- toolkit/mozapps/extensions/internal/GMPProvider.jsm
|
|
+++ toolkit/mozapps/extensions/internal/GMPProvider.jsm
|
|
@@ -100,12 +100,11 @@
|
|
Log.repository.getLoggerWithMessagePrefix("Toolkit.GMP",
|
|
"GMPWrapper(" +
|
|
this._plugin.id + ") ");
|
|
- Preferences.observe(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_ENABLED,
|
|
- this._plugin.id),
|
|
+ Preferences.observe(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_ENABLED, this._plugin.id),
|
|
this.onPrefEnabledChanged, this);
|
|
- Preferences.observe(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_VERSION,
|
|
+ Preferences.observe(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_PATH,
|
|
this._plugin.id),
|
|
- this.onPrefVersionChanged, this);
|
|
+ this.onPrefPathChanged, this);
|
|
if (this._plugin.isEME) {
|
|
Preferences.observe(GMPPrefs.KEY_EME_ENABLED,
|
|
this.onPrefEMEGlobalEnabledChanged, this);
|
|
@@ -134,17 +133,14 @@
|
|
optionsType: AddonManager.OPTIONS_TYPE_INLINE,
|
|
get optionsURL() { return this._plugin.optionsURL; },
|
|
|
|
+
|
|
set gmpPath(aPath) { this._gmpPath = aPath; },
|
|
get gmpPath() {
|
|
- if (!this._gmpPath && this.isInstalled) {
|
|
- this._gmpPath = OS.Path.join(OS.Constants.Path.profileDir,
|
|
- this._plugin.id,
|
|
- GMPPrefs.get(GMPPrefs.KEY_PLUGIN_VERSION,
|
|
- null, this._plugin.id));
|
|
+ if (!this._gmpPath) {
|
|
+ this._gmpPath = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH, null, this._plugin.id);
|
|
}
|
|
return this._gmpPath;
|
|
},
|
|
-
|
|
get missingKey() {
|
|
return this._plugin.missingKey;
|
|
},
|
|
@@ -141,8 +137,13 @@
|
|
get description() { return this._plugin.description; },
|
|
get fullDescription() { return this._plugin.fullDescription; },
|
|
|
|
- get version() { return GMPPrefs.get(GMPPrefs.KEY_PLUGIN_VERSION, null,
|
|
- this._plugin.id); },
|
|
+ get version() {
|
|
+ if (this.isInstalled) {
|
|
+ return GMPPrefs.get(GMPPrefs.KEY_PLUGIN_VERSION, null,
|
|
+ this._plugin.id);
|
|
+ }
|
|
+ return null;
|
|
+ },
|
|
|
|
get isActive() { return !this.appDisabled && !this.userDisabled; },
|
|
get appDisabled() {
|
|
@@ -289,24 +290,17 @@
|
|
|
|
get pluginMimeTypes() { return []; },
|
|
get pluginLibraries() {
|
|
- if (this.isInstalled) {
|
|
- let path = this.version;
|
|
- return [path];
|
|
- }
|
|
- return [];
|
|
+ let path = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH, null, this._plugin.id);
|
|
+ return path && path.length ? [OS.Path.basename(path)] : [];
|
|
},
|
|
get pluginFullpath() {
|
|
- if (this.isInstalled) {
|
|
- let path = OS.Path.join(OS.Constants.Path.profileDir,
|
|
- this._plugin.id,
|
|
- this.version);
|
|
- return [path];
|
|
- }
|
|
- return [];
|
|
+ let path = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH, null, this._plugin.id);
|
|
+ return path && path.length ? [path] : [];
|
|
},
|
|
|
|
get isInstalled() {
|
|
- return this.version && this.version.length > 0;
|
|
+ let path = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH, null, this._plugin.id);
|
|
+ return path && path.length > 0;
|
|
},
|
|
|
|
_handleEnabledChanged: function() {
|
|
@@ -362,10 +356,10 @@
|
|
}
|
|
},
|
|
|
|
- onPrefVersionChanged: function() {
|
|
+ onPrefPathChanged: function() {
|
|
AddonManagerPrivate.callAddonListeners("onUninstalling", this, false);
|
|
if (this._gmpPath) {
|
|
- this._log.info("onPrefVersionChanged() - unregistering gmp directory " +
|
|
+ this._log.info("onPrefPathChanged() - unregistering gmp directory " +
|
|
this._gmpPath);
|
|
gmpService.removePluginDirectory(this._gmpPath);
|
|
}
|
|
@@ -374,15 +368,10 @@
|
|
AddonManagerPrivate.callInstallListeners("onExternalInstall", null, this,
|
|
null, false);
|
|
AddonManagerPrivate.callAddonListeners("onInstalling", this, false);
|
|
- this._gmpPath = null;
|
|
- if (this.isInstalled) {
|
|
- this._gmpPath = OS.Path.join(OS.Constants.Path.profileDir,
|
|
- this._plugin.id,
|
|
- GMPPrefs.get(GMPPrefs.KEY_PLUGIN_VERSION,
|
|
- null, this._plugin.id));
|
|
- }
|
|
+ this._gmpPath = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH,
|
|
+ null, this._plugin.id);
|
|
if (this._gmpPath && this.isActive) {
|
|
- this._log.info("onPrefVersionChanged() - registering gmp directory " +
|
|
+ this._log.info("onPrefPathChanged() - registering gmp directory " +
|
|
this._gmpPath);
|
|
gmpService.addPluginDirectory(this._gmpPath);
|
|
}
|
|
@@ -393,9 +382,9 @@
|
|
Preferences.ignore(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_ENABLED,
|
|
this._plugin.id),
|
|
this.onPrefEnabledChanged, this);
|
|
- Preferences.ignore(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_VERSION,
|
|
+ Preferences.ignore(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_PATH,
|
|
this._plugin.id),
|
|
- this.onPrefVersionChanged, this);
|
|
+ this.onPrefPathChanged, this);
|
|
if (this._plugin.isEME) {
|
|
Preferences.ignore(GMPPrefs.KEY_EME_ENABLED,
|
|
this.onPrefEMEGlobalEnabledChanged, this);
|