| Index: LayoutTests/http/tests/serviceworker/chromium/resources/fetch-script-onerror-worker.js
 | 
| diff --git a/LayoutTests/http/tests/serviceworker/chromium/resources/fetch-script-onerror-worker.js b/LayoutTests/http/tests/serviceworker/chromium/resources/fetch-script-onerror-worker.js
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..9b33a830699d6b8ad758d8bb02a732abc3fa2b30
 | 
| --- /dev/null
 | 
| +++ b/LayoutTests/http/tests/serviceworker/chromium/resources/fetch-script-onerror-worker.js
 | 
| @@ -0,0 +1,34 @@
 | 
| +function get_query_params(url) {
 | 
| +  var search = (new URL(url)).search;
 | 
| +  if (!search) {
 | 
| +    return {};
 | 
| +  }
 | 
| +  var ret = {};
 | 
| +  var params = search.substring(1).split('&');
 | 
| +  params.forEach(function(param) {
 | 
| +      var element = param.split('=');
 | 
| +      ret[decodeURIComponent(element[0])] = decodeURIComponent(element[1]);
 | 
| +    });
 | 
| +  return ret;
 | 
| +}
 | 
| +
 | 
| +function get_request_init(params) {
 | 
| +  var init = {};
 | 
| +  if (params['mode']) {
 | 
| +    init['mode'] = params['mode'];
 | 
| +  }
 | 
| +  return init;
 | 
| +}
 | 
| +
 | 
| +self.addEventListener('fetch', function(event) {
 | 
| +    var params = get_query_params(event.request.url);
 | 
| +    var init = get_request_init(params);
 | 
| +    var url = params['url'];
 | 
| +    event.respondWith(new Promise(function(resolve, reject) {
 | 
| +        var request = event.request;
 | 
| +        if (url) {
 | 
| +          request = new Request(url, init);
 | 
| +        }
 | 
| +        fetch(request).then(resolve, reject);
 | 
| +      }));
 | 
| +  });
 | 
| 
 |