mirror of
https://github.com/gorhill/uBlock.git
synced 2024-11-24 03:12:46 +01:00
hopefully fix #1782: treat data: URI as 1st-party resources
This commit is contained in:
parent
eaaf043a64
commit
4da4709ed5
@ -803,6 +803,11 @@ var domCollapser = (function() {
|
||||
return;
|
||||
}
|
||||
}
|
||||
// Some data: URI can be quite large: no point in taking into account
|
||||
// the whole URI.
|
||||
if ( src.lastIndexOf('data:', 0) === 0 ) {
|
||||
src = src.slice(0, 255);
|
||||
}
|
||||
var req = new PendingRequest(target, tagName, prop);
|
||||
newRequests.push(new BouncingRequest(req.id, tagName, src));
|
||||
};
|
||||
|
@ -471,7 +471,10 @@ var tagNameToRequestTypeMap = {
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
// Evaluate many requests
|
||||
// Evaluate many requests.
|
||||
|
||||
// https://github.com/gorhill/uBlock/issues/1782
|
||||
// Treat `data:` URIs as 1st-party resources.
|
||||
|
||||
var filterRequests = function(pageStore, details) {
|
||||
var requests = details.requests;
|
||||
@ -492,9 +495,14 @@ var filterRequests = function(pageStore, details) {
|
||||
var i = requests.length;
|
||||
while ( i-- ) {
|
||||
request = requests[i];
|
||||
context.requestURL = punycodeURL(request.url);
|
||||
if ( request.url.startsWith('data:') ) {
|
||||
context.requestURL = request.url;
|
||||
context.requestHostname = context.pageHostname;
|
||||
} else {
|
||||
context.requestURL = punycodeURL(request.url);
|
||||
context.requestHostname = hostnameFromURI(context.requestURL);
|
||||
}
|
||||
context.requestType = tagNameToRequestTypeMap[request.tagName];
|
||||
context.requestHostname = hostnameFromURI(request.url);
|
||||
r = pageStore.filterRequest(context);
|
||||
if ( typeof r !== 'string' || r.charAt(1) !== 'b' ) {
|
||||
continue;
|
||||
|
@ -172,8 +172,8 @@ var atoi = function(s) {
|
||||
return cachedParseInt(s, 10);
|
||||
};
|
||||
|
||||
// Be sure to not confuse 'example.com' with 'anotherexample.com'
|
||||
var isFirstParty = function(domain, hostname) {
|
||||
// Be sure to not confuse 'example.com' with 'anotherexample.com'
|
||||
return hostname.endsWith(domain) &&
|
||||
(hostname.length === domain.length ||
|
||||
hostname.charAt(hostname.length - domain.length - 1) === '.');
|
||||
|
Loading…
Reference in New Issue
Block a user