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.
*
*/
function fetchFromURL()
{
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) {
data = JSON.parse(retrievedText);
getKeys(data.providers);
createProviders();
}
function checkResponse(response)
{
var responseText = response.clone().text().then(function(responseText){
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();
setGlobalCounter();

View File

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