aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Blott2016-10-01 10:12:24 +0100
committerStephen Blott2016-10-01 10:13:18 +0100
commit9c556de63f4f159dd89582409ea4a4a69dcbf45f (patch)
treee396afe7d39c2b3d7b147425edf74387cf8e0e0e
parentc39ba088359a0572c9f5b7267ba4f638a209a114 (diff)
downloadvimium-9c556de63f4f159dd89582409ea4a4a69dcbf45f.tar.bz2
Enable silent/patch releases.
Currently, all new releases trigger a notification. This changes that behaviour such that if the previous and current releases have the same major and minor release numbers, then no notification is shown. This allows us to push bug-fix and minor releases without bugging the user.
-rw-r--r--background_scripts/main.coffee50
1 files changed, 29 insertions, 21 deletions
diff --git a/background_scripts/main.coffee b/background_scripts/main.coffee
index b99b975f..57b5bf67 100644
--- a/background_scripts/main.coffee
+++ b/background_scripts/main.coffee
@@ -18,7 +18,6 @@ chrome.runtime.onInstalled.addListener ({ reason }) ->
for file in files
func tab.id, { file: file, allFrames: contentScripts.all_frames }, checkLastRuntimeError
-currentVersion = Utils.getCurrentVersion()
frameIdsForTab = {}
portsForTab = {}
root.urlForTab = {}
@@ -89,7 +88,7 @@ getHelpDialogHtml = ({showUnboundCommands, showCommandNames, customTitle}) ->
commandsToKey[command] = (commandsToKey[command] || []).concat(key)
replacementStrings =
- version: currentVersion
+ version: Utils.getCurrentVersion()
title: customTitle || "Help"
tip: if showCommandNames then "Tip: click command names to yank them to the clipboard." else " "
@@ -473,28 +472,37 @@ window.runTests = -> open(chrome.runtime.getURL('tests/dom_tests/dom_tests.html'
# Show notification on upgrade.
do showUpgradeMessage = ->
+ currentVersion = Utils.getCurrentVersion()
# Avoid showing the upgrade notification when previousVersion is undefined, which is the case for new
# installs.
- Settings.set "previousVersion", currentVersion unless Settings.get "previousVersion"
- if Utils.compareVersions(currentVersion, Settings.get "previousVersion" ) == 1
- notificationId = "VimiumUpgradeNotification"
- notification =
- type: "basic"
- iconUrl: chrome.runtime.getURL "icons/vimium.png"
- title: "Vimium Upgrade"
- message: "Vimium has been upgraded to version #{currentVersion}. Click here for more information."
- isClickable: true
- if chrome.notifications?.create?
- chrome.notifications.create notificationId, notification, ->
- unless chrome.runtime.lastError
- Settings.set "previousVersion", currentVersion
- chrome.notifications.onClicked.addListener (id) ->
- if id == notificationId
- chrome.tabs.getSelected null, (tab) ->
- TabOperations.openUrlInNewTab {tab, tabId: tab.id, url: "https://github.com/philc/vimium#release-notes"}
+ Settings.set "previousVersion", currentVersion unless Settings.has "previousVersion"
+ previousVersion = Settings.get "previousVersion"
+ if Utils.compareVersions(currentVersion, previousVersion ) == 1
+ currentVersionNumbers = currentVersion.split "."
+ previousVersionNumbers = previousVersion.split "."
+ if currentVersionNumbers[...2].join(".") == previousVersionNumbers[...2].join(".")
+ # We do not show an upgrade message for patch/silent releases. Such releases have the same major and
+ # minor version numbers. We do, however, update the recorded previous version.
+ Settings.set "previousVersion", currentVersion
else
- # We need to wait for the user to accept the "notifications" permission.
- chrome.permissions.onAdded.addListener showUpgradeMessage
+ notificationId = "VimiumUpgradeNotification"
+ notification =
+ type: "basic"
+ iconUrl: chrome.runtime.getURL "icons/vimium.png"
+ title: "Vimium Upgrade"
+ message: "Vimium has been upgraded to version #{currentVersion}. Click here for more information."
+ isClickable: true
+ if chrome.notifications?.create?
+ chrome.notifications.create notificationId, notification, ->
+ unless chrome.runtime.lastError
+ Settings.set "previousVersion", currentVersion
+ chrome.notifications.onClicked.addListener (id) ->
+ if id == notificationId
+ chrome.tabs.getSelected null, (tab) ->
+ TabOperations.openUrlInNewTab {tab, tabId: tab.id, url: "https://github.com/philc/vimium#release-notes"}
+ else
+ # We need to wait for the user to accept the "notifications" permission.
+ chrome.permissions.onAdded.addListener showUpgradeMessage
# The install date is shown on the logging page.
chrome.runtime.onInstalled.addListener ({reason}) ->