OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CONTENT_PUBLIC_BROWSER_DOWNLOAD_MANAGER_DELEGATE_H_ | 5 #ifndef CONTENT_PUBLIC_BROWSER_DOWNLOAD_MANAGER_DELEGATE_H_ |
6 #define CONTENT_PUBLIC_BROWSER_DOWNLOAD_MANAGER_DELEGATE_H_ | 6 #define CONTENT_PUBLIC_BROWSER_DOWNLOAD_MANAGER_DELEGATE_H_ |
7 | 7 |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/callback.h" | 9 #include "base/callback.h" |
10 #include "base/file_path.h" | 10 #include "base/file_path.h" |
(...skipping 11 matching lines...) Expand all Loading... |
22 class WebContents; | 22 class WebContents; |
23 | 23 |
24 // Called by SavePackage when it creates a DownloadItem. | 24 // Called by SavePackage when it creates a DownloadItem. |
25 typedef base::Callback<void(DownloadItem*)> | 25 typedef base::Callback<void(DownloadItem*)> |
26 SavePackageDownloadCreatedCallback; | 26 SavePackageDownloadCreatedCallback; |
27 | 27 |
28 // Will be called asynchronously with the results of the ChooseSavePath | 28 // Will be called asynchronously with the results of the ChooseSavePath |
29 // operation. If the delegate wants notification of the download item created | 29 // operation. If the delegate wants notification of the download item created |
30 // in response to this operation, the SavePackageDownloadCreatedCallback will be | 30 // in response to this operation, the SavePackageDownloadCreatedCallback will be |
31 // non-null. | 31 // non-null. |
32 typedef base::Callback<void(const FilePath&, | 32 typedef base::Callback<void(const base::FilePath&, |
33 SavePageType, | 33 SavePageType, |
34 const SavePackageDownloadCreatedCallback&)> | 34 const SavePackageDownloadCreatedCallback&)> |
35 SavePackagePathPickedCallback; | 35 SavePackagePathPickedCallback; |
36 | 36 |
37 // Called with the results of DetermineDownloadTarget(). If the delegate decides | 37 // Called with the results of DetermineDownloadTarget(). If the delegate decides |
38 // to cancel the download, then |target_path| should be set to an empty path. If | 38 // to cancel the download, then |target_path| should be set to an empty path. If |
39 // |target_path| is non-empty, then |intermediate_path| is required to be | 39 // |target_path| is non-empty, then |intermediate_path| is required to be |
40 // non-empty and specify the path to the intermediate file (which could be the | 40 // non-empty and specify the path to the intermediate file (which could be the |
41 // same as |target_path|). Both |target_path| and |intermediate_path| are | 41 // same as |target_path|). Both |target_path| and |intermediate_path| are |
42 // expected to in the same directory. | 42 // expected to in the same directory. |
43 typedef base::Callback<void( | 43 typedef base::Callback<void( |
44 const FilePath& target_path, | 44 const base::FilePath& target_path, |
45 DownloadItem::TargetDisposition disposition, | 45 DownloadItem::TargetDisposition disposition, |
46 DownloadDangerType danger_type, | 46 DownloadDangerType danger_type, |
47 const FilePath& intermediate_path)> DownloadTargetCallback; | 47 const base::FilePath& intermediate_path)> DownloadTargetCallback; |
48 | 48 |
49 // Called when a download delayed by the delegate has completed. | 49 // Called when a download delayed by the delegate has completed. |
50 typedef base::Callback<void(bool)> DownloadOpenDelayedCallback; | 50 typedef base::Callback<void(bool)> DownloadOpenDelayedCallback; |
51 | 51 |
52 // Called with the reuslt of CheckForFileExistence(). | 52 // Called with the reuslt of CheckForFileExistence(). |
53 typedef base::Callback<void(bool result)> CheckForFileExistenceCallback; | 53 typedef base::Callback<void(bool result)> CheckForFileExistenceCallback; |
54 | 54 |
55 // Browser's download manager: manages all downloads and destination view. | 55 // Browser's download manager: manages all downloads and destination view. |
56 class CONTENT_EXPORT DownloadManagerDelegate { | 56 class CONTENT_EXPORT DownloadManagerDelegate { |
57 public: | 57 public: |
(...skipping 18 matching lines...) Expand all Loading... |
76 // empty |target_path| argument. | 76 // empty |target_path| argument. |
77 virtual bool DetermineDownloadTarget(DownloadItem* item, | 77 virtual bool DetermineDownloadTarget(DownloadItem* item, |
78 const DownloadTargetCallback& callback); | 78 const DownloadTargetCallback& callback); |
79 | 79 |
80 // Called when the download system wants to alert a WebContents that a | 80 // Called when the download system wants to alert a WebContents that a |
81 // download has started, but the TabConetnts has gone away. This lets an | 81 // download has started, but the TabConetnts has gone away. This lets an |
82 // delegate return an alternative WebContents. The delegate can return NULL. | 82 // delegate return an alternative WebContents. The delegate can return NULL. |
83 virtual WebContents* GetAlternativeWebContentsToNotifyForDownload(); | 83 virtual WebContents* GetAlternativeWebContentsToNotifyForDownload(); |
84 | 84 |
85 // Tests if a file type should be opened automatically. | 85 // Tests if a file type should be opened automatically. |
86 virtual bool ShouldOpenFileBasedOnExtension(const FilePath& path); | 86 virtual bool ShouldOpenFileBasedOnExtension(const base::FilePath& path); |
87 | 87 |
88 // Allows the delegate to delay completion of the download. This function | 88 // Allows the delegate to delay completion of the download. This function |
89 // will either return true (in which case the download may complete) | 89 // will either return true (in which case the download may complete) |
90 // or will call the callback passed when the download is ready for | 90 // or will call the callback passed when the download is ready for |
91 // completion. This routine may be called multiple times; once the callback | 91 // completion. This routine may be called multiple times; once the callback |
92 // has been called or the function has returned true for a particular | 92 // has been called or the function has returned true for a particular |
93 // download it should continue to return true for that download. | 93 // download it should continue to return true for that download. |
94 virtual bool ShouldCompleteDownload( | 94 virtual bool ShouldCompleteDownload( |
95 DownloadItem* item, | 95 DownloadItem* item, |
96 const base::Closure& complete_callback); | 96 const base::Closure& complete_callback); |
97 | 97 |
98 // Allows the delegate to override opening the download. If this function | 98 // Allows the delegate to override opening the download. If this function |
99 // returns false, the delegate needs to call callback when it's done | 99 // returns false, the delegate needs to call callback when it's done |
100 // with the item, and is responsible for opening it. This function is called | 100 // with the item, and is responsible for opening it. This function is called |
101 // after the final rename, but before the download state is set to COMPLETED. | 101 // after the final rename, but before the download state is set to COMPLETED. |
102 virtual bool ShouldOpenDownload(DownloadItem* item, | 102 virtual bool ShouldOpenDownload(DownloadItem* item, |
103 const DownloadOpenDelayedCallback& callback); | 103 const DownloadOpenDelayedCallback& callback); |
104 | 104 |
105 // Returns true if we need to generate a binary hash for downloads. | 105 // Returns true if we need to generate a binary hash for downloads. |
106 virtual bool GenerateFileHash(); | 106 virtual bool GenerateFileHash(); |
107 | 107 |
108 // Retrieve the directories to save html pages and downloads to. | 108 // Retrieve the directories to save html pages and downloads to. |
109 virtual void GetSaveDir(BrowserContext* browser_context, | 109 virtual void GetSaveDir(BrowserContext* browser_context, |
110 FilePath* website_save_dir, | 110 base::FilePath* website_save_dir, |
111 FilePath* download_save_dir, | 111 base::FilePath* download_save_dir, |
112 bool* skip_dir_check) {} | 112 bool* skip_dir_check) {} |
113 | 113 |
114 // Asks the user for the path to save a page. The delegate calls the callback | 114 // Asks the user for the path to save a page. The delegate calls the callback |
115 // to give the answer. | 115 // to give the answer. |
116 virtual void ChooseSavePath(WebContents* web_contents, | 116 virtual void ChooseSavePath( |
117 const FilePath& suggested_path, | 117 WebContents* web_contents, |
118 const FilePath::StringType& default_extension, | 118 const base::FilePath& suggested_path, |
119 bool can_save_as_complete, | 119 const base::FilePath::StringType& default_extension, |
120 const SavePackagePathPickedCallback& callback) { | 120 bool can_save_as_complete, |
| 121 const SavePackagePathPickedCallback& callback) { |
121 } | 122 } |
122 | 123 |
123 // Opens the file associated with this download. | 124 // Opens the file associated with this download. |
124 virtual void OpenDownload(DownloadItem* download) {} | 125 virtual void OpenDownload(DownloadItem* download) {} |
125 | 126 |
126 // Shows the download via the OS shell. | 127 // Shows the download via the OS shell. |
127 virtual void ShowDownloadInShell(DownloadItem* download) {} | 128 virtual void ShowDownloadInShell(DownloadItem* download) {} |
128 | 129 |
129 // Checks whether a downloaded file still exists. | 130 // Checks whether a downloaded file still exists. |
130 virtual void CheckForFileExistence( | 131 virtual void CheckForFileExistence( |
131 DownloadItem* download, | 132 DownloadItem* download, |
132 const CheckForFileExistenceCallback& callback) {} | 133 const CheckForFileExistenceCallback& callback) {} |
133 | 134 |
134 protected: | 135 protected: |
135 virtual ~DownloadManagerDelegate(); | 136 virtual ~DownloadManagerDelegate(); |
136 }; | 137 }; |
137 | 138 |
138 } // namespace content | 139 } // namespace content |
139 | 140 |
140 #endif // CONTENT_PUBLIC_BROWSER_DOWNLOAD_MANAGER_DELEGATE_H_ | 141 #endif // CONTENT_PUBLIC_BROWSER_DOWNLOAD_MANAGER_DELEGATE_H_ |
OLD | NEW |