@@ -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