Skip to content

Commit b105585

Browse files
committed
fix: extension blocked unless installed
1 parent 6abc0f8 commit b105585

File tree

3 files changed

+26
-14
lines changed

3 files changed

+26
-14
lines changed

src/background/background.js

+11-4
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,17 @@ import { HistoryStore, IndexStore } from "./store.js";
33
import { Tracker } from "./tracker.js";
44

55
const schemaManager = new SchemaManager();
6+
const historyStore = new HistoryStore();
7+
const indexStore = new IndexStore();
68

7-
schemaManager.onReady.addListener(() => {
8-
const historyStore = new HistoryStore();
9-
const indexStore = new IndexStore();
9+
/**@type {Tracker} */
10+
let tracker;
11+
12+
schemaManager.onInstalled.addListener(() => {
13+
tracker = null;
14+
});
1015

11-
new Tracker({ historyStore, indexStore });
16+
schemaManager.onReady.addListener(() => {
17+
tracker = new Tracker({ historyStore, indexStore });
18+
tracker.startTracking();
1219
});

src/background/schema-manager.js

+15-7
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,29 @@ import { Logger } from "../utils";
33
import { transformers } from "./transformers";
44

55
export class SchemaManager {
6-
listeners = {
7-
ready: [],
8-
};
9-
106
constructor() {
7+
browser.runtime.onInstalled.addListener(() => this.onInstalled.emit()); // for stopping tracking until the schema is ready
118
browser.runtime.onInstalled.addListener(this.updateListener);
129
browser.runtime.onInstalled.addListener(this.installListener);
1310
}
1411

1512
onReady = {
16-
addListener: (listener) => this.listeners.ready.push(listener),
17-
invoke: () => {
13+
listeners: [],
14+
addListener: (listener) => this.onReady.listeners.push(listener),
15+
emit: () => {
16+
Logger.info("SCHEMA_0004");
17+
18+
this.onReady.listeners.forEach((listener) => listener.call(this));
19+
},
20+
};
21+
22+
onInstalled = {
23+
listeners: [],
24+
addListener: (listener) => this.onInstalled.listeners.push(listener),
25+
emit: () => {
1826
Logger.info("SCHEMA_0004");
1927

20-
this.listeners.ready.forEach((listener) => listener.call(this));
28+
this.onInstalled.listeners.forEach((listener) => listener.call(this));
2129
},
2230
};
2331

src/background/tracker.js

-3
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@ export class Tracker {
3434
tabs.onUpdated.addListener(this.onUpdated);
3535
tabs.onRemoved.addListener(this.onRemoved);
3636
windows.onFocusChanged.addListener(this.onFocusChanged);
37-
38-
this.startTracking();
3937
}
4038

4139
/**
@@ -64,7 +62,6 @@ export class Tracker {
6462
this.state.tracking = true;
6563

6664
this.interval = setInterval(async () => {
67-
//TODO: update index
6865
try {
6966
if (!shouldSync(this.state)) {
7067
if (!this.state.focused) info("TRACKING_0028");

0 commit comments

Comments
 (0)