| // Copyright 2016 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. | 
 |  | 
 | // Protocol buffers used for storing in SQLite. | 
 | // CAUTION: When any change is done here, bump kDatabaseVersion in | 
 | //          resource_prefetch_predictor_tables.h. | 
 |  | 
 | syntax = "proto2"; | 
 |  | 
 | package predictors; | 
 |  | 
 | // Required in Chrome. | 
 | option optimize_for = LITE_RUNTIME; | 
 |  | 
 | // Represents a single redirect chain endpoint. | 
 | // When adding a field here, please also update the equality operator and the | 
 | // output operator in | 
 | // chrome/browser/predictors/loading_test_util.cc. | 
 | message RedirectStat { | 
 |   // Represents the host for RedirectData in a host-based table. | 
 |   // | 
 |   // Note that the |url| field contains only the origin portion of the full URL. | 
 |   // The full URL is not available, because in some cases the path and query may | 
 |   // be sanitized away - see https://crbug.com/973885. | 
 |   optional string url = 1; | 
 |   optional uint32 number_of_hits = 2; | 
 |   optional uint32 number_of_misses = 3; | 
 |   optional uint32 consecutive_misses = 4; | 
 |   // |url_scheme| is typically either "http" or "https". This field was added | 
 |   // in M-77 without wiping the database. As such, it may be empty in some | 
 |   // cases even when originally |url| had a non-empty scheme. | 
 |   optional string url_scheme = 5; | 
 |   // |url_port| field was added in M-77 without wiping the database. As such, | 
 |   // it may be empty in some cases even when originally |url| had a non-empty | 
 |   // port number. | 
 |   optional int32 url_port = 6; | 
 | } | 
 |  | 
 | // Represents a mapping from URL or host to a list of redirect endpoints. | 
 | message RedirectData { | 
 |   // Main frame URL or host. | 
 |   optional string primary_key = 1; | 
 |   optional uint64 last_visit_time = 2; | 
 |   repeated RedirectStat redirect_endpoints = 3; | 
 | } | 
 |  | 
 | // Historical data for a single origin accessed from a host. | 
 | message OriginStat { | 
 |   optional string origin = 1; | 
 |   optional uint32 number_of_hits = 2; | 
 |   optional uint32 number_of_misses = 3; | 
 |   optional uint32 consecutive_misses = 4; | 
 |   optional double average_position = 5; | 
 |   optional bool always_access_network = 6; | 
 |   optional bool accessed_network = 7; | 
 | } | 
 |  | 
 | // Collection of origins accessed from a host. | 
 | message OriginData { | 
 |   optional string host = 1; | 
 |   optional uint64 last_visit_time = 2; | 
 |   repeated OriginStat origins = 3; | 
 | } |