blob: 528795a0f373b83e8fb75397aa905f7c31b752e8 [file] [log] [blame]
// Copyright 2017 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.
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/clients.h).
enum DownloadClient {
INVALID = 0;
TEST = 1;
TEST_2 = 2;
TEST_3 = 3;
OFFLINE_PAGE_PREFETCH = 4;
BACKGROUND_FETCH = 5;
DEBUGGING = 6;
BOUNDARY = 7;
}
// Stores the request params, internal state, metrics and metadata associated
// with a download request.
message Entry {
// This should stay in sync with the State enum
// (components/download/internal/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 cleanup_attempt_count = 13;
optional uint32 resumption_count = 14;
}