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

Side by Side Diff: components/offline_pages/core/downloads/download_ui_item.h

Issue 2631933002: Adding status info to DownloadUIItem and piping it through. (Closed)
Patch Set: Created 3 years, 11 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 COMPONENTS_OFFLINE_PAGES_CORE_DOWNLOADS_DOWNLOAD_UI_ITEM_H_ 5 #ifndef COMPONENTS_OFFLINE_PAGES_CORE_DOWNLOADS_DOWNLOAD_UI_ITEM_H_
6 #define COMPONENTS_OFFLINE_PAGES_CORE_DOWNLOADS_DOWNLOAD_UI_ITEM_H_ 6 #define COMPONENTS_OFFLINE_PAGES_CORE_DOWNLOADS_DOWNLOAD_UI_ITEM_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <string> 10 #include <string>
11 11
12 #include "base/files/file_path.h" 12 #include "base/files/file_path.h"
13 #include "base/time/time.h" 13 #include "base/time/time.h"
14 #include "url/gurl.h" 14 #include "url/gurl.h"
15 15
16 namespace offline_pages { 16 namespace offline_pages {
17 17
18 struct OfflinePageItem; 18 struct OfflinePageItem;
19 class SavePageRequest; 19 class SavePageRequest;
20 20
21 // The abstract "download item" that may be a media file, a web page (together
22 // with all the resources) or a PWA web package. This is a data bag that exposes
23 // only bits potentially visible by the user, not the internal data.
21 struct DownloadUIItem { 24 struct DownloadUIItem {
22 public: 25 public:
26 // All Items start from PENDING and terminate at COMPLETED or are removed.
27 // In sync with state values in Java OfflinePageDownloadItem class.
28 enum DownloadState {
29 PENDING = 0,
30 DOWNLOADING = 1,
31 PAUSED = 2,
32 COMPLETED = 3,
33 };
34
35 // The abstract notion of download progress. The |current| is always less
36 // than |max|, the download 'percentage' at any moment is current/max.
37 // Note the |max| can change over time, as more resources are discovered from
38 // the bytes already loaded (which is often happening when a web page is
39 // loaded and more resources are found in the markup).
40 struct DownloadProgress {
41 DownloadProgress(int64_t current, int64_t max)
42 : current(current),
43 max(max) {}
44
45 int64_t current;
46 int64_t max;
47 };
48
23 DownloadUIItem(); 49 DownloadUIItem();
24 explicit DownloadUIItem(const OfflinePageItem& page); 50 explicit DownloadUIItem(const OfflinePageItem& page);
25 explicit DownloadUIItem(const SavePageRequest& request); 51 explicit DownloadUIItem(const SavePageRequest& request);
26 DownloadUIItem(const DownloadUIItem& other); 52 DownloadUIItem(const DownloadUIItem& other);
27 ~DownloadUIItem(); 53 ~DownloadUIItem();
28 54
29 // Unique id. 55 // Unique id. Not necesarily a GUID, may be any string unique in the Chrome
56 // instance across all DownloadUIItem providers.
30 std::string guid; 57 std::string guid;
31 58
32 // The URL of the captured page. 59 // The URL of the captured page.
33 GURL url; 60 GURL url;
34 61
62 DownloadState download_state;
63
64 DownloadProgress download_progress;
65
35 // The Title of the captured page, if any. It can be empty string either 66 // The Title of the captured page, if any. It can be empty string either
36 // because the page is not yet fully loaded, or because it doesn't have any. 67 // because the page is not yet fully loaded, or because it doesn't have any.
37 base::string16 title; 68 base::string16 title;
38 69
39 // The file path to the archive with a local copy of the page. 70 // The file path to the archive with a local copy of the page.
40 base::FilePath target_path; 71 base::FilePath target_path;
41 72
42 // The time when the offline archive was created. 73 // The time when the offline archive was created.
43 base::Time start_time; 74 base::Time start_time;
44 75
45 // The size of the offline copy. 76 // The size of the offline copy.
46 int64_t total_bytes; 77 int64_t total_bytes;
47 }; 78 };
48 79
49 } // namespace offline_pages 80 } // namespace offline_pages
50 81
51 #endif // COMPONENTS_OFFLINE_PAGES_CORE_DOWNLOADS_DOWNLOAD_UI_ITEM_H_ 82 #endif // COMPONENTS_OFFLINE_PAGES_CORE_DOWNLOADS_DOWNLOAD_UI_ITEM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698