Move click and webrequest handlers outside of onInstalled
Since onInstalled is called when the extension is initially
installed, updated, or when the browser updates, I believe this
was causing the bug where clicking the page action icon was not
working. The handlers should be installed whenever background.js
is loaded.
Change-Id: I88687185c32751d3afe6d0dab783cf4a39154ab2
diff --git a/background.js b/background.js
index f547edd..73ec736 100644
--- a/background.js
+++ b/background.js
@@ -86,56 +86,56 @@
]);
});
});
+});
- // There is no option to update a tab URL while also bypassing the cache. Hack
- // around this limitation by setting a tab ID to be reloaded in the tab update
- // callback below.
- var tabIDToReload = null;
- chrome.webRequest.onCompleted.addListener(
- function(details) {
- if (details.type == 'main_frame' && tabIDToReload != null) {
- chrome.tabs.reload(tabIDToReload, {bypassCache: true});
- tabIDToReload = null;
- }
- },
- {
- urls: [
- '*://*.googlesource.com/*',
- "*://*.git.corp.google.com/*",
- ]
+// There is no option to update a tab URL while also bypassing the cache. Hack
+// around this limitation by setting a tab ID to be reloaded in the tab update
+// callback below.
+var tabIDToReload = null;
+chrome.webRequest.onCompleted.addListener(
+ function(details) {
+ if (details.type == 'main_frame' && tabIDToReload != null) {
+ chrome.tabs.reload(tabIDToReload, {bypassCache: true});
+ tabIDToReload = null;
}
- );
+ },
+ {
+ urls: [
+ '*://*.googlesource.com/*',
+ "*://*.git.corp.google.com/*",
+ ]
+ }
+);
- chrome.pageAction.onClicked.addListener(function(tab) {
- var cookieID = {
- name: 'GERRIT_UI',
- url: tab.url,
- };
- chrome.cookies.get(cookieID, function(cookie) {
- if (cookie) {
- _gaq.push(['_trackEvent', 'Page Action', 'Switch to Gerrit']);
- chrome.cookies.remove(cookieID, function() {
- // The GWT UI does not handle PolyGerrit URL redirection.
- chrome.tabs.update(tab.id, {
- url: tab.url.replace('.com/', '.com/#/')
- }, function(tab) {
- tabIDToReload = tab.id;
- });
+chrome.pageAction.onClicked.addListener(function(tab) {
+ var cookieID = {
+ name: 'GERRIT_UI',
+ url: tab.url,
+ };
+ chrome.cookies.get(cookieID, function(cookie) {
+ if (cookie) {
+ _gaq.push(['_trackEvent', 'Page Action', 'Switch to Gerrit']);
+ chrome.cookies.remove(cookieID, function() {
+ // The GWT UI does not handle PolyGerrit URL redirection.
+ chrome.tabs.update(tab.id, {
+ url: tab.url.replace('.com/', '.com/#/')
+ }, function(tab) {
+ tabIDToReload = tab.id;
});
- } else {
- _gaq.push(['_trackEvent', 'Page Action', 'Switch to PolyGerrit']);
- chrome.cookies.set({
- url: tab.url,
- name: 'GERRIT_UI',
- value: 'polygerrit',
- httpOnly: true,
- path: '/',
- secure: true,
- }, function() {
- // PolyGerrit handles Gerrit URL -> PolyGerrit URL redirection.
- chrome.tabs.reload(tab.id, {bypassCache: true});
- });
- }
- });
+ });
+ } else {
+ _gaq.push(['_trackEvent', 'Page Action', 'Switch to PolyGerrit']);
+ chrome.cookies.set({
+ url: tab.url,
+ name: 'GERRIT_UI',
+ value: 'polygerrit',
+ httpOnly: true,
+ path: '/',
+ secure: true,
+ }, function() {
+ // PolyGerrit handles Gerrit URL -> PolyGerrit URL redirection.
+ chrome.tabs.reload(tab.id, {bypassCache: true});
+ });
+ }
});
});
diff --git a/manifest.json b/manifest.json
index ee12272..7e0a2c7 100644
--- a/manifest.json
+++ b/manifest.json
@@ -2,7 +2,7 @@
"manifest_version": 2,
"name": "Gerrit UI Switcher",
"description": "Easily switch between the current Gerrit UI and the new PolyGerrit UI",
- "version": "0.4.1",
+ "version": "0.4.2",
"background": {
"scripts": [
"background.js"