blob: 56ad7e8f21cf2faa949f95b365d3283804b82506 [file]
// Copyright 2026 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// If you change or add any fields in this file, update proto_visitors.h and
// potentially proto_enum_conversions.{h, cc}.
syntax = "proto2";
package sync_pb;
import "components/sync/protocol/sync_enums.proto";
option java_multiple_files = true;
option java_package = "org.chromium.components.sync.protocol";
option optimize_for = LITE_RUNTIME;
// Properties of a navigation.
message TabNavigation {
// The page's URL as displayed to the user (which can be the actual page URL
// or a virtual override). It can be empty or, in rare cases, an unsyncable
// URL, so it is the receiver's responsibility to implement additional
// filtering before displaying these URLs or tabs in the UI.
optional string virtual_url = 2;
// The referring URL, which can be empty.
optional string referrer = 3;
// The title of the page.
optional string title = 4;
// The core transition type.
optional SyncEnums.PageTransition page_transition = 6 [default = LINK];
// If this transition was triggered by a redirect, the redirect type.
optional SyncEnums.PageTransitionRedirectType redirect_type = 7;
// The unique navigation id (within this client).
optional int32 unique_id = 8;
// Timestamp for when this navigation last occurred (in client time).
// If the user goes back/forward in history the timestamp may refresh.
optional int64 timestamp_msec = 9;
// User used the Forward or Back button to navigate among browsing history.
optional bool navigation_forward_back = 10;
// User used the address bar to trigger this navigation.
optional bool navigation_from_address_bar = 11;
// User is navigating to the home page.
optional bool navigation_home_page = 12;
// The id for this navigation, which is globally unique with high
// probability.
optional int64 global_id = 15;
// The favicon url associated with this page.
optional string favicon_url = 17;
// The status code from the last navigation.
optional int32 http_status_code = 20;
// Correct referrer policy. Valid enums are defined in
// third_party/WebKit/public/platform/WebReferrerPolicy.h.
optional int32 correct_referrer_policy = 25 [default = 1];
// Whether the Password Manager saw a password field on the page.
optional SyncEnums.PasswordState password_state = 26;
// The start/end of a redirect chain. Deprecated in M108 because they were
// always set to false in practice, and don't make sense in the first place -
// this message corresponds to a complete chain.
optional bool navigation_chain_start = 13 [deprecated = true];
optional bool navigation_chain_end = 14 [deprecated = true];
// Search terms extracted from the URL. Deprecated in M64.
optional string search_terms = 16 [deprecated = true];
enum BlockedState {
STATE_ALLOWED = 1;
STATE_BLOCKED = 2;
}
// Whether access to the URL was allowed or blocked. Deprecated in M121
// because it was unused.
optional BlockedState blocked_state = 18
[deprecated = true, default = STATE_ALLOWED];
// Referrer policy. Old, broken value. Deprecated in M61.
optional int32 obsolete_referrer_policy = 21 [deprecated = true];
// True if created from restored navigation entry that hasn't been loaded.
// Deprecated in M121 because it was unused.
optional bool is_restored = 22 [deprecated = true];
// The chain of redirections for this navigation, from the original URL
// through the last URL that redirected. Deprecated in M121 because it was
// unused.
repeated NavigationRedirect navigation_redirect = 23 [deprecated = true];
// The last URL traversed when different from the virtual_url. Deprecated in
// M121 because it was unused.
optional string last_navigation_redirect_url = 24 [deprecated = true];
// The id for the task associated with this navigation, which is globally
// unique with high probability. Deprecated in M121 because it was unused.
optional int64 task_id = 27 [deprecated = true];
// Task ids of all ancestor navigations, which can be from other tabs, from
// root to parent. Deprecated in M121 because it was unused.
repeated int64 ancestor_task_id = 28 [deprecated = true];
// When a history entry is replaced (e.g. history.replaceState()), this
// contained some information about the entry prior to being replaced.
// Deprecated in M121 because it was unused.
optional ReplacedNavigation replaced_navigation = 29 [deprecated = true];
// The page language as determined by its textual content. An ISO 639 language
// code (two letters, except for Chinese where a localization is necessary).
// Deprecated in M121 because it was unused.
optional string page_language = 30 [deprecated = true];
reserved 1;
reserved "index";
reserved 5;
reserved "state";
reserved 19;
reserved "content_pack_categories";
}
// Navigation information for a single redirection within a single navigation.
message NavigationRedirect {
// A URL that redirected while navigating to the virtual_url.
optional string url = 1;
}
// Subset of TabNavigation fields representing a navigation that was later
// replaced in history (e.g. history.replaceState()), which allows tracking
// information about the original navigation prior to the first replacement.
message ReplacedNavigation {
optional string first_committed_url = 1;
optional int64 first_timestamp_msec = 2;
optional SyncEnums.PageTransition first_page_transition = 3;
}