Skip to content

Commit f6ca935

Browse files
committed
Use await in chrome.storage.local.get.
Call open cookie database only once.
1 parent 1471df0 commit f6ca935

File tree

3 files changed

+13
-58
lines changed

3 files changed

+13
-58
lines changed

packages/extension/src/contentScript/index.ts

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ import { TOOLTIP_CLASS } from './constants';
4141
import {
4242
DEVTOOLS_SET_JAVASCSCRIPT_COOKIE,
4343
GET_JS_COOKIES,
44-
SERVICE_WORKER_PORT_NAME,
4544
TABID_STORAGE,
4645
WEBPAGE_PORT_NAME,
4746
} from '../constants';
@@ -63,11 +62,6 @@ class WebpageContentScript {
6362
*/
6463
port: chrome.runtime.Port | null = null;
6564

66-
/**
67-
* Serviceeworker Connection port
68-
*/
69-
serviceWorkerPort: chrome.runtime.Port | null = null;
70-
7165
/**
7266
* TabId of the current Tab
7367
*/
@@ -158,13 +152,6 @@ class WebpageContentScript {
158152

159153
if (message?.payload?.type === TABID_STORAGE) {
160154
this.tabId = message.payload.tabId;
161-
chrome.runtime.sendMessage({
162-
setInPage: true,
163-
type: 'PING',
164-
payload: {
165-
tabId: this.tabId,
166-
},
167-
});
168155
}
169156

170157
if (message?.payload?.type === GET_JS_COOKIES) {
@@ -182,13 +169,6 @@ class WebpageContentScript {
182169
port.onMessage.addListener(this.onMessage);
183170
port.onDisconnect.addListener(this.onDisconnect);
184171
}
185-
if (port.name.startsWith(SERVICE_WORKER_PORT_NAME)) {
186-
this.serviceWorkerPort = port;
187-
this.serviceWorkerPort.onMessage.addListener(noop);
188-
this.serviceWorkerPort.onDisconnect.addListener(() => {
189-
this.serviceWorkerPort = null;
190-
});
191-
}
192172
});
193173
}
194174

@@ -204,6 +184,7 @@ class WebpageContentScript {
204184
tabUrl: window.location.href,
205185
tabId,
206186
documentCookies: jsCookies,
187+
cookieDB: this.cookieDB ?? {},
207188
});
208189
} catch (error) {
209190
//Fail silently. No logging because sometimes cookieStore.getAll fails to run in some context.
@@ -319,8 +300,6 @@ class WebpageContentScript {
319300
setInPage: false,
320301
});
321302
}
322-
this.serviceWorkerPort?.disconnect();
323-
this.serviceWorkerPort = null;
324303
}
325304

326305
/**

packages/extension/src/serviceWorker/index.ts

Lines changed: 8 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ import {
3737
INITIAL_SYNC,
3838
POPUP_CLOSE,
3939
POPUP_OPEN,
40-
SERVICE_WORKER_PORT_NAME,
4140
SERVICE_WORKER_RELOAD_MESSAGE,
4241
SERVICE_WORKER_TABS_RELOAD_COMMAND,
4342
SET_TAB_TO_READ,
@@ -165,6 +164,10 @@ chrome.webRequest.onBeforeSendHeaders.addListener(
165164
* @see https://developer.chrome.com/docs/extensions/reference/api/runtime#event-onStartup
166165
*/
167166
chrome.runtime.onStartup.addListener(async () => {
167+
setInterval(async () => {
168+
await chrome.storage.session.get();
169+
}, 20000);
170+
168171
const storage = await chrome.storage.sync.get();
169172

170173
if (!syncCookieStore) {
@@ -293,6 +296,10 @@ chrome.runtime.onInstalled.addListener(async (details) => {
293296
syncCookieStore = new SynchnorousCookieStore();
294297
syncCookieStore?.clear();
295298

299+
setInterval(async () => {
300+
await chrome.storage.session.get();
301+
}, 20000);
302+
296303
if (details.reason === 'install') {
297304
await chrome.storage.sync.clear();
298305
await chrome.storage.sync.set({
@@ -606,38 +613,6 @@ chrome.runtime.onMessage.addListener(async (request) => {
606613

607614
const incomingMessageTabId = request.payload.tabId;
608615

609-
if ('PING' === request?.type) {
610-
if (syncCookieStore && syncCookieStore?.tabs[incomingMessageTabId]) {
611-
if (!syncCookieStore?.tabs[incomingMessageTabId]?.portRef) {
612-
syncCookieStore.tabs[incomingMessageTabId].portRef =
613-
chrome.tabs.connect(Number(incomingMessageTabId), {
614-
name: `${SERVICE_WORKER_PORT_NAME}-${incomingMessageTabId}`,
615-
});
616-
}
617-
618-
if (syncCookieStore?.tabs[incomingMessageTabId]?.portRef) {
619-
setInterval(() => {
620-
syncCookieStore?.tabs[incomingMessageTabId]?.portRef?.postMessage({
621-
status: 'ping',
622-
});
623-
}, 10000);
624-
}
625-
626-
syncCookieStore?.tabs[
627-
incomingMessageTabId
628-
]?.portRef.onDisconnect.addListener(() => {
629-
if (
630-
syncCookieStore &&
631-
syncCookieStore?.tabs[incomingMessageTabId]?.portRef
632-
) {
633-
syncCookieStore.tabs[incomingMessageTabId].portRef = null;
634-
}
635-
636-
clearInterval(10000);
637-
});
638-
}
639-
}
640-
641616
if (DEVTOOLS_OPEN === incomingMessageType) {
642617
const dataToSend: { [key: string]: string | boolean } = {};
643618
dataToSend['tabMode'] = tabMode;

packages/extension/src/utils/processAndStoreDocumentCookies.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,30 +20,31 @@ import {
2020
isFirstParty,
2121
findAnalyticsMatch,
2222
type CookieData,
23+
type CookieDatabase,
2324
} from '@ps-analysis-tool/common';
2425
import { type Cookie as ParsedCookie } from 'simple-cookie';
2526

2627
/**
2728
* Internal dependencies.
2829
*/
2930
import { createCookieObject } from '../serviceWorker/createCookieObject';
30-
import { fetchDictionary } from './fetchCookieDictionary';
31+
3132
import { GET_JS_COOKIES } from '../constants';
3233

3334
interface ProcessAndStoreDucmentCookies {
3435
tabUrl: string;
3536
tabId: string;
3637
documentCookies: ParsedCookie[];
38+
cookieDB: CookieDatabase;
3739
}
3840

3941
const processAndStoreDocumentCookies = async ({
4042
tabUrl,
4143
tabId,
4244
documentCookies,
45+
cookieDB,
4346
}: ProcessAndStoreDucmentCookies) => {
4447
try {
45-
const cookieDB = await fetchDictionary();
46-
4748
const parsedCookieData: CookieData[] = documentCookies.map(
4849
(singleCookie: ParsedCookie) => {
4950
let parsedCookie = {

0 commit comments

Comments
 (0)