@@ -357,7 +357,7 @@ var RequestGuard = (() => {
357357 // called for main_frame, sub_frame and object
358358 debug ( "onHeadersReceived" , request ) ;
359359 let { url, documentUrl, statusCode, tabId, responseHeaders} = request ;
360- if ( statusCode >= 300 && statusCode < 400 ) return ;
360+ // if (statusCode >= 300 && statusCode < 400) return;
361361
362362 try {
363363 let header , blocker ;
@@ -421,6 +421,9 @@ var RequestGuard = (() => {
421421 await RequestUtil . executeOnStart ( request , {
422422 file : "content/media.js"
423423 } ) ;
424+ } else if ( request . frameId === 0 && ! TabStatus . map . has ( tabId ) ) {
425+ debug ( "No TabStatus data yet for noscriptFrame" , tabId ) ;
426+ TabStatus . record ( request , "noscriptFrame" , true ) ;
424427 }
425428 }
426429
@@ -442,6 +445,7 @@ var RequestGuard = (() => {
442445 } ,
443446
444447 onResponseStarted ( request ) {
448+ debug ( "onResponseStarted" , request ) ;
445449 if ( request . type === "main_frame" ) {
446450 TabStatus . initTab ( request . tabId ) ;
447451 }
@@ -477,7 +481,7 @@ var RequestGuard = (() => {
477481 let type = report [ "violated-directive" ] . split ( "-" , 1 ) [ 0 ] ; // e.g. script-src 'none' => script
478482 if ( type === "frame" ) type = "sub_frame" ;
479483 let url = report [ 'blocked-uri' ] ;
480- if ( url === 'self' ) url = request . documentUrl ;
484+ if ( ! url || url === 'self' ) url = request . documentUrl ;
481485 return Object . assign ( { } , request , {
482486 url,
483487 type,
@@ -490,11 +494,12 @@ var RequestGuard = (() => {
490494 const report = JSON . parse ( decoder . decode ( request . requestBody . raw [ 0 ] . bytes ) ) [ 'csp-report' ] ;
491495 let csp = report [ "original-policy" ]
492496 debug ( "CSP report" , report ) ;
493- if ( report [ 'blocked-uri' ] !== 'self' ) {
497+ let blockedURI = report [ 'blocked-uri' ] ;
498+ if ( blockedURI && blockedURI !== 'self' ) {
494499 let r = fakeRequestFromCSP ( report , request ) ;
495500 Content . reportTo ( r , false , policyTypesMap [ r . type ] ) ;
496501 TabStatus . record ( r , "blocked" ) ;
497- } else if ( report [ "violated-directive" ] === "script-src 'none'" ) {
502+ } else if ( report [ "violated-directive" ] === "script-src" && / ; s c r i p t - s r c ' n o n e ' / . test ( report [ "original-policy" ] ) ) {
498503 let r = fakeRequestFromCSP ( report , request ) ;
499504 TabStatus . record ( r , "noscriptFrame" , true ) ;
500505 }
0 commit comments