[Pkg-mozext-commits] [greasemonkey] 05/19: Support for detecting private mode
David Prévot
taffit at moszumanska.debian.org
Fri May 6 12:48:47 UTC 2016
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository greasemonkey.
commit 3d85afe80eaf24ac8f0881d8db8fc58eb25ffb13
Author: janekptacijarabaci <janekptacijarabaci at seznam.cz>
Date: Sat Apr 9 09:25:52 2016 +0200
Support for detecting private mode
---
modules/sandbox.js | 9 ++++++---
modules/script.js | 6 ++++++
modules/util.js | 1 +
modules/util/isPrivate.js | 17 +++++++++++++++++
modules/xmlhttprequester.js | 11 +----------
5 files changed, 31 insertions(+), 13 deletions(-)
diff --git a/modules/sandbox.js b/modules/sandbox.js
index 6b6b414..ef849fd 100644
--- a/modules/sandbox.js
+++ b/modules/sandbox.js
@@ -38,7 +38,7 @@ function createSandbox(aScript, aContentWin, aUrl, aFrameScope) {
'wantXrays': false,
});
// GM_info is always provided.
- injectGMInfo(aScript, contentSandbox);
+ injectGMInfo(aScript, contentSandbox, aContentWin);
// Alias unsafeWindow for compatibility.
Components.utils.evalInSandbox(
@@ -123,16 +123,19 @@ function createSandbox(aScript, aContentWin, aUrl, aFrameScope) {
'contentStartRequest');
}
- injectGMInfo(aScript, sandbox);
+ injectGMInfo(aScript, sandbox, aContentWin);
return sandbox;
}
-function injectGMInfo(aScript, sandbox) {
+function injectGMInfo(aScript, sandbox, aContentWin) {
var rawInfo = aScript.info();
var scriptURL = aScript.fileURL;
+ rawInfo.script.isIncognito = GM_util.isPrivate(aContentWin);
+ rawInfo.script.isPrivate = rawInfo.script.isIncognito;
+
// TODO: also delay top level clone via lazy getter? XPCOMUtils.defineLazyGetter
sandbox.GM_info = Cu.cloneInto(rawInfo, sandbox);
diff --git a/modules/script.js b/modules/script.js
index 099326f..eeeef8c 100644
--- a/modules/script.js
+++ b/modules/script.js
@@ -45,6 +45,7 @@ function Script(configNode) {
this._id = null;
this._installTime = null;
this._includes = [];
+ this._isPrivate = 'unknown';
// All available localized properties.
this._locales = {};
// The best localized matches for the current browser locale.
@@ -314,6 +315,9 @@ function Script_getFileURL() { return GM_util.getUriFromFile(this.file).spec; })
Script.prototype.__defineGetter__('textContent',
function Script_getTextContent() { return GM_util.getContents(this.file); });
+Script.prototype.__defineGetter__('isPrivate',
+function Script_getIsPrivate() { return this._isPrivate; });
+
Script.prototype.setFilename = function(aBaseName, aFileName) {
this._basedir = aBaseName;
this._filename = aFileName;
@@ -578,6 +582,8 @@ Script.prototype.info = function() {
'excludes': this.excludes,
// 'icon': ??? source URL?,
'includes': this.includes,
+ 'isIncognito': this.isPrivate,
+ 'isPrivate': this.isPrivate,
'localizedDescription': this.localized.description,
'localizedName': this.localized.name,
'matches': matches,
diff --git a/modules/util.js b/modules/util.js
index b36d365..694c2a3 100644
--- a/modules/util.js
+++ b/modules/util.js
@@ -45,6 +45,7 @@ XPCOMUtils.defineLazyModuleGetter(GM_util, 'hitch', 'chrome://greasemonkey-modul
XPCOMUtils.defineLazyModuleGetter(GM_util, 'inArray', 'chrome://greasemonkey-modules/content/util/inArray.js');
XPCOMUtils.defineLazyModuleGetter(GM_util, 'installScriptFromSource', 'chrome://greasemonkey-modules/content/util/installScriptFromSource.js');
XPCOMUtils.defineLazyModuleGetter(GM_util, 'isGreasemonkeyable', 'chrome://greasemonkey-modules/content/util/isGreasemonkeyable.js');
+XPCOMUtils.defineLazyModuleGetter(GM_util, 'isPrivate', 'chrome://greasemonkey-modules/content/util/isPrivate.js');
XPCOMUtils.defineLazyModuleGetter(GM_util, 'logError', 'chrome://greasemonkey-modules/content/util/logError.js');
XPCOMUtils.defineLazyModuleGetter(GM_util, 'memoize', 'chrome://greasemonkey-modules/content/util/memoize.js');
XPCOMUtils.defineLazyModuleGetter(GM_util, 'newUserScript', 'chrome://greasemonkey-modules/content/util/newUserScript.js');
diff --git a/modules/util/isPrivate.js b/modules/util/isPrivate.js
new file mode 100644
index 0000000..817404c
--- /dev/null
+++ b/modules/util/isPrivate.js
@@ -0,0 +1,17 @@
+Components.utils.import("resource://gre/modules/PrivateBrowsingUtils.jsm");
+
+var EXPORTED_SYMBOLS = ["isPrivate"];
+
+
+function isPrivate(aContentWin) {
+ var isPrivate = true;
+ if (PrivateBrowsingUtils.isContentWindowPrivate) {
+ // Firefox >= 35
+ isPrivate = PrivateBrowsingUtils.isContentWindowPrivate(aContentWin);
+ } else {
+ // Firefox <= 34; i.e. PaleMoon
+ isPrivate = PrivateBrowsingUtils.isWindowPrivate(aContentWin);
+ }
+
+ return isPrivate;
+}
diff --git a/modules/xmlhttprequester.js b/modules/xmlhttprequester.js
index b783892..14166f8 100644
--- a/modules/xmlhttprequester.js
+++ b/modules/xmlhttprequester.js
@@ -1,7 +1,6 @@
var EXPORTED_SYMBOLS = ['GM_xmlhttpRequester'];
Components.utils.importGlobalProperties(["Blob"]);
-Components.utils.import("resource://gre/modules/PrivateBrowsingUtils.jsm");
Components.utils.import("chrome://greasemonkey-modules/content/util.js");
var gStringBundle = Components
@@ -129,15 +128,7 @@ function(safeUrl, details, req) {
var channel;
- var isPrivate = true;
- if (PrivateBrowsingUtils.isContentWindowPrivate) {
- // Firefox >= 35
- isPrivate = PrivateBrowsingUtils.isContentWindowPrivate(this.wrappedContentWin);
- } else {
- // Firefox <= 34; i.e. PaleMoon
- isPrivate = PrivateBrowsingUtils.isWindowPrivate(this.wrappedContentWin);
- }
- if (isPrivate) {
+ if (GM_util.isPrivate(this.wrappedContentWin)) {
channel = req.channel
.QueryInterface(Components.interfaces.nsIPrivateBrowsingChannel);
channel.setPrivate(true);
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/greasemonkey.git
More information about the Pkg-mozext-commits
mailing list