fix(reload): refresh messages on reload of inspectedWindow

Messages should not be continually added when the inspectedWindow is refreshed.
When the inspectedWindow is refreshed, start a new list of messages.
test-unit-sauce
Erin Altenhof-Long 10 years ago
parent d0da55123f
commit 85606bb78c

@ -9,7 +9,13 @@ angular.module('ngHintUI')
// connect to background page
var port = chrome.extension.connect();
port.postMessage(chrome.devtools.inspectedWindow.tabId);
port.onMessage.addListener(function(msg) {
if(msg == 'refresh') {
$scope.messageData = {};
return;
}
$scope.messageData = $scope.messageData || {};
var result = msg.split('##'); //[modName, message, messageType]
if(!$scope.messageData[result[0]]) {

@ -3,13 +3,21 @@ function addToBuffer(message) {
buffer.push(message);
}
chrome.runtime.onMessage.addListener(addToBuffer);
chrome.runtime.onConnect.addListener(function(port) {
chrome.runtime.onConnect.addListener(function(devToolsPort) {
chrome.runtime.onMessage.removeListener(addToBuffer);
buffer.forEach(function(msg) {
port.postMessage(msg);
devToolsPort.postMessage(msg);
});
devToolsPort.onMessage.addListener(function(inspectedTabId) {
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo) {
if(tabId === inspectedTabId && changeInfo.status === 'loading') {
devToolsPort.postMessage('refresh');
}
});
});
// context script > background
chrome.runtime.onMessage.addListener(function(msg, sender, sendResponse) {
port.postMessage(msg);
devToolsPort.postMessage(msg);
});
});