Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * THIS FILE INTENTIONALLY LEFT BLANK | 2 * THIS FILE INTENTIONALLY LEFT BLANK |
| 3 * | 3 * |
| 4 * More specifically, this file is intended for vendors to implement | 4 * More specifically, this file is intended for vendors to implement |
| 5 * code needed to integrate testharness.js tests with their own test systems. | 5 * code needed to integrate testharness.js tests with their own test systems. |
| 6 * | 6 * |
| 7 * Typically such integration will attach callbacks when each test is | 7 * Typically such integration will attach callbacks when each test is |
| 8 * has run, using add_result_callback(callback(test)), or when the whole test fi le has | 8 * has run, using add_result_callback(callback(test)), or when the whole test fi le has |
| 9 * completed, using add_completion_callback(callback(tests, harness_status)). | 9 * completed, using add_completion_callback(callback(tests, harness_status)). |
| 10 * | 10 * |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 121 // Per-test automation scripts. | 121 // Per-test automation scripts. |
| 122 src = automationPath + pathAndBase + '-automation.js'; | 122 src = automationPath + pathAndBase + '-automation.js'; |
| 123 } else { | 123 } else { |
| 124 return; | 124 return; |
| 125 } | 125 } |
| 126 var script = document.createElement('script'); | 126 var script = document.createElement('script'); |
| 127 script.src = src; | 127 script.src = src; |
| 128 document.head.appendChild(script); | 128 document.head.appendChild(script); |
| 129 } | 129 } |
| 130 | 130 |
| 131 function importTestPolyfils() { | |
| 132 var pathAndBase = pathAndBaseNameInWPT(); | |
| 133 if (!pathAndBase) | |
| 134 return; | |
| 135 var automationPath = location.pathname.replace(/\/external\/wpt\/.*$/, ' /external/wpt_automation'); | |
|
ortuno
2017/04/03 01:47:19
wpt_automation has a very specific purpose: Turn m
Reilly Grant (use Gerrit)
2017/04/05 18:39:37
Created a new wpt_polyfill directory for these.
| |
| 136 if (location.hostname == 'web-platform.test') | |
| 137 automationPath = '/wpt_automation'; | |
| 138 | |
| 139 var script = document.createElement('script'); | |
| 140 if (pathAndBase.startsWith('/webusb/')) { | |
| 141 // WebUSB tests require a polyfil for navigator.usb.test. This | |
| 142 // script will be loaded asynchronously so we need to patch in | |
| 143 // a version of navigator.usb.test.initialize() that will wait for | |
| 144 // the script to load. | |
| 145 script.src = automationPath + '/webusb/webusb-test.js'; | |
| 146 let initializePromise = null; | |
| 147 navigator.usb.test = { | |
| 148 initialize: function() { | |
| 149 if (!initializePromise) { | |
| 150 initializePromise = new Promise(resolve => { | |
| 151 script.onload = () => { | |
| 152 resolve(navigator.usb.test.initialize()); | |
| 153 } | |
| 154 }); | |
| 155 } | |
| 156 return initializePromise; | |
| 157 } | |
| 158 }; | |
| 159 } else { | |
| 160 return; | |
| 161 } | |
| 162 document.head.appendChild(script); | |
| 163 } | |
| 164 | |
| 131 var didDispatchLoadEvent = false; | 165 var didDispatchLoadEvent = false; |
| 132 window.addEventListener('load', function() { | 166 window.addEventListener('load', function() { |
| 133 didDispatchLoadEvent = true; | 167 didDispatchLoadEvent = true; |
| 134 if (isWPTManualTest()) { | 168 if (isWPTManualTest()) { |
| 135 setTimeout(loadAutomationScript, 0); | 169 setTimeout(loadAutomationScript, 0); |
| 136 } | 170 } |
| 137 }, { once: true }); | 171 }, { once: true }); |
| 138 | 172 |
| 139 add_start_callback(function(properties) { | 173 add_start_callback(function(properties) { |
| 140 if (properties.output_document) | 174 if (properties.output_document) |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 259 // This function might not be the last 'completion callback', and | 293 // This function might not be the last 'completion callback', and |
| 260 // another completion callback might generate more results. So, we | 294 // another completion callback might generate more results. So, we |
| 261 // don't dump the results immediately. | 295 // don't dump the results immediately. |
| 262 setTimeout(done, 0); | 296 setTimeout(done, 0); |
| 263 } else { | 297 } else { |
| 264 // Parsing the test HTML isn't finished yet. | 298 // Parsing the test HTML isn't finished yet. |
| 265 window.addEventListener('load', done); | 299 window.addEventListener('load', done); |
| 266 } | 300 } |
| 267 }); | 301 }); |
| 268 | 302 |
| 303 importTestPolyfils(); | |
| 269 })(); | 304 })(); |
| OLD | NEW |