test
Some checks failed
test / Run tests (push) Failing after 6s
build / Build (push) Failing after 9s

This commit is contained in:
2025-03-19 18:05:54 +08:00
parent c2219db73e
commit fd2aba4286
31 changed files with 584 additions and 199 deletions

View File

@ -1,6 +1,6 @@
import { Group, MessageConnect } from "@Packages/message/server";
export class GMApi {
export default class GMApi {
constructor(private group: Group) {}
xmlHttpRequest(params: GMSend.XHRDetails, con: MessageConnect | null) {

View File

@ -6,7 +6,7 @@ import { WindowMessage } from "@Packages/message/window_message";
import { ExtensionMessageSend } from "@Packages/message/extension_message";
import { ServiceWorkerClient } from "../service_worker/client";
import { sendMessage } from "@Packages/message/client";
import { GMApi } from "./gm_api";
import GMApi from "./gm_api";
// offscreen环境的管理器
export class OffscreenManager {

View File

@ -1,10 +1,9 @@
import LoggerCore from "@App/app/logger/core";
import Logger from "@App/app/logger/logger";
import { Script, ScriptDAO } from "@App/app/repo/scripts";
import { Group, MessageConnect, MessageSender } from "@Packages/message/server";
import { Group, MessageConnect, MessageSend, MessageSender } from "@Packages/message/server";
import { ValueService } from "@App/app/service/service_worker/value";
import PermissionVerify from "./permission_verify";
import { ServiceWorkerMessageSend } from "@Packages/message/window_message";
import { connect } from "@Packages/message/client";
import Cache, { incr } from "@App/app/cache";
import { unsafeHeaders } from "@App/runtime/utils";
@ -35,7 +34,7 @@ export default class GMApi {
constructor(
private group: Group,
private sender: ServiceWorkerMessageSend,
private sender: MessageSend,
private value: ValueService
) {
this.logger = LoggerCore.logger().with({ service: "runtime/gm_api" });

View File

@ -1,7 +1,6 @@
import { Server } from "@Packages/message/server";
import { MessageQueue } from "@Packages/message/message_queue";
import { ScriptService } from "./script";
import { ExtensionMessage } from "@Packages/message/extension_message";
import { ResourceService } from "./resource";
import { ValueService } from "./value";
import { RuntimeService } from "./runtime";
@ -11,11 +10,11 @@ export type InstallSource = "user" | "system" | "sync" | "subscribe" | "vscode";
// service worker的管理器
export default class ServiceWorkerManager {
private api: Server = new Server(new ExtensionMessage());
private mq: MessageQueue = new MessageQueue(this.api);
private sender: ServiceWorkerMessageSend = new ServiceWorkerMessageSend();
constructor(
private api: Server,
private mq: MessageQueue,
private sender: ServiceWorkerMessageSend
) {}
async initManager() {
this.api.on("preparationOffscreen", async () => {
@ -32,79 +31,5 @@ export default class ServiceWorkerManager {
script.init();
const runtime = new RuntimeService(this.api.group("runtime"), this.sender, this.mq, value);
runtime.init();
// 测试xhr
// setTimeout(() => {
// chrome.tabs.query(
// {
// url: chrome.runtime.getURL("src/offscreen.html"),
// },
// (result) => {
// console.log(result);
// }
// );
// }, 2000);
// group.on("testGmApi", () => {
// console.log(chrome.runtime.getURL("src/offscreen.html"));
// return new Promise((resolve) => {
// chrome.tabs.query({}, (tabs) => {
// const excludedTabIds: number[] = [];
// tabs.forEach((tab) => {
// if (tab.id) {
// excludedTabIds.push(tab.id);
// }
// });
// chrome.declarativeNetRequest.updateSessionRules(
// {
// removeRuleIds: [100],
// addRules: [
// {
// id: 100,
// priority: 1,
// action: {
// type: chrome.declarativeNetRequest.RuleActionType.MODIFY_HEADERS,
// requestHeaders: [
// {
// header: "cookie",
// operation: chrome.declarativeNetRequest.HeaderOperation.SET,
// value: "test=1234314",
// },
// {
// header: "origin",
// operation: chrome.declarativeNetRequest.HeaderOperation.SET,
// value: "https://learn.scriptcat.org",
// },
// {
// header: "user-agent",
// operation: chrome.declarativeNetRequest.HeaderOperation.SET,
// value: "test",
// },
// ],
// },
// condition: {
// resourceTypes: [chrome.declarativeNetRequest.ResourceType.XMLHTTPREQUEST],
// urlFilter: "^https://scriptcat.org/zh-CN$",
// excludedTabIds: excludedTabIds,
// },
// },
// ],
// },
// () => {
// resolve(1);
// }
// );
// });
// });
// });
// chrome.webRequest.onHeadersReceived.addListener(
// (details) => {
// console.log(details);
// },
// {
// urls: ["<all_urls>"],
// types: ["xmlhttprequest"],
// },
// ["responseHeaders", "extraHeaders"]
// );
}
}

View File

@ -1,17 +1,16 @@
import { MessageQueue } from "@Packages/message/message_queue";
import { ScriptEnableCallbackValue } from "./client";
import { Group } from "@Packages/message/server";
import { Group, MessageSend } from "@Packages/message/server";
import { Script, SCRIPT_STATUS_ENABLE, SCRIPT_TYPE_NORMAL, ScriptAndCode, ScriptDAO } from "@App/app/repo/scripts";
import { ValueService } from "./value";
import GMApi from "./gm_api";
import { ServiceWorkerMessageSend } from "@Packages/message/window_message";
export class RuntimeService {
scriptDAO: ScriptDAO = new ScriptDAO();
constructor(
private group: Group,
private sender: ServiceWorkerMessageSend,
private sender: MessageSend,
private mq: MessageQueue,
private value: ValueService
) {}