// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module blink.mojom;
import "mojo/public/mojom/base/string16.mojom";
import "mojo/public/mojom/base/time.mojom";
import "third_party/blink/public/mojom/frame/frame_policy.mojom";
import "url/mojom/url.mojom";
// The `FencedFrameOwnerHost` interface is used by the HTMLFencedFrameElement in
// the renderer process that hosts the "outer" frame tree. It is used to
// interact with the backing `content::FencedFrame` in the browser process which
// hosts an "inner" frame tree via Multiple Page Architecture.
interface FencedFrameOwnerHost {
// Navigates the main frame of the fenced frame's frame tree, to `url`.
// `embedder_shared_storage_context` is an optional string that may be set
// on the config by the fenced frame embedder prior to navigation using
// `setSharedStorageContext()`; if not set, its value is null.
// TODO(crbug.com/1243568): Document the restrictions on the types of URLs
// that `url` can represent, once these restrictions are made.
Navigate(url.mojom.Url url, mojo_base.mojom.TimeTicks navigation_start_time,
mojo_base.mojom.String16? embedder_shared_storage_context);
// Updates the container policy on the browser side. Note: right now, this
// does not change the sandbox flags or the required document policy. We use
// this instead of RenderFrameHostImpl::DidChangeFramePolicy to avoid doing
// iframe-only checks that would break for fenced frames.
DidChangeFramePolicy(blink.mojom.FramePolicy frame_policy);
};