| Index: lib/polyfill/fetch.js |
| =================================================================== |
| new file mode 100644 |
| --- /dev/null |
| +++ b/lib/polyfill/fetch.js |
| @@ -0,0 +1,59 @@ |
| +/* |
| + * This file is part of Adblock Plus <https://adblockplus.org/>, |
| + * Copyright (C) 2006-2015 Eyeo GmbH |
| + * |
| + * Adblock Plus is free software: you can redistribute it and/or modify |
| + * it under the terms of the GNU General Public License version 3 as |
| + * published by the Free Software Foundation. |
| + * |
| + * Adblock Plus is distributed in the hope that it will be useful, |
| + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| + * GNU General Public License for more details. |
| + * |
| + * You should have received a copy of the GNU General Public License |
| + * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
| + */ |
| + |
| +"use strict"; |
|
kzar
2016/01/15 19:35:18
Like in the other review, shouldn't this be inside
Sebastian Noack
2016/01/19 13:09:31
Like in the other review, it shouldn't. ;)
Puttin
kzar
2016/01/19 15:03:23
Acknowledged.
|
| + |
| +(function(global) |
| +{ |
| + if ("fetch" in global) |
| + return; |
| + |
| + function Response(xhr) |
| + { |
| + this._xhr = xhr; |
| + } |
| + Response.prototype = { |
|
kzar
2016/01/15 19:35:18
Seems like you've omitted quite a few of the Respo
Sebastian Noack
2016/01/19 13:09:31
As further explained in the other review, lets kee
kzar
2016/01/19 15:03:23
Acknowledged.
|
| + get ok() |
| + { |
| + return this._xhr.status >= 200 && this._xhr.status <= 299; |
| + }, |
| + text: function() |
| + { |
| + return Promise.resolve(this._xhr.responseText); |
| + } |
| + }; |
| + |
| + global.fetch = function(url) |
|
kzar
2016/01/15 19:35:18
Shouldn't this also take a second argument for the
Sebastian Noack
2016/01/19 13:09:31
See above.
|
| + { |
| + return new Promise(function(resolve, reject) |
| + { |
| + var xhr = new XMLHttpRequest(); |
| + |
| + xhr.onload = function() |
| + { |
| + resolve(new Response(xhr)); |
| + }; |
| + xhr.onerror = function() |
| + { |
| + reject(new TypeError("Failed to fetch")); |
| + }; |
| + |
| + xhr.open("GET", url); |
| + xhr.send(); |
| + }); |
| + }; |
| +})(this); |