'n Abend, werte Softwaregemeinde!
Eine Diskussion im EasyList-Forum
http://forums.lanik.us/viewtopic.php?f=90&t=12176
habe ich zum Anlass genommen, um die Funktion der NoScript-Surrogates
genauer zu erkunden. Leider gibt es dazu keine echte Dokumentation -
bisher hilfreich waren u.a.
http://hackademix.net/2011/09/29/script-surrogates-quick-reference/
http://stackoverflow.com/questions/942518/how-to-figure-out-what-site-to-add-to-cookie-whitelist
Als Beispiel habe ich den Link aus einem anderen Thread genommen:
xttp://www.myspass.de/myspass/shows/tvshows/tv-total/TV-total-Sendung-vo
m-12022014--/16664/
Der in Firefox 24.3.0 integrierte Debugger liefert neben externen
Scripts direkt für diese Seite
1 | <script type="text/javascript">
|
2 | var avtBlockerTracked=false;
|
3 | function loadAVTBLOCK(w,u){
|
4 | function loadMySpassScripts(){
|
5 | var urls=new Array();
|
6 | urls[0]=new Array(0,'xttp://www.myspass.de/myspass/media/images/myspass-logo.png');
|
7 | urls[1]=new Array(1,'xttp://motifcdn2.doubleclick.net/EMEA/js/DCRM_Billboard.js');
|
8 | urls[2]=new Array(2,'xttp://doubleclick.net/pfadx/www.myspass.de_de/');
|
9 | for(i=0;i<urls.length;i++) {
|
10 | loadScript(urls[i][0],urls[i][1]);
|
11 | }
|
12 | }
|
13 |
|
14 | var returndata=new Array();
|
15 | returndata[1]=0;
|
16 | returndata[2]=0;
|
17 | var countReq=0;
|
18 |
|
19 | function loaded(num,status){
|
20 | returndata[num]=status;
|
21 | countReq++;
|
22 | }
|
23 |
|
24 | function finalCheck(){
|
25 | if(returndata[0]===1){
|
26 | if(returndata[1]===1&&returndata[2]===1){
|
27 | avtBlockerTracked=false;
|
28 | }
|
29 | else{
|
30 | avtBlockerTracked=true;
|
31 | }
|
32 | }
|
33 | else{
|
34 | avtBlockerTracked=false;
|
35 | }
|
36 | sendDataToVideoplayer();
|
37 | }
|
38 |
|
39 | loadMySpassScripts();
|
40 | setTimeout(function(){finalCheck();},30000);
|
41 |
|
42 | function checkLoad(event){
|
43 | loaded(event.currentTarget.id,1);
|
44 | }
|
45 |
|
46 | function ErrorLoad(event){
|
47 | loaded(event.currentTarget.id,0);
|
48 | }
|
49 |
|
50 | function loadScript(num,file){
|
51 | if(num==0){
|
52 | var image=new Image();
|
53 | $(image).attr('id',num);
|
54 | $(image).on('load',checkLoad).on('error',ErrorLoad);
|
55 | image.src=file;
|
56 | }
|
57 | else{
|
58 | var check='false';
|
59 | $.ajax({
|
60 | url:file,
|
61 | dataType:"script",
|
62 | processData:true,
|
63 | statusCode:{
|
64 | 404:function(){
|
65 | check='false';
|
66 | loaded(num,1);
|
67 | }
|
68 | },
|
69 | complete:function(){
|
70 | loaded(num,1);
|
71 | }
|
72 | });
|
73 | }
|
74 | }
|
75 | }
|
76 |
|
77 | function sendDataToVideoplayer(){
|
78 | if(avtBlockerTracked){
|
79 | setFlashPlayerRequest("player","shownagscreen");
|
80 | }
|
81 | }
|
82 |
|
83 | function onVideoplayerInitialize(){
|
84 | loadAVTBLOCK(window);
|
85 | }
|
86 | </script>
|
Also hab ich's mit
noscript.surrogate.myspass.sources
@myspass.de/myspass/shows/tvshows/tv-total/TV-total-Sendung-vom-12022014
--/16664/
und
noscript.surrogate.myspass.replacement
a) function loadScript(num,file){if(num==0){var image=new
Image();$(image).attr('id',num);$(image).on('load',checkLoad).on('error'
,ErrorLoad);image.src=file;}else{var check='false';loaded(num,1);}}
b) navigator.__defineGetter__("sendDataToVideoplayer",function(){});
in about:config versucht - funktioniert beides nicht.
Mein Eindruck ist, dass die Funktion überhaupt nicht
ersetzt/angesprochen wird.
Kennt jemand eine Dokumentation, wo z.B.
dieses "navigator.__defineGetter__",
die Syntax von noscript.surrogate.xxx.sources (Regular Expressions?)
oder
die Funktion des noscript.surrogate.debug Flags (wo finde ich ein
Log?)
beschrieben werden?
Die xttp sind von mir, wegen Spamschutz des Forums.