ports/www/firefox/files/patch-system-openh264
Beat Gaetzi 0ccec1792b - Update Thunderbird to 31.3.0
- Update gmp-api to 35.0
- Update openh264 to 1.2
- Update NSS to 3.17.3
- Update Firefox to 34.0.5
- Update Firefox ESR 31.3.0
- Update libxul to 31.3.0
- Improve CONFIGURE_TARGET handling
- Always build using client.mk
- Switch to clang by default on systems without libc++
  (/stable/8 and /stable/9)
- Drop lang/python2 dependency, only lang/python27 is required
  to build
- Use DuckDuckGo searchplugin from upstream (has suggestions
  and purposes)
- Backport a few about:memory fixes
- Backport Web Notifications libnotify integration
- Add GTK3 option for www/firefox. Adwaita is a bit broken
  since Gtk 3.14, see:
  https://bugzilla.mozilla.org/show_bug.cgi?id=1073117

PR:		195559
Submitted by:	Jan Beich
MFH:		2014Q4
Security:	http://vuxml.org/freebsd/7ae61870-9dd2-4884-a2f2-f19bb5784d09.html
2014-12-03 14:55:25 +00:00

218 lines
8.6 KiB
Text

# Revert bug 1045209 to allow using absolute path
diff --git content/media/gmp/GMPChild.cpp content/media/gmp/GMPChild.cpp
index 4165a75..81914d5 100644
--- content/media/gmp/GMPChild.cpp
+++ content/media/gmp/GMPChild.cpp
@@ -66,19 +66,11 @@
}
#endif
- nsCOMPtr<nsIFile> parent;
- rv = aLibFile->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(aLibFile->GetLeafName(leafName))) {
return false;
}
-
- nsAutoString baseName(Substring(parentLeafName, 4, parentLeafName.Length() - 1));
+ nsAutoString baseName(Substring(leafName, 4, leafName.Length() - 1));
#if defined(XP_MACOSX)
nsAutoString binaryName = NS_LITERAL_STRING("lib") + baseName + NS_LITERAL_STRING(".dylib");
diff --git content/media/gmp/GMPParent.cpp content/media/gmp/GMPParent.cpp
index aa60acf..90878ca 100644
--- content/media/gmp/GMPParent.cpp
+++ content/media/gmp/GMPParent.cpp
@@ -90,23 +90,16 @@
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));
- if (NS_FAILED(rv)) {
- return rv;
- }
- nsAutoString parentLeafName;
- rv = parent->GetLeafName(parentLeafName);
+ nsAutoString leafname;
+ nsresult rv = aPluginDir->GetLeafName(leafname);
if (NS_FAILED(rv)) {
return rv;
}
LOGD(("%s::%s: %p for %s", __CLASS__, __FUNCTION__, this,
- NS_LossyConvertUTF16toASCII(parentLeafName).get()));
+ 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
@@ -107,6 +107,7 @@
*/
KEY_LOG_ENABLED: "media.gmp-manager.log",
KEY_ADDON_LAST_UPDATE: "media.{0}.lastUpdate",
+ KEY_ADDON_PATH: "media.{0}.path",
KEY_ADDON_VERSION: "media.{0}.version",
KEY_ADDON_AUTOUPDATE: "media.{0}.autoupdate",
KEY_URL: "media.gmp-manager.url",
@@ -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);
@@ -899,10 +898,12 @@
// Success, set the prefs
let now = Math.round(Date.now() / 1000);
GMPPrefs.set(GMPPrefs.KEY_ADDON_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_ADDON_VERSION, gmpAddon.version,
gmpAddon.id);
+ GMPPrefs.set(GMPPrefs.KEY_ADDON_PATH,
+ installToDirPath.path, gmpAddon.id);
this._deferred.resolve(extractedPaths);
}, err => {
this._deferred.reject(err);
diff --git toolkit/mozapps/extensions/internal/OpenH264Provider.jsm toolkit/mozapps/extensions/internal/OpenH264Provider.jsm
index 1f3a0b1..93517be 100644
--- toolkit/mozapps/extensions/internal/OpenH264Provider.jsm
+++ toolkit/mozapps/extensions/internal/OpenH264Provider.jsm
@@ -29,6 +29,7 @@
const OPENH264_PLUGIN_ID = "gmp-gmpopenh264";
const OPENH264_PREF_BRANCH = "media." + OPENH264_PLUGIN_ID + ".";
const OPENH264_PREF_ENABLED = "enabled";
+const OPENH264_PREF_PATH = "path";
const OPENH264_PREF_VERSION = "version";
const OPENH264_PREF_LASTUPDATE = "lastUpdate";
const OPENH264_PREF_AUTOUPDATE = "autoupdate";
@@ -93,7 +94,12 @@
get description() { return pluginsBundle.GetStringFromName("openH264_description"); },
- get version() { return prefs.get(OPENH264_PREF_VERSION, ""); },
+ get version() {
+ if (this.isInstalled) {
+ return prefs.get(OPENH264_PREF_VERSION, "");
+ }
+ return "";
+ },
get isActive() { return !this.userDisabled; },
get appDisabled() { return false; },
@@ -217,24 +223,17 @@
get pluginMimeTypes() { return []; },
get pluginLibraries() {
- if (this.isInstalled) {
- let path = this.version;
- return [path];
- }
- return [];
+ let path = prefs.get(OPENH264_PREF_PATH, null);
+ return path && path.length ? [OS.Path.basename(path)] : [];
},
get pluginFullpath() {
- if (this.isInstalled) {
- let path = OS.Path.join(OS.Constants.Path.profileDir,
- OPENH264_PLUGIN_ID,
- this.version);
- return [path];
- }
- return [];
+ let path = prefs.get(OPENH264_PREF_PATH, null);
+ return path && path.length ? [path] : [];
},
get isInstalled() {
- return this.version.length > 0;
+ let path = prefs.get(OPENH264_PREF_PATH, "");
+ return path.length > 0;
},
};
@@ -245,19 +244,14 @@
"OpenH264Provider" + "::");
OpenH264Wrapper._log = Log.repository.getLoggerWithMessagePrefix("Toolkit.OpenH264Provider",
"OpenH264Wrapper" + "::");
- this.gmpPath = null;
- if (OpenH264Wrapper.isInstalled) {
- this.gmpPath = OS.Path.join(OS.Constants.Path.profileDir,
- OPENH264_PLUGIN_ID,
- prefs.get(OPENH264_PREF_VERSION, null));
- }
+ this.gmpPath = prefs.get(OPENH264_PREF_PATH, null);
let enabled = prefs.get(OPENH264_PREF_ENABLED, true);
this._log.trace("startup() - enabled=" + enabled + ", gmpPath="+this.gmpPath);
Services.obs.addObserver(this, AddonManager.OPTIONS_NOTIFICATION_DISPLAYED, false);
prefs.observe(OPENH264_PREF_ENABLED, this.onPrefEnabledChanged, this);
- prefs.observe(OPENH264_PREF_VERSION, this.onPrefVersionChanged, this);
+ prefs.observe(OPENH264_PREF_PATH, this.onPrefPathChanged, this);
prefs.observe(OPENH264_PREF_LOGGING, configureLogging);
if (this.gmpPath && enabled) {
@@ -270,7 +264,7 @@
this._log.trace("shutdown()");
Services.obs.removeObserver(this, AddonManager.OPTIONS_NOTIFICATION_DISPLAYED);
prefs.ignore(OPENH264_PREF_ENABLED, this.onPrefEnabledChanged, this);
- prefs.ignore(OPENH264_PREF_VERSION, this.onPrefVersionChanged, this);
+ prefs.ignore(OPENH264_PREF_PATH, this.onPrefPathChanged, this);
prefs.ignore(OPENH264_PREF_LOGGING, configureLogging);
return OpenH264Wrapper._updateTask;
@@ -296,25 +290,20 @@
wrapper);
},
- onPrefVersionChanged: function() {
+ onPrefPathChanged: function() {
let wrapper = OpenH264Wrapper;
AddonManagerPrivate.callAddonListeners("onUninstalling", wrapper, false);
if (this.gmpPath) {
- this._log.info("onPrefVersionChanged() - unregistering gmp directory " + this.gmpPath);
+ this._log.info("onPrefPathChanged() - removing gmp directory " + this.gmpPath);
gmpService.removePluginDirectory(this.gmpPath);
}
AddonManagerPrivate.callAddonListeners("onUninstalled", wrapper);
AddonManagerPrivate.callInstallListeners("onExternalInstall", null, wrapper, null, false);
- this.gmpPath = null;
- if (OpenH264Wrapper.isInstalled) {
- this.gmpPath = OS.Path.join(OS.Constants.Path.profileDir,
- OPENH264_PLUGIN_ID,
- prefs.get(OPENH264_PREF_VERSION, null));
- }
+ this.gmpPath = prefs.get(OPENH264_PREF_PATH, null);
if (this.gmpPath && wrapper.isActive) {
- this._log.info("onPrefVersionChanged() - registering gmp directory " + this.gmpPath);
+ this._log.info("onPrefPathChanged() - adding gmp directory " + this.gmpPath);
gmpService.addPluginDirectory(this.gmpPath);
}
AddonManagerPrivate.callAddonListeners("onInstalled", wrapper);