diff --git a/HintCtrl.js b/HintCtrl.js index d1e9361..563278c 100644 --- a/HintCtrl.js +++ b/HintCtrl.js @@ -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]]) { diff --git a/background.js b/background.js index 93ad96e..59696cc 100644 --- a/background.js +++ b/background.js @@ -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); }); });