1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
content / browser / background_fetch / background_fetch.proto [blame]
// 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 content.proto;
// Stores per-registration (as opposed to per-request) data.
// https://wicg.github.io/background-fetch/#background-fetch-registration
//
// Next Tag: 9
message BackgroundFetchRegistration {
enum BackgroundFetchResult {
UNSET = 0; // Default value.
FAILURE = 1;
SUCCESS = 2;
}
// This should be kept in sync with blink.mojom.BackgroundFetchFailureReason.
enum BackgroundFetchFailureReason {
NONE = 0; // Default value.
CANCELLED_FROM_UI = 1;
CANCELLED_BY_DEVELOPER = 2;
BAD_STATUS = 3;
FETCH_ERROR = 4;
SERVICE_WORKER_UNAVAILABLE = 5;
QUOTA_EXCEEDED = 6;
DOWNLOAD_TOTAL_EXCEEDED = 7;
}
// See definition of |unique_id| in BackgroundFetchRegistrationId.
optional string unique_id = 1;
// See definition of |developer_id| in BackgroundFetchRegistrationId.
optional bytes developer_id = 2;
optional uint64 upload_total = 3;
optional uint64 uploaded = 4;
optional uint64 download_total = 5;
optional uint64 downloaded = 6;
optional BackgroundFetchResult result = 7;
optional BackgroundFetchFailureReason failure_reason = 8;
}
// TODO(crbug.com/40245169): Move ImageResource to generic place.
// Currently also being used within chrome/browser/web_applications
// https://w3c.github.io/manifest/#dom-imageresource
//
// Next Tag: 5
message ImageResource {
optional string src = 1;
// Next Tag: 3
message Size {
optional int32 width = 1;
optional int32 height = 2;
}
repeated Size sizes = 2;
optional bytes type = 3;
// https://w3c.github.io/manifest/#purpose-member
enum Purpose {
ANY = 1;
MONOCHROME = 2;
MASKABLE = 3;
}
// blink::mojom::ManifestImageResource_Purpose enum.
repeated Purpose purpose = 4;
}
// Developer provided options.
// https://wicg.github.io/background-fetch/#background-fetch-manager
//
// Next Tag: 3
message BackgroundFetchOptions {
// The initial title provided by the developer. This can be updated,
// and the most recent value is stored in BackgroundFetchUIOptions.
optional string title = 1;
repeated ImageResource icons = 2;
optional uint64 download_total = 3;
}
// Keeps track of the version of the persisted data. If a breaking change
// needs to be made, increment `CURRENT`, and replace it with a descriptive
// name of the change. Don't directly check against `SV_CURRENT` as it can be
// changed.
// For example, if you want to enable a new key format for the SWDB, perform
// the following steps:
// 1. Add a new enum value (SV_ENABLE_NEW_KEY_FORMAT) and increment
// `SV_CURRENT`
// 2. Migrate the old formats on database load (DatabaseMigrationTask).
// 3. Add a TODO with a bug to clean this up after 2 milestones or so.
//
// Next Value: 3
enum BackgroundFetchStorageVersion {
// There was an error when trying to get the storage version.
SV_ERROR = -1;
// No storage version was found.
SV_UNINITIALIZED = 0;
// Migrate registered fetches to use the new Cache URL key format, to make
// them unique, and allow for duplicate requests in a registration.
SV_UNIQUE_CACHE_KEYS = 1;
// Add new versions here.
// Must be last.
SV_CURRENT = 2;
}
// Stores information about the background fetch that will be persisted
// to disk. This information should be everything needed to reconstruct
// the state of an interrupted background fetch.
//
// Next Tag: 8
message BackgroundFetchMetadata {
optional int64 creation_microseconds_since_unix_epoch = 1;
optional string origin = 2 [deprecated = true];
optional BackgroundFetchRegistration registration = 3;
optional BackgroundFetchOptions options = 4;
// Number of fetches initiated by the developer.
optional int32 num_fetches = 5;
// Serialized net::IsolationInfo associated with the Background Fetch.
optional string isolation_info = 6;
// Serialized storage key; this replaces origin
optional string storage_key = 7;
}
// All the updateable options that show up in the UI (e.g. notification).
//
// Next Tag: 3
message BackgroundFetchUIOptions {
optional string title = 1;
// Raw bytes needed to deserialize into a PNG icon. Only used if the icon
// has a max resolution of 256x256. This means this is at most ~256KB.
optional bytes icon = 2;
}
// A background fetch request that is still in a pending state.
//
// Next Tag: 6
message BackgroundFetchPendingRequest {
optional string unique_id = 1;
optional int32 request_index = 2;
optional string serialized_request = 3;
optional uint64 request_body_size = 5;
reserved 4;
}
// A background fetch request in the active state. This means that
// the DownloadManager started downloading the file.
//
// Next Tag: 7
message BackgroundFetchActiveRequest {
optional string unique_id = 1;
optional int32 request_index = 2;
optional string serialized_request = 3;
optional string download_guid = 4;
optional uint64 request_body_size = 6;
reserved 5;
}
// A background fetch request in the completed state. This means that
// the DownloadManager returned the download.
//
// Next Tag: 7
message BackgroundFetchCompletedRequest {
optional string unique_id = 1;
optional int32 request_index = 2;
optional string serialized_request = 3;
optional string download_guid = 4;
optional BackgroundFetchRegistration.BackgroundFetchFailureReason
failure_reason = 6;
reserved 5;
}