| Index: background.js |
| =================================================================== |
| --- a/background.js |
| +++ b/background.js |
| @@ -224,37 +224,37 @@ |
| if (!addSubscription && !addAcceptable) |
| return; |
| - function notifyUser() |
| + Promise.resolve(addSubscription && fetch("subscriptions.xml") |
| + .then(function(response) |
| + { |
| + return response.text(); |
| + }) |
| + .then(function(text) |
| + { |
| + var doc = new DOMParser().parseFromString(text, "application/xml"); |
| + var nodes = doc.getElementsByTagName("subscription"); |
| + var node = Utils.chooseFilterSubscription(nodes); |
| + var subscription = node && Subscription.fromURL(node.getAttribute("url")); |
| + |
| + if (subscription) |
| + { |
| + FilterStorage.addSubscription(subscription); |
| + |
| + subscription.disabled = false; |
| + subscription.title = node.getAttribute("title"); |
| + subscription.homepage = node.getAttribute("homepage"); |
| + |
| + if (subscription instanceof DownloadableSubscription && |
| + !subscription.lastDownload) |
| + Synchronizer.execute(subscription); |
| + } |
| + }) |
| + ) |
| + .then(function() |
| { |
| if (!Prefs.suppress_first_run_page) |
| ext.pages.open(ext.getURL("firstRun.html")); |
| - } |
| - |
| - if (addSubscription) |
| - { |
| - // Load subscriptions data |
| - var request = new XMLHttpRequest(); |
| - request.open("GET", "subscriptions.xml"); |
| - request.addEventListener("load", function() |
| - { |
| - var node = Utils.chooseFilterSubscription(request.responseXML.getElementsByTagName("subscription")); |
| - var subscription = (node ? Subscription.fromURL(node.getAttribute("url")) : null); |
| - if (subscription) |
| - { |
| - FilterStorage.addSubscription(subscription); |
| - subscription.disabled = false; |
| - subscription.title = node.getAttribute("title"); |
| - subscription.homepage = node.getAttribute("homepage"); |
| - if (subscription instanceof DownloadableSubscription && !subscription.lastDownload) |
| - Synchronizer.execute(subscription); |
| - |
| - notifyUser(); |
| - } |
| - }, false); |
| - request.send(null); |
| - } |
| - else |
| - notifyUser(); |
| + }); |
| } |
| Prefs.onChanged.addListener(function(name) |