OLD | NEW |
| (Empty) |
1 <?php | |
2 if(!isset($_COOKIE['mode'])) | |
3 $mode = 'init'; // Set mode to 'init' for initial fetch. | |
4 else | |
5 $mode = $_COOKIE['mode']; // $_COOKIE['mode'] is either 'normal' or 'error'. | |
6 | |
7 // no-cache itself to ensure the user agent finds a new version for each update. | |
8 header("Cache-Control: no-cache, must-revalidate"); | |
9 header("Pragma: no-cache"); | |
10 | |
11 $extra_body = ''; | |
12 | |
13 if ($mode == 'init') { | |
14 // Set a normal mimetype. | |
15 // Set cookie value to 'normal' so the next fetch will work in 'normal' mode. | |
16 header('Content-Type:application/javascript'); | |
17 setcookie('mode', 'normal'); | |
18 } else if ($mode == 'normal') { | |
19 // Set a normal mimetype. | |
20 // Set cookie value to 'error' so the next fetch will work in 'error' mode. | |
21 header('Content-Type:application/javascript'); | |
22 setcookie('mode', 'error'); | |
23 } else if ($mode == 'error') { | |
24 // Set a disallowed mimetype. | |
25 // Set cookie value to 'syntax-error' so the next fetch will work in 'syntax-e
rror' mode. | |
26 header('Content-Type:text/html'); | |
27 setcookie('mode', 'syntax-error'); | |
28 } else if ($mode == 'syntax-error') { | |
29 // Set cookie value to 'throw-install' so the next fetch will work in 'throw-i
nstall' mode. | |
30 header('Content-Type:application/javascript'); | |
31 setcookie('mode', 'throw-install'); | |
32 $extra_body = 'badsyntax(isbad;'; | |
33 } else if ($mode == 'throw-install') { | |
34 // Unset and delete cookie to clean up the test setting. | |
35 header('Content-Type:application/javascript'); | |
36 unset($_COOKIE['mode']); | |
37 setcookie('mode', '', time() - 3600); | |
38 $extra_body = "addEventListener('install', function(e) { throw new Error('boom
'); });"; | |
39 } | |
40 // Return a different script for each access. | |
41 echo '/* ', microtime(), ' */ ', $extra_body; | |
42 ?> | |
OLD | NEW |