mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-24 14:26:09 +03:00
111 lines
3.4 KiB
Plaintext
111 lines
3.4 KiB
Plaintext
// Copyright 2017 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.
|
|
|
|
module content.history.mojom;
|
|
|
|
import "mojo/common/string16.mojom";
|
|
import "mojo/common/time.mojom";
|
|
import "third_party/WebKit/public/platform/referrer.mojom";
|
|
import "url/mojo/url.mojom";
|
|
import "ui/gfx/geometry/mojo/geometry.mojom";
|
|
|
|
// This file contains the mojo IDL definitions for PageState and its constituent
|
|
// parts. The resultant generated code is used to serialize and deserialize
|
|
// PageState for the purpose of history restore.
|
|
// When adding fields, assign your new field an explicity ordinal(@n) and
|
|
// prefer to add fields to the end of the struct to simplify finding the
|
|
// latest ordinal.
|
|
// For backwards compatibility purposes, new fields must be tagged with a
|
|
// [MinVersion=x] attribute; x is specified at the bottom of this comment
|
|
// block.
|
|
// You'll also need to read/write the new field's value when decoding and
|
|
// encoding PageState, update PageStateSerializationTest to check that
|
|
// your new field is preserved across serialization, and add a BackwardsCompat
|
|
// test with associated serialized_vxx.dat file. Look for
|
|
// DumpExpectedPageStateForBackwardsCompat in page_state_serialization_unittest
|
|
// for how to do this.
|
|
// Don't remove, or change the type of fields; this will break
|
|
// compatibility. If re-ordering fields, make sure to retain the original
|
|
// ordinal value.
|
|
// Update the below value if your change introduces fields using it.
|
|
// Next MinVersion: 2
|
|
|
|
// Next Ordinal: 4
|
|
struct FileSystemFile {
|
|
url.mojom.Url filesystem_url@0;
|
|
uint64 offset@1;
|
|
uint64 length@2;
|
|
mojo.common.mojom.Time modification_time@3;
|
|
};
|
|
|
|
// Next Ordinal: 4
|
|
struct File {
|
|
mojo.common.mojom.String16 path@0;
|
|
uint64 offset@1;
|
|
uint64 length@2;
|
|
mojo.common.mojom.Time modification_time@3;
|
|
};
|
|
|
|
// Next Ordinal: 4
|
|
union Element {
|
|
string blob_uuid@0;
|
|
array<uint8> bytes@1;
|
|
File file@2;
|
|
FileSystemFile file_system_file@3;
|
|
};
|
|
|
|
// Next Ordinal: 3
|
|
struct RequestBody {
|
|
array<Element> elements@0;
|
|
int64 identifier@1;
|
|
bool contains_sensitive_info@2;
|
|
};
|
|
|
|
// Next Ordinal: 3
|
|
struct HttpBody {
|
|
mojo.common.mojom.String16? http_content_type@0;
|
|
RequestBody? request_body@1;
|
|
bool contains_passwords@2 = false;
|
|
};
|
|
|
|
// This enum's values must match blink::WebHistoryScrollRestorationType. This
|
|
// is enforced with static asserts in page_state_serialization.cc.
|
|
[Extensible]
|
|
enum ScrollRestorationType {
|
|
kAuto = 0,
|
|
kManual = 1
|
|
};
|
|
|
|
// Next Ordinal: 6
|
|
struct ViewState {
|
|
gfx.mojom.PointF visual_viewport_scroll_offset@0;
|
|
gfx.mojom.Point scroll_offset@1;
|
|
double page_scale_factor@2;
|
|
// Serialized scroll anchor fields
|
|
[MinVersion=1] mojo.common.mojom.String16? scroll_anchor_selector@3;
|
|
[MinVersion=1] gfx.mojom.PointF? scroll_anchor_offset@4;
|
|
[MinVersion=1] uint64 scroll_anchor_simhash@5 = 0;
|
|
};
|
|
|
|
struct FrameState {
|
|
mojo.common.mojom.String16? url_string@0;
|
|
mojo.common.mojom.String16? referrer@1;
|
|
mojo.common.mojom.String16? target@2;
|
|
mojo.common.mojom.String16? state_object@3;
|
|
array<mojo.common.mojom.String16?> document_state@4;
|
|
ScrollRestorationType scroll_restoration_type@5;
|
|
ViewState? view_state@6;
|
|
int64 item_sequence_number@7;
|
|
int64 document_sequence_number@8;
|
|
blink.mojom.ReferrerPolicy referrer_policy@9;
|
|
HttpBody http_body@10;
|
|
array<FrameState> children@11;
|
|
};
|
|
|
|
// Next Ordinal: 2
|
|
struct PageState {
|
|
array<mojo.common.mojom.String16?> referenced_files@0;
|
|
FrameState top@1;
|
|
};
|