xhr测试
Some checks failed
build / Build (push) Failing after 10s
test / Run tests (push) Failing after 10s
Some checks failed
build / Build (push) Failing after 10s
test / Run tests (push) Failing after 10s
This commit is contained in:
@ -20,5 +20,5 @@ export function proxyUpdateRunStatus(
|
||||
msg: WindowMessage,
|
||||
data: { uuid: string; runStatus: SCRIPT_RUN_STATUS; error?: any; nextruntime?: number }
|
||||
) {
|
||||
return sendMessageToServiceWorker(msg, "updateRunStatus", data);
|
||||
return sendMessageToServiceWorker(msg, "serviceWorker/script/updateRunStatus", data);
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ export class OffscreenManager {
|
||||
return sendMessage(this.extensionMessage, data.action, data.data);
|
||||
}
|
||||
|
||||
initManager() {
|
||||
async initManager() {
|
||||
// 监听消息
|
||||
const group = this.api.group("offscreen");
|
||||
this.windowApi.on("logger", this.logger.bind(this));
|
||||
@ -53,5 +53,19 @@ export class OffscreenManager {
|
||||
script.init();
|
||||
// 转发gm api请求
|
||||
forwardMessage("serviceWorker/runtime/gmApi", this.windowApi, this.extensionMessage);
|
||||
// 处理gm xhr请求
|
||||
this.api.on("gmXhr", (data) => {
|
||||
console.log("123");
|
||||
});
|
||||
// 测试xhr
|
||||
const ret = await sendMessage(this.extensionMessage, "serviceWorker/testGmApi");
|
||||
console.log("test xhr", ret);
|
||||
const xhr = new XMLHttpRequest();
|
||||
xhr.onload = () => {
|
||||
console.log(xhr);
|
||||
};
|
||||
xhr.open("GET", "https://scriptcat.org/zh-CN");
|
||||
|
||||
xhr.send();
|
||||
}
|
||||
}
|
||||
|
@ -31,5 +31,79 @@ export default class ServiceWorkerManager {
|
||||
script.init();
|
||||
const runtime = new RuntimeService(group.group("runtime"), 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"]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -236,12 +236,17 @@ export class ScriptService {
|
||||
|
||||
async updateRunStatus(params: { uuid: string; runStatus: SCRIPT_RUN_STATUS; error?: string; nextruntime?: number }) {
|
||||
this.mq.publish("updateRunStatus", params);
|
||||
return this.scriptDAO.update(params.uuid, {
|
||||
runStatus: params.runStatus,
|
||||
lastruntime: new Date().getTime(),
|
||||
error: params.error,
|
||||
nextruntime: params.nextruntime,
|
||||
});
|
||||
if (
|
||||
(await this.scriptDAO.update(params.uuid, {
|
||||
runStatus: params.runStatus,
|
||||
lastruntime: new Date().getTime(),
|
||||
error: params.error,
|
||||
nextruntime: params.nextruntime,
|
||||
})) === false
|
||||
) {
|
||||
return Promise.reject("update error");
|
||||
}
|
||||
return Promise.resolve(true);
|
||||
}
|
||||
|
||||
getCode(uuid: string) {
|
||||
|
Reference in New Issue
Block a user