| <html> |
| <head> |
| </head> |
| |
| <embed id="pluginEmbed" type="application/x-gwt-hosted-mode" width="10" |
| height="10"> |
| </embed> |
| |
| |
| <script> |
| var plugin = document.getElementById('pluginEmbed'); |
| var disabledIcon = 'gwt32-gray.png'; |
| var enabledIcon = 'gwt32.png'; |
| |
| |
| function getHostFromUrl(url) { |
| var hostname = ''; |
| var idx = url.indexOf('://'); |
| if (idx >= 0) { |
| idx += 3; |
| hostname = url.substring(idx); |
| } |
| idx = hostname.indexOf('/'); |
| if (idx >= 0) { |
| hostname = hostname.split('/')[0]; |
| } |
| idx = hostname.indexOf(':'); |
| if (idx >= 0) { |
| hostname = hostname.split(':')[0]; |
| } |
| return hostname; |
| } |
| |
| function devModeTabListener(tabId, changeInfo, tab) { |
| var search = tab.url.slice(tab.url.indexOf('?')); |
| if (search.indexOf('gwt.codesvr=') >= 0 || search.indexOf('gwt.hosted=') >= 0) { |
| var permission = plugin.getHostPermission(tab.url); |
| var host = getHostFromUrl(tab.url); |
| var popup = 'page_action.html'; |
| var icon = null; |
| console.log("got permission " + permission + " for host " + host); |
| |
| if (permission == 'include') { |
| icon = enabledIcon; |
| } else if (permission == 'exclude') { |
| icon = disabledIcon; |
| } else if (permission == 'unknown') { |
| icon = disabledIcon; |
| } |
| popup += "?permission=" + permission + "&host=" + host; |
| chrome.pageAction.setIcon({'tabId' : tabId, 'path' : icon}); |
| chrome.pageAction.setPopup({'tabId' : tabId, 'popup' : popup}); |
| chrome.pageAction.show(tabId); |
| |
| var hostEntries = window.localStorage.getItem('GWT_DEV_HOSTENTRY') || []; |
| console.log("loading hostentries: " + hostEntries); |
| plugin.loadHostEntries.apply(plugin, JSON.parse(hostEntries)); |
| } else { |
| chrome.pageAction.hide(tabId); |
| } |
| }; |
| |
| chrome.tabs.onUpdated.addListener(devModeTabListener); |
| </script> |
| </html> |