diff --git a/common/content/dactyl.js b/common/content/dactyl.js index a54b577b..9cc5fcea 100644 --- a/common/content/dactyl.js +++ b/common/content/dactyl.js @@ -1877,6 +1877,27 @@ var Dactyl = Module("dactyl", XPCOM(Ci.nsISupportsWeakReference, ModuleBase), { userContext.DOM = Class("DOM", DOM, { init: function DOM_(sel, ctxt) DOM(sel, ctxt || buffer.focusedFrame.document) }); userContext.$ = modules.userContext.DOM; + // Hack: disable disabling of Personas in private windows. + let root = document.documentElement; + + if (PrivateBrowsingUtils && PrivateBrowsingUtils.isWindowPrivate(window) + && root._lightweightTheme + && root._lightweightTheme._lastScreenWidth == null) { + + let { isWindowPrivate } = PrivateBrowsingUtils; + try { + PrivateBrowsingUtils.isWindowPrivate = function () false; + let { LightweightThemeConsumer } = Cu.import("resource://gre/modules/LightweightThemeConsumer.jsm", {}); + LightweightThemeConsumer.call(root._lightweightTheme, document); + } + catch (e) { + util.reportError(e); + } + finally { + PrivateBrowsingUtils.isWindowPrivate = isWindowPrivate; + } + } + dactyl.timeout(function () { try { var args = config.prefs.get("commandline-args") diff --git a/common/modules/services.jsm b/common/modules/services.jsm index e0bba764..d3ac781f 100644 --- a/common/modules/services.jsm +++ b/common/modules/services.jsm @@ -8,9 +8,14 @@ try { var global = this; defineModule("services", { - exports: ["services"] + exports: ["PrivateBrowsingUtils", "services"] }); +try { + var { PrivateBrowsingUtils } = Cu.import("resource://gre/modules/PrivateBrowsingUtils.jsm"); +} +catch (e) {} + /** * A lazily-instantiated XPCOM class and service cache. */ diff --git a/common/modules/storage.jsm b/common/modules/storage.jsm index f4de771f..5bc7cada 100644 --- a/common/modules/storage.jsm +++ b/common/modules/storage.jsm @@ -167,8 +167,7 @@ var sessionGlobal = Cu.import("resource://gre/modules/Services.jsm", {}) var Storage = Module("Storage", { Local: function Local(dactyl, modules, window) ({ init: function init() { - this.privateMode = window.document.documentElement - .getAttribute("privatebrowsingmode"); + this.privateMode = PrivateBrowsingUtils.isWindowPrivate(window); } }),