| 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"></script> | 5 <script src="../resources/get-host-info.js"></script> |
| 6 <script src="resources/test-helpers.js?pipe=sub"></script> | 6 <script src="resources/test-helpers.js?pipe=sub"></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 function image_test(frame, url, cross_origin, expected_context, | 11 function image_test(frame, url, cross_origin, |
| 12 expected_mode, expected_credentials) { | 12 expected_mode, expected_credentials) { |
| 13 var actual_url = url + (++url_count); | 13 var actual_url = url + (++url_count); |
| 14 expected_results[actual_url] = { | 14 expected_results[actual_url] = { |
| 15 cross_origin: cross_origin, | 15 cross_origin: cross_origin, |
| 16 context: expected_context, | |
| 17 mode: expected_mode, | 16 mode: expected_mode, |
| 18 credentials: expected_credentials, | 17 credentials: expected_credentials, |
| 19 redirect: 'follow', | 18 redirect: 'follow', |
| 20 message: 'Image load (url:' + | 19 message: 'Image load (url:' + |
| 21 actual_url + ' cross_origin:' + cross_origin + ')' | 20 actual_url + ' cross_origin:' + cross_origin + ')' |
| 22 }; | 21 }; |
| 23 return frame.contentWindow.load_image(actual_url, cross_origin); | 22 return frame.contentWindow.load_image(actual_url, cross_origin); |
| 24 } | 23 } |
| 25 | 24 |
| 26 function script_test(frame, url, cross_origin, expected_context, | 25 function script_test(frame, url, cross_origin, |
| 27 expected_mode, expected_credentials) { | 26 expected_mode, expected_credentials) { |
| 28 var actual_url = url + (++url_count); | 27 var actual_url = url + (++url_count); |
| 29 expected_results[actual_url] = { | 28 expected_results[actual_url] = { |
| 30 cross_origin: cross_origin, | 29 cross_origin: cross_origin, |
| 31 context: expected_context, | |
| 32 mode: expected_mode, | 30 mode: expected_mode, |
| 33 credentials: expected_credentials, | 31 credentials: expected_credentials, |
| 34 redirect: 'follow', | 32 redirect: 'follow', |
| 35 message: 'Script load (url:' + | 33 message: 'Script load (url:' + |
| 36 actual_url + ' cross_origin:' + cross_origin + ')' | 34 actual_url + ' cross_origin:' + cross_origin + ')' |
| 37 }; | 35 }; |
| 38 return frame.contentWindow.load_script(actual_url, cross_origin); | 36 return frame.contentWindow.load_script(actual_url, cross_origin); |
| 39 } | 37 } |
| 40 | 38 |
| 41 function css_test(frame, url, cross_origin, expected_context, | 39 function css_test(frame, url, cross_origin, |
| 42 expected_mode, expected_credentials) { | 40 expected_mode, expected_credentials) { |
| 43 var actual_url = url + (++url_count); | 41 var actual_url = url + (++url_count); |
| 44 expected_results[actual_url] = { | 42 expected_results[actual_url] = { |
| 45 cross_origin: cross_origin, | 43 cross_origin: cross_origin, |
| 46 context: expected_context, | |
| 47 mode: expected_mode, | 44 mode: expected_mode, |
| 48 credentials: expected_credentials, | 45 credentials: expected_credentials, |
| 49 redirect: 'follow', | 46 redirect: 'follow', |
| 50 message: 'CSS load (url:' + | 47 message: 'CSS load (url:' + |
| 51 actual_url + ' cross_origin:' + cross_origin + ')' | 48 actual_url + ' cross_origin:' + cross_origin + ')' |
| 52 }; | 49 }; |
| 53 return frame.contentWindow.load_css(actual_url, cross_origin); | 50 return frame.contentWindow.load_css(actual_url, cross_origin); |
| 54 } | 51 } |
| 55 | 52 |
| 56 function font_face_test(frame, url, expected_context, expected_mode, | 53 function font_face_test(frame, url, expected_mode, |
| 57 expected_credentials) { | 54 expected_credentials) { |
| 58 var actual_url = url + (++url_count); | 55 var actual_url = url + (++url_count); |
| 59 expected_results[actual_url] = { | 56 expected_results[actual_url] = { |
| 60 url: actual_url, | 57 url: actual_url, |
| 61 context: expected_context, | |
| 62 mode: expected_mode, | 58 mode: expected_mode, |
| 63 credentials: expected_credentials, | 59 credentials: expected_credentials, |
| 64 redirect: 'follow', | 60 redirect: 'follow', |
| 65 message: 'FontFace load (url:' + actual_url + ')' | 61 message: 'FontFace load (url:' + actual_url + ')' |
| 66 }; | 62 }; |
| 67 return frame.contentWindow.load_font(actual_url); | 63 return frame.contentWindow.load_font(actual_url); |
| 68 } | 64 } |
| 69 | 65 |
| 70 function css_image_test(frame, url, type, expected_context, | 66 function css_image_test(frame, url, type, |
| 71 expected_mode, expected_credentials) { | 67 expected_mode, expected_credentials) { |
| 72 var actual_url = url + (++url_count); | 68 var actual_url = url + (++url_count); |
| 73 expected_results[actual_url] = { | 69 expected_results[actual_url] = { |
| 74 url: actual_url, | 70 url: actual_url, |
| 75 context: expected_context, | |
| 76 mode: expected_mode, | 71 mode: expected_mode, |
| 77 credentials: expected_credentials, | 72 credentials: expected_credentials, |
| 78 redirect: 'follow', | 73 redirect: 'follow', |
| 79 message: 'CSSImage load (url:' + actual_url + ' type:' + type + ')' | 74 message: 'CSSImage load (url:' + actual_url + ' type:' + type + ')' |
| 80 }; | 75 }; |
| 81 return frame.contentWindow.load_css_image(actual_url, type); | 76 return frame.contentWindow.load_css_image(actual_url, type); |
| 82 } | 77 } |
| 83 | 78 |
| 84 function css_image_set_test(frame, url, type, expected_context, | 79 function css_image_set_test(frame, url, type, |
| 85 expected_mode, expected_credentials) { | 80 expected_mode, expected_credentials) { |
| 86 var actual_url = url + (++url_count); | 81 var actual_url = url + (++url_count); |
| 87 expected_results[actual_url] = { | 82 expected_results[actual_url] = { |
| 88 url: actual_url, | 83 url: actual_url, |
| 89 context: expected_context, | |
| 90 mode: expected_mode, | 84 mode: expected_mode, |
| 91 credentials: expected_credentials, | 85 credentials: expected_credentials, |
| 92 redirect: 'follow', | 86 redirect: 'follow', |
| 93 message: 'CSSImageSet load (url:' + actual_url + ' type:' + type + ')' | 87 message: 'CSSImageSet load (url:' + actual_url + ' type:' + type + ')' |
| 94 }; | 88 }; |
| 95 return frame.contentWindow.load_css_image_set(actual_url, type); | 89 return frame.contentWindow.load_css_image_set(actual_url, type); |
| 96 } | 90 } |
| 97 | 91 |
| 98 async_test(function(t) { | 92 async_test(function(t) { |
| 99 var SCOPE = 'resources/fetch-request-resources-iframe.html'; | 93 var SCOPE = 'resources/fetch-request-resources-iframe.html'; |
| (...skipping 17 matching lines...) Expand all Loading... |
| 117 if (msg.data.ready) { | 111 if (msg.data.ready) { |
| 118 resolve(); | 112 resolve(); |
| 119 return; | 113 return; |
| 120 } | 114 } |
| 121 var result = msg.data; | 115 var result = msg.data; |
| 122 var expected = expected_results[result.url]; | 116 var expected = expected_results[result.url]; |
| 123 if (!expected) { | 117 if (!expected) { |
| 124 return; | 118 return; |
| 125 } | 119 } |
| 126 assert_equals( | 120 assert_equals( |
| 127 result.context, expected.context, | |
| 128 'context of ' + expected.message + ' must be ' + | |
| 129 expected.context + '.'); | |
| 130 assert_equals( | |
| 131 result.context_clone, expected.context, | |
| 132 'context of clone() of ' + expected.message + | |
| 133 ' must be ' + expected.context + '.'); | |
| 134 assert_equals( | |
| 135 result.context_new, '', | |
| 136 'context of new Request() must be the empty string'); | |
| 137 assert_equals( | |
| 138 result.mode, expected.mode, | 121 result.mode, expected.mode, |
| 139 'mode of ' + expected.message + ' must be ' + | 122 'mode of ' + expected.message + ' must be ' + |
| 140 expected.mode + '.'); | 123 expected.mode + '.'); |
| 141 assert_equals( | 124 assert_equals( |
| 142 result.credentials, expected.credentials, | 125 result.credentials, expected.credentials, |
| 143 'credentials of ' + expected.message + ' must be ' + | 126 'credentials of ' + expected.message + ' must be ' + |
| 144 expected.credentials + '.'); | 127 expected.credentials + '.'); |
| 145 assert_equals( | 128 assert_equals( |
| 146 result.redirect, expected.redirect, | 129 result.redirect, expected.redirect, |
| 147 'redirect mode of ' + expected.message + ' must be ' + | 130 'redirect mode of ' + expected.message + ' must be ' + |
| 148 expected.redirect + '.'); | 131 expected.redirect + '.'); |
| 149 --url_count; | 132 --url_count; |
| 150 delete expected_results[result.url]; | 133 delete expected_results[result.url]; |
| 151 if (url_count == 0) { | 134 if (url_count == 0) { |
| 152 frame.remove(); | 135 frame.remove(); |
| 153 service_worker_unregister_and_done(t, SCOPE); | 136 service_worker_unregister_and_done(t, SCOPE); |
| 154 } | 137 } |
| 155 }); | 138 }); |
| 156 worker.postMessage( | 139 worker.postMessage( |
| 157 {port: channel.port2}, [channel.port2]); | 140 {port: channel.port2}, [channel.port2]); |
| 158 }); | 141 }); |
| 159 }) | 142 }) |
| 160 .then(function() { return with_iframe(SCOPE); }) | 143 .then(function() { return with_iframe(SCOPE); }) |
| 161 .then(function(f) { | 144 .then(function(f) { |
| 162 frame = f; | 145 frame = f; |
| 163 image_test(f, LOCAL_URL, '', 'image', 'no-cors', 'same-origin'); | 146 image_test(f, LOCAL_URL, '', 'no-cors', 'same-origin'); |
| 164 image_test(f, LOCAL_URL, 'anonymous', 'image', 'cors', 'omit'); | 147 image_test(f, LOCAL_URL, 'anonymous', 'cors', 'omit'); |
| 165 image_test(f, LOCAL_URL, 'use-credentials', 'image', 'cors', | 148 image_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include'); |
| 166 'include'); | 149 image_test(f, REMOTE_URL, '', 'no-cors', 'same-origin'); |
| 167 image_test(f, REMOTE_URL, '', 'image', 'no-cors', 'same-origin'); | 150 image_test(f, REMOTE_URL, 'anonymous', 'cors', 'omit'); |
| 168 image_test(f, REMOTE_URL, 'anonymous', 'image', 'cors', 'omit'); | 151 image_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include'); |
| 169 image_test(f, REMOTE_URL, 'use-credentials', 'image', 'cors', | |
| 170 'include'); | |
| 171 | 152 |
| 172 script_test(f, LOCAL_URL, '', 'script', 'no-cors', 'same-origin'); | 153 script_test(f, LOCAL_URL, '', 'no-cors', 'same-origin'); |
| 173 script_test(f, LOCAL_URL, 'anonymous', 'script', 'cors', 'omit'); | 154 script_test(f, LOCAL_URL, 'anonymous', 'cors', 'omit'); |
| 174 script_test(f, LOCAL_URL, 'use-credentials', 'script', 'cors', | 155 script_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include'); |
| 175 'include'); | 156 script_test(f, REMOTE_URL, '', 'no-cors', 'same-origin'); |
| 176 script_test(f, REMOTE_URL, '', 'script', 'no-cors', 'same-origin'); | 157 script_test(f, REMOTE_URL, 'anonymous', 'cors', 'omit'); |
| 177 script_test(f, REMOTE_URL, 'anonymous', 'script', 'cors', 'omit'); | 158 script_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include'); |
| 178 script_test(f, REMOTE_URL, 'use-credentials', 'script', 'cors', | |
| 179 'include'); | |
| 180 | 159 |
| 181 css_test(f, LOCAL_URL, '', 'style', 'no-cors', 'same-origin'); | 160 css_test(f, LOCAL_URL, '', 'no-cors', 'same-origin'); |
| 182 css_test(f, LOCAL_URL, 'anonymous', 'style', 'cors', 'omit'); | 161 css_test(f, LOCAL_URL, 'anonymous', 'cors', 'omit'); |
| 183 css_test(f, LOCAL_URL, 'use-credentials', 'style', 'cors', | 162 css_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include'); |
| 184 'include'); | 163 css_test(f, REMOTE_URL, '', 'no-cors', 'same-origin'); |
| 185 css_test(f, REMOTE_URL, '', 'style', 'no-cors', 'same-origin'); | 164 css_test(f, REMOTE_URL, 'anonymous', 'cors', 'omit'); |
| 186 css_test(f, REMOTE_URL, 'anonymous', 'style', 'cors', 'omit'); | 165 css_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include'); |
| 187 css_test(f, REMOTE_URL, 'use-credentials', 'style', 'cors', | |
| 188 'include'); | |
| 189 | 166 |
| 190 font_face_test(f, LOCAL_URL, 'font', 'cors', 'omit'); | 167 font_face_test(f, LOCAL_URL, 'cors', 'omit'); |
| 191 font_face_test(f, REMOTE_URL, 'font', 'cors', 'omit'); | 168 font_face_test(f, REMOTE_URL, 'cors', 'omit'); |
| 192 | 169 |
| 193 css_image_test(f, LOCAL_URL, 'backgroundImage', 'image', | 170 css_image_test(f, LOCAL_URL, 'backgroundImage', |
| 194 'no-cors', 'same-origin'); | 171 'no-cors', 'same-origin'); |
| 195 css_image_test(f, REMOTE_URL, 'backgroundImage', 'image', | 172 css_image_test(f, REMOTE_URL, 'backgroundImage', |
| 196 'no-cors', 'same-origin'); | 173 'no-cors', 'same-origin'); |
| 197 css_image_test(f, LOCAL_URL, 'shapeOutside', 'image', 'cors', | 174 css_image_test(f, LOCAL_URL, 'shapeOutside', 'cors', 'omit'); |
| 198 'omit'); | 175 css_image_test(f, REMOTE_URL, 'shapeOutside', 'cors', 'omit'); |
| 199 css_image_test(f, REMOTE_URL, 'shapeOutside', 'image', 'cors', | |
| 200 'omit'); | |
| 201 | 176 |
| 202 css_image_set_test(f, LOCAL_URL, 'backgroundImage', 'image', | 177 css_image_set_test(f, LOCAL_URL, 'backgroundImage', |
| 203 'no-cors', 'same-origin'); | 178 'no-cors', 'same-origin'); |
| 204 css_image_set_test(f, REMOTE_URL, 'backgroundImage', 'image', | 179 css_image_set_test(f, REMOTE_URL, 'backgroundImage', |
| 205 'no-cors', 'same-origin'); | 180 'no-cors', 'same-origin'); |
| 206 css_image_set_test(f, LOCAL_URL, 'shapeOutside', 'image', 'cors', | 181 css_image_set_test(f, LOCAL_URL, 'shapeOutside', 'cors', 'omit'); |
| 207 'omit'); | 182 css_image_set_test(f, REMOTE_URL, 'shapeOutside', 'cors', 'omit'); |
| 208 css_image_set_test(f, REMOTE_URL, 'shapeOutside', 'image', 'cors', | |
| 209 'omit'); | |
| 210 | 183 |
| 211 }) | 184 }) |
| 212 .catch(unreached_rejection(t)); | 185 .catch(unreached_rejection(t)); |
| 213 }, 'Verify FetchEvent for resources.'); | 186 }, 'Verify FetchEvent for resources.'); |
| 214 </script> | 187 </script> |
| OLD | NEW |