mirror of
https://git.mirrors.martin98.com/https://github.com/cilame/v_jstools
synced 2025-08-14 03:55:56 +08:00
add
This commit is contained in:
parent
c5cf497e56
commit
494aeba3a0
@ -10,11 +10,65 @@
|
|||||||
|
|
||||||
|
|
||||||
chrome.contextMenus.create({
|
chrome.contextMenus.create({
|
||||||
title: "打开 v_jstools 配置页面",
|
title: "打开 v_jstools 动态调试",
|
||||||
contexts: ['all'],
|
contexts: ['all'],
|
||||||
onclick: function(){
|
onclick: function(){
|
||||||
chrome.tabs.create({
|
AttachDebugger();
|
||||||
url: chrome.extension.getURL('options.html')
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
function sendCommand(method, params, source, chainfun){
|
||||||
|
chrome.debugger.sendCommand(source, method, params, result => {
|
||||||
|
if (chrome.runtime.lastError) {
|
||||||
|
console.error('chrome.runtime.lastError', chrome.runtime.lastError)
|
||||||
|
} else {
|
||||||
|
if (chainfun){
|
||||||
|
chainfun(result)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
chrome.debugger.onEvent.addListener(function (source, method, params){
|
||||||
|
switch(method){
|
||||||
|
case "Fetch.requestPaused":
|
||||||
|
console.log("xmFetch","Fetch.requestPaused", params.request.url)
|
||||||
|
var itheaders = params.responseHeaders;
|
||||||
|
if (itheaders.find(v => v.name == "Location")) {
|
||||||
|
sendCommand("Fetch.continueRequest", { requestId: params.requestId, url: itheaders.value }, source);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ((params.responseStatusCode || params.responseErrorReason)) {
|
||||||
|
if (params.responseErrorReason) {
|
||||||
|
sendCommand("Fetch.failRequest", { requestId: params.requestId, errorReason: params.responseErrorReason }, source);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
sendCommand("Fetch.getResponseBody", { requestId: params.requestId }, source, function(result){
|
||||||
|
if (result.body !== undefined){
|
||||||
|
var rescode = atob(result.body) // 收到的也是 base64 的代码,base64 解一下就是原始代码,对这个代码处理一下后续再传入 body
|
||||||
|
console.log(rescode)
|
||||||
|
}
|
||||||
|
sendCommand("Fetch.fulfillRequest", {
|
||||||
|
requestId: params.requestId, responseCode: params.responseStatusCode, responseHeaders: params.responseHeaders,
|
||||||
|
body: result.body, // 这里只能传 base64(指定代码)
|
||||||
|
}, source);
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
var attached = false;
|
||||||
|
function AttachDebugger() {
|
||||||
|
if (attached){ return }
|
||||||
|
attached = true
|
||||||
|
chrome.tabs.query(
|
||||||
|
{ active: true, currentWindow: true },
|
||||||
|
function (tabs) {
|
||||||
|
var tab = { tabId: tabs[0].id };
|
||||||
|
chrome.debugger.attach(tab, "1.2", function () {
|
||||||
|
console.log('attached debugger.')
|
||||||
|
sendCommand("Fetch.enable", { patterns: [
|
||||||
|
{urlPattern:"*",resourceType:"Script",requestStage:"Response"} // 监听类型,目前主要监听 Script
|
||||||
|
] }, tab);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
@ -19,23 +19,11 @@
|
|||||||
"all_frames": true
|
"all_frames": true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
"options_page": "options.html",
|
"options_page": "options.html",
|
||||||
"options_ui": {
|
"options_ui": {
|
||||||
"chrome_style": false,
|
"chrome_style": false,
|
||||||
"open_in_tab": true,
|
"open_in_tab": true,
|
||||||
"page": "options.html"
|
"page": "options.html"
|
||||||
},
|
},
|
||||||
|
|
||||||
// 暂时用不上
|
|
||||||
// "commands": {
|
|
||||||
// "attach-debugger": {
|
|
||||||
// "suggested_key": {
|
|
||||||
// "default": "Alt+Shift+D"
|
|
||||||
// },
|
|
||||||
// "description": "Attach"
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
|
|
||||||
"manifest_version": 2
|
"manifest_version": 2
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user