From ad4fdb6d6e87d5587e4d9b54c6f159ffa055b67d Mon Sep 17 00:00:00 2001 From: Arnaud GRANAL Date: Tue, 16 Feb 2021 03:55:08 +0000 Subject: [PATCH] Add mechanism to clear cached tiles that have not been displayed for 7 days (in order to save cache space) and prepare for release --- .../resources/local_ntp/local_ntp.html | 43 ++++++++++++++++++- .../browser/resources/local_ntp/local_ntp.js | 2 +- 2 files changed, 42 insertions(+), 3 deletions(-) diff --git a/chrome/browser/resources/local_ntp/local_ntp.html b/chrome/browser/resources/local_ntp/local_ntp.html index a4c98a40c52..c285f3bd19f 100644 --- a/chrome/browser/resources/local_ntp/local_ntp.html +++ b/chrome/browser/resources/local_ntp/local_ntp.html @@ -638,6 +638,7 @@

Private mode

console.log("Invalidating rootDomain: " + rootDomain); item.src = "data:image/svg+xml;base64," + btoa(jdenticon.toSvg(parser.hostname, 64)); localStorage.setItem('icon-' + rootDomain, item.src); + localStorage.setItem('lastShown-' + rootDomain, Math.floor(Date.now() / 1000)); } function remove_favorite(e) @@ -658,6 +659,7 @@

Private mode

var innerDiv = document.createElement('div'); innerDiv.className = 'grid-item grid-idea'; var cachedImage = localStorage.getItem('icon-' + rootDomain); + localStorage.setItem('lastShown-' + rootDomain, Math.floor(Date.now() / 1000)); var imageUri = null; var randomId = Math.random().toString(36).substr(2, 9) + Math.random().toString(36).substr(2, 9) + Math.random().toString(36).substr(2, 9); if (cachedImage != null) { @@ -673,6 +675,7 @@

Private mode

}) .then(function(answer) { localStorage.setItem('icon-' + rootDomain, 'data:image/png;base64,' + arrayBufferToBase64(answer)); + localStorage.setItem('lastShown-' + rootDomain, Math.floor(Date.now() / 1000)); document.getElementById('icon' + randomId).src = 'data:image/png;base64,' + arrayBufferToBase64(answer); console.log('Icon for ' + rootDomain + ' is now fetched'); }); @@ -682,7 +685,7 @@

Private mode

} if (impression_url && impression_url != 'about:blank') navigator.sendBeacon(impression_url); - innerDiv.innerHTML = '' + name + ''; + innerDiv.innerHTML = '' + name + ''; innerDiv.style.minHeight = '64px'; // innerDiv.querySelector('#closeImg').addEventListener("touchstart", remove_favorite); @@ -702,6 +705,7 @@

Private mode

var innerDiv = document.createElement('div'); innerDiv.className = 'grid-item'; var cachedImage = localStorage.getItem('icon-' + rootDomain); + localStorage.setItem('lastShown-' + rootDomain, Math.floor(Date.now() / 1000)); var imageUri = null; var randomId = Math.random().toString(36).substr(2, 9) + Math.random().toString(36).substr(2, 9) + Math.random().toString(36).substr(2, 9); if (nItemsAdded++ < 10) { @@ -814,7 +818,7 @@

Private mode

if (globalGrid.isDragifierOn()) { iseditable = false; globalGrid.dragifierOff(); - Array.prototype.forEach.call(document.getElementsByClassName("grid-item"), function (el) { el.style.WebkitAnimation = 'none'; }); + Array.prototype.forEach.call(document.getElementsByClassName("grid-item"), function (el) { if (!el.classList.contains('grid-idea')) { el.style.WebkitAnimation = 'none'; } }); Array.prototype.forEach.call(document.getElementsByClassName('closeImg'), function (el) { el.classList.add('closeImgInvisible'); }); } else { iseditable = true; @@ -1225,5 +1229,40 @@

Private mode

+ diff --git a/chrome/browser/resources/local_ntp/local_ntp.js b/chrome/browser/resources/local_ntp/local_ntp.js index 59617446953..f7ba8fea2c2 100644 --- a/chrome/browser/resources/local_ntp/local_ntp.js +++ b/chrome/browser/resources/local_ntp/local_ntp.js @@ -1093,7 +1093,7 @@ function setup_grid() document.areIdeasFetched = true; document.getElementById('explore-section').style.display = 'none'; console.log("Fetching tiles ideas"); - fetch('https://tiles.kiwibrowser.org/ideas/?version=1&cachebuster=' + Math.random(), { method: 'GET' }) + fetch('https://tiles.kiwibrowser.org/ideas/?version=2&cachebuster=' + Math.random(), { method: 'GET' }) .then(function(response) { console.log("We received tiles ideas"); return response.json();