jumpy-lion 0.0.24 → 0.0.26

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.
Files changed (26) hide show
  1. package/dist/browser-plugin.d.ts +7 -7
  2. package/dist/browser-plugin.d.ts.map +1 -1
  3. package/dist/browser-plugin.js +132 -61
  4. package/dist/browser-plugin.js.map +1 -1
  5. package/dist/fingerprinting/all-fingerprint-defender/_locales/en/messages.json +95 -0
  6. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-16ff15da.js +1 -7
  7. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-1a1456ec.js +1 -18
  8. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-3a7b59dd.js +1 -1258
  9. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-7ce85519.js +1 -76
  10. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-aaea1190.js +1 -15
  11. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-b4410958.js +1 -77
  12. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-dfed3562.js +1 -19
  13. package/dist/fingerprinting/all-fingerprint-defender/assets/debounce-09920c81.css +1 -0
  14. package/dist/fingerprinting/all-fingerprint-defender/assets/options-fe2fb5aa.css +1 -0
  15. package/dist/fingerprinting/all-fingerprint-defender/assets/popup-1886d2ef.css +1 -0
  16. package/dist/fingerprinting/all-fingerprint-defender/img/icon-128.png +0 -0
  17. package/dist/fingerprinting/all-fingerprint-defender/img/icon-16.png +0 -0
  18. package/dist/fingerprinting/all-fingerprint-defender/img/icon-24.png +0 -0
  19. package/dist/fingerprinting/all-fingerprint-defender/img/icon-32-disabled.png +0 -0
  20. package/dist/fingerprinting/all-fingerprint-defender/img/icon-32.png +0 -0
  21. package/dist/fingerprinting/all-fingerprint-defender/img/icon-48.png +0 -0
  22. package/dist/fingerprinting/all-fingerprint-defender/manifest.json +83 -0
  23. package/dist/fingerprinting/all-fingerprint-defender/options.html +17 -0
  24. package/dist/fingerprinting/all-fingerprint-defender/popup.html +23 -0
  25. package/dist/tsconfig.build.tsbuildinfo +1 -1
  26. package/package.json +4 -3
@@ -17,6 +17,13 @@ export interface LaunchBrowserOptions {
17
17
  useExperimentalFingerprints?: boolean;
18
18
  }
19
19
  export default class CDPBrowserPlugin extends BrowserPlugin<Library, LaunchBrowserOptions, LaunchResult, NewPageOptions, NewPageResult> {
20
+ private static readonly PORT_RANGE;
21
+ private static usedPorts;
22
+ private static lastAssignedPort;
23
+ private static portLock;
24
+ private getNextAvailablePort;
25
+ private _isPortAvailable;
26
+ private releasePort;
20
27
  /**
21
28
  */
22
29
  protected _addProxyToLaunchOptions(): Promise<void>;
@@ -50,19 +57,12 @@ export default class CDPBrowserPlugin extends BrowserPlugin<Library, LaunchBrows
50
57
  * @private
51
58
  */
52
59
  private _waitForPort;
53
- /**
54
- * Finds a free port to use.
55
- *
56
- * @private
57
- */
58
- private _findFreePort;
59
60
  /**
60
61
  * Tries to connect to the browser using CDP with retries.
61
62
  *
62
63
  * @private
63
64
  */
64
65
  private _connectWithRetry;
65
- private _isPortAvailable;
66
66
  }
67
67
  export {};
68
68
  //# sourceMappingURL=browser-plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser-plugin.d.ts","sourceRoot":"","sources":["../src/browser-plugin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAO,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAG3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD,KAAK,OAAO,GAAG,WAAW,CAAC;AAC3B,KAAK,YAAY,GAAG,YAAY,CAAC;AACjC,UAAU,cAAc;CAAI;AAC5B,MAAM,WAAW,oBAAoB;IACjC,WAAW,EAAE,QAAQ,GAAG,SAAS,CAAC;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,aAAa,CACvD,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,aAAa,CAChB;IACG;OACG;cACa,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzD;;;;OAIG;IACH,SAAS,CAAC,uBAAuB,CAC7B,aAAa,EAAE,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC,GACzG,OAAO;IAKV;;;;OAIG;cACa,OAAO,CACnB,aAAa,EAAE,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC,GACzG,OAAO,CAAC,YAAY,CAAC;IA4CxB;;;;OAIG;IAGH,SAAS,CAAC,iBAAiB,IAAI,oBAAoB;IAMnD;;;;OAIG;YACW,cAAc;IA4B5B;;;;OAIG;YACW,YAAY;IAmB1B;;;;OAIG;YACW,aAAa;IAuB3B;;;;OAIG;YACW,iBAAiB;YAwCjB,gBAAgB;CAWjC"}
1
+ {"version":3,"file":"browser-plugin.d.ts","sourceRoot":"","sources":["../src/browser-plugin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAO,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAG3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD,KAAK,OAAO,GAAG,WAAW,CAAC;AAC3B,KAAK,YAAY,GAAG,YAAY,CAAC;AACjC,UAAU,cAAc;CAAI;AAC5B,MAAM,WAAW,oBAAoB;IACjC,WAAW,EAAE,QAAQ,GAAG,SAAS,CAAC;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,aAAa,CACvD,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,aAAa,CAChB;IACG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAGhC;IAEF,OAAO,CAAC,MAAM,CAAC,SAAS,CAAqB;IAC7C,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAuC;IACtE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAS;YAElB,oBAAoB;YAsDpB,gBAAgB;IA6B9B,OAAO,CAAC,WAAW;IAUnB;OACG;cACa,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzD;;;;OAIG;IACH,SAAS,CAAC,uBAAuB,CAC7B,aAAa,EAAE,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC,GACzG,OAAO;IAKV;;;;OAIG;cACa,OAAO,CACnB,aAAa,EAAE,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC,GACzG,OAAO,CAAC,YAAY,CAAC;IAgDxB;;;;OAIG;IAGH,SAAS,CAAC,iBAAiB,IAAI,oBAAoB;IAMnD;;;;OAIG;YACW,cAAc;IA4B5B;;;;OAIG;YACW,YAAY;IAmB1B;;;;OAIG;YACW,iBAAiB;CAuClC"}
@@ -4,7 +4,80 @@ import CDPBrowserController from './browser-controller.js';
4
4
  import { launchChromeBrowserWithNewProfile } from './browser-process/browser.js';
5
5
  import { CdpLauncher } from './launcher-wrap.js';
6
6
  import { anonymizeProxySugar } from './proxy/anonymize-proxy.js';
7
- export default class CDPBrowserPlugin extends BrowserPlugin {
7
+ class CDPBrowserPlugin extends BrowserPlugin {
8
+ async getNextAvailablePort() {
9
+ const maxAttempts = 100; // Prevent infinite loops
10
+ let attempts = 0;
11
+ while (attempts < maxAttempts) {
12
+ // Wait if another instance is currently assigning a port
13
+ while (CDPBrowserPlugin.portLock) {
14
+ await new Promise(resolve => setTimeout(resolve, 100 + Math.random() * 100));
15
+ }
16
+ try {
17
+ // Set lock before port assignment
18
+ CDPBrowserPlugin.portLock = true;
19
+ // Increment the last assigned port, wrapping around if necessary
20
+ CDPBrowserPlugin.lastAssignedPort++;
21
+ if (CDPBrowserPlugin.lastAssignedPort > CDPBrowserPlugin.PORT_RANGE.max) {
22
+ CDPBrowserPlugin.lastAssignedPort = CDPBrowserPlugin.PORT_RANGE.min;
23
+ }
24
+ const candidatePort = CDPBrowserPlugin.lastAssignedPort;
25
+ // Skip if port is already tracked as in use
26
+ if (CDPBrowserPlugin.usedPorts.has(candidatePort)) {
27
+ continue;
28
+ }
29
+ // Add random delay before checking port availability
30
+ await new Promise(resolve => setTimeout(resolve, 200 + Math.random() * 300));
31
+ // Check if port is actually available
32
+ if (await this._isPortAvailable(candidatePort)) {
33
+ CDPBrowserPlugin.usedPorts.add(candidatePort);
34
+ log.debug(`Reserved port ${candidatePort} for browser instance`);
35
+ return candidatePort;
36
+ }
37
+ // Add delay before next attempt if port was unavailable
38
+ await new Promise(resolve => setTimeout(resolve, 150 + Math.random() * 200));
39
+ }
40
+ finally {
41
+ // Always release the lock
42
+ CDPBrowserPlugin.portLock = false;
43
+ }
44
+ attempts++; // Increment attempts only once per full iteration
45
+ }
46
+ throw new Error('No available ports found in the configured range after maximum attempts');
47
+ }
48
+ async _isPortAvailable(port) {
49
+ return new Promise((resolve) => {
50
+ const server = net.createServer();
51
+ server.once('error', (_err) => {
52
+ server.close();
53
+ resolve(false);
54
+ });
55
+ server.once('listening', () => {
56
+ server.close();
57
+ resolve(true);
58
+ });
59
+ // Add timeout to prevent hanging
60
+ server.on('error', () => { });
61
+ setTimeout(() => {
62
+ server.close();
63
+ resolve(false);
64
+ }, 1000);
65
+ try {
66
+ server.listen(port, '127.0.0.1');
67
+ }
68
+ catch (e) {
69
+ resolve(false);
70
+ }
71
+ });
72
+ }
73
+ releasePort(port) {
74
+ if (CDPBrowserPlugin.usedPorts.has(port)) {
75
+ CDPBrowserPlugin.usedPorts.delete(port);
76
+ log.debug(`Released port ${port} back to pool`);
77
+ // Add delay after release to prevent immediate reuse
78
+ setTimeout(() => { }, 500);
79
+ }
80
+ }
8
81
  /**
9
82
  */
10
83
  async _addProxyToLaunchOptions() {
@@ -25,39 +98,45 @@ export default class CDPBrowserPlugin extends BrowserPlugin {
25
98
  * @private
26
99
  */
27
100
  async _launch(launchContext) {
28
- const debuggingPort = await this._findFreePort(9233);
29
- // Add port availability check
30
- if (!(await this._isPortAvailable(debuggingPort))) {
31
- throw new Error(`Port ${debuggingPort} is already in use`);
32
- }
33
- const { launchOptions, useIncognitoPages, proxyUrl } = launchContext;
34
- if (!launchOptions.browserType) {
35
- launchOptions.browserType = "chrome";
36
- }
37
- let browser;
38
- launchOptions.useIncognitoPages = useIncognitoPages;
39
- log.debug("Launch options", launchOptions);
40
- const [anonymizedProxyUrl, close] = await anonymizeProxySugar(proxyUrl);
41
- if (anonymizedProxyUrl) {
42
- launchOptions.proxyUrl = anonymizedProxyUrl;
43
- }
44
- const browserProcess = await this._launchBrowser(debuggingPort, launchOptions);
45
- log.debug("browserProcess", browserProcess);
101
+ const debuggingPort = await this.getNextAvailablePort();
46
102
  try {
47
- browser = await this._connectWithRetry(debuggingPort, 10, 4000);
103
+ const { launchOptions, useIncognitoPages, proxyUrl } = launchContext;
104
+ if (!launchOptions.browserType) {
105
+ launchOptions.browserType = "chrome";
106
+ }
107
+ let browser;
108
+ launchOptions.useIncognitoPages = useIncognitoPages;
109
+ log.debug("Launch options", { ...launchOptions, debuggingPort });
110
+ const [anonymizedProxyUrl, close] = await anonymizeProxySugar(proxyUrl);
48
111
  if (anonymizedProxyUrl) {
112
+ launchOptions.proxyUrl = anonymizedProxyUrl;
113
+ }
114
+ const browserProcess = await this._launchBrowser(debuggingPort, launchOptions);
115
+ log.debug("Browser process started", { pid: browserProcess.pid, debuggingPort });
116
+ try {
117
+ browser = await this._connectWithRetry(debuggingPort, 10, 4000);
118
+ // Add both cleanup handlers
49
119
  browser.on('close', async () => {
50
- await close();
120
+ this.releasePort(debuggingPort);
121
+ if (anonymizedProxyUrl) {
122
+ await close();
123
+ }
51
124
  });
125
+ launchContext.debuggingPort = debuggingPort;
126
+ launchContext.process = browserProcess;
127
+ return browser;
128
+ }
129
+ catch (error) {
130
+ if (anonymizedProxyUrl) {
131
+ await close();
132
+ }
133
+ throw error;
52
134
  }
53
135
  }
54
136
  catch (error) {
55
- await close();
137
+ this.releasePort(debuggingPort);
56
138
  throw error;
57
139
  }
58
- launchContext.debuggingPort = debuggingPort;
59
- launchContext.process = browserProcess;
60
- return browser;
61
140
  }
62
141
  /**
63
142
  * Creates a new browser controller.
@@ -124,31 +203,6 @@ export default class CDPBrowserPlugin extends BrowserPlugin {
124
203
  }());
125
204
  });
126
205
  }
127
- /**
128
- * Finds a free port to use.
129
- *
130
- * @private
131
- */
132
- async _findFreePort(startingPort) {
133
- return new Promise((resolve, reject) => {
134
- const server = net.createServer();
135
- server.on('error', (err) => {
136
- if (err.code === 'EADDRINUSE') {
137
- this._findFreePort(startingPort + 1).then(resolve).catch(reject); // Port is in use, try the next one
138
- }
139
- else {
140
- reject(err);
141
- }
142
- });
143
- server.on('listening', () => {
144
- const { port } = server.address();
145
- server.close(() => {
146
- resolve(port);
147
- });
148
- });
149
- server.listen(startingPort, '127.0.0.1');
150
- });
151
- }
152
206
  /**
153
207
  * Tries to connect to the browser using CDP with retries.
154
208
  *
@@ -188,16 +242,33 @@ export default class CDPBrowserPlugin extends BrowserPlugin {
188
242
  // Always throw the wrapped error with our standard message
189
243
  throw new Error(`Failed to connect to browser after ${maxRetries} attempts.`);
190
244
  }
191
- async _isPortAvailable(port) {
192
- return new Promise((resolve) => {
193
- const tester = net.createServer()
194
- .once('error', () => resolve(false))
195
- .once('listening', () => {
196
- tester.once('close', () => resolve(true))
197
- .close();
198
- })
199
- .listen(port);
200
- });
201
- }
202
245
  }
246
+ Object.defineProperty(CDPBrowserPlugin, "PORT_RANGE", {
247
+ enumerable: true,
248
+ configurable: true,
249
+ writable: true,
250
+ value: {
251
+ min: 9223,
252
+ max: 9423 // Give a range of 100 ports
253
+ }
254
+ });
255
+ Object.defineProperty(CDPBrowserPlugin, "usedPorts", {
256
+ enumerable: true,
257
+ configurable: true,
258
+ writable: true,
259
+ value: new Set()
260
+ });
261
+ Object.defineProperty(CDPBrowserPlugin, "lastAssignedPort", {
262
+ enumerable: true,
263
+ configurable: true,
264
+ writable: true,
265
+ value: CDPBrowserPlugin.PORT_RANGE.min - 1
266
+ });
267
+ Object.defineProperty(CDPBrowserPlugin, "portLock", {
268
+ enumerable: true,
269
+ configurable: true,
270
+ writable: true,
271
+ value: false
272
+ });
273
+ export default CDPBrowserPlugin;
203
274
  //# sourceMappingURL=browser-plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser-plugin.js","sourceRoot":"","sources":["../src/browser-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-plugin.js","sourceRoot":"","sources":["../src/browser-plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ {
2
+ "Donate": {
3
+ "message": "Donate"
4
+ },
5
+ "ExtensionDescription": {
6
+ "message": "All in one fingerprint protection - protect against Canvas, WebGL, Font, AudioContext fingerprinting in your browser."
7
+ },
8
+ "ExtensionName": {
9
+ "message": "All Fingerprint Defender"
10
+ },
11
+ "MoreOptions": {
12
+ "message": "More Options"
13
+ },
14
+ "RateUs": {
15
+ "message": "Rate us"
16
+ },
17
+ "ReloadExtension": {
18
+ "message": "Reload extension"
19
+ },
20
+ "MakeBy": {
21
+ "message": "Make by afixer.app"
22
+ },
23
+ "PreventFingerprintingOn": {
24
+ "message": "Prevent fingerprinting on"
25
+ },
26
+ "Refresh": {
27
+ "message": "Refresh"
28
+ },
29
+ "RefreshThisPage": {
30
+ "message": "Refresh this page to apply new options"
31
+ },
32
+ "DetectedAndObfuscated": {
33
+ "message": "Detected fingerprinting type"
34
+ },
35
+ "CanvasFingerprint": {
36
+ "message": "Canvas Fingerprint"
37
+ },
38
+ "NumberOfFingerprints": {
39
+ "message": "Number of prevented fingerprints"
40
+ },
41
+ "NumberOfHosts": {
42
+ "message": "Number of fingerprinting hosts"
43
+ },
44
+ "Host": {
45
+ "message": "Host"
46
+ },
47
+ "Count": {
48
+ "message": "Count"
49
+ },
50
+ "Audio": {
51
+ "message": "Audio"
52
+ },
53
+ "Canvas": {
54
+ "message": "Canvas"
55
+ },
56
+ "WebGL": {
57
+ "message": "WebGL"
58
+ },
59
+ "Font": {
60
+ "message": "Font"
61
+ },
62
+ "UpdatedAt": {
63
+ "message": "Updated at"
64
+ },
65
+ "Action": {
66
+ "message": "Action"
67
+ },
68
+ "Delete": {
69
+ "message": "Delete"
70
+ },
71
+ "Add": {
72
+ "message": "Add"
73
+ },
74
+ "Added": {
75
+ "message": "Added"
76
+ },
77
+ "WhiteList": {
78
+ "message": "White list"
79
+ },
80
+ "InWhiteList": {
81
+ "message": "In whitelist"
82
+ },
83
+ "AddToWhiteList": {
84
+ "message": "Add to whitelist"
85
+ },
86
+ "Total": {
87
+ "message": "Total"
88
+ },
89
+ "History": {
90
+ "message": "History"
91
+ },
92
+ "Last30Days": {
93
+ "message": "last 30 days"
94
+ }
95
+ }
@@ -1,7 +1 @@
1
- if (!(ignoredSites = ["https://www.google.com/maps", "https://accounts.google.com", "www.figma.com", "www.canva.com", "designer.microsoft.com", "create.vista.com", "console.aws.amazon.com", "www.coze.com"].some(e => window.location.href.startsWith(e) || window.location.host.endsWith(e)))) {
2
- document.documentElement.setAttribute("data-afd-extension-id", chrome.runtime.id);
3
- const e = "disabled:" + window.location.host;
4
- chrome.storage.sync.get([e], function (t) { t[e] && (document.documentElement.setAttribute("data-afd-disabled", "true"), window.dispatchEvent(new Event("afd-disabled"))); }), window.addEventListener("chrome.runtime.sendMessage", function (t) { const o = t.detail; chrome.runtime.sendMessage(o, function () { }); });
5
- }
6
- export {};
7
- //# sourceMappingURL=chunk-16ff15da.js.map
1
+ if(!(ignoredSites=["https://www.google.com/maps","https://accounts.google.com","www.figma.com","www.canva.com","designer.microsoft.com","create.vista.com","console.aws.amazon.com","www.coze.com"].some(e=>window.location.href.startsWith(e)||window.location.host.endsWith(e)))){document.documentElement.setAttribute("data-afd-extension-id",chrome.runtime.id);const e="disabled:"+window.location.host;chrome.storage.sync.get([e],function(t){t[e]&&(document.documentElement.setAttribute("data-afd-disabled","true"),window.dispatchEvent(new Event("afd-disabled")))}),window.addEventListener("chrome.runtime.sendMessage",function(t){const o=t.detail;chrome.runtime.sendMessage(o,function(){})})}
@@ -1,18 +1 @@
1
- import { d as I, o as n, c as a, b as i, _ as N, e as v, f as z, x as H, y as C, a as o, i as m, j as L, t as d, u as l, D as P, z as $, S as W, F as x, k as B, m as E, q as U, l as q, p as R, A as G, B as j, v as J } from "./chunk-3a7b59dd.js";
2
- const K = !0, Q = { class: "toggle-button" }, X = { key: 0, class: "on circle" }, Y = { key: 1, class: "off circle" }, Z = I({ __name: "ToggleButton", props: { isOn: { type: Boolean, default: !1 } }, setup(u) { return (c, S) => (n(), a("div", Q, [u.isOn ? (n(), a("div", X)) : i("", !0), u.isOn ? i("", !0) : (n(), a("div", Y))])); } });
3
- const ee = N(Z, [["__scopeId", "data-v-ee74a099"]]), D = u => (G("data-v-053380fd"), u = u(), j(), u), te = { class: "header" }, se = { class: "title" }, oe = { class: "line space-between" }, ne = { class: "description" }, ae = { class: "line space-between" }, ce = { class: "description2" }, ie = ["href"], le = { class: "content" }, de = { class: "line space-between" }, re = D(() => o("span", { class: "option-icon" }, "⚙", -1)), ue = D(() => o("span", null, "⟳", -1)), _e = [ue], ve = { key: 0, class: "sub-content" }, he = { class: "line line-title" }, ge = { class: "host-line" }, pe = { class: "site-domain" }, fe = { key: 0, class: "site-icon detected" }, me = ["src"], be = D(() => o("span", { style: { "line-height": "10px", "padding-bottom": "6px", "font-size": "2.3rem", "margin-right": "4px" } }, "⟳", -1)), ye = { key: 2, class: "sub-content" }, ke = { class: "line line-title" }, we = { class: "detected-list" }, Ce = { key: 0, class: "tag d-audio" }, De = { key: 1, class: "tag d-canvas" }, Se = { key: 2, class: "tag d-font" }, Me = { key: 3, class: "tag d-webgl" }, Ae = { class: "sub-content" }, xe = { class: "line line-title" }, Be = { class: "total-detected" }, Ie = { key: 3, class: "sub-content" }, Ne = { key: 0, class: "line line-title" }, Oe = { key: 1, class: "canvas-list" }, Ve = { class: "canvas-item" }, Fe = { class: "canvas-desc" }, Te = ["src"], ze = I({ __name: "Popup", setup(u) { const c = window.chrome, S = async () => { await c.storage.local.set({ reload: !0 }), c.runtime.reload(); }, b = v(""), _ = v({}), M = v(!1), g = v([]), p = v([]), y = v(0), O = () => { c.tabs.query({ active: !0, currentWindow: !0 }, s => { const t = s[0]; t && t.url && t.url.startsWith("http") && (c.tabs.reload(t.id), window.close()); }); }; function k(s) { _.value[s] === void 0 && (_.value[s] = !1, c.runtime.sendMessage({ action: "getDisabled", host: s }, function (t) { _.value[s] = t.disabled; })); } let V = E(300); c.storage.sync.onChanged.addListener(s => { var t; (t = s.totalDetected) != null && t.newValue && V(() => { y.value = s.totalDetected.newValue; }); }), z(() => { c.tabs.query({ active: !0, currentWindow: !0 }, s => { const t = s[0]; if (t && t.url && t.url.startsWith("http")) {
4
- const e = new URL(t.url);
5
- b.value = e.host, k(e.host), t.id && (H(t.id, t.incognito).then(r => { for (const w of r)
6
- (w.host === e.host || w.origins.includes(e.host)) && k(w.host); g.value = r; }), c.runtime.sendMessage({ action: "getHosts", tabID: t.id }, r => { r && ((!r.hosts || !r.hosts.includes(e.host)) && r.hosts.push(e.host), p.value = r.hosts, p.value.forEach(k)); }));
7
- } c.storage.sync.get("totalDetected", e => { y.value = e.totalDetected || 0; }); }); }); const F = async (s) => { c.runtime.sendMessage({ action: "setDisabled", host: s, disabled: !_.value[s] }, () => { _.value[s] = !_.value[s], M.value = !0; }); }, T = s => { const t = s.target; window.open("about:blank").document.write("<img src='" + t.src + "' alt='from canvas'/>"); }, A = C(() => { const s = [], t = new Set; for (const e of g.value)
8
- for (const r of e.detections)
9
- t.add(e.host); if (p.value.length > 0)
10
- for (const e of p.value)
11
- s.push({ host: e, detected: t.has(e) }); return s; }), h = C(() => { const s = new Set; for (const t of g.value)
12
- for (const e of t.detections)
13
- s.add(e.type); return s; }), f = C(() => { const s = []; for (const t of g.value)
14
- for (const e of t.detections)
15
- e.type === "CANVAS" && s.push(e); return s.reverse(); }); return (s, t) => (n(), a("main", null, [o("div", te, [m(L, { width: 48 }), o("div", se, [o("div", oe, [o("div", ne, d(l(c).i18n.getMessage("ExtensionName")), 1)]), o("div", ae, [o("div", ce, [o("a", { href: l(U), target: "_blank", rel: "noopener noreferrer" }, d(l(c).i18n.getMessage("MakeBy")), 9, ie)]), m(P)])])]), o("div", le, [o("div", de, [o("button", { class: "btn", onClick: t[0] || (t[0] = e => l(c).runtime.openOptionsPage()) }, [re, $(" " + d(l(c).i18n.getMessage("MoreOptions")), 1)]), l(K) ? i("", !0) : (n(), a("button", { key: 0, class: "btn reload-btn", onClick: S }, _e)), m(W, { "font-size": "1.4rem" })]), b.value ? (n(), a("div", ve, [o("div", he, d(l(c).i18n.getMessage("PreventFingerprintingOn")), 1), o("div", ge, [A.value ? (n(!0), a(x, { key: 0 }, B(A.value, e => (n(), a("div", { key: e.host, class: "line interactive" }, [o("span", pe, [e.detected ? (n(), a("div", fe, "!")) : i("", !0), o("img", { src: l(q)(e.host), class: "site-icon", loading: "lazy" }, null, 8, me), o("span", null, d(e.host), 1)]), m(ee, { "is-on": !_.value[e.host], onClick: r => F(e.host) }, null, 8, ["is-on", "onClick"])]))), 128)) : i("", !0)])])) : i("", !0), M.value ? (n(), a("button", { key: 1, class: "btn refresh-btn zoom-in-effect", onClick: O }, [be, o("span", null, d(l(c).i18n.getMessage("RefreshThisPage")), 1)])) : i("", !0), h.value.size ? (n(), a("div", ye, [o("div", ke, d(l(c).i18n.getMessage("DetectedAndObfuscated")), 1), o("div", we, [h.value.has("AUDIO") ? (n(), a("div", Ce, "Audio")) : i("", !0), h.value.has("CANVAS") ? (n(), a("div", De, "Canvas")) : i("", !0), h.value.has("FONT") ? (n(), a("div", Se, "Font")) : i("", !0), h.value.has("WEBGL") ? (n(), a("div", Me, "WebGL")) : i("", !0)])])) : i("", !0), o("div", Ae, [o("div", xe, d(l(c).i18n.getMessage("NumberOfFingerprints")), 1), o("div", Be, d(y.value.toLocaleString()), 1)]), f.value && f.value.length > 0 ? (n(), a("div", Ie, [b.value ? (n(), a("div", Ne, d(l(c).i18n.getMessage("CanvasFingerprint")), 1)) : i("", !0), f.value ? (n(), a("div", Oe, [(n(!0), a(x, null, B(f.value, e => (n(), a("div", Ve, [o("div", Fe, [o("span", null, d(l(R)(e.occurredAt)), 1), o("span", null, d(e.canvasSize), 1)]), e.type === "CANVAS" ? (n(), a("img", { key: 0, onClick: T, class: "canvas", src: e.canvas }, null, 8, Te)) : i("", !0)]))), 256))])) : i("", !0)])) : i("", !0)])])); } });
16
- const He = N(ze, [["__scopeId", "data-v-053380fd"]]);
17
- J(He).mount("#app");
18
- //# sourceMappingURL=chunk-1a1456ec.js.map
1
+ import{d as I,o as n,c as a,b as i,_ as N,e as v,f as z,x as H,y as C,a as o,i as m,j as L,t as d,u as l,D as P,z as $,S as W,F as x,k as B,m as E,q as U,l as q,p as R,A as G,B as j,v as J}from"./chunk-3a7b59dd.js";const K=!0,Q={class:"toggle-button"},X={key:0,class:"on circle"},Y={key:1,class:"off circle"},Z=I({__name:"ToggleButton",props:{isOn:{type:Boolean,default:!1}},setup(u){return(c,S)=>(n(),a("div",Q,[u.isOn?(n(),a("div",X)):i("",!0),u.isOn?i("",!0):(n(),a("div",Y))]))}});const ee=N(Z,[["__scopeId","data-v-ee74a099"]]),D=u=>(G("data-v-053380fd"),u=u(),j(),u),te={class:"header"},se={class:"title"},oe={class:"line space-between"},ne={class:"description"},ae={class:"line space-between"},ce={class:"description2"},ie=["href"],le={class:"content"},de={class:"line space-between"},re=D(()=>o("span",{class:"option-icon"},"⚙",-1)),ue=D(()=>o("span",null,"⟳",-1)),_e=[ue],ve={key:0,class:"sub-content"},he={class:"line line-title"},ge={class:"host-line"},pe={class:"site-domain"},fe={key:0,class:"site-icon detected"},me=["src"],be=D(()=>o("span",{style:{"line-height":"10px","padding-bottom":"6px","font-size":"2.3rem","margin-right":"4px"}},"⟳",-1)),ye={key:2,class:"sub-content"},ke={class:"line line-title"},we={class:"detected-list"},Ce={key:0,class:"tag d-audio"},De={key:1,class:"tag d-canvas"},Se={key:2,class:"tag d-font"},Me={key:3,class:"tag d-webgl"},Ae={class:"sub-content"},xe={class:"line line-title"},Be={class:"total-detected"},Ie={key:3,class:"sub-content"},Ne={key:0,class:"line line-title"},Oe={key:1,class:"canvas-list"},Ve={class:"canvas-item"},Fe={class:"canvas-desc"},Te=["src"],ze=I({__name:"Popup",setup(u){const c=window.chrome,S=async()=>{await c.storage.local.set({reload:!0}),c.runtime.reload()},b=v(""),_=v({}),M=v(!1),g=v([]),p=v([]),y=v(0),O=()=>{c.tabs.query({active:!0,currentWindow:!0},s=>{const t=s[0];t&&t.url&&t.url.startsWith("http")&&(c.tabs.reload(t.id),window.close())})};function k(s){_.value[s]===void 0&&(_.value[s]=!1,c.runtime.sendMessage({action:"getDisabled",host:s},function(t){_.value[s]=t.disabled}))}let V=E(300);c.storage.sync.onChanged.addListener(s=>{var t;(t=s.totalDetected)!=null&&t.newValue&&V(()=>{y.value=s.totalDetected.newValue})}),z(()=>{c.tabs.query({active:!0,currentWindow:!0},s=>{const t=s[0];if(t&&t.url&&t.url.startsWith("http")){const e=new URL(t.url);b.value=e.host,k(e.host),t.id&&(H(t.id,t.incognito).then(r=>{for(const w of r)(w.host===e.host||w.origins.includes(e.host))&&k(w.host);g.value=r}),c.runtime.sendMessage({action:"getHosts",tabID:t.id},r=>{r&&((!r.hosts||!r.hosts.includes(e.host))&&r.hosts.push(e.host),p.value=r.hosts,p.value.forEach(k))}))}c.storage.sync.get("totalDetected",e=>{y.value=e.totalDetected||0})})});const F=async s=>{c.runtime.sendMessage({action:"setDisabled",host:s,disabled:!_.value[s]},()=>{_.value[s]=!_.value[s],M.value=!0})},T=s=>{const t=s.target;window.open("about:blank").document.write("<img src='"+t.src+"' alt='from canvas'/>")},A=C(()=>{const s=[],t=new Set;for(const e of g.value)for(const r of e.detections)t.add(e.host);if(p.value.length>0)for(const e of p.value)s.push({host:e,detected:t.has(e)});return s}),h=C(()=>{const s=new Set;for(const t of g.value)for(const e of t.detections)s.add(e.type);return s}),f=C(()=>{const s=[];for(const t of g.value)for(const e of t.detections)e.type==="CANVAS"&&s.push(e);return s.reverse()});return(s,t)=>(n(),a("main",null,[o("div",te,[m(L,{width:48}),o("div",se,[o("div",oe,[o("div",ne,d(l(c).i18n.getMessage("ExtensionName")),1)]),o("div",ae,[o("div",ce,[o("a",{href:l(U),target:"_blank",rel:"noopener noreferrer"},d(l(c).i18n.getMessage("MakeBy")),9,ie)]),m(P)])])]),o("div",le,[o("div",de,[o("button",{class:"btn",onClick:t[0]||(t[0]=e=>l(c).runtime.openOptionsPage())},[re,$(" "+d(l(c).i18n.getMessage("MoreOptions")),1)]),l(K)?i("",!0):(n(),a("button",{key:0,class:"btn reload-btn",onClick:S},_e)),m(W,{"font-size":"1.4rem"})]),b.value?(n(),a("div",ve,[o("div",he,d(l(c).i18n.getMessage("PreventFingerprintingOn")),1),o("div",ge,[A.value?(n(!0),a(x,{key:0},B(A.value,e=>(n(),a("div",{key:e.host,class:"line interactive"},[o("span",pe,[e.detected?(n(),a("div",fe,"!")):i("",!0),o("img",{src:l(q)(e.host),class:"site-icon",loading:"lazy"},null,8,me),o("span",null,d(e.host),1)]),m(ee,{"is-on":!_.value[e.host],onClick:r=>F(e.host)},null,8,["is-on","onClick"])]))),128)):i("",!0)])])):i("",!0),M.value?(n(),a("button",{key:1,class:"btn refresh-btn zoom-in-effect",onClick:O},[be,o("span",null,d(l(c).i18n.getMessage("RefreshThisPage")),1)])):i("",!0),h.value.size?(n(),a("div",ye,[o("div",ke,d(l(c).i18n.getMessage("DetectedAndObfuscated")),1),o("div",we,[h.value.has("AUDIO")?(n(),a("div",Ce,"Audio")):i("",!0),h.value.has("CANVAS")?(n(),a("div",De,"Canvas")):i("",!0),h.value.has("FONT")?(n(),a("div",Se,"Font")):i("",!0),h.value.has("WEBGL")?(n(),a("div",Me,"WebGL")):i("",!0)])])):i("",!0),o("div",Ae,[o("div",xe,d(l(c).i18n.getMessage("NumberOfFingerprints")),1),o("div",Be,d(y.value.toLocaleString()),1)]),f.value&&f.value.length>0?(n(),a("div",Ie,[b.value?(n(),a("div",Ne,d(l(c).i18n.getMessage("CanvasFingerprint")),1)):i("",!0),f.value?(n(),a("div",Oe,[(n(!0),a(x,null,B(f.value,e=>(n(),a("div",Ve,[o("div",Fe,[o("span",null,d(l(R)(e.occurredAt)),1),o("span",null,d(e.canvasSize),1)]),e.type==="CANVAS"?(n(),a("img",{key:0,onClick:T,class:"canvas",src:e.canvas},null,8,Te)):i("",!0)]))),256))])):i("",!0)])):i("",!0)])]))}});const He=N(ze,[["__scopeId","data-v-053380fd"]]);J(He).mount("#app");