Browse Source

enable ability to detach the logger (same as uBO)

pull/2/head
gorhill 7 years ago
parent
commit
0207c91312
No known key found for this signature in database GPG Key ID: 25E1490B761470C2
  1. 6
      platform/chromium/vapi-background.js
  2. 1
      src/js/background.js
  3. 4
      src/js/messaging.js
  4. 6
      src/js/popup.js
  5. 6
      src/js/storage.js
  6. 66
      src/js/utils.js

6
platform/chromium/vapi-background.js

@ -266,6 +266,12 @@ vAPI.tabs.open = function(details) {
}); });
}; };
// Open in a standalone window
if ( details.popup === true ) {
chrome.windows.create({ url: details.url, type: 'popup' });
return;
}
if ( details.index !== -1 ) { if ( details.index !== -1 ) {
subWrapper(); subWrapper();
return; return;

1
src/js/background.js

@ -86,6 +86,7 @@ return {
onBeforeStartQueue: [], onBeforeStartQueue: [],
userSettings: { userSettings: {
alwaysDetachLogger: false,
autoUpdate: false, autoUpdate: false,
clearBrowserCache: true, clearBrowserCache: true,
clearBrowserCacheAfter: 60, clearBrowserCacheAfter: 60,

4
src/js/messaging.js

@ -74,11 +74,11 @@ function onMessage(request, sender, callback) {
break; break;
case 'gotoExtensionURL': case 'gotoExtensionURL':
µm.utils.gotoExtensionURL(request.url);
µm.gotoExtensionURL(request);
break; break;
case 'gotoURL': case 'gotoURL':
µm.utils.gotoURL(request);
µm.gotoURL(request);
break; break;
case 'mustBlock': case 'mustBlock':

6
src/js/popup.js

@ -1298,7 +1298,11 @@ function mouseleaveMatrixCellHandler() {
function gotoExtensionURL(ev) { function gotoExtensionURL(ev) {
var url = uDom(ev.currentTarget).attr('data-extension-url'); var url = uDom(ev.currentTarget).attr('data-extension-url');
if ( url ) { if ( url ) {
messager.send({ what: 'gotoExtensionURL', url: url });
messager.send({
what: 'gotoExtensionURL',
url: url,
shiftKey: ev.shiftKey
});
} }
dropDownMenuHide(); dropDownMenuHide();
vAPI.closePopup(); vAPI.closePopup();

6
src/js/storage.js

@ -97,14 +97,14 @@
var out = new Set(), var out = new Set(),
reIgnore = /^[!#]/, reIgnore = /^[!#]/,
reValid = /^[a-z-]+:\/\/\S+/, reValid = /^[a-z-]+:\/\/\S+/,
lineIter = new this.utils.LineIterator(raw),
lineIter = new this.LineIterator(raw),
location; location;
while ( lineIter.eot() === false ) { while ( lineIter.eot() === false ) {
location = lineIter.next().trim(); location = lineIter.next().trim();
if ( reIgnore.test(location) || !reValid.test(location) ) { continue; } if ( reIgnore.test(location) || !reValid.test(location) ) { continue; }
out.add(location); out.add(location);
} }
return this.utils.setToArray(out);
return this.setToArray(out);
}; };
/******************************************************************************/ /******************************************************************************/
@ -391,7 +391,7 @@
title: assetKey title: assetKey
}; };
} }
externalHostsFiles = this.utils.setToArray(importedSet).sort().join('\n');
externalHostsFiles = this.setToArray(importedSet).sort().join('\n');
} }
if ( externalHostsFiles !== this.userSettings.externalHostsFiles ) { if ( externalHostsFiles !== this.userSettings.externalHostsFiles ) {

66
src/js/utils.js

@ -1,6 +1,6 @@
/******************************************************************************* /*******************************************************************************
µMatrix - a Chromium browser extension to black/white list requests.
uMatrix - a Chromium browser extension to black/white list requests.
Copyright (C) 2014-2017 Raymond Hill Copyright (C) 2014-2017 Raymond Hill
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
@ -23,35 +23,36 @@
/******************************************************************************/ /******************************************************************************/
// This will inserted as a module in the µMatrix object.
µMatrix.utils = (function() {
/******************************************************************************/
var gotoURL = function(details) {
µMatrix.gotoURL = function(details) {
vAPI.tabs.open(details); vAPI.tabs.open(details);
}; };
/******************************************************************************/ /******************************************************************************/
var gotoExtensionURL = function(url) {
vAPI.tabs.open({
url: url,
index: -1,
select: true
});
µMatrix.gotoExtensionURL = function(details) {
if ( details.url.startsWith('logger-ui.html') ) {
if ( details.shiftKey ) {
this.changeUserSettings(
'alwaysDetachLogger',
!this.userSettings.alwaysDetachLogger
);
}
details.popup = this.userSettings.alwaysDetachLogger;
}
details.select = true;
vAPI.tabs.open(details);
}; };
/******************************************************************************/ /******************************************************************************/
var LineIterator = function(text, offset) {
µMatrix.LineIterator = function(text, offset) {
this.text = text; this.text = text;
this.textLen = this.text.length; this.textLen = this.text.length;
this.offset = offset || 0; this.offset = offset || 0;
}; };
LineIterator.prototype.next = function() {
µMatrix.LineIterator.prototype = {
next: function() {
var lineEnd = this.text.indexOf('\n', this.offset); var lineEnd = this.text.indexOf('\n', this.offset);
if ( lineEnd === -1 ) { if ( lineEnd === -1 ) {
lineEnd = this.text.indexOf('\r', this.offset); lineEnd = this.text.indexOf('\r', this.offset);
@ -62,9 +63,8 @@ LineIterator.prototype.next = function() {
var line = this.text.slice(this.offset, lineEnd); var line = this.text.slice(this.offset, lineEnd);
this.offset = lineEnd + 1; this.offset = lineEnd + 1;
return line; return line;
};
LineIterator.prototype.rewind = function() {
},
rewind: function() {
if ( this.offset <= 1 ) { if ( this.offset <= 1 ) {
this.offset = 0; this.offset = 0;
return; return;
@ -76,17 +76,17 @@ LineIterator.prototype.rewind = function() {
lineEnd = this.text.lastIndexOf('\r', this.offset - 2); lineEnd = this.text.lastIndexOf('\r', this.offset - 2);
this.offset = lineEnd !== -1 ? lineEnd + 1 : 0; this.offset = lineEnd !== -1 ? lineEnd + 1 : 0;
} }
};
LineIterator.prototype.eot = function() {
},
eot: function() {
return this.offset >= this.textLen; return this.offset >= this.textLen;
}
}; };
/******************************************************************************/ /******************************************************************************/
var setToArray = typeof Array.from === 'function'
? Array.from
: function(dict) {
µMatrix.setToArray = typeof Array.from === 'function' ?
Array.from :
function(dict) {
var out = [], var out = [],
entries = dict.values(), entries = dict.values(),
entry; entry;
@ -98,22 +98,8 @@ var setToArray = typeof Array.from === 'function'
return out; return out;
}; };
var setFromArray = function(arr) {
µMatrix.setFromArray = function(arr) {
return new Set(arr); return new Set(arr);
}; };
/******************************************************************************/ /******************************************************************************/
return {
gotoURL: gotoURL,
gotoExtensionURL: gotoExtensionURL,
LineIterator: LineIterator,
setToArray: setToArray,
setFromArray: setFromArray
};
/******************************************************************************/
})();
/******************************************************************************/
Loading…
Cancel
Save