Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <title>Service Worker: FetchEvent for resources</title> | 2 <title>Service Worker: FetchEvent for resources</title> |
| 3 <script src="../resources/testharness.js"></script> | 3 <script src="../resources/testharness.js"></script> |
| 4 <script src="../resources/testharnessreport.js"></script> | 4 <script src="../resources/testharnessreport.js"></script> |
| 5 <script src="../resources/get-host-info.js?pipe=sub"></script> | 5 <script src="../resources/get-host-info.js?pipe=sub"></script> |
| 6 <script src="resources/test-helpers.js"></script> | 6 <script src="resources/test-helpers.js"></script> |
| 7 <script> | 7 <script> |
| 8 var url_count = 0; | 8 var url_count = 0; |
| 9 var expected_results = {}; | 9 var expected_results = {}; |
| 10 | 10 |
| 11 // The `Accept` header value for images should be | |
| 12 // 'image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5' according to the spec | |
| 13 // https://fetch.spec.whatwg.org/#fetching. | |
| 14 var accept_image = 'image/webp,image/*,*/*;q=0.8'; | |
|
nhiroki
2016/04/11 08:33:29
If there is a bug about lack of the "q=0.5" part,
| |
| 15 | |
| 11 function image_test(frame, url, cross_origin, | 16 function image_test(frame, url, cross_origin, |
| 12 expected_mode, expected_credentials) { | 17 expected_mode, expected_credentials) { |
| 13 var actual_url = url + (++url_count); | 18 var actual_url = url + (++url_count); |
| 14 expected_results[actual_url] = { | 19 expected_results[actual_url] = { |
| 15 mode: expected_mode, | 20 mode: expected_mode, |
| 16 credentials: expected_credentials, | 21 credentials: expected_credentials, |
| 17 redirect: 'follow', | 22 redirect: 'follow', |
| 23 accept: accept_image, | |
| 18 message: 'Image load (url:' + | 24 message: 'Image load (url:' + |
| 19 actual_url + ' cross_origin:' + cross_origin + ')' | 25 actual_url + ' cross_origin:' + cross_origin + ')' |
| 20 }; | 26 }; |
| 21 return frame.contentWindow.load_image(actual_url, cross_origin); | 27 return frame.contentWindow.load_image(actual_url, cross_origin); |
| 22 } | 28 } |
| 23 | 29 |
| 24 function script_test(frame, url, cross_origin, | 30 function script_test(frame, url, cross_origin, |
| 25 expected_mode, expected_credentials) { | 31 expected_mode, expected_credentials) { |
| 26 var actual_url = url + (++url_count); | 32 var actual_url = url + (++url_count); |
| 27 expected_results[actual_url] = { | 33 expected_results[actual_url] = { |
| 28 mode: expected_mode, | 34 mode: expected_mode, |
| 29 credentials: expected_credentials, | 35 credentials: expected_credentials, |
| 30 redirect: 'follow', | 36 redirect: 'follow', |
| 37 accept: '*/*', | |
| 31 message: 'Script load (url:' + | 38 message: 'Script load (url:' + |
| 32 actual_url + ' cross_origin:' + cross_origin + ')' | 39 actual_url + ' cross_origin:' + cross_origin + ')' |
| 33 }; | 40 }; |
| 34 return frame.contentWindow.load_script(actual_url, cross_origin); | 41 return frame.contentWindow.load_script(actual_url, cross_origin); |
| 35 } | 42 } |
| 36 | 43 |
| 37 function css_test(frame, url, cross_origin, | 44 function css_test(frame, url, cross_origin, |
| 38 expected_mode, expected_credentials) { | 45 expected_mode, expected_credentials) { |
| 39 var actual_url = url + (++url_count); | 46 var actual_url = url + (++url_count); |
| 40 expected_results[actual_url] = { | 47 expected_results[actual_url] = { |
| 41 mode: expected_mode, | 48 mode: expected_mode, |
| 42 credentials: expected_credentials, | 49 credentials: expected_credentials, |
| 43 redirect: 'follow', | 50 redirect: 'follow', |
| 51 accept: 'text/css,*/*;q=0.1', | |
| 44 message: 'CSS load (url:' + | 52 message: 'CSS load (url:' + |
| 45 actual_url + ' cross_origin:' + cross_origin + ')' | 53 actual_url + ' cross_origin:' + cross_origin + ')' |
| 46 }; | 54 }; |
| 47 return frame.contentWindow.load_css(actual_url, cross_origin); | 55 return frame.contentWindow.load_css(actual_url, cross_origin); |
| 48 } | 56 } |
| 49 | 57 |
| 50 function font_face_test(frame, url, expected_mode, | 58 function font_face_test(frame, url, expected_mode, |
| 51 expected_credentials) { | 59 expected_credentials) { |
| 52 var actual_url = url + (++url_count); | 60 var actual_url = url + (++url_count); |
| 53 expected_results[actual_url] = { | 61 expected_results[actual_url] = { |
| 54 url: actual_url, | 62 url: actual_url, |
| 55 mode: expected_mode, | 63 mode: expected_mode, |
| 56 credentials: expected_credentials, | 64 credentials: expected_credentials, |
| 57 redirect: 'follow', | 65 redirect: 'follow', |
| 66 accept: '*/*', | |
| 58 message: 'FontFace load (url:' + actual_url + ')' | 67 message: 'FontFace load (url:' + actual_url + ')' |
| 59 }; | 68 }; |
| 60 return frame.contentWindow.load_font(actual_url); | 69 return frame.contentWindow.load_font(actual_url); |
| 61 } | 70 } |
| 62 | 71 |
| 63 function css_image_test(frame, url, type, | 72 function css_image_test(frame, url, type, |
| 64 expected_mode, expected_credentials) { | 73 expected_mode, expected_credentials) { |
| 65 var actual_url = url + (++url_count); | 74 var actual_url = url + (++url_count); |
| 66 expected_results[actual_url] = { | 75 expected_results[actual_url] = { |
| 67 url: actual_url, | 76 url: actual_url, |
| 68 mode: expected_mode, | 77 mode: expected_mode, |
| 69 credentials: expected_credentials, | 78 credentials: expected_credentials, |
| 70 redirect: 'follow', | 79 redirect: 'follow', |
| 80 accept: accept_image, | |
| 71 message: 'CSSImage load (url:' + actual_url + ' type:' + type + ')' | 81 message: 'CSSImage load (url:' + actual_url + ' type:' + type + ')' |
| 72 }; | 82 }; |
| 73 return frame.contentWindow.load_css_image(actual_url, type); | 83 return frame.contentWindow.load_css_image(actual_url, type); |
| 74 } | 84 } |
| 75 | 85 |
| 76 function css_image_set_test(frame, url, type, | 86 function css_image_set_test(frame, url, type, |
| 77 expected_mode, expected_credentials) { | 87 expected_mode, expected_credentials) { |
| 78 var actual_url = url + (++url_count); | 88 var actual_url = url + (++url_count); |
| 79 expected_results[actual_url] = { | 89 expected_results[actual_url] = { |
| 80 url: actual_url, | 90 url: actual_url, |
| 81 mode: expected_mode, | 91 mode: expected_mode, |
| 82 credentials: expected_credentials, | 92 credentials: expected_credentials, |
| 83 redirect: 'follow', | 93 redirect: 'follow', |
| 94 accept: accept_image, | |
| 84 message: 'CSSImageSet load (url:' + actual_url + ' type:' + type + ')' | 95 message: 'CSSImageSet load (url:' + actual_url + ' type:' + type + ')' |
| 85 }; | 96 }; |
| 86 return frame.contentWindow.load_css_image_set(actual_url, type); | 97 return frame.contentWindow.load_css_image_set(actual_url, type); |
| 87 } | 98 } |
| 88 | 99 |
| 89 function fetch_test(frame, url, mode, credentials, | 100 function fetch_test(frame, url, mode, credentials, |
| 90 expected_mode, expected_credentials) { | 101 expected_mode, expected_credentials) { |
| 91 var actual_url = url + (++url_count); | 102 var actual_url = url + (++url_count); |
| 92 expected_results[actual_url] = { | 103 expected_results[actual_url] = { |
| 93 mode: expected_mode, | 104 mode: expected_mode, |
| 94 credentials: expected_credentials, | 105 credentials: expected_credentials, |
| 95 redirect: 'follow', | 106 redirect: 'follow', |
| 107 accept: '*/*', | |
| 96 message: 'fetch (url:' + actual_url + ' mode:' + mode + ' credentials:' + | 108 message: 'fetch (url:' + actual_url + ' mode:' + mode + ' credentials:' + |
| 97 credentials + ')' | 109 credentials + ')' |
| 98 }; | 110 }; |
| 99 return frame.contentWindow.fetch( | 111 return frame.contentWindow.fetch( |
| 100 new Request(actual_url, {mode: mode, credentials: credentials})); | 112 new Request(actual_url, {mode: mode, credentials: credentials})); |
| 101 } | 113 } |
| 102 | 114 |
| 103 function audio_test(frame, url, cross_origin, | 115 function audio_test(frame, url, cross_origin, |
| 104 expected_mode, expected_credentials) { | 116 expected_mode, expected_credentials) { |
| 105 var actual_url = url + (++url_count); | 117 var actual_url = url + (++url_count); |
| 106 expected_results[actual_url] = { | 118 expected_results[actual_url] = { |
| 107 mode: expected_mode, | 119 mode: expected_mode, |
| 108 credentials: expected_credentials, | 120 credentials: expected_credentials, |
| 109 redirect: 'follow', | 121 redirect: 'follow', |
| 122 accept: '*/*', | |
| 110 message: 'Audio load (url:' + actual_url + ' cross_origin:' + | 123 message: 'Audio load (url:' + actual_url + ' cross_origin:' + |
| 111 cross_origin + ')' | 124 cross_origin + ')' |
| 112 }; | 125 }; |
| 113 return frame.contentWindow.load_audio(actual_url, cross_origin); | 126 return frame.contentWindow.load_audio(actual_url, cross_origin); |
| 114 } | 127 } |
| 115 | 128 |
| 116 async_test(function(t) { | 129 async_test(function(t) { |
| 117 var SCOPE = 'resources/fetch-request-resources-iframe.html'; | 130 var SCOPE = 'resources/fetch-request-resources-iframe.html'; |
| 118 var SCRIPT = 'resources/fetch-request-resources-worker.js'; | 131 var SCRIPT = 'resources/fetch-request-resources-worker.js'; |
| 119 var host_info = get_host_info(); | 132 var host_info = get_host_info(); |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 146 'mode of ' + expected.message + ' must be ' + | 159 'mode of ' + expected.message + ' must be ' + |
| 147 expected.mode + '.'); | 160 expected.mode + '.'); |
| 148 assert_equals( | 161 assert_equals( |
| 149 result.credentials, expected.credentials, | 162 result.credentials, expected.credentials, |
| 150 'credentials of ' + expected.message + ' must be ' + | 163 'credentials of ' + expected.message + ' must be ' + |
| 151 expected.credentials + '.'); | 164 expected.credentials + '.'); |
| 152 assert_equals( | 165 assert_equals( |
| 153 result.redirect, expected.redirect, | 166 result.redirect, expected.redirect, |
| 154 'redirect mode of ' + expected.message + ' must be ' + | 167 'redirect mode of ' + expected.message + ' must be ' + |
| 155 expected.redirect + '.'); | 168 expected.redirect + '.'); |
| 169 assert_equals( | |
| 170 result.accept, expected.accept, | |
| 171 '`Accept` header value of ' + expected.message + ' must be ' + | |
|
nhiroki
2016/04/11 08:33:29
Can you wrap this line at 80th column?
| |
| 172 expected.accept + '.'); | |
| 156 --url_count; | 173 --url_count; |
| 157 delete expected_results[result.url]; | 174 delete expected_results[result.url]; |
| 158 if (url_count == 0) { | 175 if (url_count == 0) { |
| 159 frame.remove(); | 176 frame.remove(); |
| 160 service_worker_unregister_and_done(t, SCOPE); | 177 service_worker_unregister_and_done(t, SCOPE); |
| 161 } | 178 } |
| 162 }); | 179 }); |
| 163 worker.postMessage( | 180 worker.postMessage( |
| 164 {port: channel.port2}, [channel.port2]); | 181 {port: channel.port2}, [channel.port2]); |
| 165 }); | 182 }); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 227 audio_test(f, LOCAL_URL, '', 'no-cors', 'include'); | 244 audio_test(f, LOCAL_URL, '', 'no-cors', 'include'); |
| 228 audio_test(f, LOCAL_URL, 'anonymous', 'cors', 'same-origin'); | 245 audio_test(f, LOCAL_URL, 'anonymous', 'cors', 'same-origin'); |
| 229 audio_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include'); | 246 audio_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include'); |
| 230 audio_test(f, REMOTE_URL, '', 'no-cors', 'include'); | 247 audio_test(f, REMOTE_URL, '', 'no-cors', 'include'); |
| 231 audio_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin'); | 248 audio_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin'); |
| 232 audio_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include'); | 249 audio_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include'); |
| 233 }) | 250 }) |
| 234 .catch(unreached_rejection(t)); | 251 .catch(unreached_rejection(t)); |
| 235 }, 'Verify FetchEvent for resources.'); | 252 }, 'Verify FetchEvent for resources.'); |
| 236 </script> | 253 </script> |
| OLD | NEW |