aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--background_scripts/main.coffee27
-rw-r--r--manifest.json1
3 files changed, 18 insertions, 12 deletions
diff --git a/.gitignore b/.gitignore
index 9df0d559..2595878c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,5 @@
*.sublime*
node_modules/*
dist
+jscoverage.json
+tags
diff --git a/background_scripts/main.coffee b/background_scripts/main.coffee
index e611bf75..14ce7b0f 100644
--- a/background_scripts/main.coffee
+++ b/background_scripts/main.coffee
@@ -250,7 +250,8 @@ BackgroundCommands =
restoreTab: (callback) ->
# TODO: remove if-else -block when adopted into stable
if chrome.sessions
- chrome.sessions.restore(null, (restoredSession) -> callback())
+ chrome.sessions.restore(null, (restoredSession) ->
+ callback() unless chrome.runtime.lastError)
else
# TODO(ilya): Should this be getLastFocused instead?
chrome.windows.getCurrent((window) ->
@@ -412,16 +413,17 @@ chrome.tabs.onRemoved.addListener (tabId) ->
# If we restore pages that content scripts can't run on, they'll ignore Vimium keystrokes when they
# reappear. Pretend they never existed and adjust tab indices accordingly. Could possibly expand this into
# a blacklist in the future.
- if (/^(chrome|view-source:)[^:]*:\/\/.*/.test(openTabInfo.url))
- for i of tabQueue[openTabInfo.windowId]
- if (tabQueue[openTabInfo.windowId][i].positionIndex > openTabInfo.positionIndex)
- tabQueue[openTabInfo.windowId][i].positionIndex--
- return
-
- if (tabQueue[openTabInfo.windowId])
- tabQueue[openTabInfo.windowId].push(openTabInfo)
- else
- tabQueue[openTabInfo.windowId] = [openTabInfo]
+ unless chrome.sessions
+ if (/^(chrome|view-source:)[^:]*:\/\/.*/.test(openTabInfo.url))
+ for i of tabQueue[openTabInfo.windowId]
+ if (tabQueue[openTabInfo.windowId][i].positionIndex > openTabInfo.positionIndex)
+ tabQueue[openTabInfo.windowId][i].positionIndex--
+ return
+
+ if (tabQueue[openTabInfo.windowId])
+ tabQueue[openTabInfo.windowId].push(openTabInfo)
+ else
+ tabQueue[openTabInfo.windowId] = [openTabInfo]
# keep the reference around for a while to wait for the last messages from the closed tab (e.g. for updating
# scroll position)
@@ -431,7 +433,8 @@ chrome.tabs.onRemoved.addListener (tabId) ->
chrome.tabs.onActiveChanged.addListener (tabId, selectInfo) -> updateActiveState(tabId)
-chrome.windows.onRemoved.addListener (windowId) -> delete tabQueue[windowId]
+unless chrome.sessions
+ chrome.windows.onRemoved.addListener (windowId) -> delete tabQueue[windowId]
# End action functions
diff --git a/manifest.json b/manifest.json
index 48681675..3792458b 100644
--- a/manifest.json
+++ b/manifest.json
@@ -26,6 +26,7 @@
"history",
"clipboardRead",
"storage",
+ "sessions",
"<all_urls>"
],
"content_scripts": [