// 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 protodb;
import "request.proto";
import "scheduling.proto";
// This should stay in sync with the DownloadClient enum
// (components/download/public/background_service/clients.h).
enum DownloadClient {
INVALID = 0;
TEST = 1;
TEST_2 = 2;
TEST_3 = 3;
OFFLINE_PAGE_PREFETCH = 4;
BACKGROUND_FETCH = 5;
DEBUGGING = 6;
MOUNTAIN_INTERNAL = 7;
PLUGIN_VM_IMAGE = 8;
OPTIMIZATION_GUIDE_PREDICTION_MODELS = 9;
BRUSCHETTA = 10;
// New clients should be added above here.
BOUNDARY = 11;
}
// Custom key value pair provided by the client and will be sent back to client
// when download is completed.
// Next tag: 3
message CustomData {
optional string key = 1;
optional string value = 2;
}
// Stores the request params, internal state, metrics and metadata associated
// with a download request.
// Next tag: 21
message Entry {
// This should stay in sync with the State enum
// (components/download/internal/background_service/entry.h).
enum State {
NEW = 0;
AVAILABLE = 1;
ACTIVE = 2;
PAUSED = 3;
COMPLETE = 4;
}
// Identification Parameters.
optional DownloadClient name_space = 1;
optional string guid = 2;
// Requested Parameters.
optional SchedulingParams scheduling_params = 3;
optional RequestParams request_params = 4;
// Internal Tracking States.
optional State state = 5;
optional string target_file_path = 6;
// Uses internal time representation.
optional int64 create_time = 7;
optional int64 completion_time = 8;
optional uint32 attempt_count = 9;
// Representation of a net::NetworkTrafficAnnotationTag.
optional int32 traffic_annotation = 10;
// Size of the download file in bytes.
optional uint64 bytes_downloaded = 11;
// Uses internal time representation.
optional int64 last_cleanup_check_time = 12;
optional uint32 resumption_count = 14;
optional bool has_upload_data = 15;
repeated string url_chain = 16;
optional string response_headers = 17;
optional bool did_received_response = 18;
optional bool require_response_headers = 19;
repeated CustomData custom_data = 20;
}