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
{
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;
49 FRIEND_TEST_ALL_PREFIXES(
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_