Skip to content

Commit 28717cd

Browse files
committed
checkUserScriptsAvailable 兼容 Vivaldi
1 parent a34923e commit 28717cd

1 file changed

Lines changed: 11 additions & 12 deletions

File tree

src/pkg/utils/utils.ts

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -178,23 +178,22 @@ export async function checkUserScriptsAvailable() {
178178
// Method call which throws if API permission or toggle is not enabled.
179179
chrome.userScripts;
180180
const ret: chrome.userScripts.RegisteredUserScript[] | any = await chrome.userScripts.getScripts({
181-
ids: ["scriptcat-content"],
181+
ids: ["scriptcat-content", "undefined-id-3"],
182182
});
183-
// 返回一个阵列的话表示API可使用 (但API内部处理未必有给予扩充权限)
184-
if (ret !== undefined && ret !== null && typeof ret[Symbol.iterator] === "function") {
185-
//
186-
} else {
183+
// 返回结果不是阵列的话表示API不可使用
184+
if (ret === undefined || ret === null || typeof ret[Symbol.iterator] !== "function") {
187185
return false;
188186
}
189187

190-
const scripts = ret as chrome.userScripts.RegisteredUserScript[];
191-
if (scripts.length > 0) {
192-
// API内部处理实际给予扩充权限才会有返回
188+
if (ret[0]) {
189+
// API内部处理实际给予扩充权限才会有返回Script
190+
// 含有 "scriptcat-content" 或 "undefined-id-3"
193191
return true;
194192
} else {
195-
// Chrome MV3 的一部份浏览器没正确处理 MV3 UserScripts API 权限问题 (API内部处理没有给予扩充权限)
196-
// 处理 Vivaldi 兼容
197-
// Vivaldi 会无法注册 (1. register 报错)
193+
// 没有 "scriptcat-content" 和 "undefined-id-3"
194+
// 进行 "undefined-id-3" 的注册反注册测试
195+
// Chrome MV3 的一部份浏览器(如 Vivaldi )没正确处理 MV3 UserScripts API 权限问题 (API内部处理没有给予扩充权限)
196+
// 此时会无法注册 (1. register 报错)
198197
await chrome.userScripts.register([
199198
{
200199
id: "undefined-id-3",
@@ -203,7 +202,7 @@ export async function checkUserScriptsAvailable() {
203202
world: "USER_SCRIPT",
204203
},
205204
]);
206-
// 清掉测试内容 (2. 如没有注入undefined-id-3成功,unregister 报错)
205+
// 清掉测试内容 (2. 如没有注入 undefined-id-3 成功,因脚本id不存在 unregister 报错)
207206
await chrome.userScripts.unregister({ ids: ["undefined-id-3"] });
208207
return true;
209208
}

0 commit comments

Comments
 (0)