File tree 3 files changed +26
-14
lines changed
3 files changed +26
-14
lines changed Original file line number Diff line number Diff line change @@ -3,10 +3,17 @@ import { HistoryStore, IndexStore } from "./store.js";
3
3
import { Tracker } from "./tracker.js" ;
4
4
5
5
const schemaManager = new SchemaManager ( ) ;
6
+ const historyStore = new HistoryStore ( ) ;
7
+ const indexStore = new IndexStore ( ) ;
6
8
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
+ } ) ;
10
15
11
- new Tracker ( { historyStore, indexStore } ) ;
16
+ schemaManager . onReady . addListener ( ( ) => {
17
+ tracker = new Tracker ( { historyStore, indexStore } ) ;
18
+ tracker . startTracking ( ) ;
12
19
} ) ;
Original file line number Diff line number Diff line change @@ -3,21 +3,29 @@ import { Logger } from "../utils";
3
3
import { transformers } from "./transformers" ;
4
4
5
5
export class SchemaManager {
6
- listeners = {
7
- ready : [ ] ,
8
- } ;
9
-
10
6
constructor ( ) {
7
+ browser . runtime . onInstalled . addListener ( ( ) => this . onInstalled . emit ( ) ) ; // for stopping tracking until the schema is ready
11
8
browser . runtime . onInstalled . addListener ( this . updateListener ) ;
12
9
browser . runtime . onInstalled . addListener ( this . installListener ) ;
13
10
}
14
11
15
12
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 : ( ) => {
18
26
Logger . info ( "SCHEMA_0004" ) ;
19
27
20
- this . listeners . ready . forEach ( ( listener ) => listener . call ( this ) ) ;
28
+ this . onInstalled . listeners . forEach ( ( listener ) => listener . call ( this ) ) ;
21
29
} ,
22
30
} ;
23
31
Original file line number Diff line number Diff line change @@ -34,8 +34,6 @@ export class Tracker {
34
34
tabs . onUpdated . addListener ( this . onUpdated ) ;
35
35
tabs . onRemoved . addListener ( this . onRemoved ) ;
36
36
windows . onFocusChanged . addListener ( this . onFocusChanged ) ;
37
-
38
- this . startTracking ( ) ;
39
37
}
40
38
41
39
/**
@@ -64,7 +62,6 @@ export class Tracker {
64
62
this . state . tracking = true ;
65
63
66
64
this . interval = setInterval ( async ( ) => {
67
- //TODO: update index
68
65
try {
69
66
if ( ! shouldSync ( this . state ) ) {
70
67
if ( ! this . state . focused ) info ( "TRACKING_0028" ) ;
You can’t perform that action at this time.
0 commit comments