diff --git a/app/scripts/lib/portalnetwork.js b/app/scripts/lib/portalnetwork.js index 5ff4f5ecf..960871ebc 100644 --- a/app/scripts/lib/portalnetwork.js +++ b/app/scripts/lib/portalnetwork.js @@ -3,16 +3,18 @@ const resolver = require('./resolver.js'); module.exports = function (provider) { extension.webRequest.onBeforeRequest.addListener(details => { let name = details.url.substring(7, details.url.length - 1); + let clearTime = null; extension.tabs.getSelected(null, tab => { extension.tabs.update(tab.id, { url: "loading.html" }); - setTimeout(() => { + clearTime = setTimeout(() => { return extension.tabs.update(tab.id, { url: "404.html" }); }, 60000); resolver.resolve(name, provider).then(ipfsHash => { + clearTimeout(clearTime); let url = "https://gateway.ipfs.io/ipfs/" + ipfsHash; - return fetch(url, {method: "HEAD"}).then(response => response.status).then(statusCode => { + return fetch(url, { method: "HEAD" }).then(response => response.status).then(statusCode => { if (statusCode !== 200) return "Local" extension.tabs.update(tab.id, { url: url }) }) @@ -23,6 +25,7 @@ module.exports = function (provider) { }) }) .catch(err => { + clearTimeout(clearTime); let nameWithoutTld = name.substring(0, name.lastIndexOf('.')) let url = err === "no_mainnet" ? "no_mainnet" : "error" extension.tabs.update(tab.id, {url: `${url}.html?name=${name}`})