// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto3";
package ios.proto;
option optimize_for = LITE_RUNTIME;
import "ios/web/public/session/proto/metadata.proto";
import "ios/chrome/browser/sessions/model/proto/tab_group.proto";
// Represents the information about a WebState's opener in a WebStateList.
//
// All fields are required.
message OpenerStorage {
int32 index = 1;
int32 navigation_index = 2;
}
// Represents the information about a WebState stored in a WebStateList.
//
// The WebState information is not stored inline, instead the identifier
// is used to locate the serialised version of the WebState state.
//
// The opener field is optional and can be omitted if the WebState has
// no opener in the current WebStateList.
message WebStateListItemStorage {
int32 identifier = 1;
OpenerStorage opener = 2;
web.proto.WebStateMetadataStorage metadata = 3;
}
// Represents a single WebStateList.
//
// All fields are required.
message WebStateListStorage {
repeated WebStateListItemStorage items = 1;
int32 active_index = 2;
int32 pinned_item_count = 3;
repeated TabGroupStorage groups = 4;
}