#include "third_party/blink/renderer/core/frame/web_remote_frame_impl.h"
#include <utility>
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "third_party/blink/public/common/frame/frame_visual_properties.h"
#include "third_party/blink/public/common/permissions_policy/permissions_policy.h"
#include "third_party/blink/public/common/storage_key/storage_key.h"
#include "third_party/blink/public/mojom/frame/frame_replication_state.mojom-blink.h"
#include "third_party/blink/public/mojom/frame/frame_replication_state.mojom.h"
#include "third_party/blink/public/mojom/frame/tree_scope_type.mojom-blink.h"
#include "third_party/blink/public/mojom/security_context/insecure_request_policy.mojom-blink.h"
#include "third_party/blink/public/web/web_document.h"
#include "third_party/blink/public/web/web_element.h"
#include "third_party/blink/public/web/web_frame_owner_properties.h"
#include "third_party/blink/public/web/web_range.h"
#include "third_party/blink/renderer/bindings/core/v8/window_proxy.h"
#include "third_party/blink/renderer/core/execution_context/remote_security_context.h"
#include "third_party/blink/renderer/core/execution_context/security_context.h"
#include "third_party/blink/renderer/core/exported/web_view_impl.h"
#include "third_party/blink/renderer/core/frame/csp/conversion_util.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/frame/local_frame_view.h"
#include "third_party/blink/renderer/core/frame/remote_frame_client_impl.h"
#include "third_party/blink/renderer/core/frame/remote_frame_owner.h"
#include "third_party/blink/renderer/core/frame/settings.h"
#include "third_party/blink/renderer/core/frame/web_frame_widget_impl.h"
#include "third_party/blink/renderer/core/frame/web_local_frame_impl.h"
#include "third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.h"
#include "third_party/blink/renderer/core/html/html_frame_owner_element.h"
#include "third_party/blink/renderer/core/html_names.h"
#include "third_party/blink/renderer/core/layout/layout_object.h"
#include "third_party/blink/renderer/core/layout/layout_view.h"
#include "third_party/blink/renderer/core/page/chrome_client.h"
#include "third_party/blink/renderer/core/page/page.h"
#include "third_party/blink/renderer/platform/bindings/dom_wrapper_world.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
#include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
#include "ui/gfx/geometry/quad_f.h"
#include "v8/include/v8.h"
namespace blink {
namespace {
mojom::blink::FrameReplicationStatePtr ToBlinkFrameReplicationState(
mojom::FrameReplicationStatePtr to_convert) { … }
}
WebRemoteFrame* WebRemoteFrame::FromFrameToken(
const RemoteFrameToken& frame_token) { … }
WebRemoteFrame* WebRemoteFrame::Create(mojom::blink::TreeScopeType scope,
const RemoteFrameToken& frame_token) { … }
WebRemoteFrame* WebRemoteFrame::CreateMainFrame(
WebView* web_view,
const RemoteFrameToken& frame_token,
bool is_loading,
const base::UnguessableToken& devtools_frame_token,
WebFrame* opener,
CrossVariantMojoAssociatedRemote<mojom::blink::RemoteFrameHostInterfaceBase>
remote_frame_host,
CrossVariantMojoAssociatedReceiver<mojom::blink::RemoteFrameInterfaceBase>
receiver,
mojom::FrameReplicationStatePtr replicated_state) { … }
WebRemoteFrameImpl* WebRemoteFrameImpl::CreateMainFrame(
WebView* web_view,
const RemoteFrameToken& frame_token,
bool is_loading,
const base::UnguessableToken& devtools_frame_token,
WebFrame* opener,
mojo::PendingAssociatedRemote<mojom::blink::RemoteFrameHost>
remote_frame_host,
mojo::PendingAssociatedReceiver<mojom::blink::RemoteFrame> receiver,
mojom::blink::FrameReplicationStatePtr replicated_state) { … }
WebRemoteFrameImpl* WebRemoteFrameImpl::CreateForFencedFrame(
mojom::blink::TreeScopeType scope,
const RemoteFrameToken& frame_token,
const base::UnguessableToken& devtools_frame_token,
HTMLFrameOwnerElement* frame_owner,
mojo::PendingAssociatedRemote<mojom::blink::RemoteFrameHost>
remote_frame_host,
mojo::PendingAssociatedReceiver<mojom::blink::RemoteFrame> receiver,
mojom::blink::FrameReplicationStatePtr replicated_state) { … }
WebRemoteFrameImpl::~WebRemoteFrameImpl() = default;
void WebRemoteFrameImpl::Trace(Visitor* visitor) const { … }
bool WebRemoteFrameImpl::IsWebLocalFrame() const { … }
WebLocalFrame* WebRemoteFrameImpl::ToWebLocalFrame() { … }
const WebLocalFrame* WebRemoteFrameImpl::ToWebLocalFrame() const { … }
bool WebRemoteFrameImpl::IsWebRemoteFrame() const { … }
WebRemoteFrame* WebRemoteFrameImpl::ToWebRemoteFrame() { … }
const WebRemoteFrame* WebRemoteFrameImpl::ToWebRemoteFrame() const { … }
void WebRemoteFrameImpl::Close() { … }
WebView* WebRemoteFrameImpl::View() const { … }
WebLocalFrame* WebRemoteFrameImpl::CreateLocalChild(
mojom::blink::TreeScopeType scope,
const WebString& name,
const FramePolicy& frame_policy,
WebLocalFrameClient* client,
InterfaceRegistry* interface_registry,
WebFrame* previous_sibling,
const WebFrameOwnerProperties& frame_owner_properties,
const LocalFrameToken& frame_token,
WebFrame* opener,
const DocumentToken& document_token,
CrossVariantMojoRemote<mojom::BrowserInterfaceBrokerInterfaceBase>
interface_broker,
std::unique_ptr<WebPolicyContainer> policy_container) { … }
void WebRemoteFrameImpl::InitializeCoreFrame(
Page& page,
FrameOwner* owner,
WebFrame* parent,
WebFrame* previous_sibling,
FrameInsertType insert_type,
const AtomicString& name,
WindowAgentFactory* window_agent_factory,
const base::UnguessableToken& devtools_frame_token,
mojo::PendingAssociatedRemote<mojom::blink::RemoteFrameHost>
remote_frame_host,
mojo::PendingAssociatedReceiver<mojom::blink::RemoteFrame>
remote_frame_receiver) { … }
WebRemoteFrameImpl* WebRemoteFrameImpl::CreateRemoteChild(
mojom::blink::TreeScopeType scope,
const RemoteFrameToken& frame_token,
bool is_loading,
const base::UnguessableToken& devtools_frame_token,
WebFrame* opener,
mojo::PendingAssociatedRemote<mojom::blink::RemoteFrameHost>
remote_frame_host,
mojo::PendingAssociatedReceiver<mojom::blink::RemoteFrame> receiver,
mojom::blink::FrameReplicationStatePtr replicated_state,
mojom::blink::FrameOwnerPropertiesPtr owner_properties) { … }
void WebRemoteFrameImpl::SetCoreFrame(RemoteFrame* frame) { … }
void WebRemoteFrameImpl::InitializeFrameVisualProperties(
WebFrameWidgetImpl* ancestor_widget,
WebView* web_view) { … }
WebRemoteFrameImpl* WebRemoteFrameImpl::FromFrame(RemoteFrame& frame) { … }
void WebRemoteFrameImpl::SetReplicatedOrigin(
const WebSecurityOrigin& origin,
bool is_potentially_trustworthy_opaque_origin) { … }
void WebRemoteFrameImpl::DidStartLoading() { … }
void WebRemoteFrameImpl::SetFrameOwnerProperties(
mojom::blink::FrameOwnerPropertiesPtr owner_properties) { … }
v8::Local<v8::Object> WebRemoteFrameImpl::GlobalProxy(
v8::Isolate* isolate) const { … }
gfx::Rect WebRemoteFrameImpl::GetCompositingRect() { … }
WebString WebRemoteFrameImpl::UniqueName() const { … }
const FrameVisualProperties&
WebRemoteFrameImpl::GetPendingVisualPropertiesForTesting() const { … }
bool WebRemoteFrameImpl::IsAdFrame() const { … }
WebRemoteFrameImpl::WebRemoteFrameImpl(mojom::blink::TreeScopeType scope,
const RemoteFrameToken& frame_token)
: … { … }
void WebRemoteFrameImpl::SetReplicatedState(
mojom::FrameReplicationStatePtr replicated_state) { … }
void WebRemoteFrameImpl::SetReplicatedState(
mojom::blink::FrameReplicationStatePtr state) { … }
}