Skip to content

Commit

Permalink
switch to single quotes, shorten some lines, improve readability and …
Browse files Browse the repository at this point in the history
…other JSHint suggestions
  • Loading branch information
localjo committed Jun 27, 2014
1 parent efac0d6 commit 5832802
Show file tree
Hide file tree
Showing 5 changed files with 73 additions and 65 deletions.
3 changes: 2 additions & 1 deletion .jshintrc
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@
"quotmark": true,
"trailing": true,
"undef": true,
"unused": true
"unused": true,
"node": true
}
48 changes: 26 additions & 22 deletions background.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,26 @@
var tabInspected;
var ports = [];
chrome.runtime.onConnect.addListener(function (port) {
if (port.name !== "devtools") return;
ports.push(port);
port.onDisconnect.addListener(function () {
var i = ports.indexOf(port);
if (i !== -1) ports.splice(i, 1);
});
port.onMessage.addListener(function (msg) {
console.log("Background.js Recieved Message", msg);
processBackgroundIncomingMessage(msg);
});
if (port.name !== 'devtools') return;
ports.push(port);
port.onDisconnect.addListener(function () {
var i = ports.indexOf(port);
if (i !== -1) ports.splice(i, 1);
});
port.onMessage.addListener(function (msg) {
console.log('Background.js Recieved Message', msg);
processBackgroundIncomingMessage(msg);
});
});

chrome.tabs.onUpdated.addListener(function (tabId, changes) {
if (tabId === tabInspected && changes.status === "complete") {
if (tabId === tabInspected && changes.status === 'complete') {
getJsonResource(tabId);
}
});

function processBackgroundIncomingMessage(msg) {
console.log("Processing Message in Background", msg);
console.log('Processing Message in Background', msg);
if (msg.tabId) {
tabInspected = msg.tabId;
getJsonResource(tabInspected);
Expand All @@ -37,31 +37,35 @@ function processBackgroundIncomingMessage(msg) {

// Function to send a message to main.js
function notifyDevtools(msg) {
console.log("Background.js Sending Message", msg);
ports.forEach(function (port) {
port.postMessage(msg);
});
console.log('Background.js Sending Message', msg);
ports.forEach(function (port) {
port.postMessage(msg);
});
}

function getJsonResource(tabID) {
chrome.tabs.get(tabID, function(tab) {
var jsonResourceURL = tab.url+".json";
var jsonResourceURL = tab.url+'.json';
var xhr = new XMLHttpRequest();
xhr.open("GET", jsonResourceURL, true);
xhr.open('GET', jsonResourceURL, true);
xhr.onreadystatechange = function() {
var isSolidus = (xhr.getResponseHeader("X-Powered-By").substring(0, 7) === "Express");
if (xhr.readyState === 4 && isSolidus) { // Check for completed Solidus response
var isSolidus, errMsg;
isSolidus = (xhr.getResponseHeader('X-Powered-By').match(/Express/i));
if (xhr.readyState === 4 && isSolidus) { // Is complete Solidus response?
if(xhr.status !== 200){ // Check that Solidus response didn't fail
notifyDevtools(JSON.parse('{"error":"Failed to get Solidus page context."}'));
errMsg = 'Failed to get Solidus context. Status: ' + xhr.status;
notifyDevtools(JSON.parse('{"error":"' + errMsg + '"}'));
} else {
try {
// Send Solidus JSON to devpanel
notifyDevtools(JSON.parse(xhr.responseText));
} catch (e) {
notifyDevtools(JSON.parse('{"error":"' + e + '"}'));
}
}
} else {
notifyDevtools(JSON.parse('{"error":"Looks like you\'re not inspecting a Solidus Page."}'));
errMsg = 'Looks like you\'re not inspecting a Solidus Page.';
notifyDevtools(JSON.parse('{"error":"' + errMsg + '"}'));
}
};
xhr.send();
Expand Down
10 changes: 5 additions & 5 deletions main.html
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<!doctype html>
<html>
<head>
<script src="main.js"></script>
</head>
<body>
</body>
<head>
<script src="main.js"></script>
</head>
<body>
</body>
</html>
58 changes: 29 additions & 29 deletions main.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,40 +3,40 @@
// chrome.devtools.*
// chrome.extension.*

chrome.devtools.panels.create("Solidus", "solidus.png", "views/devpanel.html",
chrome.devtools.panels.create('Solidus', 'solidus.png', 'views/devpanel.html',
function(panel){

var _window;
var data = [];
var port = chrome.runtime.connect({name: "devtools"});
var _window;
var data = [];
var port = chrome.runtime.connect({name: 'devtools'});

port.onMessage.addListener(function(msg) {
port.onMessage.addListener(function(msg) {

console.log("Main.js Recieved Message", msg);
// Send message to devpanel, if it exists.
// If there is no panel yet, queue messages for later.
if (_window) {
_window.processMainIncomingMessage(msg);
} else {
data.push(msg);
}
});
console.log('Main.js Recieved Message', msg);
// Send message to devpanel, if it exists.
// If there is no panel yet, queue messages for later.
if (_window) {
_window.processMainIncomingMessage(msg);
} else {
data.push(msg);
}
});

panel.onShown.addListener(function tmp(panelWindow) {
panel.onShown.removeListener(tmp); // Only run first time
_window = panelWindow;
panel.onShown.addListener(function tmp(panelWindow) {
panel.onShown.removeListener(tmp); // Only run first time
_window = panelWindow;

var msg;
while (msg === data) {
msg = data.shift();
_window.processMainIncomingMessage(msg);
}
_window.respond = function(msg) {
console.log("Main.js Sending Message", msg);
port.postMessage(msg);
};
var msg;
while (msg === data) {
msg = data.shift();
_window.processMainIncomingMessage(msg);
}
_window.respond = function(msg) {
console.log('Main.js Sending Message', msg);
port.postMessage(msg);
};

//Tell background.js which tab is being inspected
panelWindow.respond(chrome.devtools.inspectedWindow);
});
//Tell background.js which tab is being inspected
panelWindow.respond(chrome.devtools.inspectedWindow);
});
});
19 changes: 11 additions & 8 deletions views/devpanel.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,35 @@
// chrome.devtools.*
// chrome.extension.*

// Tell JSHint that processMainIncomingMessage is definedhere but used elsewhere
/* exported processMainIncomingMessage */

var inspector;

function processMainIncomingMessage(msg) {
console.log("Devpanel Processing Message", msg);
if (msg.hasOwnProperty("page")) {
displayMessage("Looks like a Solidus page!");
console.log('Devpanel Processing Message', msg);
if (msg.hasOwnProperty('page')) {
displayMessage('Looks like a Solidus page!');
//Check if there is an initialized InspectorJSON that hasn't been destroyed
if ((inspector instanceof InspectorJSON) && (inspector.page)) {
inspector.view(msg);
} else {
inspector = new InspectorJSON({
element: "pagecontext",
element: 'pagecontext',
json: msg
});
}
} else if (msg.hasOwnProperty("error")) {
} else if (msg.hasOwnProperty('error')) {
if (inspector instanceof InspectorJSON) {
inspector.destroy();
}
displayMessage(msg.error);
} else {
console.log("Message Not Processed", msg);
console.log('Message Not Processed', msg);
}
}

function displayMessage(msg) {
document.querySelector("#messageholder").innerHTML = msg;
console.log("Updated Panel With Message", msg);
document.querySelector('#messageholder').innerHTML = msg;
console.log('Updated Panel With Message', msg);
}

0 comments on commit 5832802

Please sign in to comment.