@@ -26,6 +26,7 @@ import PermissionVerify from "./permission_verify";
2626import { SystemConfig } from "@App/pkg/config/config" ;
2727import { ResourceService } from "./resource" ;
2828import { LocalStorageDAO } from "@App/app/repo/localStorage" ;
29+ import Logger from "@App/app/logger/logger" ;
2930
3031// 为了优化性能,存储到缓存时删除了code、value与resource
3132export interface ScriptMatchInfo extends ScriptRunResouce {
@@ -299,6 +300,7 @@ export class RuntimeService {
299300 scripts : enableScript ,
300301 } ) ;
301302
303+ console . log ( "pageLoad" , enableScript ) ;
302304 return Promise . resolve ( { flag : scriptFlag , scripts : enableScript } ) ;
303305 }
304306
@@ -323,13 +325,29 @@ export class RuntimeService {
323325 let messageFlag = await this . getMessageFlag ( ) ;
324326 if ( ! messageFlag ) {
325327 messageFlag = await this . messageFlag ( ) ;
326- const injectJs = await fetch ( "inject.js" ) . then ( ( res ) => res . text ( ) ) ;
328+ const injectJs = await fetch ( "/src/ inject.js" ) . then ( ( res ) => res . text ( ) ) ;
327329 // 替换ScriptFlag
328330 const code = `(function (MessageFlag) {\n${ injectJs } \n})('${ messageFlag } ')` ;
329331 chrome . userScripts . configureWorld ( {
330332 csp : "script-src 'self' 'unsafe-inline' 'unsafe-eval' *" ,
331333 messaging : true ,
332334 } ) ;
335+ try {
336+ // 注册content.js
337+ await chrome . scripting . registerContentScripts ( [
338+ {
339+ id : "scriptcat-content" ,
340+ js : [ "/src/content.js" ] ,
341+ matches : [ "<all_urls>" ] ,
342+ allFrames : true ,
343+ runAt : "document_start" ,
344+ world : "ISOLATED" ,
345+ } ,
346+ ] ) ;
347+ } catch ( e ) {
348+ LoggerCore . logger ( ) . error ( "update inject.js error" , Logger . E ( e ) ) ;
349+ throw e ;
350+ }
333351 const scripts : chrome . userScripts . RegisteredUserScript [ ] = [
334352 {
335353 id : "scriptcat-inject" ,
@@ -339,33 +357,20 @@ export class RuntimeService {
339357 world : "MAIN" ,
340358 runAt : "document_start" ,
341359 } ,
342- // 注册content
343- {
344- id : "scriptcat-content" ,
345- js : [ { file : "src/content.js" } ] ,
346- matches : [ "<all_urls>" ] ,
347- allFrames : true ,
348- runAt : "document_start" ,
349- world : "USER_SCRIPT" ,
350- } ,
351360 ] ;
352361 try {
353362 // 如果使用getScripts来判断, 会出现找不到的问题
354363 // 另外如果使用
355364 await chrome . userScripts . register ( scripts ) ;
356365 } catch ( e : any ) {
357- LoggerCore . logger ( ) . error ( "register inject.js error" , {
358- error : e ,
359- } ) ;
366+ LoggerCore . logger ( ) . error ( "register inject.js error" , Logger . E ( e ) ) ;
360367 if ( e . message ?. indexOf ( "Duplicate script ID" ) !== - 1 ) {
361368 // 如果是重复注册, 则更新
362- chrome . userScripts . update ( scripts , ( ) => {
363- if ( chrome . runtime . lastError ) {
364- LoggerCore . logger ( ) . error ( "update inject.js error" , {
365- error : chrome . runtime . lastError ,
366- } ) ;
367- }
368- } ) ;
369+ try {
370+ await chrome . userScripts . update ( scripts ) ;
371+ } catch ( e ) {
372+ LoggerCore . logger ( ) . error ( "update inject.js error" , Logger . E ( e ) ) ;
373+ }
369374 }
370375 }
371376 }
@@ -536,21 +541,17 @@ export class RuntimeService {
536541 } ,
537542 } ) ;
538543 if ( res . length > 0 ) {
539- await chrome . userScripts . update ( [ registerScript ] , ( ) => {
540- if ( chrome . runtime . lastError ) {
541- logger . error ( "update registerScript error" , {
542- error : chrome . runtime . lastError ,
543- } ) ;
544- }
545- } ) ;
544+ try {
545+ await chrome . userScripts . update ( [ registerScript ] ) ;
546+ } catch ( e ) {
547+ logger . error ( "update registerScript error" , Logger . E ( e ) ) ;
548+ }
546549 } else {
547- await chrome . userScripts . register ( [ registerScript ] , ( ) => {
548- if ( chrome . runtime . lastError ) {
549- logger . error ( "registerScript error" , {
550- error : chrome . runtime . lastError ,
551- } ) ;
552- }
553- } ) ;
550+ try {
551+ await chrome . userScripts . register ( [ registerScript ] ) ;
552+ } catch ( e ) {
553+ logger . error ( "registerScript error" , Logger . E ( e ) ) ;
554+ }
554555 }
555556 await Cache . getInstance ( ) . set ( "registryScript:" + script . uuid , true ) ;
556557 }
0 commit comments