Sat, 03 Jan 2015 20:18:00 +0100
Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.
1 letters = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
2 numbers = new Array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26);
3 colors = new Array("FF","CC","99","66","33","00");
5 var endResult;
7 function doTest()
8 {
9 endResult = "";
11 // make up email address
12 /* BEGIN LOOP */
13 for (var k=0;k<4000;k++)
14 {
15 name = makeName(6);
16 (k%2)?email=name+"@mac.com":email=name+"(at)mac.com";
18 // validate the email address
19 var pattern = /^[a-zA-Z0-9\-\._]+@[a-zA-Z0-9\-_]+(\.?[a-zA-Z0-9\-_]*)\.[a-zA-Z]{2,3}$/;
21 if(pattern.test(email))
22 {
23 var r = email + " appears to be a valid email address.";
24 addResult(r);
25 }
26 else
27 {
28 r = email + " does NOT appear to be a valid email address.";
29 addResult(r);
30 }
31 }
32 /* END LOOP */
34 // make up ZIP codes
35 /* BEGIN LOOP */
36 for (var s=0;s<4000;s++)
37 {
38 var zipGood = true;
39 var zip = makeNumber(4);
40 (s%2)?zip=zip+"xyz":zip=zip.concat("7");
42 // validate the zip code
43 /* BEGIN LOOP */
44 for (var i = 0; i < zip.length; i++) {
45 var ch = zip.charAt(i);
46 if (ch < "0" || ch > "9") {
47 zipGood = false;
48 r = zip + " contains letters.";
49 addResult(r);
50 }
51 }
52 /* END LOOP */
53 if (zipGood && zip.length>5)
54 {
55 zipGood = false;
56 r = zip + " is longer than five characters.";
57 addResult(r);
58 }
59 if (zipGood)
60 {
61 r = zip + " appears to be a valid ZIP code.";
62 addResult(r);
63 }
64 }
65 /* END LOOP */
66 }
68 function makeName(n)
69 {
70 var tmp = "";
71 /* BEGIN LOOP */
72 for (var i=0;i<n;i++)
73 {
74 var l = Math.floor(26*Math.random());
75 tmp += letters[l];
76 }
77 /* END LOOP */
78 return tmp;
79 }
81 function makeNumber(n)
82 {
83 var tmp = "";
84 /* BEGIN LOOP */
85 for (var i=0;i<n;i++)
86 {
87 var l = Math.floor(9*Math.random());
88 tmp = tmp.concat(l);
89 }
90 /* END LOOP */
91 return tmp;
92 }
94 function addResult(r)
95 {
96 endResult += "\n" + r;
97 }
99 doTest();