From 2128ef3a4b6bb989323200578b230dfb1e178c2e Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Tue, 13 Feb 2018 14:43:25 +0000 Subject: Make the reload command accept a count. Move the `reload` command to the background page and make it accept a count prefix. Fixes #674. Althought the demand for this is low and the use cases limited, it is a very vim-ish extension to the existing command. --- background_scripts/commands.coffee | 2 +- background_scripts/main.coffee | 9 +++++++++ content_scripts/mode_normal.coffee | 5 +---- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/background_scripts/commands.coffee b/background_scripts/commands.coffee index f3ae3bd9..0573b9c1 100644 --- a/background_scripts/commands.coffee +++ b/background_scripts/commands.coffee @@ -336,7 +336,7 @@ commandDescriptions = scrollFullPageDown: ["Scroll a full page down"] scrollFullPageUp: ["Scroll a full page up"] - reload: ["Reload the page", { noRepeat: true }] + reload: ["Reload the page", { background: true }] toggleViewSource: ["View page source", { noRepeat: true }] copyCurrentUrl: ["Copy the current URL to the clipboard", { noRepeat: true }] diff --git a/background_scripts/main.coffee b/background_scripts/main.coffee index 70d97ca0..78bfce4c 100644 --- a/background_scripts/main.coffee +++ b/background_scripts/main.coffee @@ -235,6 +235,15 @@ BackgroundCommands = tabIds = BgUtils.tabRecency.getTabsByRecency().filter (tabId) -> tabId != tab.id if 0 < tabIds.length selectSpecificTab id: tabIds[(count-1) % tabIds.length] + reload: ({count, tabId, registryEntry, tab: {windowId}})-> + bypassCache = registryEntry.options.hard ? false + chrome.tabs.query {windowId}, (tabs) -> + position = do -> + for tab, index in tabs + return index if tab.id == tabId + tabs = [tabs[position...]..., tabs[...position]...] + count = Math.min count, tabs.length + chrome.tabs.reload tab.id, {bypassCache} for tab in tabs[...count] # Remove tabs before, after, or either side of the currently active tab removeTabsRelative = (direction, {tab: activeTab}) -> diff --git a/content_scripts/mode_normal.coffee b/content_scripts/mode_normal.coffee index 1fe0618e..0cfcfc66 100644 --- a/content_scripts/mode_normal.coffee +++ b/content_scripts/mode_normal.coffee @@ -59,10 +59,7 @@ NormalModeCommands = scrollLeft: (count) -> Scroller.scrollBy "x", -1 * Settings.get("scrollStepSize") * count scrollRight: (count) -> Scroller.scrollBy "x", Settings.get("scrollStepSize") * count - # Page state. - reload: (count, options) -> - hard = options.registryEntry.options.hard ? false - window.location.reload(hard) + # Tab navigation: back, forward. goBack: (count) -> history.go(-count) goForward: (count) -> history.go(count) -- cgit v1.2.3