diff options
author | hackademix | 2018-07-03 17:36:36 +0200 |
---|---|---|
committer | hackademix | 2018-07-03 17:36:36 +0200 |
commit | 849fd0c7a93e78a588c426706ecbd5bcaefa4248 (patch) | |
tree | 586a8ca837bd837d779d728ae4baa2e0a30f9551 /html5_events.pl | |
parent | e2a8c5768fb40cb8515eee2b6ff20bc18dbd8fc2 (diff) | |
download | noscript-849fd0c7a93e78a588c426706ecbd5bcaefa4248.tar.gz noscript-849fd0c7a93e78a588c426706ecbd5bcaefa4248.tar.xz noscript-849fd0c7a93e78a588c426706ecbd5bcaefa4248.zip |
Minor build script and code tree cleanup, including license info inside the XPI.
Diffstat (limited to 'html5_events.pl')
-rw-r--r-- | html5_events.pl | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/html5_events.pl b/html5_events.pl deleted file mode 100644 index 1fb02fe..0000000 --- a/html5_events.pl +++ /dev/null @@ -1,99 +0,0 @@ -#!/usr/bin/perl -use strict; - -require LWP::UserAgent; -use LWP::Simple; -use RegExp::List; -use File::stat; -use File::Basename; -use List::MoreUtils qw(uniq); - -my $HTML5_URL = "https://hg.mozilla.org/mozilla-central/raw-file/tip/parser/html/nsHtml5AtomList.h"; -my $GECKO_URL = "https://hg.mozilla.org/mozilla-central/raw-file/tip/xpcom/ds/nsGkAtomList.h"; - -my $HERE = dirname($0); -my $SOURCE_FILE = $HERE . '/src/xss/InjectionChecker.js'; - -sub create_re -{ - my $cache = "$HERE/html5_events.re"; - my $sb = stat($cache); - - if ($sb && time() - $sb->mtime < 86400) - { - open IN, "<$cache"; - my @content = <IN>; - close IN; - return $content[0]; - } - - sub fetch_url - { - my $url = shift(@_); - my $ua = LWP::UserAgent->new; - $ua->agent('Mozilla/5.0'); - $ua->ssl_opts('verify_hostname' => 0); - my $res = $ua->get($url); - if ($res->is_success) - { - return $res->decoded_content; - } - else - { - my $err = $res->content; - my $ca_file = $ua->ssl_opts('SSL_ca_file'); - die ("Could not fetch $url: $err\n$ca_file"); - } - } - - - my $content = # fetch_url($HTML5_URL) . - fetch_url($GECKO_URL); - - $content = join("\n", grep(/^(?:HTML5|GK)_ATOM.*"on\w+"/, split(/[\n\r]/, $content))); - - $content =~ s/.*"(on\w+)".*/$1 /g; - $content =~ s/\s+/ /g; - $content =~ s/^\s+|\s+$//g; - - my $l = Regexp::List->new; - my $re = $l->list2re(uniq(split(' ', $content))); - $re =~ s/\(\?[-^]\w+:(.*)\)/$1/; - open (OUT, ">$cache"); - print OUT $re; - close OUT; - $re; -} - -sub patch -{ - my $src = shift; - my $dst = "$src.tmp"; - my $re = create_re(); - my $must_replace = 0; - print "Patching $src...\n"; - open IN, "<$src" or die ("Can't open $src!"); - open OUT, ">$dst" or die ("Can't open $dst!"); - - while (<IN>) - { - my $line = $_; - $must_replace = $line ne $_ if s/^(\s*const IC_EVENT_PATTERN\s*=\s*")([^"]+)/$1$re/; - - print OUT $_; - } - close IN; - close OUT; - - if ($must_replace) { - rename $dst, $src; - print "Patched.\n"; - } - else - { - unlink $dst; - print "Nothing to do.\n"; - } -} - -patch($SOURCE_FILE); |