mirror of https://github.com/gorhill/uBlock.git
abp:subscribe fixes
Test a[href^="abp:"], since the protocol probably not used for anything else, also "a", because ABP checks only anchors, and these links are made only for ABP. Also, the event target is not always the link, so at least some parents should be tested as well.
This commit is contained in:
parent
5ae7687e56
commit
ebf840c35d
|
@ -455,11 +455,9 @@ vAPI.tabs.getTabId = function(target) {
|
||||||
if ( vAPI.fennec ) {
|
if ( vAPI.fennec ) {
|
||||||
if ( target.browser ) {
|
if ( target.browser ) {
|
||||||
// target is a tab
|
// target is a tab
|
||||||
return target.browser.loadContext.DOMWindowID;
|
target = target.browser;
|
||||||
}
|
}
|
||||||
return target.loadContext.DOMWindowID;
|
return target.loadContext.DOMWindowID;
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( target.linkedPanel ) {
|
if ( target.linkedPanel ) {
|
||||||
|
|
|
@ -127,7 +127,8 @@ vAPI.localStorage = {
|
||||||
getItem: function(key) {
|
getItem: function(key) {
|
||||||
try {
|
try {
|
||||||
return this.PB.getComplexValue(
|
return this.PB.getComplexValue(
|
||||||
key, Components.interfaces.nsISupportsString
|
key,
|
||||||
|
Components.interfaces.nsISupportsString
|
||||||
).data;
|
).data;
|
||||||
} catch (ex) {
|
} catch (ex) {
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
// https://github.com/gorhill/uBlock/issues/464
|
// https://github.com/gorhill/uBlock/issues/464
|
||||||
if ( document instanceof HTMLDocument === false ) {
|
if ( document instanceof HTMLDocument === false ) {
|
||||||
//console.debug('contentscript-start.js > not a HTLMDocument');
|
//console.debug('contentscript-start.js > not a HTLMDocument');
|
||||||
return false;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Because in case
|
// Because in case
|
||||||
|
@ -52,7 +52,7 @@ if ( !vAPI ) {
|
||||||
// The links look like this:
|
// The links look like this:
|
||||||
// abp:subscribe?location=https://easylist-downloads.adblockplus.org/easyprivacy.txt[...]
|
// abp:subscribe?location=https://easylist-downloads.adblockplus.org/easyprivacy.txt[...]
|
||||||
|
|
||||||
if ( document.querySelector('[href^="abp:subscribe?"]') === null ) {
|
if ( document.querySelector('a[href^="abp:"]') === null ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,14 +66,16 @@ var onAbpLinkClicked = function(ev) {
|
||||||
if ( ev.button !== 0 ) {
|
if ( ev.button !== 0 ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var receiver = ev.target;
|
var target = ev.target;
|
||||||
if ( receiver === null ) {
|
var limit = 3;
|
||||||
return;
|
var href = '';
|
||||||
}
|
do {
|
||||||
if ( receiver.tagName.toLowerCase() !== 'a' ) {
|
if ( target instanceof HTMLAnchorElement ) {
|
||||||
return;
|
href = target.href;
|
||||||
}
|
break;
|
||||||
var href = receiver.getAttribute('href') || '';
|
}
|
||||||
|
target = target.parentNode;
|
||||||
|
} while ( target && --limit );
|
||||||
if ( href === '' ) {
|
if ( href === '' ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue