diff options
| author | Stephen Blott | 2016-10-01 10:12:24 +0100 | 
|---|---|---|
| committer | Stephen Blott | 2016-10-01 10:13:18 +0100 | 
| commit | 9c556de63f4f159dd89582409ea4a4a69dcbf45f (patch) | |
| tree | e396afe7d39c2b3d7b147425edf74387cf8e0e0e | |
| parent | c39ba088359a0572c9f5b7267ba4f638a209a114 (diff) | |
| download | vimium-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.coffee | 50 | 
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}) -> | 
