summaryrefslogtreecommitdiff
path: root/chromium/components/download/database/in_progress/in_progress_info.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/download/database/in_progress/in_progress_info.h')
-rw-r--r--chromium/components/download/database/in_progress/in_progress_info.h123
1 files changed, 123 insertions, 0 deletions
diff --git a/chromium/components/download/database/in_progress/in_progress_info.h b/chromium/components/download/database/in_progress/in_progress_info.h
new file mode 100644
index 00000000000..4f6295420dc
--- /dev/null
+++ b/chromium/components/download/database/in_progress/in_progress_info.h
@@ -0,0 +1,123 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_DOWNLOAD_DATABASE_IN_PROGRESS_IN_PROGRESS_INFO_H_
+#define COMPONENTS_DOWNLOAD_DATABASE_IN_PROGRESS_IN_PROGRESS_INFO_H_
+
+#include <string>
+#include <vector>
+
+#include "components/download/public/common/download_danger_type.h"
+#include "components/download/public/common/download_item.h"
+#include "components/download/public/common/download_url_parameters.h"
+#include "url/gurl.h"
+
+namespace download {
+
+// Contains information to reconstruct an interrupted download item for
+// resumption.
+struct InProgressInfo {
+ public:
+ InProgressInfo();
+ InProgressInfo(const InProgressInfo& other);
+ ~InProgressInfo();
+
+ bool operator==(const InProgressInfo& other) const;
+
+ // request info ------------------------------------------------------------
+
+ // The url chain.
+ std::vector<GURL> url_chain;
+
+ // Referrer url.
+ GURL referrer_url;
+
+ // Site url.
+ GURL site_url;
+
+ // Tab url.
+ GURL tab_url;
+
+ // Tab referrer url.
+ GURL tab_referrer_url;
+
+ // If the entity body of unsuccessful HTTP response, like HTTP 404, will be
+ // downloaded.
+ bool fetch_error_body = false;
+
+ // Request header key/value pairs that will be added to the download HTTP
+ // request.
+ DownloadUrlParameters::RequestHeadersType request_headers;
+
+ // response info -----------------------------------------------------------
+
+ // Contents of most recently seen ETag header.
+ std::string etag;
+
+ // Contents of most recently seen Last-Modified header.
+ std::string last_modified;
+
+ // The total number of bytes in the download.
+ int64_t total_bytes = 0;
+
+ // Mime type.
+ std::string mime_type;
+
+ // Original mime type before all redirections.
+ std::string original_mime_type;
+
+ // destination info --------------------------------------------------------
+
+ // The current path to the download (potentially different from final if
+ // download is in progress or interrupted).
+ base::FilePath current_path;
+
+ // The target path where the download will go when it's complete.
+ base::FilePath target_path;
+
+ // The number of bytes received (so far).
+ int64_t received_bytes = 0;
+
+ // The time when the download started.
+ base::Time start_time;
+
+ // The time when the download completed.
+ base::Time end_time;
+
+ // Data slices that have been downloaded so far. The slices must be ordered
+ // by their offset.
+ std::vector<DownloadItem::ReceivedSlice> received_slices;
+
+ // Hash of the downloaded content.
+ std::string hash;
+
+ // state info --------------------------------------------------------------
+
+ // Whether this download is transient. Transient items are cleaned up after
+ // completion and not shown in the UI.
+ bool transient = false;
+
+ // The current state of the download.
+ DownloadItem::DownloadState state = DownloadItem::DownloadState::IN_PROGRESS;
+
+ // Whether and how the download is dangerous.
+ DownloadDangerType danger_type =
+ DownloadDangerType::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS;
+
+ // The reason the download was interrupted, if state == kStateInterrupted.
+ DownloadInterruptReason interrupt_reason = DOWNLOAD_INTERRUPT_REASON_NONE;
+
+ // Whether this download is paused.
+ bool paused = false;
+
+ // Count for how many (extra) bytes were used (including resumption).
+ int64_t bytes_wasted = 0;
+
+ // Whether the download is initiated on a metered network
+ bool metered = false;
+};
+
+} // namespace download
+
+#endif // COMPONENTS_DOWNLOAD_DATABASE_IN_PROGRESS_IN_PROGRESS_INFO_H_