Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 61 additions & 6 deletions chrome/js/background.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,57 @@ var websocket_timeout = 0;
var limit_connect = 1; // 断线重连次数
var count = 0; // 重连计数

function Emitter() {
this.loggers = [];
this.fns_map = {};
}

Emitter.prototype.emit = function(logger, fn) {
if(this.loggers.indexOf(logger) >= 0) {
fn();
} else {
if(!this.fns_map[logger]) {
this.fns_map[logger] = [];
}
this.fns_map[logger].push(fn);
}
};

Emitter.prototype.setLogger = function(logger) {
this.loggers.push(logger);
if(this.fns_map[logger]) {
this.fns_map[logger].forEach(function(fn){fn()});
}
this.fns_map[logger] = [];
}

Emitter.prototype.unsetLogger = function(logger) {
var loggers = [];
this.loggers.forEach(function(value){
if(value != logger) {
loggers.push(value);
}
});
this.loggers = loggers;
}

var evt = new Emitter();

chrome.extension.onMessage.addListener(
function(method, sender, sendResponse) {
switch(method) {
case 'setLogger':
evt.setLogger(sender.tab.id);
break;
case 'unsetLogger':
evt.unsetLogger(sender.tab.id);
break;
default:
break;
}
}
);

function ws_init() {
if (websocket) {
//避免重复监听
Expand Down Expand Up @@ -103,17 +154,17 @@ function ws_init() {
return;
}
var client_id = localStorage.getItem("client_id");

//判断是否有强制日志
if (client_id && data.force_client_id == client_id) {
//将强制日志输出到当前的tab页
chrome.tabs.query({ currentWindow: true, active: true },
function(tabArray) {
if (tabArray && tabArray[0]) {
//延迟保证日志每次都能记录
setTimeout(function() {
//延迟保证日志每次都能记录evt.emit(tabArray[0].id, function(){
check_error();
chrome.tabs.sendMessage(tabArray[0].id, data.logs);
}, 100);
});
}
}
);
Expand All @@ -124,11 +175,10 @@ function ws_init() {
//不是当前用户的日志不显示。
return;
}
//延迟保证日志每次都能记录
setTimeout(function() {
//延迟保证日志每次都能记录evt.emit(parseInt(data.tabid), function(){
check_error();
chrome.tabs.sendMessage(parseInt(data.tabid), data.logs);
}, 100);
});
};
}

Expand Down Expand Up @@ -161,6 +211,11 @@ chrome.webRequest.onBeforeSendHeaders.addListener(
function(details) {
var header = "tabid=" + details.tabId;
var client_id = localStorage.getItem("client_id");
var open = localStorage.getItem("open");

if(open == 'false' || open == null) {
return { requestHeaders: details.requestHeaders };
}

if (!client_id) {
client_id = "";
Expand Down
11 changes: 10 additions & 1 deletion chrome/js/log.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@
* github: https://github.com/luofei614/SocketLog
* @author luofei614<weibo.com/luofei614>
*/

document.addEventListener("DOMContentLoaded", function(){
document.body.onbeforeunload = function() {
chrome.extension.sendMessage('unsetLogger');
}
}, true);

chrome.extension.onMessage.addListener(
function(logs) {
if ("object" != typeof logs) {
Expand All @@ -24,4 +31,6 @@ chrome.extension.onMessage.addListener(
}
});
}
);
);

chrome.extension.sendMessage('setLogger');
2 changes: 1 addition & 1 deletion chrome/js/popup.js
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ function save() {
viewStatusNotic(status);
return false;
}
if (!ipOk || !domainOk) {
if (!ipOk && !domainOk) {
alert('不是合法的 IP 地址或域名');
var status = 'error';
viewStatusNotic(status);
Expand Down