File tree Expand file tree Collapse file tree 2 files changed +54
-20
lines changed
Expand file tree Collapse file tree 2 files changed +54
-20
lines changed Original file line number Diff line number Diff line change 1+ #!/usr/bin/env node
2+
3+ const path = require ( 'path' ) ;
4+ const fs = require ( 'fs' ) ;
5+
6+ const BUNDLE_DIR = path . join ( __dirname , '../dist' ) ;
7+ const bundles = [
8+ 'background.js' ,
9+ 'popup/popup.js'
10+ ] ;
11+
12+ const evalRegexForProduction = / ; ( [ a - z ] ) = f u n c t i o n \( \) { return t h i s } \( \) ; t r y { \1= \1\| \| F u n c t i o n \( " r e t u r n t h i s " \) \( \) \| \| \( 0 , e v a l \) \( " t h i s " \) } c a t c h \( t \) { " o b j e c t " = = t y p e o f w i n d o w & & \( \1= w i n d o w \) } / g;
13+ const evalRegexForDevelopment = / ; \s * \/ \/ T h i s w o r k s i n n o n - s t r i c t m o d e \s * ( [ a - z ] ) \s * = \s * \( \s * f u n c t i o n \( \) \s * \{ \s * r e t u r n t h i s ; \s * } \) \( \) ; \s * t r y \s * { \s * \/ \/ \s * T h i s w o r k s i f e v a l i s a l l o w e d (?: \s * | .+ ) { 1 , 14 } / g;
14+
15+ const removeEvals = ( file ) => {
16+ console . info ( `Removing eval() from ${ file } ` ) ;
17+
18+ return new Promise ( ( resolve , reject ) => {
19+ fs . readFile ( file , 'utf8' , ( err , data ) => {
20+ if ( err ) {
21+ reject ( err ) ;
22+ return ;
23+ }
24+
25+ const regex = process . env . NODE_ENV === 'production' ? evalRegexForProduction : evalRegexForDevelopment ;
26+
27+ if ( ! regex . test ( data ) ) {
28+ reject ( `No CSP specific code found in ${ file } .` ) ;
29+ return ;
30+ }
31+
32+ data = data . replace ( regex , '=window;' ) ;
33+
34+ fs . writeFile ( file , data , ( err ) => {
35+ if ( err ) {
36+ reject ( err ) ;
37+ return ;
38+ }
39+
40+ resolve ( ) ;
41+ } ) ;
42+ } ) ;
43+ } ) ;
44+ } ;
45+
46+ const main = ( ) => {
47+ bundles . forEach ( bundle => {
48+ removeEvals ( path . join ( BUNDLE_DIR , bundle ) )
49+ . then ( ( ) => console . info ( `Bundle ${ bundle } : OK` ) )
50+ . catch ( console . error ) ;
51+ } ) ;
52+ } ;
53+
54+ main ( ) ;
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments