-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdevtools.js
More file actions
37 lines (33 loc) · 1.61 KB
/
devtools.js
File metadata and controls
37 lines (33 loc) · 1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Can use
// chrome.devtools.*
// chrome.extension.*
// Create a tab in the devtools area
chrome.devtools.panels.create("Network Timestamps", "toast.png", "panel.html", function (panel) { });
chrome.devtools.network.onRequestFinished.addListener(
function (request) {
if (!request.request.url.includes('chrome-extension')) {
const timeStamp = `${request.startedDateTime.split(/T(.*)?Z$/)[1]}`
const [_ignore, protocol, uri] = request.request.url.split(/^(.*?)\:\/?\/?/);
chrome.devtools.inspectedWindow.eval(`console.log("${timeStamp} %c${(uri && uri.length > 254) ? uri.slice(0, 254) : uri} %c[${protocol}]", "color:rgb(99, 179, 248)", "color:#FFEFD5")`);
request.getContent((body, encoding) => {
let content;
try {
content = (encoding === 'base64') ? body : btoa(body);
} catch (err) {
content = btoa(encodeURIComponent(body));
const issue = {message: err.message, timeStamp, protocol, uri, request:request.request, response: request.response, content};
console.error(issue);
}
chrome.extension.sendMessage({ timeStamp, protocol, uri, request: request.request, response: request.response, content });
});
/* if (request.url.includes('mp4') {
request.getContent(data => {
chrome.extension.sendMessage({data})
})
} */
console.dir(request);
}
}
);
// want request.request.url
// also request.startedDateTime