| // Copyright 2017 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| syntax = "proto2"; |
| |
| option optimize_for = LITE_RUNTIME; |
| |
| package download_pb; |
| |
| import "components/download/database/proto/download_source.proto"; |
| |
| message HttpRequestHeader { |
| optional string key = 1; |
| optional string value = 2; |
| } |
| |
| // Slice information for parallel downloading. |
| message ReceivedSlice { |
| optional int64 offset = 1; |
| optional int64 received_bytes = 2; |
| optional bool finished = 3; |
| } |
| |
| // Stores various in-progress metadata related to a download. |
| message DownloadEntry { |
| optional string guid = 1; |
| optional string request_origin = 2; |
| optional DownloadSource download_source = 3; |
| optional int64 ukm_download_id = 4; |
| optional int64 bytes_wasted = 5; |
| optional bool fetch_error_body = 6; |
| repeated HttpRequestHeader request_headers = 7; |
| } |
| |
| // Contains a list of entries. |
| message DownloadEntries { |
| repeated DownloadEntry entries = 1; |
| } |
| |
| // Information for ukm reporting |
| message UkmInfo { |
| optional DownloadSource download_source = 1; |
| optional int64 ukm_download_id = 2; |
| } |
| |
| // Information about when to start the download, used by download later feature. |
| // Deprecated. |
| message DownloadSchedule { |
| optional int64 start_time = 1; |
| } |
| |
| // Information about an in progress download. |
| message InProgressInfo { |
| repeated string url_chain = 1; |
| optional string referrer_url = 2; |
| optional string site_url = 3; // deprecated |
| optional string tab_url = 4; |
| optional string tab_referrer_url = 5; |
| optional bool fetch_error_body = 6; |
| repeated HttpRequestHeader request_headers = 7; |
| optional string etag = 8; |
| optional string last_modified = 9; |
| optional int64 total_bytes = 10; |
| optional string mime_type = 11; |
| optional string original_mime_type = 12; |
| optional bytes current_path = 13; // Serialized pickles to support string16 |
| optional bytes target_path = 14; // Serialized pickles to support string16 |
| optional int64 received_bytes = 15; |
| optional int64 start_time = 16; |
| optional int64 end_time = 17; |
| repeated ReceivedSlice received_slices = 18; |
| optional string hash = 19; |
| optional bool transient = 20; |
| optional int32 state = 21; |
| optional int32 danger_type = 22; |
| optional int32 interrupt_reason = 23; |
| optional bool paused = 24; |
| optional bool metered = 25; |
| optional int64 bytes_wasted = 26; |
| optional int32 auto_resume_count = 27; |
| optional DownloadSchedule download_schedule = 28; // // Deprecated. |
| // Removing DownloadItemRerouteInfo since FileSystem Connector will not |
| // be released, implementation deleted. |
| reserved 29; |
| optional int32 credentials_mode = 30; // network::mojom::CredentialsMode |
| optional int64 range_request_from = 31; |
| optional int64 range_request_to = 32; |
| optional string serialized_embedder_download_data = 33; |
| reserved 34; |
| } |
| |
| // Stores various metadata related to a download. |
| // WIP and will replace DownloadEntry. |
| message DownloadInfo { |
| optional string guid = 1; |
| optional int32 id = 2; |
| optional UkmInfo ukm_info = 3; |
| optional InProgressInfo in_progress_info = 4; |
| } |
| |
| // In progress database entry for download information. |
| message DownloadDBEntry { |
| // Add field for offline page download. |
| oneof entry { DownloadInfo download_info = 1; } |
| } |