mirror of
https://github.com/gorhill/uBlock.git
synced 2024-11-11 01:28:00 +01:00
Safari: block programmatic image requests, more thorough XHR
Currently, this is done the same way we block XMLHttpRequests: mess with the constructor. This was done in the most efficient way I could think of (overhead is relatively minimal). This also injects uBlock's blocking interceptor earlier, thusly covering more requests that may have slipped through before.
This commit is contained in:
parent
37aaeca8aa
commit
0ea7920c20
1 changed files with 16 additions and 0 deletions
|
@ -188,6 +188,9 @@
|
|||
return !(safari.self.tab.canLoad(beforeLoadEvent, details));
|
||||
};
|
||||
var onBeforeLoad = function(e) {
|
||||
if(firstMutation !== false) {
|
||||
firstMutation();
|
||||
}
|
||||
linkHelper.href = e.url;
|
||||
if(linkHelper.protocol.charCodeAt(0) !== 104) { // h = 104
|
||||
return;
|
||||
|
@ -232,7 +235,20 @@ return e.detail.url === false;\
|
|||
},\
|
||||
wo = open,\
|
||||
xo = XMLHttpRequest.prototype.open,\
|
||||
img = Image;\
|
||||
_noOP = function(){};\
|
||||
Image = function() {\
|
||||
var x = new img();\
|
||||
Object.defineProperty(x, 'src', {\
|
||||
get: function() {\
|
||||
return x.getAttribute('src');\
|
||||
},\
|
||||
set: function(val) {\
|
||||
x.setAttribute('src', block(val, 'image') ? 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=' : val);\
|
||||
}\
|
||||
});\
|
||||
return x;\
|
||||
};\
|
||||
open = function(u) {\
|
||||
return block(u, 'popup') ? null : wo.apply(this, arguments);\
|
||||
};\
|
||||
|
|
Loading…
Reference in a new issue