[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