@@ -187,78 +187,78 @@ vAPI.messaging.setup(onMessage);
187
187
188
188
const µb = µBlock ;
189
189
190
- const getHostnameDict = function ( hostnameToCountMap ) {
191
- const r = Object . create ( null ) ;
192
- const domainFromHostname = µb . URI . domainFromHostname ;
193
- // Note: destructuring assignment not supported before Chromium 49.
190
+ const getHostnameDict = function ( hostnameToCountMap , out ) {
191
+ const hnDict = Object . create ( null ) ;
192
+ const cnSet = [ ] ;
194
193
for ( const [ hostname , hnCounts ] of hostnameToCountMap ) {
195
- if ( r [ hostname ] !== undefined ) { continue ; }
196
- const domain = domainFromHostname ( hostname ) || hostname ;
194
+ if ( hnDict [ hostname ] !== undefined ) { continue ; }
195
+ const domain = vAPI . domainFromHostname ( hostname ) || hostname ;
197
196
const dnCounts = hostnameToCountMap . get ( domain ) || 0 ;
198
197
let blockCount = dnCounts & 0xFFFF ;
199
198
let allowCount = dnCounts >>> 16 & 0xFFFF ;
200
- if ( r [ domain ] === undefined ) {
201
- r [ domain ] = {
202
- domain : domain ,
203
- blockCount : blockCount ,
204
- allowCount : allowCount ,
199
+ if ( hnDict [ domain ] === undefined ) {
200
+ hnDict [ domain ] = {
201
+ domain,
202
+ blockCount,
203
+ allowCount,
205
204
totalBlockCount : blockCount ,
206
- totalAllowCount : allowCount
205
+ totalAllowCount : allowCount ,
207
206
} ;
207
+ const cname = vAPI . net . canonicalNameFromHostname ( domain ) ;
208
+ if ( cname !== undefined ) {
209
+ cnSet . push ( cname ) ;
210
+ }
208
211
}
209
- const domainEntry = r [ domain ] ;
212
+ const domainEntry = hnDict [ domain ] ;
210
213
blockCount = hnCounts & 0xFFFF ;
211
214
allowCount = hnCounts >>> 16 & 0xFFFF ;
212
215
domainEntry . totalBlockCount += blockCount ;
213
216
domainEntry . totalAllowCount += allowCount ;
214
217
if ( hostname === domain ) { continue ; }
215
- r [ hostname ] = {
216
- domain : domain ,
217
- blockCount : blockCount ,
218
- allowCount : allowCount ,
218
+ hnDict [ hostname ] = {
219
+ domain,
220
+ blockCount,
221
+ allowCount,
219
222
totalBlockCount : 0 ,
220
223
totalAllowCount : 0 ,
221
224
} ;
225
+ const cname = vAPI . net . canonicalNameFromHostname ( hostname ) ;
226
+ if ( cname !== undefined ) {
227
+ cnSet . push ( cname ) ;
228
+ }
222
229
}
223
- return r ;
230
+ out . hostnameDict = hnDict ;
231
+ out . cnameSet = cnSet ;
224
232
} ;
225
233
226
234
const getFirewallRules = function ( srcHostname , desHostnames ) {
227
- var r = { } ;
228
- var df = µb . sessionFirewall ;
229
- r [ '/ * *' ] = df . lookupRuleData ( '*' , '*' , '*' ) ;
230
- r [ '/ * image' ] = df . lookupRuleData ( '*' , '*' , 'image' ) ;
231
- r [ '/ * 3p' ] = df . lookupRuleData ( '*' , '*' , '3p' ) ;
232
- r [ '/ * inline-script' ] = df . lookupRuleData ( '*' , '*' , 'inline-script' ) ;
233
- r [ '/ * 1p-script' ] = df . lookupRuleData ( '*' , '*' , '1p-script' ) ;
234
- r [ '/ * 3p-script' ] = df . lookupRuleData ( '*' , '*' , '3p-script' ) ;
235
- r [ '/ * 3p-frame' ] = df . lookupRuleData ( '*' , '*' , '3p-frame' ) ;
236
- if ( typeof srcHostname !== 'string' ) { return r ; }
237
-
238
- r [ '. * *' ] = df . lookupRuleData ( srcHostname , '*' , '*' ) ;
239
- r [ '. * image' ] = df . lookupRuleData ( srcHostname , '*' , 'image' ) ;
240
- r [ '. * 3p' ] = df . lookupRuleData ( srcHostname , '*' , '3p' ) ;
241
- r [ '. * inline-script' ] = df . lookupRuleData ( srcHostname ,
235
+ const out = { } ;
236
+ const df = µb . sessionFirewall ;
237
+ out [ '/ * *' ] = df . lookupRuleData ( '*' , '*' , '*' ) ;
238
+ out [ '/ * image' ] = df . lookupRuleData ( '*' , '*' , 'image' ) ;
239
+ out [ '/ * 3p' ] = df . lookupRuleData ( '*' , '*' , '3p' ) ;
240
+ out [ '/ * inline-script' ] = df . lookupRuleData ( '*' , '*' , 'inline-script' ) ;
241
+ out [ '/ * 1p-script' ] = df . lookupRuleData ( '*' , '*' , '1p-script' ) ;
242
+ out [ '/ * 3p-script' ] = df . lookupRuleData ( '*' , '*' , '3p-script' ) ;
243
+ out [ '/ * 3p-frame' ] = df . lookupRuleData ( '*' , '*' , '3p-frame' ) ;
244
+ if ( typeof srcHostname !== 'string' ) { return out ; }
245
+
246
+ out [ '. * *' ] = df . lookupRuleData ( srcHostname , '*' , '*' ) ;
247
+ out [ '. * image' ] = df . lookupRuleData ( srcHostname , '*' , 'image' ) ;
248
+ out [ '. * 3p' ] = df . lookupRuleData ( srcHostname , '*' , '3p' ) ;
249
+ out [ '. * inline-script' ] = df . lookupRuleData ( srcHostname ,
242
250
'*' ,
243
251
'inline-script'
244
252
) ;
245
- r [ '. * 1p-script' ] = df . lookupRuleData ( srcHostname , '*' , '1p-script' ) ;
246
- r [ '. * 3p-script' ] = df . lookupRuleData ( srcHostname , '*' , '3p-script' ) ;
247
- r [ '. * 3p-frame' ] = df . lookupRuleData ( srcHostname , '*' , '3p-frame' ) ;
253
+ out [ '. * 1p-script' ] = df . lookupRuleData ( srcHostname , '*' , '1p-script' ) ;
254
+ out [ '. * 3p-script' ] = df . lookupRuleData ( srcHostname , '*' , '3p-script' ) ;
255
+ out [ '. * 3p-frame' ] = df . lookupRuleData ( srcHostname , '*' , '3p-frame' ) ;
248
256
249
257
for ( const desHostname in desHostnames ) {
250
- r [ `/ ${ desHostname } *` ] = df . lookupRuleData (
251
- '*' ,
252
- desHostname ,
253
- '*'
254
- ) ;
255
- r [ `. ${ desHostname } *` ] = df . lookupRuleData (
256
- srcHostname ,
257
- desHostname ,
258
- '*'
259
- ) ;
258
+ out [ `/ ${ desHostname } *` ] = df . lookupRuleData ( '*' , desHostname , '*' ) ;
259
+ out [ `. ${ desHostname } *` ] = df . lookupRuleData ( srcHostname , desHostname , '*' ) ;
260
260
}
261
- return r ;
261
+ return out ;
262
262
} ;
263
263
264
264
const popupDataFromTabId = function ( tabId , tabTitle ) {
@@ -304,7 +304,7 @@ const popupDataFromTabId = function(tabId, tabTitle) {
304
304
r . pageBlockedRequestCount = pageStore . perLoadBlockedRequestCount ;
305
305
r . pageAllowedRequestCount = pageStore . perLoadAllowedRequestCount ;
306
306
r . netFilteringSwitch = pageStore . getNetFilteringSwitch ( ) ;
307
- r . hostnameDict = getHostnameDict ( pageStore . hostnameToCountMap ) ;
307
+ getHostnameDict ( pageStore . hostnameToCountMap , r ) ;
308
308
r . contentLastModified = pageStore . contentLastModified ;
309
309
r . firewallRules = getFirewallRules ( rootHostname , r . hostnameDict ) ;
310
310
r . canElementPicker = µb . URI . isNetworkURI ( r . rawURL ) ;
0 commit comments