Tôi đang sử dụng Firefox Addon SDK để tạo thứ gì đó giám sát và hiển thị lưu lượng truy cập HTTP trong trình duyệt. Tương tự như HTTPFox hoặc Live HTTP Headers. Tôi quan tâm đến việc xác định tab nào trong trình duyệt (nếu có) đã tạo yêu cầuXác định tab đã thực hiện yêu cầu trong Firefox Addon SDK
Sử dụng observer-service Tôi đang theo dõi các sự kiện "http-on-checking-phản hồi". Tôi có mã như sau để xác định nsIDomWindow đã tạo yêu cầu:
const observer = require("observer-service"),
{Ci} = require("chrome");
function getTabFromChannel(channel) {
try {
var noteCB= channel.notificationCallbacks ? channel.notificationCallbacks : channel.loadGroup.notificationCallbacks;
if (!noteCB) { return null; }
var domWin = noteCB.getInterface(Ci.nsIDOMWindow);
return domWin.top;
} catch (e) {
dump(e + "\n");
return null;
}
}
function logHTTPTraffic(sub, data) {
sub.QueryInterface(Ci.nsIHttpChannel);
var ab = getTabFromChannel(sub);
console.log(tab);
}
observer.add("http-on-examine-response", logHTTPTraffic);
Chủ yếu là giường cũi từ documentation for how to identify the browser that generated the request. Một số cũng được lấy từ phần bổ trợ Firefox Google PageSpeed.
Có cách nào được khuyến nghị hoặc được ưu tiên để đi từ đối tượng nsIDOMWindowdomWin
đến yếu tố tab trong mô-đun SDK tabs?
Tôi đã xem xét điều gì đó đột phá như quét danh sách các tab cho một URL có URL khớp với domWin, nhưng sau đó tôi phải lo lắng về nhiều tab có cùng URL.
Tuyệt vời hoạt động tuyệt vời! Đoán tôi cần phải theo dõi nguồn và tài liệu. – Rob