Skip to content

Commit

Permalink
use the constant variable and fix missing async await
Browse files Browse the repository at this point in the history
  • Loading branch information
Anish Sarangi committed Jul 31, 2024
1 parent 6a395cc commit 6f204ea
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 57 deletions.
8 changes: 4 additions & 4 deletions safari/Wayback Machine.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,7 @@
"@executable_path/../../../../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
MARKETING_VERSION = 3.4;
MARKETING_VERSION = 3.5;

PRODUCT_BUNDLE_IDENTIFIER = archive.org.waybackmachine.mac.extension;
PRODUCT_NAME = "$(TARGET_NAME)";
Expand All @@ -494,7 +494,7 @@
"@executable_path/../../../../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
MARKETING_VERSION = 3.4;
MARKETING_VERSION = 3.5;
PRODUCT_BUNDLE_IDENTIFIER = archive.org.waybackmachine.mac.extension;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
Expand Down Expand Up @@ -522,7 +522,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
MARKETING_VERSION = 3.4;
MARKETING_VERSION = 3.5;
PRODUCT_BUNDLE_IDENTIFIER = archive.org.waybackmachine.mac;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
Expand All @@ -549,7 +549,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
MARKETING_VERSION = 3.4;
MARKETING_VERSION = 3.5;
PRODUCT_BUNDLE_IDENTIFIER = archive.org.waybackmachine.mac;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
Expand Down
2 changes: 1 addition & 1 deletion webextension/manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"manifest_version": 3,
"name": "Wayback Machine",
"version": "3.4",
"version": "3.5",
"description": "The Official Wayback Machine Extension - by the Internet Archive.",
"icons": {
"16": "images/app-icon/mini-icon16.png",
Expand Down
66 changes: 19 additions & 47 deletions webextension/scripts/background.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ importScripts('utils.js')
// let gToolbarStates = {}
// let waybackCountCache = {}
// let globalAPICache = new Map()
// const API_CACHE_SIZE = 5
// const API_LOADING = 'LOADING'
// const API_TIMEOUT = 10000
// const API_RETRY = 1000
// const SPN_RETRY = 6000
const API_CACHE_SIZE = 5
const API_LOADING = 'LOADING'
const API_TIMEOUT = 10000
const API_RETRY = 1000
const SPN_RETRY = 6000
let tabIdPromise

// not required because in manifest v3, we use different subdomain of hostURLs for different browsers
Expand Down Expand Up @@ -58,12 +58,6 @@ function savePageNowChecked(atab, pageUrl, silent, options) {
*/
async function savePageNow(atab, pageUrl, silent = false, options = {}, loggedInFlag = true) {

let { API_TIMEOUT, SPN_RETRY } = await new Promise((resolve) => {
chrome.storage.local.get(['API_TIMEOUT', 'SPN_RETRY'], function(result) {
resolve(result);
});
});

if (!(isValidUrl(pageUrl) && isNotExcludedUrl(pageUrl))) {
console.log('savePageNow URL excluded')
return
Expand Down Expand Up @@ -153,11 +147,6 @@ function extractJobIdFromHTML(html) {
* @param jobId {string}: job_id returned by SPN response, passed to Status API.
*/
async function savePageStatus(atab, pageUrl, silent = false, jobId) {
let { API_TIMEOUT, SPN_RETRY } = await new Promise((resolve) => {
chrome.storage.local.get(['API_TIMEOUT', 'SPN_RETRY'], function(result) {
resolve(result);
});
});
// setup api
// Accept header required when logged-out, even though response is in JSON.
let headers = new Headers(hostHeaders)
Expand Down Expand Up @@ -283,25 +272,19 @@ async function statusFailed(atab, pageUrl, silent, data, err) {
* @param timestamp {string}: Wayback timestamp as "yyyyMMddHHmmss" in UTC.
* @return Promise: which should return this JSON on success: { "success": true }
*/
async function saveToMyWebArchive(url, timestamp) {
let { API_TIMEOUT } = await new Promise((resolve) => {
chrome.storage.local.get(['API_TIMEOUT'], function(result) {
resolve(result);
});
});
const postData = { 'url': url, 'snapshot': timestamp, 'tags': [] }
async function saveToMyWebArchive(url, timestamp) {
const postData = { 'url': url, 'snapshot': timestamp, 'tags': [] };
const timeoutPromise = new Promise((resolve, reject) => {
setTimeout(() => { reject(new Error('timeout')) }, API_TIMEOUT)
let headers = new Headers(hostHeaders)
headers.set('Content-Type', 'application/json')
fetch(hostURL + '__wb/web-archive', {
method: 'POST',
body: JSON.stringify(postData),
headers: headers
})
.then(resolve, reject)
})
return timeoutPromise
setTimeout(() => reject(new Error('timeout')), API_TIMEOUT);
fetch(hostURL + '__wb/web-archive', {
method: 'POST',
body: JSON.stringify(postData),
headers: new Headers({ 'Content-Type': 'application/json', ...hostHeaders })
})
.then(resolve)
.catch(reject);
});
return timeoutPromise;
}

/**
Expand All @@ -313,11 +296,6 @@ async function saveToMyWebArchive(url, timestamp) {
* @return Promise
*/
async function fetchAPI(url, onSuccess, onFail, postData = null) {
let { API_TIMEOUT } = await new Promise((resolve) => {
chrome.storage.local.get(['API_TIMEOUT'], function(result) {
resolve(result);
});
});
const timeoutPromise = new Promise((resolve, reject) => {
setTimeout(() => { reject(new Error('timeout')) }, API_TIMEOUT)
let headers = new Headers(hostHeaders)
Expand Down Expand Up @@ -353,12 +331,6 @@ async function fetchAPI(url, onSuccess, onFail, postData = null) {
* @return Promise if calls API, json data if in cache, null if loading in progress.
*/
async function fetchCachedAPI(url, onSuccess, onFail, postData = null) {
let { API_CACHE_SIZE, API_LOADING, API_RETRY } = await new Promise((resolve) => {
chrome.storage.local.get(['API_CACHE_SIZE', 'API_LOADING', 'API_RETRY'], function(result) {
resolve(result);
});
});

chrome.storage.local.get(['globalAPICache'], async function(result) {
let globalAPICache = result.globalAPICache ? new Map(Object.entries(result.globalAPICache)) : new Map();
let data = globalAPICache.get(url);
Expand Down Expand Up @@ -725,7 +697,7 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
return false
})

chrome.tabs.onUpdated.addListener((tabId, info, tab) => {
chrome.tabs.onUpdated.addListener( async (tabId, info, tab) => {
const url = tab.url
if (!(isNotExcludedUrl(url) && isValidUrl(url)) || isArchiveUrl(url)) { return }

Expand Down Expand Up @@ -876,7 +848,7 @@ chrome.tabs.onActivated.addListener((info) => {
* Leave empty to always save. Set to null to save only if hadn't been previously saved.
*/
async function autoSave(atab, url, beforeDate = new Date()) {
toolbarState = getToolbarState(atab)
toolbarState = await getToolbarState(atab)
if (isValidUrl(url) && isNotExcludedUrl(url) && !toolbarState.has('S')) {
chrome.storage.local.get(['auto_exclude_list'], (items) => {
if (!('auto_exclude_list' in items) ||
Expand Down
5 changes: 0 additions & 5 deletions webextension/scripts/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -824,11 +824,6 @@ function initDefaultOptions () {
waybackCountCache: {},
gToolbarStates: {},
globalAPICache: {},
API_CACHE_SIZE: 5,
API_LOADING: 'LOADING',
API_TIMEOUT: 10000,
API_RETRY: 1000,
SPN_RETRY: 6000,
/* Features */
private_mode_setting: true,
not_found_setting: false,
Expand Down

0 comments on commit 6f204ea

Please sign in to comment.