Pin Chrome's shortcut to the Win10 Start menu on install and OS upgrade.
[chromium-blink-merge.git] / chrome / browser / download / download_commands.h
blob1a39886880cef3472fe941c141bb15a51bc43aab
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_DOWNLOAD_DOWNLOAD_COMMANDS_H_
6 #define CHROME_BROWSER_DOWNLOAD_DOWNLOAD_COMMANDS_H_
8 #include "base/gtest_prod_util.h"
9 #include "base/strings/string16.h"
10 #include "chrome/browser/ui/browser.h"
11 #include "content/public/browser/download_item.h"
12 #include "content/public/browser/page_navigator.h"
13 #include "ui/gfx/image/image.h"
15 class DownloadCommands {
16 public:
17 enum Command {
18 SHOW_IN_FOLDER = 1, // Open a folder view window with the item selected.
19 OPEN_WHEN_COMPLETE, // Open the download when it's finished.
20 ALWAYS_OPEN_TYPE, // Default this file extension to always open.
21 PLATFORM_OPEN, // Open using platform handler.
22 CANCEL, // Cancel the download.
23 PAUSE, // Pause a download.
24 RESUME, // Resume a download.
25 DISCARD, // Discard the malicious download.
26 KEEP, // Keep the malicious download.
27 LEARN_MORE_SCANNING, // Show information about download scanning.
28 LEARN_MORE_INTERRUPTED, // Show information about interrupted downloads.
31 // |download_item| must outlive DownloadCommands.
32 explicit DownloadCommands(content::DownloadItem* download_item);
33 virtual ~DownloadCommands() {}
35 gfx::Image GetCommandIcon(Command command);
37 bool IsCommandEnabled(Command command) const;
38 bool IsCommandChecked(Command command) const;
39 bool IsCommandVisible(Command command) const;
40 void ExecuteCommand(Command command);
42 #if defined(OS_WIN) || defined(OS_LINUX) || \
43 (defined(OS_MACOSX) && !defined(OS_IOS))
44 bool IsDownloadPdf() const;
45 bool CanOpenPdfInSystemViewer() const;
46 #endif
48 private:
49 FRIEND_TEST_ALL_PREFIXES(
50 DownloadCommandsTest,
51 GetLearnMoreURLForInterruptedDownload_ContainsContext);
53 Browser* GetBrowser() const;
54 int GetCommandIconId(Command command) const;
55 GURL GetLearnMoreURLForInterruptedDownload() const;
57 content::DownloadItem* const download_item_;
60 #endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_COMMANDS_H_