| OLD | NEW |
| 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_ |
| OLD | NEW |