extension-develop 3.5.0-next.21 → 3.5.0-next.24
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/dist/323.cjs +62 -15
- package/dist/547.cjs +48 -0
- package/dist/extension-js-devtools/chrome/background/service_worker.js +1 -1
- package/dist/extension-js-devtools/chrome/devtools/index.js +1 -1
- package/dist/extension-js-devtools/chrome/pages/centralized-logger.js +1 -1
- package/dist/extension-js-devtools/chrome/pages/welcome.js +1 -1
- package/dist/extension-js-devtools/chrome/scripts/logger-client.js +1 -1
- package/dist/extension-js-devtools/chromium/background/service_worker.js +1 -1
- package/dist/extension-js-devtools/chromium/devtools/index.js +1 -1
- package/dist/extension-js-devtools/chromium/pages/centralized-logger.js +1 -1
- package/dist/extension-js-devtools/chromium/pages/welcome.js +1 -1
- package/dist/extension-js-devtools/chromium/scripts/logger-client.js +1 -1
- package/dist/extension-js-devtools/edge/background/service_worker.js +1 -1
- package/dist/extension-js-devtools/edge/devtools/index.js +1 -1
- package/dist/extension-js-devtools/edge/pages/centralized-logger.js +1 -1
- package/dist/extension-js-devtools/edge/pages/welcome.js +1 -1
- package/dist/extension-js-devtools/edge/scripts/logger-client.js +1 -1
- package/dist/extension-js-devtools/firefox/background/scripts.js +1 -1
- package/dist/extension-js-devtools/firefox/devtools/index.js +1 -1
- package/dist/extension-js-devtools/firefox/pages/centralized-logger.js +1 -1
- package/dist/extension-js-devtools/firefox/pages/welcome.js +1 -1
- package/dist/extension-js-devtools/firefox/scripts/logger-client.js +1 -1
- package/dist/module.cjs +134 -111
- package/package.json +2 -2
package/dist/323.cjs
CHANGED
|
@@ -14,30 +14,69 @@ exports.modules = {
|
|
|
14
14
|
var external_fs_ = __webpack_require__("fs");
|
|
15
15
|
async function deriveExtensionIdFromTargetsHelper(cdp, outPath, maxRetries = 20, backoffMs = 200) {
|
|
16
16
|
let expectedName;
|
|
17
|
+
let expectedVersion;
|
|
18
|
+
let expectedManifestVersion;
|
|
19
|
+
let expectedNameIsMsg = false;
|
|
17
20
|
try {
|
|
18
21
|
const manifest = JSON.parse(external_fs_.readFileSync(external_path_.join(outPath, 'manifest.json'), 'utf-8'));
|
|
19
22
|
expectedName = manifest?.name;
|
|
23
|
+
expectedVersion = manifest?.version;
|
|
24
|
+
expectedManifestVersion = manifest?.manifest_version;
|
|
25
|
+
expectedNameIsMsg = 'string' == typeof expectedName && /__MSG_/i.test(expectedName);
|
|
26
|
+
if (expectedNameIsMsg) {
|
|
27
|
+
const defaultLocale = String(manifest?.default_locale || '').trim();
|
|
28
|
+
const msgKeyMatch = String(expectedName || '').match(/__MSG_([^_]+)__/i);
|
|
29
|
+
const msgKey = msgKeyMatch ? msgKeyMatch[1] : '';
|
|
30
|
+
if (defaultLocale && msgKey) try {
|
|
31
|
+
const messagesPath = external_path_.join(outPath, '_locales', defaultLocale, 'messages.json');
|
|
32
|
+
if (external_fs_.existsSync(messagesPath)) {
|
|
33
|
+
const messagesJson = JSON.parse(external_fs_.readFileSync(messagesPath, 'utf-8'));
|
|
34
|
+
const resolved = String(messagesJson?.[msgKey]?.message || '').trim();
|
|
35
|
+
if (resolved) {
|
|
36
|
+
expectedName = resolved;
|
|
37
|
+
expectedNameIsMsg = false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
} catch {}
|
|
41
|
+
}
|
|
20
42
|
} catch {}
|
|
21
43
|
let retries = 0;
|
|
22
44
|
while(retries <= maxRetries){
|
|
23
45
|
try {
|
|
24
46
|
const targets = await cdp.getTargets();
|
|
25
|
-
|
|
47
|
+
let firstEvalId = null;
|
|
48
|
+
let evalIdCount = 0;
|
|
49
|
+
for (const t of targets || []){
|
|
26
50
|
const url = String(t?.url || '');
|
|
27
51
|
const type = String(t?.type || '');
|
|
28
|
-
|
|
52
|
+
const typeOk = [
|
|
53
|
+
'service_worker',
|
|
54
|
+
'background_page',
|
|
55
|
+
'worker'
|
|
56
|
+
].includes(type);
|
|
57
|
+
if (!typeOk) continue;
|
|
58
|
+
if (url && !url.startsWith('chrome-extension://')) continue;
|
|
29
59
|
const targetId = t?.targetId;
|
|
30
60
|
if (targetId) try {
|
|
31
61
|
const sessionId = await cdp.attachToTarget(targetId);
|
|
32
62
|
if (!sessionId) continue;
|
|
33
63
|
await cdp.sendCommand('Runtime.enable', {}, sessionId);
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
64
|
+
const info = await cdp.evaluate(sessionId, '(()=>{try{const m=chrome.runtime.getManifest?.();return {id:chrome.runtime?.id||"",name:m?.name||"",version:m?.version||"",manifestVersion:m?.manifest_version||0}}catch(_){return null}})()');
|
|
65
|
+
const id = String(info?.id || '').trim();
|
|
66
|
+
if (!id) continue;
|
|
67
|
+
evalIdCount += 1;
|
|
68
|
+
if (!firstEvalId) firstEvalId = id;
|
|
69
|
+
const gotName = String(info?.name || '');
|
|
70
|
+
const gotVersion = String(info?.version || '');
|
|
71
|
+
const gotManifestVersion = Number(info?.manifestVersion || 0);
|
|
72
|
+
const nameMatches = expectedName && !expectedNameIsMsg ? gotName === expectedName : false;
|
|
73
|
+
const versionMatches = expectedVersion ? gotVersion === expectedVersion : false;
|
|
74
|
+
const manifestVersionMatches = expectedManifestVersion ? gotManifestVersion === expectedManifestVersion : false;
|
|
75
|
+
if (nameMatches) return id;
|
|
76
|
+
if (expectedVersion && versionMatches && (expectedManifestVersion ? manifestVersionMatches : true)) return id;
|
|
39
77
|
} catch {}
|
|
40
78
|
}
|
|
79
|
+
if (1 === evalIdCount && firstEvalId) return firstEvalId;
|
|
41
80
|
for (const t of targets || []){
|
|
42
81
|
const url = String(t?.url || '');
|
|
43
82
|
const type = String(t?.type || '');
|
|
@@ -374,7 +413,12 @@ exports.modules = {
|
|
|
374
413
|
};
|
|
375
414
|
await retryAsync(()=>cdpExtensionController.connect());
|
|
376
415
|
if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(messages.M3V('127.0.0.1', chromeRemoteDebugPort));
|
|
377
|
-
|
|
416
|
+
let extensionControllerInfo = null;
|
|
417
|
+
try {
|
|
418
|
+
extensionControllerInfo = await cdpExtensionController.ensureLoaded();
|
|
419
|
+
} catch (error) {
|
|
420
|
+
if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.warn(`[CDP] ensureLoaded failed: ${String(error?.message || error)}`);
|
|
421
|
+
}
|
|
378
422
|
try {
|
|
379
423
|
const mode = compilation?.options?.mode || 'development';
|
|
380
424
|
if ('development' === mode) {
|
|
@@ -398,16 +442,19 @@ exports.modules = {
|
|
|
398
442
|
getInfo: async ()=>cdpExtensionController.getInfoBestEffort(),
|
|
399
443
|
browserVersionLine: plugin.browserVersionLine
|
|
400
444
|
});
|
|
401
|
-
} else if ('production' === mode)
|
|
402
|
-
|
|
403
|
-
outPath: extensionOutputPath,
|
|
404
|
-
browserVersionLine: plugin.browserVersionLine,
|
|
405
|
-
runtime: {
|
|
445
|
+
} else if ('production' === mode) {
|
|
446
|
+
const runtime = extensionControllerInfo ? {
|
|
406
447
|
extensionId: extensionControllerInfo.extensionId,
|
|
407
448
|
name: extensionControllerInfo.name,
|
|
408
449
|
version: extensionControllerInfo.version
|
|
409
|
-
}
|
|
410
|
-
|
|
450
|
+
} : void 0;
|
|
451
|
+
await (0, banner.M)({
|
|
452
|
+
browser: plugin.browser,
|
|
453
|
+
outPath: extensionOutputPath,
|
|
454
|
+
browserVersionLine: plugin.browserVersionLine,
|
|
455
|
+
runtime
|
|
456
|
+
});
|
|
457
|
+
}
|
|
411
458
|
} catch (bannerErr) {
|
|
412
459
|
if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.warn(messages.$wD(String(bannerErr)));
|
|
413
460
|
try {
|
package/dist/547.cjs
CHANGED
|
@@ -6859,6 +6859,53 @@ Set background.noDynamicEntryWarning to true to disable this warning.
|
|
|
6859
6859
|
manifestPath,
|
|
6860
6860
|
browser: this.browser
|
|
6861
6861
|
});
|
|
6862
|
+
const extraHtmlEntries = (()=>{
|
|
6863
|
+
try {
|
|
6864
|
+
const manifestDir = external_path_.dirname(manifestPath);
|
|
6865
|
+
const raw = JSON.parse(external_fs_.readFileSync(manifestPath, 'utf-8'));
|
|
6866
|
+
const browser = String(this.browser || '').toLowerCase();
|
|
6867
|
+
const prefixes = 'chromium-based' === browser || 'chromium' === browser ? [
|
|
6868
|
+
'chromium',
|
|
6869
|
+
'chrome'
|
|
6870
|
+
] : 'edge' === browser ? [
|
|
6871
|
+
'edge'
|
|
6872
|
+
] : 'firefox' === browser || 'gecko-based' === browser ? [
|
|
6873
|
+
'firefox'
|
|
6874
|
+
] : [
|
|
6875
|
+
'chrome'
|
|
6876
|
+
];
|
|
6877
|
+
const candidates = [
|
|
6878
|
+
{
|
|
6879
|
+
key: 'side_panel',
|
|
6880
|
+
prop: 'default_path',
|
|
6881
|
+
entry: 'sidebar/index'
|
|
6882
|
+
},
|
|
6883
|
+
{
|
|
6884
|
+
key: 'sidebar_action',
|
|
6885
|
+
prop: 'default_panel',
|
|
6886
|
+
entry: 'sidebar/index'
|
|
6887
|
+
}
|
|
6888
|
+
];
|
|
6889
|
+
const entries = {};
|
|
6890
|
+
for (const { key, prop, entry } of candidates){
|
|
6891
|
+
const direct = raw?.[key];
|
|
6892
|
+
if (direct && 'string' == typeof direct[prop]) {
|
|
6893
|
+
const resolved = external_path_.resolve(manifestDir, direct[prop]);
|
|
6894
|
+
if (external_fs_.existsSync(resolved)) entries[entry] = resolved;
|
|
6895
|
+
}
|
|
6896
|
+
for (const prefix of prefixes){
|
|
6897
|
+
const prefixed = raw?.[`${prefix}:${key}`];
|
|
6898
|
+
if (prefixed && 'string' == typeof prefixed[prop]) {
|
|
6899
|
+
const resolved = external_path_.resolve(manifestDir, prefixed[prop]);
|
|
6900
|
+
if (external_fs_.existsSync(resolved)) entries[entry] = resolved;
|
|
6901
|
+
}
|
|
6902
|
+
}
|
|
6903
|
+
}
|
|
6904
|
+
return entries;
|
|
6905
|
+
} catch {
|
|
6906
|
+
return {};
|
|
6907
|
+
}
|
|
6908
|
+
})();
|
|
6862
6909
|
const specialFoldersData = getSpecialFoldersDataForCompiler(compiler);
|
|
6863
6910
|
new ManifestPlugin({
|
|
6864
6911
|
browser: this.browser,
|
|
@@ -6875,6 +6922,7 @@ Set background.noDynamicEntryWarning to true to disable this warning.
|
|
|
6875
6922
|
browser: this.browser,
|
|
6876
6923
|
includeList: {
|
|
6877
6924
|
...manifestFieldsData.html,
|
|
6925
|
+
...extraHtmlEntries,
|
|
6878
6926
|
...specialFoldersData.pages
|
|
6879
6927
|
}
|
|
6880
6928
|
}).apply(compiler);
|
|
@@ -23,4 +23,4 @@
|
|
|
23
23
|
██████████████████████████████████████████████████████████
|
|
24
24
|
██████████████████████████████████████████████████████████
|
|
25
25
|
MIT (c) ${new Date().getFullYear()} - Cezar Augusto and the Extension.js Authors.
|
|
26
|
-
`,"background: transparent; color: #0971fe; "),!t){try{await o()}catch{try{chrome.tabs.create({url:a})}catch{}}return}let n=String(t.url||"");if(n.startsWith(`${r}://newtab`)||n.startsWith(`${r}://welcome`))await o();else{let e;e="chrome://extensions/",chrome.tabs.query({url:e},r=>{r.length>0||chrome.tabs.create({url:e,active:!1},function(e){chrome.tabs.move(e.id,{index:0},()=>{setTimeout(()=>{chrome.tabs.update(t.id,{active:!0})},500)})})})}})}catch{}}r.rv=()=>"1.7.
|
|
26
|
+
`,"background: transparent; color: #0971fe; "),!t){try{await o()}catch{try{chrome.tabs.create({url:a})}catch{}}return}let n=String(t.url||"");if(n.startsWith(`${r}://newtab`)||n.startsWith(`${r}://welcome`))await o();else{let e;e="chrome://extensions/",chrome.tabs.query({url:e},r=>{r.length>0||chrome.tabs.create({url:e,active:!1},function(e){chrome.tabs.move(e.id,{index:0},()=>{setTimeout(()=>{chrome.tabs.update(t.id,{active:!0})},500)})})})}})}catch{}}r.rv=()=>"1.7.5",r.ruid="bundler=rspack@1.7.5",chrome.runtime.onStartup.addListener(async()=>{await c()}),chrome.runtime.onInstalled.addListener(async()=>{await c()})})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var e={},r={};function o(t){var s=r[t];if(void 0!==s)return s.exports;var n=r[t]={exports:{}};return e[t](n,n.exports,o),n.exports}o.rv=()=>"1.7.
|
|
1
|
+
(()=>{var e={},r={};function o(t){var s=r[t];if(void 0!==s)return s.exports;var n=r[t]={exports:{}};return e[t](n,n.exports,o),n.exports}o.rv=()=>"1.7.5",o.ruid="bundler=rspack@1.7.5";try{chrome.devtools?.panels.create("Extension Logs","images/logo.png","pages/centralized-logger.html")}catch{console.error("[Extension.js] Failed to create devtools panel")}})();
|