Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(327)

Side by Side Diff: content/public/browser/download_item.h

Issue 10665049: Make DownloadHistory observe manager, items (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « content/content_browser.gypi ('k') | content/public/browser/download_manager.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 // Each download is represented by a DownloadItem, and all DownloadItems 5 // Each download is represented by a DownloadItem, and all DownloadItems
6 // are owned by the DownloadManager which maintains a global list of all 6 // are owned by the DownloadManager which maintains a global list of all
7 // downloads. DownloadItems are created when a user initiates a download, 7 // downloads. DownloadItems are created when a user initiates a download,
8 // and exist for the duration of the browser life time. 8 // and exist for the duration of the browser life time.
9 // 9 //
10 // Download observers: 10 // Download observers:
(...skipping 25 matching lines...) Expand all
36 class Time; 36 class Time;
37 class TimeDelta; 37 class TimeDelta;
38 } 38 }
39 39
40 namespace content { 40 namespace content {
41 41
42 class BrowserContext; 42 class BrowserContext;
43 class DownloadId; 43 class DownloadId;
44 class DownloadManager; 44 class DownloadManager;
45 class WebContents; 45 class WebContents;
46 struct DownloadPersistentStoreInfo;
47 46
48 // One DownloadItem per download. This is the model class that stores all the 47 // One DownloadItem per download. This is the model class that stores all the
49 // state for a download. Multiple views, such as a tab's download shelf and the 48 // state for a download. Multiple views, such as a tab's download shelf and the
50 // Destination tab's download view, may refer to a given DownloadItem. 49 // Destination tab's download view, may refer to a given DownloadItem.
51 // 50 //
52 // This is intended to be used only on the UI thread. 51 // This is intended to be used only on the UI thread.
53 class CONTENT_EXPORT DownloadItem : public base::SupportsUserData { 52 class CONTENT_EXPORT DownloadItem : public base::SupportsUserData {
54 public: 53 public:
55 enum DownloadState { 54 enum DownloadState {
56 // Download is actively progressing. 55 // Download is actively progressing.
(...skipping 25 matching lines...) Expand all
82 }; 81 };
83 82
84 // How the final target path should be used. 83 // How the final target path should be used.
85 enum TargetDisposition { 84 enum TargetDisposition {
86 TARGET_DISPOSITION_OVERWRITE, // Overwrite if the target already exists. 85 TARGET_DISPOSITION_OVERWRITE, // Overwrite if the target already exists.
87 TARGET_DISPOSITION_PROMPT // Prompt the user for the actual 86 TARGET_DISPOSITION_PROMPT // Prompt the user for the actual
88 // target. Implies 87 // target. Implies
89 // TARGET_DISPOSITION_OVERWRITE. 88 // TARGET_DISPOSITION_OVERWRITE.
90 }; 89 };
91 90
92 // A fake download table ID which represents a download that has started,
93 // but is not yet in the table.
94 static const int kUninitializedHandle;
95
96 static const char kEmptyFileHash[]; 91 static const char kEmptyFileHash[];
97 92
98 // Interface that observers of a particular download must implement in order 93 // Interface that observers of a particular download must implement in order
99 // to receive updates to the download's status. 94 // to receive updates to the download's status.
100 class CONTENT_EXPORT Observer { 95 class CONTENT_EXPORT Observer {
101 public: 96 public:
102 virtual void OnDownloadUpdated(DownloadItem* download) {} 97 virtual void OnDownloadUpdated(DownloadItem* download) {}
103 virtual void OnDownloadOpened(DownloadItem* download) {} 98 virtual void OnDownloadOpened(DownloadItem* download) {}
104 virtual void OnDownloadRemoved(DownloadItem* download) {} 99 virtual void OnDownloadRemoved(DownloadItem* download) {}
105 100
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 // still in progress, marks the download to be opened when it is complete. 145 // still in progress, marks the download to be opened when it is complete.
151 virtual void OpenDownload() = 0; 146 virtual void OpenDownload() = 0;
152 147
153 // Show the download via the OS shell. 148 // Show the download via the OS shell.
154 virtual void ShowDownloadInShell() = 0; 149 virtual void ShowDownloadInShell() = 0;
155 150
156 // State accessors ----------------------------------------------------------- 151 // State accessors -----------------------------------------------------------
157 152
158 virtual int32 GetId() const = 0; 153 virtual int32 GetId() const = 0;
159 virtual DownloadId GetGlobalId() const = 0; 154 virtual DownloadId GetGlobalId() const = 0;
160 virtual int64 GetDbHandle() const = 0;
161 virtual DownloadState GetState() const = 0; 155 virtual DownloadState GetState() const = 0;
162 156
163 // Only valid if |GetState() == DownloadItem::INTERRUPTED|. 157 // Only valid if |GetState() == DownloadItem::INTERRUPTED|.
164 virtual DownloadInterruptReason GetLastReason() const = 0; 158 virtual DownloadInterruptReason GetLastReason() const = 0;
165 159
166 virtual bool IsPaused() const = 0; 160 virtual bool IsPaused() const = 0;
167 virtual bool IsTemporary() const = 0; 161 virtual bool IsTemporary() const = 0;
168 virtual bool IsPersisted() const = 0;
169 162
170 // Convenience routines for accessing GetState() results conceptually ----- 163 // Convenience routines for accessing GetState() results conceptually -----
171 164
172 // Returns true if the download needs more data. 165 // Returns true if the download needs more data.
173 virtual bool IsPartialDownload() const = 0; 166 virtual bool IsPartialDownload() const = 0;
174 167
175 // Returns true if the download is still receiving data. 168 // Returns true if the download is still receiving data.
176 virtual bool IsInProgress() const = 0; 169 virtual bool IsInProgress() const = 0;
177 170
178 // Returns true if the download has been cancelled or was interrupted. 171 // Returns true if the download has been cancelled or was interrupted.
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 virtual bool GetAutoOpened() = 0; 289 virtual bool GetAutoOpened() = 0;
297 290
298 // Returns true if the download has been opened. 291 // Returns true if the download has been opened.
299 virtual bool GetOpened() const = 0; 292 virtual bool GetOpened() const = 0;
300 293
301 // Misc State accessors --------------------------------------------------- 294 // Misc State accessors ---------------------------------------------------
302 295
303 // Returns true if this item matches |query|. |query| must be lower-cased. 296 // Returns true if this item matches |query|. |query| must be lower-cased.
304 virtual bool MatchesQuery(const string16& query) const = 0; 297 virtual bool MatchesQuery(const string16& query) const = 0;
305 298
306 virtual DownloadPersistentStoreInfo GetPersistentStoreInfo() const = 0;
307 virtual BrowserContext* GetBrowserContext() const = 0; 299 virtual BrowserContext* GetBrowserContext() const = 0;
308 virtual WebContents* GetWebContents() const = 0; 300 virtual WebContents* GetWebContents() const = 0;
309 301
310 // External state transitions/setters ---------------------------------------- 302 // External state transitions/setters ----------------------------------------
311 // TODO(rdsmith): These should all be removed; the download item should 303 // TODO(rdsmith): These should all be removed; the download item should
312 // control its own state transitions. 304 // control its own state transitions.
313 305
314 // Called by the delegate if it delayed opening the download after 306 // Called by the delegate if it delayed opening the download after
315 // the download has actually been opened. 307 // the download has actually been opened.
316 virtual void DelayedDownloadOpened(bool auto_opened) = 0; 308 virtual void DelayedDownloadOpened(bool auto_opened) = 0;
(...skipping 19 matching lines...) Expand all
336 virtual void SetDisplayName(const FilePath& name) = 0; 328 virtual void SetDisplayName(const FilePath& name) = 0;
337 329
338 // Debug/testing ------------------------------------------------------------- 330 // Debug/testing -------------------------------------------------------------
339 virtual std::string DebugString(bool verbose) const = 0; 331 virtual std::string DebugString(bool verbose) const = 0;
340 virtual void MockDownloadOpenForTesting() = 0; 332 virtual void MockDownloadOpenForTesting() = 0;
341 }; 333 };
342 334
343 } // namespace content 335 } // namespace content
344 336
345 #endif // CONTENT_PUBLIC_BROWSER_DOWNLOAD_ITEM_H_ 337 #endif // CONTENT_PUBLIC_BROWSER_DOWNLOAD_ITEM_H_
OLDNEW
« no previous file with comments | « content/content_browser.gypi ('k') | content/public/browser/download_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698