| // Copyright 2014 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; |
| |
| message CacheStorageIndex { |
| // The Cache message represents stored caches, where cache names are |
| // preserved as UTF16 strings to align with WebIDL DOMStrings. This ensures |
| // compatibility with names that may contain invalid characters. While the |
| // `name` field remains for backward compatibility, all new caches will use |
| // `u16string_name` going forward. Older clients that read index files written |
| // with UTF8 cache names will not break due to this approach. |
| message Cache { |
| // Maintained for backward compatibility, but no longer used for new caches. |
| required string name = 1; |
| optional string cache_dir = 2; |
| optional int64 size = 3; |
| optional string padding_key = 4 [deprecated = true]; |
| optional int64 padding = 5; |
| optional int32 padding_version = 6; |
| optional bytes u16string_name = 7; |
| } |
| repeated Cache cache = 1; |
| optional string origin = 2 [deprecated = true]; |
| optional string storage_key = 3; |
| // Note: The bucket ID is cached here for cases where we need it to |
| // build a Cache Storage directory path when a QuotaManagerProxy |
| // is not available, but otherwise it's safer to lookup the bucket |
| // ID using the storage_key since the value stored here might not |
| // always be reliable (for instance, if a crash occurred between the |
| // time that a bucket was deleted and instances had their index files |
| // deleted on disk). |
| optional int64 bucket_id = 4; |
| optional bool bucket_is_default = 5; |
| } |
| |
| message CacheHeaderMap { |
| required string name = 1; |
| required string value = 2; |
| } |
| |
| message CacheRequest { |
| required string method = 1; |
| repeated CacheHeaderMap headers = 2; |
| optional string fragment = 3; |
| } |
| |
| message CacheResponse { |
| enum ResponseType { |
| BASIC_TYPE = 0; |
| CORS_TYPE = 1; |
| DEFAULT_TYPE = 2; |
| ERROR_TYPE = 3; |
| OPAQUE_TYPE = 4; |
| OPAQUE_REDIRECT_TYPE = 5; |
| } |
| |
| required int32 status_code = 1; |
| required string status_text = 2; |
| required ResponseType response_type = 3; |
| repeated CacheHeaderMap headers = 4; |
| optional string url = 5 [deprecated = true]; |
| optional int64 response_time = 6; |
| repeated string cors_exposed_header_names = 7; |
| repeated string url_list = 8; |
| optional bool loaded_with_credentials = 9 [deprecated = true]; |
| // Mapped to net::HttpResponseInfo::ConnectionInfo via static casting. |
| optional int32 connection_info = 10; |
| optional string alpn_negotiated_protocol = 11; |
| optional bool was_fetched_via_spdy = 12; |
| optional string mime_type = 13; |
| optional string request_method = 14; |
| optional int64 padding = 15; |
| optional int64 side_data_padding = 16; |
| optional bool request_include_credentials = 17; |
| } |
| |
| message CacheMetadata { |
| required CacheRequest request = 1; |
| required CacheResponse response = 2; |
| optional int64 entry_time = 3; |
| } |