summaryrefslogtreecommitdiffstats
path: root/application/palemoon
diff options
context:
space:
mode:
Diffstat (limited to 'application/palemoon')
-rw-r--r--application/palemoon/components/statusbar/Status.jsm66
-rw-r--r--application/palemoon/installer/package-manifest.in7
-rw-r--r--application/palemoon/moz.configure2
3 files changed, 60 insertions, 15 deletions
diff --git a/application/palemoon/components/statusbar/Status.jsm b/application/palemoon/components/statusbar/Status.jsm
index 19e12ddfd..dbdd1fc49 100644
--- a/application/palemoon/components/statusbar/Status.jsm
+++ b/application/palemoon/components/statusbar/Status.jsm
@@ -120,6 +120,57 @@ S4EStatusService.prototype =
},
buildBinding: function() {
+
+ // Object.prototype.watch() shim, based on Eli Grey's polyfill
+ // object.watch
+ if (!this._window.XULBrowserWindow.watch) {
+ Object.defineProperty(this._window.XULBrowserWindow, "watch", {
+ enumerable: false,
+ configurable: true,
+ writable: false,
+ value: function (prop, handler) {
+ var oldval = this[prop],
+ newval = oldval,
+ getter = function () {
+ return newval;
+ },
+ setter = function (val) {
+ oldval = newval;
+ return newval = handler.call(this, prop, oldval, val);
+ }
+ ;
+
+ try {
+ if (delete this[prop]) { // can't watch constants
+ Object.defineProperty(this, prop, {
+ get: getter,
+ set: setter,
+ enumerable: true,
+ configurable: true
+ });
+ }
+ } catch(e) {
+ // This fails fatally on non-configurable props, so just
+ // ignore errors if it does.
+ }
+ }
+ });
+ }
+
+ // object.unwatch
+ if (!this._window.XULBrowserWindow.unwatch) {
+ Object.defineProperty(this._window.XULBrowserWindow, "unwatch", {
+ enumerable: false,
+ configurable: true,
+ writable: false,
+ value: function (prop) {
+ var val = this[prop];
+ delete this[prop]; // remove accessors
+ this[prop] = val;
+ }
+ });
+ }
+
let XULBWPropHandler = function(prop, oldval, newval) {
CU.reportError("Attempt to modify XULBrowserWindow." + prop);
return oldval;
@@ -139,21 +190,6 @@ S4EStatusService.prototype =
this._window.XULBrowserWindow[prop] = this[prop].bind(this);
this._window.XULBrowserWindow.watch(prop, XULBWPropHandler);
}, this);
-
- let XULBWHandler = function(prop, oldval, newval) {
- if(!newval)
- {
- return newval;
- }
- CU.reportError("XULBrowserWindow changed. Updating S4E bindings.");
- this._window.setTimeout(function(self)
- {
- self.buildBinding();
- }, 0, this);
- return newval;
- };
-
- this._window.watch("XULBrowserWindow", XULBWHandler);
},
destroy: function()
diff --git a/application/palemoon/installer/package-manifest.in b/application/palemoon/installer/package-manifest.in
index f95f18f77..e24b605e8 100644
--- a/application/palemoon/installer/package-manifest.in
+++ b/application/palemoon/installer/package-manifest.in
@@ -296,6 +296,13 @@
#ifndef MOZ_SYSTEM_NSS
#if defined(XP_LINUX) && !defined(ANDROID)
@BINPATH@/@DLL_PREFIX@freeblpriv3@DLL_SUFFIX@
+#elif defined(XP_SOLARIS) && defined(SPARC64)
+@BINPATH@/@DLL_PREFIX@freebl_64fpu_3@DLL_SUFFIX@
+@BINPATH@/@DLL_PREFIX@freebl_64int_3@DLL_SUFFIX@
+#elif defined(XP_SOLARIS) && defined(SPARC)
+@BINPATH@/@DLL_PREFIX@freebl_32fpu_3@DLL_SUFFIX@
+@BINPATH@/@DLL_PREFIX@freebl_32int64_3@DLL_SUFFIX@
+@BINPATH@/@DLL_PREFIX@freebl3@DLL_SUFFIX@
#else
@BINPATH@/@DLL_PREFIX@freebl3@DLL_SUFFIX@
#endif
diff --git a/application/palemoon/moz.configure b/application/palemoon/moz.configure
index 72236254f..de9b10b16 100644
--- a/application/palemoon/moz.configure
+++ b/application/palemoon/moz.configure
@@ -5,3 +5,5 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
include('../../toolkit/moz.configure')
+
+