|  | // 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; | 
|  | } | 
|  |  | 
|  | // 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; | 
|  |  | 
|  | // 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; | 
|  | } | 
|  |  | 
|  | 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 | 
|  | // in memory. This information should be everything needed to reconstruct | 
|  | // the state of an interrupted background fetch. | 
|  | // | 
|  | // Next Tag: 7 | 
|  | message BackgroundFetchMetadata { | 
|  | optional int64 creation_microseconds_since_unix_epoch = 1; | 
|  | optional string origin = 2; | 
|  |  | 
|  | 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; | 
|  | } | 
|  |  | 
|  | // 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; | 
|  | } |