#include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_embedder.h"
#include "base/containers/contains.h"
#include "base/containers/flat_map.h"
#include "base/memory/ptr_util.h"
#include "base/no_destructor.h"
#include "components/guest_view/browser/guest_view_manager.h"
#include "components/guest_view/browser/guest_view_manager_delegate.h"
#include "content/public/browser/navigation_handle.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/web_contents.h"
#include "extensions/browser/api/extensions_api_client.h"
#include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_attach_helper.h"
#include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_constants.h"
#include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h"
#include "extensions/common/mojom/guest_view.mojom.h"
#include "services/network/public/cpp/web_sandbox_flags.h"
#include "services/network/public/mojom/web_sandbox_flags.mojom-shared.h"
#include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
#include "third_party/blink/public/common/frame/frame_owner_element_type.h"
namespace extensions {
namespace {
EmbedderMap;
EmbedderMap* GetMimeHandlerViewEmbeddersMap() { … }
}
MimeHandlerViewEmbedder* MimeHandlerViewEmbedder::Get(
int32_t frame_tree_node_id) { … }
void MimeHandlerViewEmbedder::Create(int32_t frame_tree_node_id,
const GURL& resource_url,
const std::string& stream_id,
const std::string& internal_id) { … }
MimeHandlerViewEmbedder::MimeHandlerViewEmbedder(int32_t frame_tree_node_id,
const GURL& resource_url,
const std::string& stream_id,
const std::string& internal_id)
: … { … }
MimeHandlerViewEmbedder::~MimeHandlerViewEmbedder() = default;
void MimeHandlerViewEmbedder::DestroySelf() { … }
void MimeHandlerViewEmbedder::DidStartNavigation(
content::NavigationHandle* handle) { … }
void MimeHandlerViewEmbedder::ReadyToCommitNavigation(
content::NavigationHandle* handle) { … }
void MimeHandlerViewEmbedder::DidFinishNavigation(
content::NavigationHandle* handle) { … }
void MimeHandlerViewEmbedder::RenderFrameCreated(
content::RenderFrameHost* render_frame_host) { … }
void MimeHandlerViewEmbedder::FrameDeleted(int frame_tree_node_id) { … }
void MimeHandlerViewEmbedder::CreateMimeHandlerViewGuest(
mojo::PendingRemote<mime_handler::BeforeUnloadControl>
before_unload_control_remote) { … }
void MimeHandlerViewEmbedder::DidCreateMimeHandlerViewGuest(
mojo::PendingRemote<mime_handler::BeforeUnloadControl>
before_unload_control_remote,
std::unique_ptr<guest_view::GuestViewBase> guest) { … }
mojom::MimeHandlerViewContainerManager*
MimeHandlerViewEmbedder::GetContainerManager() { … }
void MimeHandlerViewEmbedder::ReadyToCreateMimeHandlerView(
bool ready_to_create_mime_handler_view) { … }
void MimeHandlerViewEmbedder::OnFrameSandboxed() { … }
}