From ea32d951c92343f0e232377649d5f17519de0c28 Mon Sep 17 00:00:00 2001 From: mrmr1993 Date: Sun, 17 Aug 2014 19:12:09 +0100 Subject: [PATCH] Add command for downloading links --- background_scripts/commands.coffee | 17 ++++++++++------- background_scripts/main.coffee | 11 +++++++++++ content_scripts/link_hints.coffee | 5 +++++ manifest.json | 3 ++- 4 files changed, 28 insertions(+), 8 deletions(-) diff --git a/background_scripts/commands.coffee b/background_scripts/commands.coffee index 3a85c6fd3..f1b27b2b5 100644 --- a/background_scripts/commands.coffee +++ b/background_scripts/commands.coffee @@ -86,12 +86,13 @@ Commands = # be shown in the help page. commandGroups: pageNavigation: - ["scrollDown", "scrollUp", "scrollLeft", "scrollRight", "scrollToTop", "scrollToBottom", "scrollToLeft", - "scrollToRight", "scrollPageDown", "scrollPageUp", "scrollFullPageUp", "scrollFullPageDown", "reload", - "toggleViewSource", "copyCurrentUrl", "LinkHints.activateModeToCopyLinkUrl", - "openCopiedUrlInCurrentTab", "openCopiedUrlInNewTab", "goUp", "goToRoot", "enterInsertMode", - "focusInput", "LinkHints.activateMode", "LinkHints.activateModeToOpenInNewTab", - "LinkHints.activateModeToOpenInNewForegroundTab", "LinkHints.activateModeWithQueue", "Vomnibar.activate", + ["scrollDown", "scrollUp", "scrollLeft", "scrollRight", "scrollToTop", "scrollToBottom", + "scrollToLeft", "scrollToRight", "scrollPageDown", "scrollPageUp", "scrollFullPageUp", + "scrollFullPageDown", "reload", "toggleViewSource", "copyCurrentUrl", + "LinkHints.activateModeToCopyLinkUrl", "openCopiedUrlInCurrentTab", "openCopiedUrlInNewTab", "goUp", + "goToRoot", "enterInsertMode", "focusInput", "LinkHints.activateMode", + "LinkHints.activateModeToOpenInNewTab", "LinkHints.activateModeToOpenInNewForegroundTab", + "LinkHints.activateModeWithQueue", "LinkHints.activateModeToSaveLinkAs", "Vomnibar.activate", "Vomnibar.activateInNewTab", "Vomnibar.activateTabSelection", "Vomnibar.activateBookmarks", "Vomnibar.activateBookmarksInNewTab", "goPrevious", "goNext", "nextFrame", "Marks.activateCreateMode", "Vomnibar.activateEditUrl", "Vomnibar.activateEditUrlInNewTab", @@ -219,7 +220,7 @@ commandDescriptions = toggleViewSource: ["View page source"] copyCurrentUrl: ["Copy the current URL to the clipboard"] - 'LinkHints.activateModeToCopyLinkUrl': ["Copy a link URL to the clipboard"] + 'LinkHints.activateModeToCopyLinkUrl': ["Copy a link's URL to the clipboard"] openCopiedUrlInCurrentTab: ["Open the clipboard's URL in the current tab", { background: true }] openCopiedUrlInNewTab: ["Open the clipboard's URL in a new tab", { background: true }] @@ -236,6 +237,8 @@ commandDescriptions = "LinkHints.activateModeToOpenIncognito": ["Open a link in incognito window"] "LinkHints.activateModeToDownloadLink": ["Download link url"] + "LinkHints.activateModeToSaveLinkAs": ["Download a link's URL using save as"] + enterFindMode: ["Enter find mode"] performFind: ["Cycle forward to the next find match"] performBackwardsFind: ["Cycle backward to the previous find match"] diff --git a/background_scripts/main.coffee b/background_scripts/main.coffee index 352cfa484..51dc391f8 100644 --- a/background_scripts/main.coffee +++ b/background_scripts/main.coffee @@ -178,6 +178,16 @@ upgradeNotificationClosed = (request) -> Settings.set("previousVersion", currentVersion) sendRequestToAllTabs({ name: "hideUpgradeNotification" }) +# +# Downloads the provided URL (request.data) +# +downloadUrl = (request) -> + urlParts = request.data.split("/") + chrome.downloads.download + url: request.data + filename: urlParts[urlParts.length - 1] + saveAs: true + # # Copies some data (request.data) to the clipboard. # @@ -620,6 +630,7 @@ sendRequestHandlers = upgradeNotificationClosed: upgradeNotificationClosed, updateScrollPosition: handleUpdateScrollPosition, copyToClipboard: copyToClipboard, + downloadUrl: downloadUrl, isEnabledForUrl: isEnabledForUrl, saveHelpDialogSettings: saveHelpDialogSettings, selectSpecificTab: selectSpecificTab, diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee index 24bd7126a..761414d76 100644 --- a/content_scripts/link_hints.coffee +++ b/content_scripts/link_hints.coffee @@ -54,6 +54,7 @@ LinkHints = activateModeWithQueue: -> @activateMode(OPEN_WITH_QUEUE) activateModeToOpenIncognito: -> @activateMode(OPEN_INCOGNITO) activateModeToDownloadLink: -> @activateMode(DOWNLOAD_LINK_URL) + activateModeToSaveLinkAs: -> @activateMode(DOWNLOAD_LINK_URL) activateMode: (mode = OPEN_IN_CURRENT_TAB) -> # we need documentElement to be ready in order to append links @@ -101,6 +102,10 @@ LinkHints = HUD.show("Copy link URL to Clipboard") @linkActivator = (link) -> chrome.runtime.sendMessage({handler: "copyToClipboard", data: link.href}) + else if @mode is DOWNLOAD_LINK_URL + HUD.show("Download link URL") + @linkActivator = (link) -> + chrome.runtime.sendMessage {handler: "downloadUrl", data: link.href} else if @mode is OPEN_INCOGNITO HUD.show("Open link in incognito window") diff --git a/manifest.json b/manifest.json index 48681675f..8e6297f73 100644 --- a/manifest.json +++ b/manifest.json @@ -26,7 +26,8 @@ "history", "clipboardRead", "storage", - "" + "", + "downloads" ], "content_scripts": [ {