Add offline storage for rules

This commit is contained in:
Kevin Röbert 2017-08-31 21:19:51 +02:00
parent a75daa0d28
commit 03b9d06d56
2 changed files with 56 additions and 12 deletions

View File

@ -52,24 +52,64 @@ function createProviders()
} }
}; };
/**
* Convert the external data to JSON Objects and
* call the create provider function.
*
* @param {String} retrievedText - pure data form github
*/
function toJSON(retrievedText) {
data = JSON.parse(retrievedText);
getKeys(data.providers);
createProviders();
}
/**
* Load local saved data, if the browser is offline or
* some other network trouble.
*
*/
function loadOldDataFromStore()
{
browser.storage.local.get('ClearURLsData', function(data){
if(data.ClearURLsData){
data = data.ClearURLsData;
}
else {
data = "";
}
toJSON(data);
});
}
/** /**
* Fetch the Rules & Exception github. * Fetch the Rules & Exception github.
* *
*/ */
function fetchFromURL() function fetchFromURL()
{ {
fetch("https://raw.githubusercontent.com/KevinRoebert/ClearUrls/master/data/data.json?flush_cache=true") fetch("https://raw.githubusercontent.com/KevinRoebert/ClearUrls/master/data/data.json?flush_cache=true")
.then((response) => response.text().then(toJSON)); .then(checkResponse)
.catch(function(error){
loadOldDataFromStore();
});
function toJSON(retrievedText) { function checkResponse(response)
data = JSON.parse(retrievedText); {
getKeys(data.providers); var responseText = response.clone().text().then(function(responseText){
createProviders(); if(response.ok)
} {
browser.storage.local.set({"ClearURLsData": responseText});
toJSON(responseText);
}
else {
loadOldDataFromStore();
}
});
};
} }
//Execute the command
fetchFromURL();
// ################################################################## // ##################################################################
/* /*
@ -368,6 +408,10 @@ function setBadgedStatus() {
}); });
} }
/**
* Call the fetch, counter and status functions
*/
fetchFromURL();
setBadgedStatus(); setBadgedStatus();
setGlobalCounter(); setGlobalCounter();

View File

@ -1,8 +1,8 @@
{ {
"manifest_version": 2, "manifest_version": 2,
"name": "ClearURLs", "name": "ClearURLs",
"version": "1.1.1.4", "version": "1.1.2.0",
"author": "Kevin R., Arne S.", "author": "Kevin R.",
"description": "Remove tracking elements form URLs. ", "description": "Remove tracking elements form URLs. ",
"homepage_url": "https://github.com/KevinRoebert/ClearUrls", "homepage_url": "https://github.com/KevinRoebert/ClearUrls",
"icons": { "icons": {
@ -18,7 +18,7 @@
"38": "icon38.png" "38": "icon38.png"
}, },
"default_title": "ClearURLs Add-on", "default_title": "ClearURLs Add-on",
"default_popup": "popup.html" "default_popup": "popup_new.html"
}, },
"permissions": [ "permissions": [
"*://*/*", "*://*/*",