diff --git a/common/Makefile b/common/Makefile index 50e6709c..8f34f02d 100644 --- a/common/Makefile +++ b/common/Makefile @@ -1,11 +1,17 @@ #### configuration +_SH := $(shell if which dash >/dev/null 2>&1; \ + then echo dash; \ + else echo sh; \ + fi) +SH ?= $(_SH) AWK ?= awk B64ENCODE ?= base64 CURL ?= curl SED := $(shell if [ "xoo" = x$$(echo foo | sed -E 's/f(o)/\1/' 2>/dev/null) ]; \ - then echo sed -E; else echo sed -r; \ + then echo sed -E; \ + else echo sed -r; \ fi) TOP = $(shell pwd) @@ -28,7 +34,7 @@ LOCALEDIR = locale DOC_FILES = $(wildcard $(LOCALEDIR)/*/*.xml) export VERSION BUILD_DATE -MAKE_JAR = sh $(BASE)/make_jar.sh +MAKE_JAR = $(SH) $(BASE)/make_jar.sh # TODO: specify source files manually? JAR_BASES = $(TOP) $(BASE) diff --git a/common/content/browser.js b/common/content/browser.js index 95c1fd4a..73736298 100644 --- a/common/content/browser.js +++ b/common/content/browser.js @@ -1,6 +1,6 @@ // Copyright (c) 2006-2008 by Martin Stubenschrott // Copyright (c) 2007-2011 by Doug Kearns -// Copyright (c) 2008-2013 Kris Maglione +// Copyright (c) 2008-2014 Kris Maglione // // This work is licensed for reuse under an MIT license. Details are // given in the LICENSE.txt file included with this file. @@ -16,11 +16,17 @@ var Browser = Module("browser", XPCOM(Ci.nsISupportsWeakReference, ModuleBase), this.cleanupProgressListener = overlay.overlayObject(window.XULBrowserWindow, this.progressListener); util.addObserver(this); + + this._unoverlay = overlay.overlayObject(FullZoom, { + get siteSpecific() false, + set siteSpecific(val) {} + }); }, destroy: function () { this.cleanupProgressListener(); this.observe.unregister(); + this._unoverlay(); }, observers: { diff --git a/common/modules/buffer.jsm b/common/modules/buffer.jsm index 4c1c62e8..e2446b71 100644 --- a/common/modules/buffer.jsm +++ b/common/modules/buffer.jsm @@ -86,11 +86,16 @@ var Buffer = Module("Buffer", { * @returns {Promise} */ get: promises.withCallbacks(function get([resolve, reject], pref) { - services.contentPrefs.getByDomainAndName( - self.uri.spec, pref, self.loadContext, - { handleCompletion: () => {}, - handleResult: resolve, - handleError: reject }); + let pref = services.contentPrefs.getCachedByDomainAndName( + self.uri.spec, pref, self.loadContext); + if (pref) + resolve(pref.value); + else + services.contentPrefs.getByDomainAndName( + self.uri.spec, pref, self.loadContext, + { handleCompletion: () => {}, + handleResult: resolve, + handleError: reject }); }), /** diff --git a/common/modules/overlay.jsm b/common/modules/overlay.jsm index 9753061a..f52a23eb 100644 --- a/common/modules/overlay.jsm +++ b/common/modules/overlay.jsm @@ -336,18 +336,23 @@ var Overlay = Module("Overlay", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReferen overrides = update(Object.create(original), overrides); Object.getOwnPropertyNames(overrides).forEach(function (k) { - let orig, desc = Object.getOwnPropertyDescriptor(overrides, k); + let desc = Object.getOwnPropertyDescriptor(overrides, k); + if (desc.value instanceof Class.Property) desc = desc.value.init(k) || desc.value; if (k in object) { - for (let obj = object; obj && !orig; obj = Object.getPrototypeOf(obj)) - if (orig = Object.getOwnPropertyDescriptor(obj, k)) + for (let obj = object; obj && !orig; obj = Object.getPrototypeOf(obj)) { + var orig = Object.getOwnPropertyDescriptor(obj, k); + if (orig) Object.defineProperty(original, k, orig); + } - if (!orig) - if (orig = Object.getPropertyDescriptor(object, k)) + if (!orig) { + orig = Object.getPropertyDescriptor(object, k); + if (orig) Object.defineProperty(original, k, orig); + } } // Guard against horrible add-ons that use eval-based monkey