This commit is contained in:
gorhill 2017-10-01 07:56:28 -04:00
parent e1ba1a39c2
commit e7e390d2e2
No known key found for this signature in database
GPG Key ID: 25E1490B761470C2
3 changed files with 15 additions and 19 deletions

View File

@ -33,7 +33,8 @@
{
"matches":[
"http://*/*",
"https://*/*"
"https://*/*",
"file://*/*"
],
"js":[
"js/vapi-client.js",

View File

@ -1114,20 +1114,10 @@ vAPI.domCollapser = (function() {
var send = function() {
processTimer = undefined;
toCollapse.set(resquestIdGenerator, toProcess);
// https://github.com/gorhill/uBlock/issues/1927
// Normalize hostname to avoid trailing dot of FQHN.
var pageHostname = window.location.hostname || '';
if (
pageHostname.length &&
pageHostname.charCodeAt(pageHostname.length - 1) === 0x2e
) {
pageHostname = pageHostname.slice(0, -1);
}
var msg = {
what: 'getCollapsibleBlockedRequests',
id: resquestIdGenerator,
pageURL: window.location.href,
pageHostname: pageHostname,
frameURL: window.location.href,
resources: toFilter,
hash: cachedBlockedSetHash
};

View File

@ -699,21 +699,26 @@ PageStore.prototype.filterLargeMediaElement = function(size) {
/******************************************************************************/
PageStore.prototype.getBlockedResources = function(request, response) {
var resources = request.resources;
var µburi = µb.URI,
normalURL = µb.normalizePageURL(this.tabId, request.frameURL),
frameHostname = µburi.hostnameFromURI(normalURL),
resources = request.resources;
// Force some resources to go through the filtering engine in order to
// populate the blocked-resources cache. This is required because for
// some resources it's not possible to detect whether they were blocked
// content script-side (i.e. `iframes` -- unlike `img`).
if ( Array.isArray(resources) && resources.length !== 0 ) {
var context = this.createContextFromFrameHostname(request.pageHostname);
var context = this.createContextFromFrameHostname(frameHostname);
for ( var resource of resources ) {
context.requestType = resource.type;
context.requestHostname = µb.URI.hostnameFromURI(resource.url);
context.requestHostname = µburi.hostnameFromURI(resource.url);
context.requestURL = resource.url;
this.filterRequest(context);
}
}
if ( this.netFilteringCache.hash === response.hash ) {
return;
}
if ( this.netFilteringCache.hash === response.hash ) { return; }
response.hash = this.netFilteringCache.hash;
response.blockedResources = this.netFilteringCache.lookupAllBlocked(request.pageHostname);
response.blockedResources = this.netFilteringCache.lookupAllBlocked(frameHostname);
};
/******************************************************************************/