@keplr-wallet/background 0.11.3 → 0.11.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/auto-lock-account/service.d.ts +1 -1
- package/build/auto-lock-account/service.js +6 -5
- package/build/auto-lock-account/service.js.map +1 -1
- package/build/auto-lock-account/service.spec.js +15 -24
- package/build/auto-lock-account/service.spec.js.map +1 -1
- package/build/index.js +2 -0
- package/build/index.js.map +1 -1
- package/build/phishing-list/handler.js +5 -0
- package/build/phishing-list/handler.js.map +1 -1
- package/build/phishing-list/init.js +1 -0
- package/build/phishing-list/init.js.map +1 -1
- package/build/phishing-list/messages.d.ts +8 -0
- package/build/phishing-list/messages.js +22 -1
- package/build/phishing-list/messages.js.map +1 -1
- package/build/phishing-list/service.d.ts +4 -0
- package/build/phishing-list/service.js +16 -1
- package/build/phishing-list/service.js.map +1 -1
- package/build/phishing-list/service.spec.js +69 -13
- package/build/phishing-list/service.spec.js.map +1 -1
- package/package.json +10 -10
- package/src/auto-lock-account/service.spec.ts +17 -25
- package/src/auto-lock-account/service.ts +3 -3
- package/src/index.ts +3 -1
- package/src/phishing-list/handler.ts +12 -1
- package/src/phishing-list/init.ts +2 -1
- package/src/phishing-list/messages.ts +24 -0
- package/src/phishing-list/service.spec.ts +87 -13
- package/src/phishing-list/service.ts +22 -1
|
@@ -19,7 +19,7 @@ export declare class AutoLockAccountService {
|
|
|
19
19
|
init(keyringService: {
|
|
20
20
|
lock: () => void;
|
|
21
21
|
readonly keyRingStatus: KeyRingStatus;
|
|
22
|
-
}): void
|
|
22
|
+
}): Promise<void>;
|
|
23
23
|
private stateChangedHandler;
|
|
24
24
|
startAppStateCheckTimer(): void;
|
|
25
25
|
private stopAppStateCheckTimer;
|
|
@@ -23,11 +23,12 @@ class AutoLockAccountService {
|
|
|
23
23
|
this.autoLockTimer = null;
|
|
24
24
|
}
|
|
25
25
|
init(keyringService) {
|
|
26
|
-
this
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
27
|
+
this.keyringService = keyringService;
|
|
28
|
+
browser.idle.onStateChanged.addListener((idle) => {
|
|
29
|
+
this.stateChangedHandler(idle);
|
|
30
|
+
});
|
|
31
|
+
yield this.loadDuration();
|
|
31
32
|
});
|
|
32
33
|
}
|
|
33
34
|
stateChangedHandler(newState) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/auto-lock-account/service.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,wCAA2C;AAE3C,MAAa,sBAAsB;IAajC,YACqB,OAAgB,EAChB,OAEf;QACF,kBAAkB,EAAE,KAAK;KAC1B;QALkB,YAAO,GAAP,OAAO,CAAS;QAChB,SAAI,GAAJ,IAAI,CAItB;QAbH,WAAW;QACD,qBAAgB,GAAW,CAAC,CAAC;QAE7B,uBAAkB,GAA0B,IAAI,CAAC;QAEjD,kBAAa,GAA0B,IAAI,CAAC;IASnD,CAAC;
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/auto-lock-account/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,8 +45,7 @@ describe("Test auto lock account service", () => {
|
|
|
45
45
|
};
|
|
46
46
|
const keyRingService = new MockKeyRingService();
|
|
47
47
|
const service = new service_1.AutoLockAccountService(new common_1.MemoryKVStore("test"));
|
|
48
|
-
service.init(keyRingService);
|
|
49
|
-
yield new Promise((resolve) => setTimeout(resolve, 10));
|
|
48
|
+
yield service.init(keyRingService);
|
|
50
49
|
expect(mockListener).toBeCalledTimes(1);
|
|
51
50
|
jest.restoreAllMocks();
|
|
52
51
|
}));
|
|
@@ -65,17 +64,12 @@ describe("Test auto lock account service", () => {
|
|
|
65
64
|
const keyRingService = new MockKeyRingService();
|
|
66
65
|
const memStore = new common_1.MemoryKVStore("test");
|
|
67
66
|
let service = new service_1.AutoLockAccountService(memStore);
|
|
68
|
-
service.init(keyRingService);
|
|
69
|
-
yield new Promise((resolve) => setTimeout(resolve, 10));
|
|
67
|
+
yield service.init(keyRingService);
|
|
70
68
|
// Set duration.
|
|
71
69
|
yield service.setDuration(1000);
|
|
72
70
|
expect(service.getAutoLockDuration()).toBe(1000);
|
|
73
71
|
service = new service_1.AutoLockAccountService(memStore);
|
|
74
|
-
service.init(keyRingService);
|
|
75
|
-
// Not restored yet.
|
|
76
|
-
expect(service.getAutoLockDuration()).toBe(0);
|
|
77
|
-
yield new Promise((resolve) => setTimeout(resolve, 10));
|
|
78
|
-
// Restoring is async. Assume that users can not interact with app right after app launch.
|
|
72
|
+
yield service.init(keyRingService);
|
|
79
73
|
expect(service.getAutoLockDuration()).toBe(1000);
|
|
80
74
|
jest.restoreAllMocks();
|
|
81
75
|
}));
|
|
@@ -116,8 +110,7 @@ describe("Test auto lock account service", () => {
|
|
|
116
110
|
};
|
|
117
111
|
const keyRingService = new MockKeyRingService();
|
|
118
112
|
const service = new service_1.AutoLockAccountService(new common_1.MemoryKVStore("test"));
|
|
119
|
-
service.init(keyRingService);
|
|
120
|
-
yield new Promise((resolve) => setTimeout(resolve, 10));
|
|
113
|
+
yield service.init(keyRingService);
|
|
121
114
|
expect(service.checkAppIsActive()).toBe(false);
|
|
122
115
|
// Cases that don't actually happen
|
|
123
116
|
background = undefined;
|
|
@@ -161,8 +154,7 @@ describe("Test auto lock account service", () => {
|
|
|
161
154
|
};
|
|
162
155
|
const keyRingService = new MockKeyRingService();
|
|
163
156
|
const service = new service_1.AutoLockAccountService(new common_1.MemoryKVStore("test"));
|
|
164
|
-
service.init(keyRingService);
|
|
165
|
-
yield new Promise((resolve) => setTimeout(resolve, 10));
|
|
157
|
+
yield service.init(keyRingService);
|
|
166
158
|
keyRingService.unlock();
|
|
167
159
|
event.emit("onStateChanged", "locked");
|
|
168
160
|
expect(keyRingService.isLocked).toBe(false);
|
|
@@ -183,8 +175,7 @@ describe("Test auto lock account service", () => {
|
|
|
183
175
|
};
|
|
184
176
|
const keyRingService = new MockKeyRingService();
|
|
185
177
|
const service = new service_1.AutoLockAccountService(new common_1.MemoryKVStore("test"));
|
|
186
|
-
service.init(keyRingService);
|
|
187
|
-
yield new Promise((resolve) => setTimeout(resolve, 10));
|
|
178
|
+
yield service.init(keyRingService);
|
|
188
179
|
yield service.setDuration(1000);
|
|
189
180
|
keyRingService.lock();
|
|
190
181
|
event.emit("onStateChanged", "locked");
|
|
@@ -207,14 +198,13 @@ describe("Test auto lock account service", () => {
|
|
|
207
198
|
};
|
|
208
199
|
const keyRingService = new MockKeyRingService();
|
|
209
200
|
const service = new service_1.AutoLockAccountService(new common_1.MemoryKVStore("test"));
|
|
210
|
-
service.init(keyRingService);
|
|
211
|
-
yield new Promise((resolve) => setTimeout(resolve, 10));
|
|
201
|
+
yield service.init(keyRingService);
|
|
212
202
|
yield service.setDuration(1000);
|
|
213
203
|
keyRingService.lock();
|
|
214
204
|
expect(service.keyRingIsUnlocked).toBe(false);
|
|
215
205
|
service.startAppStateCheckTimer();
|
|
216
|
-
// Expect setTimeout not called.
|
|
217
|
-
expect(setTimeoutSpy).toBeCalledTimes(
|
|
206
|
+
// Expect setTimeout not called.
|
|
207
|
+
expect(setTimeoutSpy).toBeCalledTimes(0);
|
|
218
208
|
expect(mockListener).toBeCalledTimes(1);
|
|
219
209
|
jest.restoreAllMocks();
|
|
220
210
|
}));
|
|
@@ -253,12 +243,12 @@ describe("Test auto lock account service", () => {
|
|
|
253
243
|
getViews: mockGetViews,
|
|
254
244
|
},
|
|
255
245
|
};
|
|
246
|
+
jest.useFakeTimers();
|
|
256
247
|
const keyRingService = new MockKeyRingService();
|
|
257
248
|
const service = new service_1.AutoLockAccountService(new common_1.MemoryKVStore("test"), {
|
|
258
249
|
monitoringInterval: 500,
|
|
259
250
|
});
|
|
260
|
-
service.init(keyRingService);
|
|
261
|
-
yield new Promise((resolve) => setTimeout(resolve, 10));
|
|
251
|
+
yield service.init(keyRingService);
|
|
262
252
|
yield service.setDuration(1000);
|
|
263
253
|
keyRingService.unlock();
|
|
264
254
|
background =
|
|
@@ -271,7 +261,7 @@ describe("Test auto lock account service", () => {
|
|
|
271
261
|
expect(service.keyRingIsUnlocked).toBe(true);
|
|
272
262
|
service.startAppStateCheckTimer();
|
|
273
263
|
for (let i = 0; i < 3; i++) {
|
|
274
|
-
|
|
264
|
+
jest.advanceTimersByTime(500);
|
|
275
265
|
expect(service.checkAppIsActive()).toBe(true);
|
|
276
266
|
expect(keyRingService.isLocked).toBe(false);
|
|
277
267
|
expect(service.keyRingIsUnlocked).toBe(true);
|
|
@@ -283,16 +273,17 @@ describe("Test auto lock account service", () => {
|
|
|
283
273
|
expect(service.checkAppIsActive()).toBe(false);
|
|
284
274
|
expect(keyRingService.isLocked).toBe(false);
|
|
285
275
|
expect(service.keyRingIsUnlocked).toBe(true);
|
|
286
|
-
|
|
276
|
+
jest.advanceTimersByTime(500);
|
|
287
277
|
expect(service.checkAppIsActive()).toBe(false);
|
|
288
278
|
expect(keyRingService.isLocked).toBe(false);
|
|
289
279
|
expect(service.keyRingIsUnlocked).toBe(true);
|
|
290
|
-
|
|
280
|
+
jest.advanceTimersByTime(1000);
|
|
291
281
|
expect(service.checkAppIsActive()).toBe(false);
|
|
292
282
|
expect(keyRingService.isLocked).toBe(true);
|
|
293
283
|
expect(service.keyRingIsUnlocked).toBe(false);
|
|
294
284
|
expect(mockListener).toBeCalledTimes(1);
|
|
295
285
|
jest.restoreAllMocks();
|
|
286
|
+
jest.useRealTimers();
|
|
296
287
|
}));
|
|
297
288
|
});
|
|
298
289
|
//# sourceMappingURL=service.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.spec.js","sourceRoot":"","sources":["../../src/auto-lock-account/service.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,wCAA2C;AAC3C,uCAAmD;AACnD,iDAAqD;AACrD,oDAAkC;AAElC,MAAM,kBAAkB;IAAxB;QACS,kBAAa,GAAkB,uBAAa,CAAC,SAAS,CAAC;QACvD,aAAQ,GAAG,IAAI,CAAC;IAWzB,CAAC;IATC,MAAM;QACJ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,uBAAa,CAAC,QAAQ,CAAC;IAC9C,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,uBAAa,CAAC,MAAM,CAAC;IAC5C,CAAC;CACF;AAED,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,WAAW,EAAE,GAAS,EAAE;QACzB,MAAM,KAAK,GAAG,IAAI,gBAAY,EAAE,CAAC;QAEjC,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE;YACvD,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,GAAG;YACf,IAAI,EAAE;gBACJ,cAAc,EAAE;oBACd,WAAW,EAAE,YAAY;iBAC1B;aACF;SACK,CAAC;QAET,MAAM,cAAc,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,gCAAsB,CAAC,IAAI,sBAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"service.spec.js","sourceRoot":"","sources":["../../src/auto-lock-account/service.spec.ts"],"names":[],"mappings":"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"}
|
package/build/index.js
CHANGED
|
@@ -69,6 +69,7 @@ privilegedOrigins, commonCrypto, notification, ledgerOptions = {}, experimentalO
|
|
|
69
69
|
blockListUrl: "https://raw.githubusercontent.com/chainapsis/phishing-block-list/main/block-list.txt",
|
|
70
70
|
fetchingIntervalMs: 3 * 3600 * 1000,
|
|
71
71
|
retryIntervalMs: 10 * 60 * 1000,
|
|
72
|
+
allowTimeoutMs: 10 * 60 * 1000,
|
|
72
73
|
});
|
|
73
74
|
const autoLockAccountService = new AutoLocker.AutoLockAccountService(storeCreator("auto-lock-account"));
|
|
74
75
|
interactionService.init();
|
|
@@ -82,6 +83,7 @@ privilegedOrigins, commonCrypto, notification, ledgerOptions = {}, experimentalO
|
|
|
82
83
|
secretWasmService.init(chainsService, keyRingService, permissionService);
|
|
83
84
|
backgroundTxService.init(chainsService, permissionService);
|
|
84
85
|
phishingListService.init();
|
|
86
|
+
// No need to wait because user can't interact with app right after launch.
|
|
85
87
|
autoLockAccountService.init(keyRingService);
|
|
86
88
|
Interaction.init(router, interactionService);
|
|
87
89
|
PersistentMemory.init(router, persistentMemoryService);
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA,+EAAiE;AACjE,0DAA4C;AAC5C,0DAA4C;AAC5C,4DAA8C;AAC9C,mEAAqD;AACrD,4DAA8C;AAC9C,4DAA8C;AAC9C,0DAA4C;AAC5C,oEAAsD;AACtD,kEAAoD;AACpD,uEAAyD;AACzD,yEAA2D;AAE3D,sDAAoC;AACpC,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;AAC1B,gDAA8B;AAC9B,uCAAqB;AACrB,4CAA0B;AAC1B,2CAAyB;AACzB,gDAA8B;AAC9B,+CAA6B;AAC7B,kDAAgC;AAChC,sDAAoC;AAQpC,SAAgB,IAAI,CAClB,MAAc,EACd,YAAyC;AACzC,2CAA2C;AAC3C,iBAAmC,EACnC,eAA4B;AAC5B,oDAAoD;AACpD,iBAA2B,EAC3B,YAA0B,EAC1B,YAA0B,EAC1B,gBAAwC,EAAE,EAC1C,sBAOK,EAAE;;IAEP,MAAM,kBAAkB,GAAG,IAAI,WAAW,CAAC,kBAAkB,CAC3D,iBAAiB,EACjB,YAAY,CAAC,GAAG,CACjB,CAAC;IAEF,MAAM,uBAAuB,GAAG,IAAI,gBAAgB,CAAC,uBAAuB,EAAE,CAAC;IAE/E,MAAM,iBAAiB,GAAG,IAAI,UAAU,CAAC,iBAAiB,CACxD,YAAY,CAAC,YAAY,CAAC,EAC1B,iBAAiB,CAClB,CAAC;IAEF,MAAM,mBAAmB,GAAG,IAAI,OAAO,CAAC,mBAAmB,CACzD,YAAY,CAAC,SAAS,CAAC,CACxB,CAAC;IAEF,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEvE,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,aAAa,CAC5C,YAAY,CAAC,QAAQ,CAAC,EACtB,eAAe,EACf;QACE,+BAA+B,QAC7B,mBAAmB,CAAC,YAAY,0CAAE,gBAAgB;KACrD,CACF,CAAC;IAEF,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,aAAa,CAC5C,YAAY,CAAC,QAAQ,CAAC,EACtB,aAAa,CACd,CAAC;IAEF,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,cAAc,CAC/C,YAAY,CAAC,SAAS,CAAC,EACvB,eAAe,EACf,YAAY,CACb,CAAC;IAEF,MAAM,iBAAiB,GAAG,IAAI,UAAU,CAAC,iBAAiB,CACxD,YAAY,CAAC,YAAY,CAAC,CAC3B,CAAC;IAEF,MAAM,mBAAmB,GAAG,IAAI,YAAY,CAAC,mBAAmB,CAC9D,YAAY,CACb,CAAC;IAEF,MAAM,mBAAmB,GAAG,IAAI,YAAY,CAAC,mBAAmB,CAAC;QAC/D,YAAY,EACV,sFAAsF;QACxF,kBAAkB,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;QACnC,eAAe,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,8 @@ const getHandler = (service) => {
|
|
|
7
7
|
switch (msg.constructor) {
|
|
8
8
|
case messages_1.CheckURLIsPhishingMsg:
|
|
9
9
|
return handleCheckURLIsPhishingMsg(service)(env, msg);
|
|
10
|
+
case messages_1.URLTempAllowMsg:
|
|
11
|
+
return handleURLTempAllow(service)(env, msg);
|
|
10
12
|
default:
|
|
11
13
|
throw new Error("Unknown msg type");
|
|
12
14
|
}
|
|
@@ -16,4 +18,7 @@ exports.getHandler = getHandler;
|
|
|
16
18
|
const handleCheckURLIsPhishingMsg = (service) => (_, msg) => {
|
|
17
19
|
return service.checkURLIsPhishing(msg.origin);
|
|
18
20
|
};
|
|
21
|
+
const handleURLTempAllow = (service) => (_, msg) => {
|
|
22
|
+
service.allowUrlTemp(msg.url);
|
|
23
|
+
};
|
|
19
24
|
//# sourceMappingURL=handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/phishing-list/handler.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/phishing-list/handler.ts"],"names":[],"mappings":";;;AAEA,yCAAoE;AAE7D,MAAM,UAAU,GAA8C,CACnE,OAA4B,EAC5B,EAAE;IACF,OAAO,CAAC,GAAQ,EAAE,GAAqB,EAAE,EAAE;QACzC,QAAQ,GAAG,CAAC,WAAW,EAAE;YACvB,KAAK,gCAAqB;gBACxB,OAAO,2BAA2B,CAAC,OAAO,CAAC,CACzC,GAAG,EACH,GAA4B,CAC7B,CAAC;YACJ,KAAK,0BAAe;gBAClB,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAsB,CAAC,CAAC;YAClE;gBACE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;SACvC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAhBW,QAAA,UAAU,cAgBrB;AAEF,MAAM,2BAA2B,GAEa,CAC5C,OAA4B,EAC5B,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;IACd,OAAO,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAEgB,CAAC,OAA4B,EAAE,EAAE,CAAC,CACxE,CAAC,EACD,GAAG,EACH,EAAE;IACF,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC,CAAC"}
|
|
@@ -6,6 +6,7 @@ const handler_1 = require("./handler");
|
|
|
6
6
|
const messages_1 = require("./messages");
|
|
7
7
|
function init(router, service) {
|
|
8
8
|
router.registerMessage(messages_1.CheckURLIsPhishingMsg);
|
|
9
|
+
router.registerMessage(messages_1.URLTempAllowMsg);
|
|
9
10
|
router.addHandler(constants_1.ROUTE, handler_1.getHandler(service));
|
|
10
11
|
}
|
|
11
12
|
exports.init = init;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/phishing-list/init.ts"],"names":[],"mappings":";;;AACA,2CAAoC;AACpC,uCAAuC;AAEvC,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/phishing-list/init.ts"],"names":[],"mappings":";;;AACA,2CAAoC;AACpC,uCAAuC;AAEvC,yCAAoE;AAEpE,SAAgB,IAAI,CAAC,MAAc,EAAE,OAA4B;IAC/D,MAAM,CAAC,eAAe,CAAC,gCAAqB,CAAC,CAAC;IAC9C,MAAM,CAAC,eAAe,CAAC,0BAAe,CAAC,CAAC;IAExC,MAAM,CAAC,UAAU,CAAC,iBAAK,EAAE,oBAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AAChD,CAAC;AALD,oBAKC"}
|
|
@@ -7,3 +7,11 @@ export declare class CheckURLIsPhishingMsg extends Message<boolean> {
|
|
|
7
7
|
route(): string;
|
|
8
8
|
type(): string;
|
|
9
9
|
}
|
|
10
|
+
export declare class URLTempAllowMsg extends Message<void> {
|
|
11
|
+
readonly url: string;
|
|
12
|
+
static type(): string;
|
|
13
|
+
constructor(url: string);
|
|
14
|
+
validateBasic(): void;
|
|
15
|
+
route(): string;
|
|
16
|
+
type(): string;
|
|
17
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CheckURLIsPhishingMsg = void 0;
|
|
3
|
+
exports.URLTempAllowMsg = exports.CheckURLIsPhishingMsg = void 0;
|
|
4
4
|
const router_1 = require("@keplr-wallet/router");
|
|
5
5
|
const constants_1 = require("./constants");
|
|
6
6
|
const utils_1 = require("./utils");
|
|
@@ -27,4 +27,25 @@ class CheckURLIsPhishingMsg extends router_1.Message {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
exports.CheckURLIsPhishingMsg = CheckURLIsPhishingMsg;
|
|
30
|
+
class URLTempAllowMsg extends router_1.Message {
|
|
31
|
+
constructor(url) {
|
|
32
|
+
super();
|
|
33
|
+
this.url = url;
|
|
34
|
+
}
|
|
35
|
+
static type() {
|
|
36
|
+
return "url-temp-allow";
|
|
37
|
+
}
|
|
38
|
+
validateBasic() {
|
|
39
|
+
const url = new URL(this.url);
|
|
40
|
+
// Will throw an error if url has not second level domain.
|
|
41
|
+
utils_1.parseDomainUntilSecondLevel(url.origin);
|
|
42
|
+
}
|
|
43
|
+
route() {
|
|
44
|
+
return constants_1.ROUTE;
|
|
45
|
+
}
|
|
46
|
+
type() {
|
|
47
|
+
return URLTempAllowMsg.type();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.URLTempAllowMsg = URLTempAllowMsg;
|
|
30
51
|
//# sourceMappingURL=messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/phishing-list/messages.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAC/C,2CAAoC;AACpC,mCAAsD;AAEtD,MAAa,qBAAsB,SAAQ,gBAAgB;IAClD,MAAM,CAAC,IAAI;QAChB,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,aAAa;QACX,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjC,0DAA0D;QAC1D,mCAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,iBAAK,CAAC;IACf,CAAC;IAED,IAAI;QACF,OAAO,qBAAqB,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;CACF;AA3BD,sDA2BC"}
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/phishing-list/messages.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAC/C,2CAAoC;AACpC,mCAAsD;AAEtD,MAAa,qBAAsB,SAAQ,gBAAgB;IAClD,MAAM,CAAC,IAAI;QAChB,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,aAAa;QACX,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjC,0DAA0D;QAC1D,mCAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,iBAAK,CAAC;IACf,CAAC;IAED,IAAI;QACF,OAAO,qBAAqB,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;CACF;AA3BD,sDA2BC;AAED,MAAa,eAAgB,SAAQ,gBAAa;IAKhD,YAA4B,GAAW;QACrC,KAAK,EAAE,CAAC;QADkB,QAAG,GAAH,GAAG,CAAQ;IAEvC,CAAC;IANM,MAAM,CAAC,IAAI;QAChB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAMD,aAAa;QACX,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,0DAA0D;QAC1D,mCAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK;QACH,OAAO,iBAAK,CAAC;IACf,CAAC;IAED,IAAI;QACF,OAAO,eAAe,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;CACF;AAtBD,0CAsBC"}
|
|
@@ -4,8 +4,10 @@ export declare class PhishingListService {
|
|
|
4
4
|
readonly blockListUrl: string;
|
|
5
5
|
readonly fetchingIntervalMs: number;
|
|
6
6
|
readonly retryIntervalMs: number;
|
|
7
|
+
readonly allowTimeoutMs: number;
|
|
7
8
|
};
|
|
8
9
|
protected map: Map<string, boolean>;
|
|
10
|
+
protected allowed: Map<string, number>;
|
|
9
11
|
protected _hasInited: boolean;
|
|
10
12
|
protected _hasStopped: boolean;
|
|
11
13
|
protected timeoutId?: NodeJS.Timeout;
|
|
@@ -13,10 +15,12 @@ export declare class PhishingListService {
|
|
|
13
15
|
readonly blockListUrl: string;
|
|
14
16
|
readonly fetchingIntervalMs: number;
|
|
15
17
|
readonly retryIntervalMs: number;
|
|
18
|
+
readonly allowTimeoutMs: number;
|
|
16
19
|
});
|
|
17
20
|
get hasInited(): boolean;
|
|
18
21
|
init(): void;
|
|
19
22
|
stop(): void;
|
|
20
23
|
startFetchPhishingList(): Promise<void>;
|
|
21
24
|
checkURLIsPhishing(url: string): boolean;
|
|
25
|
+
allowUrlTemp(url: string): void;
|
|
22
26
|
}
|
|
@@ -19,6 +19,7 @@ class PhishingListService {
|
|
|
19
19
|
constructor(opts) {
|
|
20
20
|
this.opts = opts;
|
|
21
21
|
this.map = new Map();
|
|
22
|
+
this.allowed = new Map();
|
|
22
23
|
this._hasInited = false;
|
|
23
24
|
this._hasStopped = false;
|
|
24
25
|
}
|
|
@@ -78,8 +79,22 @@ class PhishingListService {
|
|
|
78
79
|
});
|
|
79
80
|
}
|
|
80
81
|
checkURLIsPhishing(url) {
|
|
82
|
+
const parsed = utils_1.parseDomainUntilSecondLevel(new URL(url).origin);
|
|
83
|
+
if (this.map.get(parsed) === true) {
|
|
84
|
+
const allowed = this.allowed.get(parsed);
|
|
85
|
+
if (allowed &&
|
|
86
|
+
allowed + this.opts.allowTimeoutMs >= new Date().getTime()) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
allowUrlTemp(url) {
|
|
81
96
|
const parsed = new URL(url);
|
|
82
|
-
|
|
97
|
+
this.allowed.set(utils_1.parseDomainUntilSecondLevel(parsed.origin), new Date().getTime());
|
|
83
98
|
}
|
|
84
99
|
}
|
|
85
100
|
exports.PhishingListService = PhishingListService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/phishing-list/service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,mCAAsD;AAEtD,MAAa,mBAAmB;
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/phishing-list/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -145,7 +145,10 @@ describe("Test phishing list service", () => {
|
|
|
145
145
|
let port = -1;
|
|
146
146
|
let closeServer;
|
|
147
147
|
let getQueryCount;
|
|
148
|
+
const notMockSetInterval = setInterval;
|
|
149
|
+
const notMockClearInterval = clearInterval;
|
|
148
150
|
beforeEach(() => {
|
|
151
|
+
jest.useFakeTimers();
|
|
149
152
|
const server = createMockServer();
|
|
150
153
|
port = server.port;
|
|
151
154
|
closeServer = server.closeServer;
|
|
@@ -160,6 +163,7 @@ describe("Test phishing list service", () => {
|
|
|
160
163
|
closeServer();
|
|
161
164
|
closeServer = undefined;
|
|
162
165
|
}
|
|
166
|
+
jest.useRealTimers();
|
|
163
167
|
});
|
|
164
168
|
const waitServiceInit = (service) => {
|
|
165
169
|
return new Promise((resolve) => {
|
|
@@ -167,10 +171,10 @@ describe("Test phishing list service", () => {
|
|
|
167
171
|
resolve();
|
|
168
172
|
return;
|
|
169
173
|
}
|
|
170
|
-
const intervalId =
|
|
174
|
+
const intervalId = notMockSetInterval(() => {
|
|
171
175
|
if (service.hasInited) {
|
|
172
176
|
resolve();
|
|
173
|
-
|
|
177
|
+
notMockClearInterval(intervalId);
|
|
174
178
|
}
|
|
175
179
|
}, 10);
|
|
176
180
|
});
|
|
@@ -196,6 +200,7 @@ describe("Test phishing list service", () => {
|
|
|
196
200
|
blockListUrl: `http://127.0.0.1:${port}/list1`,
|
|
197
201
|
fetchingIntervalMs: 3600,
|
|
198
202
|
retryIntervalMs: 3600,
|
|
203
|
+
allowTimeoutMs: 100,
|
|
199
204
|
});
|
|
200
205
|
eachService = service;
|
|
201
206
|
service.init();
|
|
@@ -207,6 +212,7 @@ describe("Test phishing list service", () => {
|
|
|
207
212
|
blockListUrl: `http://127.0.0.1:${port}/list2`,
|
|
208
213
|
fetchingIntervalMs: 3600,
|
|
209
214
|
retryIntervalMs: 3600,
|
|
215
|
+
allowTimeoutMs: 100,
|
|
210
216
|
});
|
|
211
217
|
eachService = service;
|
|
212
218
|
service.init();
|
|
@@ -218,6 +224,7 @@ describe("Test phishing list service", () => {
|
|
|
218
224
|
blockListUrl: `http://127.0.0.1:${port}/list3`,
|
|
219
225
|
fetchingIntervalMs: 3600,
|
|
220
226
|
retryIntervalMs: 3600,
|
|
227
|
+
allowTimeoutMs: 100,
|
|
221
228
|
});
|
|
222
229
|
eachService = service;
|
|
223
230
|
service.init();
|
|
@@ -229,21 +236,28 @@ describe("Test phishing list service", () => {
|
|
|
229
236
|
blockListUrl: `http://127.0.0.1:${port}/list3`,
|
|
230
237
|
fetchingIntervalMs: 200,
|
|
231
238
|
retryIntervalMs: 3600,
|
|
239
|
+
allowTimeoutMs: 100,
|
|
232
240
|
});
|
|
241
|
+
const spyFetch = jest.spyOn(service, "startFetchPhishingList");
|
|
233
242
|
eachService = service;
|
|
234
243
|
service.init();
|
|
235
244
|
yield waitServiceInit(service);
|
|
245
|
+
expect(spyFetch).toBeCalledTimes(1);
|
|
236
246
|
testCheckURLIsPhishing(service);
|
|
237
247
|
expect(service.checkURLIsPhishing("https://added.domain")).toBe(false);
|
|
238
248
|
expect(getQueryCount()).toBe(1);
|
|
239
|
-
//
|
|
240
|
-
|
|
249
|
+
// Proceed re-fetching
|
|
250
|
+
jest.advanceTimersByTime(210);
|
|
251
|
+
expect(spyFetch).toBeCalledTimes(2);
|
|
252
|
+
yield spyFetch.mock.results[spyFetch.mock.results.length - 1].value;
|
|
241
253
|
testCheckURLIsPhishing(service);
|
|
242
254
|
// See the implementation of /list3
|
|
243
255
|
expect(service.checkURLIsPhishing("https://added.domain")).toBe(true);
|
|
244
256
|
expect(getQueryCount()).toBe(2);
|
|
245
|
-
//
|
|
246
|
-
|
|
257
|
+
// Proceed re-fetching
|
|
258
|
+
jest.advanceTimersByTime(210);
|
|
259
|
+
expect(spyFetch).toBeCalledTimes(3);
|
|
260
|
+
yield spyFetch.mock.results[spyFetch.mock.results.length - 1].value;
|
|
247
261
|
testCheckURLIsPhishing(service);
|
|
248
262
|
// See the implementation of /list3
|
|
249
263
|
expect(service.checkURLIsPhishing("https://added.domain")).toBe(false);
|
|
@@ -254,7 +268,9 @@ describe("Test phishing list service", () => {
|
|
|
254
268
|
blockListUrl: `http://127.0.0.1:${port}/test-retry`,
|
|
255
269
|
fetchingIntervalMs: 200,
|
|
256
270
|
retryIntervalMs: 100,
|
|
271
|
+
allowTimeoutMs: 100,
|
|
257
272
|
});
|
|
273
|
+
const spyFetch = jest.spyOn(service, "startFetchPhishingList");
|
|
258
274
|
eachService = service;
|
|
259
275
|
service.init();
|
|
260
276
|
const testPhishingUntil = (count) => {
|
|
@@ -268,35 +284,75 @@ describe("Test phishing list service", () => {
|
|
|
268
284
|
}
|
|
269
285
|
};
|
|
270
286
|
yield waitServiceInit(service);
|
|
287
|
+
expect(spyFetch).toBeCalledTimes(1);
|
|
271
288
|
testPhishingUntil(1);
|
|
272
289
|
expect(getQueryCount()).toBe(1);
|
|
273
|
-
//
|
|
274
|
-
|
|
290
|
+
// Proceed re-fetching
|
|
291
|
+
jest.advanceTimersByTime(210);
|
|
292
|
+
expect(spyFetch).toBeCalledTimes(2);
|
|
293
|
+
yield spyFetch.mock.results[spyFetch.mock.results.length - 1].value;
|
|
275
294
|
// See the implementation of /test-retry
|
|
276
295
|
testPhishingUntil(2);
|
|
277
296
|
expect(getQueryCount()).toBe(2);
|
|
278
|
-
//
|
|
279
|
-
|
|
297
|
+
// Proceed re-fetching
|
|
298
|
+
jest.advanceTimersByTime(210);
|
|
299
|
+
expect(spyFetch).toBeCalledTimes(3);
|
|
300
|
+
yield spyFetch.mock.results[spyFetch.mock.results.length - 1].value;
|
|
280
301
|
// See the implementation of /test-retry
|
|
281
302
|
// In this case, the fetching should be failed.
|
|
282
303
|
// So, there is no update on phishing list.
|
|
283
304
|
testPhishingUntil(2);
|
|
284
305
|
expect(getQueryCount()).toBe(3);
|
|
285
306
|
// Wait retry for failed query
|
|
286
|
-
|
|
307
|
+
jest.advanceTimersByTime(110);
|
|
308
|
+
expect(spyFetch).toBeCalledTimes(4);
|
|
309
|
+
yield spyFetch.mock.results[spyFetch.mock.results.length - 1].value;
|
|
287
310
|
// See the implementation of /test-retry
|
|
288
311
|
testPhishingUntil(4);
|
|
289
312
|
expect(getQueryCount()).toBe(4);
|
|
290
313
|
// Not yet re-fetching
|
|
291
|
-
|
|
314
|
+
jest.advanceTimersByTime(110);
|
|
315
|
+
expect(spyFetch).toBeCalledTimes(4);
|
|
292
316
|
// See the implementation of /test-retry
|
|
293
317
|
testPhishingUntil(4);
|
|
294
318
|
expect(getQueryCount()).toBe(4);
|
|
295
319
|
// Now re-fetching
|
|
296
|
-
|
|
320
|
+
jest.advanceTimersByTime(110);
|
|
321
|
+
expect(spyFetch).toBeCalledTimes(5);
|
|
322
|
+
yield spyFetch.mock.results[spyFetch.mock.results.length - 1].value;
|
|
297
323
|
// See the implementation of /test-retry
|
|
298
324
|
testPhishingUntil(5);
|
|
299
325
|
expect(getQueryCount()).toBe(5);
|
|
300
326
|
}));
|
|
327
|
+
test("Test addUrlTemp allow blocked url", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
328
|
+
const service = new service_1.PhishingListService({
|
|
329
|
+
blockListUrl: `http://127.0.0.1:${port}/list1`,
|
|
330
|
+
fetchingIntervalMs: 200,
|
|
331
|
+
retryIntervalMs: 100,
|
|
332
|
+
allowTimeoutMs: 100,
|
|
333
|
+
});
|
|
334
|
+
eachService = service;
|
|
335
|
+
service.init();
|
|
336
|
+
yield waitServiceInit(service);
|
|
337
|
+
// block phishings site
|
|
338
|
+
const [phishing, anotherPhishing] = phishings;
|
|
339
|
+
expect(service.checkURLIsPhishing("https://" + phishing)).toBe(true);
|
|
340
|
+
expect(service.checkURLIsPhishing("https://test." + phishing)).toBe(true);
|
|
341
|
+
expect(service.checkURLIsPhishing("https://" + anotherPhishing)).toBe(true);
|
|
342
|
+
expect(service.checkURLIsPhishing("https://test." + anotherPhishing)).toBe(true);
|
|
343
|
+
// allow temp Url
|
|
344
|
+
service.allowUrlTemp("https://" + phishing);
|
|
345
|
+
expect(service.checkURLIsPhishing("https://" + phishing)).toBe(false);
|
|
346
|
+
expect(service.checkURLIsPhishing("https://test." + phishing)).toBe(false);
|
|
347
|
+
// but another url still blocked
|
|
348
|
+
expect(service.checkURLIsPhishing("https://" + anotherPhishing)).toBe(true);
|
|
349
|
+
expect(service.checkURLIsPhishing("https://test." + anotherPhishing)).toBe(true);
|
|
350
|
+
// should be blocked again
|
|
351
|
+
jest.advanceTimersByTime(110);
|
|
352
|
+
expect(service.checkURLIsPhishing("https://" + phishing)).toBe(true);
|
|
353
|
+
expect(service.checkURLIsPhishing("https://test." + phishing)).toBe(true);
|
|
354
|
+
expect(service.checkURLIsPhishing("https://" + anotherPhishing)).toBe(true);
|
|
355
|
+
expect(service.checkURLIsPhishing("https://test." + anotherPhishing)).toBe(true);
|
|
356
|
+
}));
|
|
301
357
|
});
|
|
302
358
|
//# sourceMappingURL=service.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.spec.js","sourceRoot":"","sources":["../../src/phishing-list/service.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.spec.js","sourceRoot":"","sources":["../../src/phishing-list/service.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keplr-wallet/background",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.4",
|
|
4
4
|
"main": "build/index.js",
|
|
5
5
|
"author": "chainapsis",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -29,14 +29,14 @@
|
|
|
29
29
|
"@ethersproject/bytes": "^5.5.0",
|
|
30
30
|
"@ethersproject/keccak256": "^5.5.0",
|
|
31
31
|
"@ethersproject/wallet": "^5.5.0",
|
|
32
|
-
"@keplr-wallet/common": "0.11.
|
|
33
|
-
"@keplr-wallet/cosmos": "0.11.
|
|
34
|
-
"@keplr-wallet/crypto": "0.11.
|
|
35
|
-
"@keplr-wallet/popup": "0.11.
|
|
36
|
-
"@keplr-wallet/proto-types": "0.11.
|
|
37
|
-
"@keplr-wallet/router": "0.11.
|
|
38
|
-
"@keplr-wallet/types": "0.11.
|
|
39
|
-
"@keplr-wallet/unit": "0.11.
|
|
32
|
+
"@keplr-wallet/common": "0.11.4",
|
|
33
|
+
"@keplr-wallet/cosmos": "0.11.4",
|
|
34
|
+
"@keplr-wallet/crypto": "0.11.4",
|
|
35
|
+
"@keplr-wallet/popup": "0.11.4",
|
|
36
|
+
"@keplr-wallet/proto-types": "0.11.4",
|
|
37
|
+
"@keplr-wallet/router": "0.11.4",
|
|
38
|
+
"@keplr-wallet/types": "0.11.4",
|
|
39
|
+
"@keplr-wallet/unit": "0.11.4",
|
|
40
40
|
"@ledgerhq/hw-transport": "^6.20.0",
|
|
41
41
|
"@ledgerhq/hw-transport-webhid": "^6.20.0",
|
|
42
42
|
"@ledgerhq/hw-transport-webusb": "^6.20.0",
|
|
@@ -54,5 +54,5 @@
|
|
|
54
54
|
"secretjs": "0.17.7",
|
|
55
55
|
"utility-types": "^3.10.0"
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "3fbe95316b46711a90a003d03c39cd058c3ff0a9"
|
|
58
58
|
}
|
|
@@ -35,8 +35,7 @@ describe("Test auto lock account service", () => {
|
|
|
35
35
|
|
|
36
36
|
const keyRingService = new MockKeyRingService();
|
|
37
37
|
const service = new AutoLockAccountService(new MemoryKVStore("test"));
|
|
38
|
-
service.init(keyRingService);
|
|
39
|
-
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
38
|
+
await service.init(keyRingService);
|
|
40
39
|
|
|
41
40
|
expect(mockListener).toBeCalledTimes(1);
|
|
42
41
|
jest.restoreAllMocks();
|
|
@@ -59,21 +58,15 @@ describe("Test auto lock account service", () => {
|
|
|
59
58
|
const keyRingService = new MockKeyRingService();
|
|
60
59
|
const memStore = new MemoryKVStore("test");
|
|
61
60
|
let service = new AutoLockAccountService(memStore);
|
|
62
|
-
service.init(keyRingService);
|
|
63
|
-
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
61
|
+
await service.init(keyRingService);
|
|
64
62
|
|
|
65
63
|
// Set duration.
|
|
66
64
|
await service.setDuration(1000);
|
|
67
65
|
expect(service.getAutoLockDuration()).toBe(1000);
|
|
68
66
|
|
|
69
67
|
service = new AutoLockAccountService(memStore);
|
|
70
|
-
service.init(keyRingService);
|
|
71
|
-
// Not restored yet.
|
|
72
|
-
expect(service.getAutoLockDuration()).toBe(0);
|
|
68
|
+
await service.init(keyRingService);
|
|
73
69
|
|
|
74
|
-
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
75
|
-
|
|
76
|
-
// Restoring is async. Assume that users can not interact with app right after app launch.
|
|
77
70
|
expect(service.getAutoLockDuration()).toBe(1000);
|
|
78
71
|
|
|
79
72
|
jest.restoreAllMocks();
|
|
@@ -120,8 +113,7 @@ describe("Test auto lock account service", () => {
|
|
|
120
113
|
|
|
121
114
|
const keyRingService = new MockKeyRingService();
|
|
122
115
|
const service = new AutoLockAccountService(new MemoryKVStore("test"));
|
|
123
|
-
service.init(keyRingService);
|
|
124
|
-
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
116
|
+
await service.init(keyRingService);
|
|
125
117
|
|
|
126
118
|
expect(service.checkAppIsActive()).toBe(false);
|
|
127
119
|
|
|
@@ -175,8 +167,7 @@ describe("Test auto lock account service", () => {
|
|
|
175
167
|
|
|
176
168
|
const keyRingService = new MockKeyRingService();
|
|
177
169
|
const service = new AutoLockAccountService(new MemoryKVStore("test"));
|
|
178
|
-
service.init(keyRingService);
|
|
179
|
-
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
170
|
+
await service.init(keyRingService);
|
|
180
171
|
|
|
181
172
|
keyRingService.unlock();
|
|
182
173
|
event.emit("onStateChanged", "locked");
|
|
@@ -203,8 +194,7 @@ describe("Test auto lock account service", () => {
|
|
|
203
194
|
|
|
204
195
|
const keyRingService = new MockKeyRingService();
|
|
205
196
|
const service = new AutoLockAccountService(new MemoryKVStore("test"));
|
|
206
|
-
service.init(keyRingService);
|
|
207
|
-
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
197
|
+
await service.init(keyRingService);
|
|
208
198
|
|
|
209
199
|
await service.setDuration(1000);
|
|
210
200
|
|
|
@@ -235,8 +225,7 @@ describe("Test auto lock account service", () => {
|
|
|
235
225
|
|
|
236
226
|
const keyRingService = new MockKeyRingService();
|
|
237
227
|
const service = new AutoLockAccountService(new MemoryKVStore("test"));
|
|
238
|
-
service.init(keyRingService);
|
|
239
|
-
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
228
|
+
await service.init(keyRingService);
|
|
240
229
|
|
|
241
230
|
await service.setDuration(1000);
|
|
242
231
|
|
|
@@ -246,8 +235,8 @@ describe("Test auto lock account service", () => {
|
|
|
246
235
|
|
|
247
236
|
service.startAppStateCheckTimer();
|
|
248
237
|
|
|
249
|
-
// Expect setTimeout not called.
|
|
250
|
-
expect(setTimeoutSpy).toBeCalledTimes(
|
|
238
|
+
// Expect setTimeout not called.
|
|
239
|
+
expect(setTimeoutSpy).toBeCalledTimes(0);
|
|
251
240
|
expect(mockListener).toBeCalledTimes(1);
|
|
252
241
|
jest.restoreAllMocks();
|
|
253
242
|
});
|
|
@@ -291,12 +280,13 @@ describe("Test auto lock account service", () => {
|
|
|
291
280
|
},
|
|
292
281
|
} as any;
|
|
293
282
|
|
|
283
|
+
jest.useFakeTimers();
|
|
284
|
+
|
|
294
285
|
const keyRingService = new MockKeyRingService();
|
|
295
286
|
const service = new AutoLockAccountService(new MemoryKVStore("test"), {
|
|
296
287
|
monitoringInterval: 500,
|
|
297
288
|
});
|
|
298
|
-
service.init(keyRingService);
|
|
299
|
-
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
289
|
+
await service.init(keyRingService);
|
|
300
290
|
|
|
301
291
|
await service.setDuration(1000);
|
|
302
292
|
|
|
@@ -314,7 +304,7 @@ describe("Test auto lock account service", () => {
|
|
|
314
304
|
service.startAppStateCheckTimer();
|
|
315
305
|
|
|
316
306
|
for (let i = 0; i < 3; i++) {
|
|
317
|
-
|
|
307
|
+
jest.advanceTimersByTime(500);
|
|
318
308
|
expect(service.checkAppIsActive()).toBe(true);
|
|
319
309
|
expect(keyRingService.isLocked).toBe(false);
|
|
320
310
|
expect(service.keyRingIsUnlocked).toBe(true);
|
|
@@ -329,13 +319,13 @@ describe("Test auto lock account service", () => {
|
|
|
329
319
|
expect(keyRingService.isLocked).toBe(false);
|
|
330
320
|
expect(service.keyRingIsUnlocked).toBe(true);
|
|
331
321
|
|
|
332
|
-
|
|
322
|
+
jest.advanceTimersByTime(500);
|
|
333
323
|
|
|
334
324
|
expect(service.checkAppIsActive()).toBe(false);
|
|
335
325
|
expect(keyRingService.isLocked).toBe(false);
|
|
336
326
|
expect(service.keyRingIsUnlocked).toBe(true);
|
|
337
327
|
|
|
338
|
-
|
|
328
|
+
jest.advanceTimersByTime(1000);
|
|
339
329
|
|
|
340
330
|
expect(service.checkAppIsActive()).toBe(false);
|
|
341
331
|
expect(keyRingService.isLocked).toBe(true);
|
|
@@ -343,5 +333,7 @@ describe("Test auto lock account service", () => {
|
|
|
343
333
|
|
|
344
334
|
expect(mockListener).toBeCalledTimes(1);
|
|
345
335
|
jest.restoreAllMocks();
|
|
336
|
+
|
|
337
|
+
jest.useRealTimers();
|
|
346
338
|
});
|
|
347
339
|
});
|
|
@@ -23,17 +23,17 @@ export class AutoLockAccountService {
|
|
|
23
23
|
}
|
|
24
24
|
) {}
|
|
25
25
|
|
|
26
|
-
init(keyringService: {
|
|
26
|
+
async init(keyringService: {
|
|
27
27
|
lock: () => void;
|
|
28
28
|
readonly keyRingStatus: KeyRingStatus;
|
|
29
29
|
}) {
|
|
30
30
|
this.keyringService = keyringService;
|
|
31
|
-
// No need to wait
|
|
32
|
-
this.loadDuration();
|
|
33
31
|
|
|
34
32
|
browser.idle.onStateChanged.addListener((idle) => {
|
|
35
33
|
this.stateChangedHandler(idle);
|
|
36
34
|
});
|
|
35
|
+
|
|
36
|
+
await this.loadDuration();
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
private stateChangedHandler(newState: browser.idle.IdleState) {
|
package/src/index.ts
CHANGED
|
@@ -102,7 +102,8 @@ export function init(
|
|
|
102
102
|
blockListUrl:
|
|
103
103
|
"https://raw.githubusercontent.com/chainapsis/phishing-block-list/main/block-list.txt",
|
|
104
104
|
fetchingIntervalMs: 3 * 3600 * 1000, // 3 hours
|
|
105
|
-
retryIntervalMs: 10 * 60 * 1000, // 10 mins
|
|
105
|
+
retryIntervalMs: 10 * 60 * 1000, // 10 mins,
|
|
106
|
+
allowTimeoutMs: 10 * 60 * 1000, // 10 mins,
|
|
106
107
|
});
|
|
107
108
|
const autoLockAccountService = new AutoLocker.AutoLockAccountService(
|
|
108
109
|
storeCreator("auto-lock-account")
|
|
@@ -129,6 +130,7 @@ export function init(
|
|
|
129
130
|
secretWasmService.init(chainsService, keyRingService, permissionService);
|
|
130
131
|
backgroundTxService.init(chainsService, permissionService);
|
|
131
132
|
phishingListService.init();
|
|
133
|
+
// No need to wait because user can't interact with app right after launch.
|
|
132
134
|
autoLockAccountService.init(keyRingService);
|
|
133
135
|
|
|
134
136
|
Interaction.init(router, interactionService);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Env, Handler, InternalHandler, Message } from "@keplr-wallet/router";
|
|
2
2
|
import { PhishingListService } from "./service";
|
|
3
|
-
import { CheckURLIsPhishingMsg } from "./messages";
|
|
3
|
+
import { CheckURLIsPhishingMsg, URLTempAllowMsg } from "./messages";
|
|
4
4
|
|
|
5
5
|
export const getHandler: (service: PhishingListService) => Handler = (
|
|
6
6
|
service: PhishingListService
|
|
@@ -12,6 +12,8 @@ export const getHandler: (service: PhishingListService) => Handler = (
|
|
|
12
12
|
env,
|
|
13
13
|
msg as CheckURLIsPhishingMsg
|
|
14
14
|
);
|
|
15
|
+
case URLTempAllowMsg:
|
|
16
|
+
return handleURLTempAllow(service)(env, msg as URLTempAllowMsg);
|
|
15
17
|
default:
|
|
16
18
|
throw new Error("Unknown msg type");
|
|
17
19
|
}
|
|
@@ -25,3 +27,12 @@ const handleCheckURLIsPhishingMsg: (
|
|
|
25
27
|
) => (_, msg) => {
|
|
26
28
|
return service.checkURLIsPhishing(msg.origin);
|
|
27
29
|
};
|
|
30
|
+
|
|
31
|
+
const handleURLTempAllow: (
|
|
32
|
+
service: PhishingListService
|
|
33
|
+
) => InternalHandler<URLTempAllowMsg> = (service: PhishingListService) => (
|
|
34
|
+
_,
|
|
35
|
+
msg
|
|
36
|
+
) => {
|
|
37
|
+
service.allowUrlTemp(msg.url);
|
|
38
|
+
};
|
|
@@ -2,10 +2,11 @@ import { Router } from "@keplr-wallet/router";
|
|
|
2
2
|
import { ROUTE } from "./constants";
|
|
3
3
|
import { getHandler } from "./handler";
|
|
4
4
|
import { PhishingListService } from "./service";
|
|
5
|
-
import { CheckURLIsPhishingMsg } from "./messages";
|
|
5
|
+
import { CheckURLIsPhishingMsg, URLTempAllowMsg } from "./messages";
|
|
6
6
|
|
|
7
7
|
export function init(router: Router, service: PhishingListService): void {
|
|
8
8
|
router.registerMessage(CheckURLIsPhishingMsg);
|
|
9
|
+
router.registerMessage(URLTempAllowMsg);
|
|
9
10
|
|
|
10
11
|
router.addHandler(ROUTE, getHandler(service));
|
|
11
12
|
}
|
|
@@ -30,3 +30,27 @@ export class CheckURLIsPhishingMsg extends Message<boolean> {
|
|
|
30
30
|
return CheckURLIsPhishingMsg.type();
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
+
|
|
34
|
+
export class URLTempAllowMsg extends Message<void> {
|
|
35
|
+
public static type() {
|
|
36
|
+
return "url-temp-allow";
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
constructor(public readonly url: string) {
|
|
40
|
+
super();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
validateBasic(): void {
|
|
44
|
+
const url = new URL(this.url);
|
|
45
|
+
// Will throw an error if url has not second level domain.
|
|
46
|
+
parseDomainUntilSecondLevel(url.origin);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
route(): string {
|
|
50
|
+
return ROUTE;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
type(): string {
|
|
54
|
+
return URLTempAllowMsg.type();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -151,7 +151,12 @@ describe("Test phishing list service", () => {
|
|
|
151
151
|
let closeServer: (() => void) | undefined;
|
|
152
152
|
let getQueryCount: () => number;
|
|
153
153
|
|
|
154
|
+
const notMockSetInterval = setInterval;
|
|
155
|
+
const notMockClearInterval = clearInterval;
|
|
156
|
+
|
|
154
157
|
beforeEach(() => {
|
|
158
|
+
jest.useFakeTimers();
|
|
159
|
+
|
|
155
160
|
const server = createMockServer();
|
|
156
161
|
port = server.port;
|
|
157
162
|
closeServer = server.closeServer;
|
|
@@ -168,6 +173,8 @@ describe("Test phishing list service", () => {
|
|
|
168
173
|
closeServer();
|
|
169
174
|
closeServer = undefined;
|
|
170
175
|
}
|
|
176
|
+
|
|
177
|
+
jest.useRealTimers();
|
|
171
178
|
});
|
|
172
179
|
|
|
173
180
|
const waitServiceInit = (service: PhishingListService) => {
|
|
@@ -177,10 +184,10 @@ describe("Test phishing list service", () => {
|
|
|
177
184
|
return;
|
|
178
185
|
}
|
|
179
186
|
|
|
180
|
-
const intervalId =
|
|
187
|
+
const intervalId = notMockSetInterval(() => {
|
|
181
188
|
if (service.hasInited) {
|
|
182
189
|
resolve();
|
|
183
|
-
|
|
190
|
+
notMockClearInterval(intervalId);
|
|
184
191
|
}
|
|
185
192
|
}, 10);
|
|
186
193
|
});
|
|
@@ -226,6 +233,7 @@ describe("Test phishing list service", () => {
|
|
|
226
233
|
blockListUrl: `http://127.0.0.1:${port}/list1`,
|
|
227
234
|
fetchingIntervalMs: 3600,
|
|
228
235
|
retryIntervalMs: 3600,
|
|
236
|
+
allowTimeoutMs: 100,
|
|
229
237
|
});
|
|
230
238
|
eachService = service;
|
|
231
239
|
|
|
@@ -241,6 +249,7 @@ describe("Test phishing list service", () => {
|
|
|
241
249
|
blockListUrl: `http://127.0.0.1:${port}/list2`,
|
|
242
250
|
fetchingIntervalMs: 3600,
|
|
243
251
|
retryIntervalMs: 3600,
|
|
252
|
+
allowTimeoutMs: 100,
|
|
244
253
|
});
|
|
245
254
|
eachService = service;
|
|
246
255
|
|
|
@@ -256,6 +265,7 @@ describe("Test phishing list service", () => {
|
|
|
256
265
|
blockListUrl: `http://127.0.0.1:${port}/list3`,
|
|
257
266
|
fetchingIntervalMs: 3600,
|
|
258
267
|
retryIntervalMs: 3600,
|
|
268
|
+
allowTimeoutMs: 100,
|
|
259
269
|
});
|
|
260
270
|
eachService = service;
|
|
261
271
|
|
|
@@ -271,30 +281,37 @@ describe("Test phishing list service", () => {
|
|
|
271
281
|
blockListUrl: `http://127.0.0.1:${port}/list3`,
|
|
272
282
|
fetchingIntervalMs: 200,
|
|
273
283
|
retryIntervalMs: 3600,
|
|
284
|
+
allowTimeoutMs: 100,
|
|
274
285
|
});
|
|
286
|
+
const spyFetch = jest.spyOn(service, "startFetchPhishingList");
|
|
275
287
|
eachService = service;
|
|
276
288
|
|
|
277
289
|
service.init();
|
|
278
290
|
|
|
279
291
|
await waitServiceInit(service);
|
|
280
292
|
|
|
293
|
+
expect(spyFetch).toBeCalledTimes(1);
|
|
281
294
|
testCheckURLIsPhishing(service);
|
|
282
295
|
expect(service.checkURLIsPhishing("https://added.domain")).toBe(false);
|
|
283
296
|
|
|
284
297
|
expect(getQueryCount()).toBe(1);
|
|
285
298
|
|
|
286
|
-
//
|
|
287
|
-
|
|
299
|
+
// Proceed re-fetching
|
|
300
|
+
jest.advanceTimersByTime(210);
|
|
288
301
|
|
|
302
|
+
expect(spyFetch).toBeCalledTimes(2);
|
|
303
|
+
await spyFetch.mock.results[spyFetch.mock.results.length - 1].value;
|
|
289
304
|
testCheckURLIsPhishing(service);
|
|
290
305
|
// See the implementation of /list3
|
|
291
306
|
expect(service.checkURLIsPhishing("https://added.domain")).toBe(true);
|
|
292
307
|
|
|
293
308
|
expect(getQueryCount()).toBe(2);
|
|
294
309
|
|
|
295
|
-
//
|
|
296
|
-
|
|
310
|
+
// Proceed re-fetching
|
|
311
|
+
jest.advanceTimersByTime(210);
|
|
297
312
|
|
|
313
|
+
expect(spyFetch).toBeCalledTimes(3);
|
|
314
|
+
await spyFetch.mock.results[spyFetch.mock.results.length - 1].value;
|
|
298
315
|
testCheckURLIsPhishing(service);
|
|
299
316
|
// See the implementation of /list3
|
|
300
317
|
expect(service.checkURLIsPhishing("https://added.domain")).toBe(false);
|
|
@@ -307,7 +324,9 @@ describe("Test phishing list service", () => {
|
|
|
307
324
|
blockListUrl: `http://127.0.0.1:${port}/test-retry`,
|
|
308
325
|
fetchingIntervalMs: 200,
|
|
309
326
|
retryIntervalMs: 100,
|
|
327
|
+
allowTimeoutMs: 100,
|
|
310
328
|
});
|
|
329
|
+
const spyFetch = jest.spyOn(service, "startFetchPhishingList");
|
|
311
330
|
eachService = service;
|
|
312
331
|
|
|
313
332
|
service.init();
|
|
@@ -325,19 +344,24 @@ describe("Test phishing list service", () => {
|
|
|
325
344
|
|
|
326
345
|
await waitServiceInit(service);
|
|
327
346
|
|
|
347
|
+
expect(spyFetch).toBeCalledTimes(1);
|
|
328
348
|
testPhishingUntil(1);
|
|
329
349
|
expect(getQueryCount()).toBe(1);
|
|
330
350
|
|
|
331
|
-
//
|
|
332
|
-
|
|
351
|
+
// Proceed re-fetching
|
|
352
|
+
jest.advanceTimersByTime(210);
|
|
333
353
|
|
|
354
|
+
expect(spyFetch).toBeCalledTimes(2);
|
|
355
|
+
await spyFetch.mock.results[spyFetch.mock.results.length - 1].value;
|
|
334
356
|
// See the implementation of /test-retry
|
|
335
357
|
testPhishingUntil(2);
|
|
336
358
|
expect(getQueryCount()).toBe(2);
|
|
337
359
|
|
|
338
|
-
//
|
|
339
|
-
|
|
360
|
+
// Proceed re-fetching
|
|
361
|
+
jest.advanceTimersByTime(210);
|
|
340
362
|
|
|
363
|
+
expect(spyFetch).toBeCalledTimes(3);
|
|
364
|
+
await spyFetch.mock.results[spyFetch.mock.results.length - 1].value;
|
|
341
365
|
// See the implementation of /test-retry
|
|
342
366
|
// In this case, the fetching should be failed.
|
|
343
367
|
// So, there is no update on phishing list.
|
|
@@ -345,23 +369,73 @@ describe("Test phishing list service", () => {
|
|
|
345
369
|
expect(getQueryCount()).toBe(3);
|
|
346
370
|
|
|
347
371
|
// Wait retry for failed query
|
|
348
|
-
|
|
372
|
+
jest.advanceTimersByTime(110);
|
|
349
373
|
|
|
374
|
+
expect(spyFetch).toBeCalledTimes(4);
|
|
375
|
+
await spyFetch.mock.results[spyFetch.mock.results.length - 1].value;
|
|
350
376
|
// See the implementation of /test-retry
|
|
351
377
|
testPhishingUntil(4);
|
|
352
378
|
expect(getQueryCount()).toBe(4);
|
|
353
379
|
|
|
354
380
|
// Not yet re-fetching
|
|
355
|
-
|
|
381
|
+
jest.advanceTimersByTime(110);
|
|
356
382
|
|
|
383
|
+
expect(spyFetch).toBeCalledTimes(4);
|
|
357
384
|
// See the implementation of /test-retry
|
|
358
385
|
testPhishingUntil(4);
|
|
359
386
|
expect(getQueryCount()).toBe(4);
|
|
360
387
|
|
|
361
388
|
// Now re-fetching
|
|
362
|
-
|
|
389
|
+
jest.advanceTimersByTime(110);
|
|
390
|
+
|
|
391
|
+
expect(spyFetch).toBeCalledTimes(5);
|
|
392
|
+
await spyFetch.mock.results[spyFetch.mock.results.length - 1].value;
|
|
363
393
|
// See the implementation of /test-retry
|
|
364
394
|
testPhishingUntil(5);
|
|
365
395
|
expect(getQueryCount()).toBe(5);
|
|
366
396
|
});
|
|
397
|
+
|
|
398
|
+
test("Test addUrlTemp allow blocked url", async () => {
|
|
399
|
+
const service = new PhishingListService({
|
|
400
|
+
blockListUrl: `http://127.0.0.1:${port}/list1`,
|
|
401
|
+
fetchingIntervalMs: 200,
|
|
402
|
+
retryIntervalMs: 100,
|
|
403
|
+
allowTimeoutMs: 100,
|
|
404
|
+
});
|
|
405
|
+
eachService = service;
|
|
406
|
+
|
|
407
|
+
service.init();
|
|
408
|
+
|
|
409
|
+
await waitServiceInit(service);
|
|
410
|
+
|
|
411
|
+
// block phishings site
|
|
412
|
+
const [phishing, anotherPhishing] = phishings;
|
|
413
|
+
expect(service.checkURLIsPhishing("https://" + phishing)).toBe(true);
|
|
414
|
+
expect(service.checkURLIsPhishing("https://test." + phishing)).toBe(true);
|
|
415
|
+
|
|
416
|
+
expect(service.checkURLIsPhishing("https://" + anotherPhishing)).toBe(true);
|
|
417
|
+
expect(service.checkURLIsPhishing("https://test." + anotherPhishing)).toBe(
|
|
418
|
+
true
|
|
419
|
+
);
|
|
420
|
+
|
|
421
|
+
// allow temp Url
|
|
422
|
+
service.allowUrlTemp("https://" + phishing);
|
|
423
|
+
expect(service.checkURLIsPhishing("https://" + phishing)).toBe(false);
|
|
424
|
+
expect(service.checkURLIsPhishing("https://test." + phishing)).toBe(false);
|
|
425
|
+
// but another url still blocked
|
|
426
|
+
expect(service.checkURLIsPhishing("https://" + anotherPhishing)).toBe(true);
|
|
427
|
+
expect(service.checkURLIsPhishing("https://test." + anotherPhishing)).toBe(
|
|
428
|
+
true
|
|
429
|
+
);
|
|
430
|
+
|
|
431
|
+
// should be blocked again
|
|
432
|
+
jest.advanceTimersByTime(110);
|
|
433
|
+
expect(service.checkURLIsPhishing("https://" + phishing)).toBe(true);
|
|
434
|
+
expect(service.checkURLIsPhishing("https://test." + phishing)).toBe(true);
|
|
435
|
+
|
|
436
|
+
expect(service.checkURLIsPhishing("https://" + anotherPhishing)).toBe(true);
|
|
437
|
+
expect(service.checkURLIsPhishing("https://test." + anotherPhishing)).toBe(
|
|
438
|
+
true
|
|
439
|
+
);
|
|
440
|
+
});
|
|
367
441
|
});
|
|
@@ -3,6 +3,7 @@ import { parseDomainUntilSecondLevel } from "./utils";
|
|
|
3
3
|
|
|
4
4
|
export class PhishingListService {
|
|
5
5
|
protected map: Map<string, boolean> = new Map();
|
|
6
|
+
protected allowed: Map<string, number> = new Map();
|
|
6
7
|
|
|
7
8
|
protected _hasInited: boolean = false;
|
|
8
9
|
protected _hasStopped: boolean = false;
|
|
@@ -13,6 +14,7 @@ export class PhishingListService {
|
|
|
13
14
|
readonly blockListUrl: string;
|
|
14
15
|
readonly fetchingIntervalMs: number;
|
|
15
16
|
readonly retryIntervalMs: number;
|
|
17
|
+
readonly allowTimeoutMs: number;
|
|
16
18
|
}
|
|
17
19
|
) {}
|
|
18
20
|
|
|
@@ -82,7 +84,26 @@ export class PhishingListService {
|
|
|
82
84
|
}
|
|
83
85
|
|
|
84
86
|
checkURLIsPhishing(url: string): boolean {
|
|
87
|
+
const parsed = parseDomainUntilSecondLevel(new URL(url).origin);
|
|
88
|
+
if (this.map.get(parsed) === true) {
|
|
89
|
+
const allowed = this.allowed.get(parsed);
|
|
90
|
+
if (
|
|
91
|
+
allowed &&
|
|
92
|
+
allowed + this.opts.allowTimeoutMs >= new Date().getTime()
|
|
93
|
+
) {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
return true;
|
|
97
|
+
} else {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
allowUrlTemp(url: string): void {
|
|
85
103
|
const parsed = new URL(url);
|
|
86
|
-
|
|
104
|
+
this.allowed.set(
|
|
105
|
+
parseDomainUntilSecondLevel(parsed.origin),
|
|
106
|
+
new Date().getTime()
|
|
107
|
+
);
|
|
87
108
|
}
|
|
88
109
|
}
|