#include "extensions/browser/guest_view/extension_options/extension_options_guest.h"
#include <memory>
#include <string>
#include <utility>
#include "base/memory/ptr_util.h"
#include "base/values.h"
#include "components/crx_file/id_util.h"
#include "components/guest_view/browser/guest_view_event.h"
#include "components/guest_view/browser/guest_view_manager.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/site_instance.h"
#include "content/public/browser/web_contents.h"
#include "extensions/browser/api/extensions_api_client.h"
#include "extensions/browser/bad_message.h"
#include "extensions/browser/extension_function_dispatcher.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/guest_view/extension_options/extension_options_constants.h"
#include "extensions/browser/guest_view/extension_options/extension_options_guest_delegate.h"
#include "extensions/common/api/extension_options_internal.h"
#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "extensions/common/manifest_handlers/options_page_info.h"
#include "extensions/strings/grit/extensions_strings.h"
WebContents;
GuestViewBase;
GuestViewEvent;
namespace extensions {
const char ExtensionOptionsGuest::Type[] = …;
const guest_view::GuestViewHistogramValue
ExtensionOptionsGuest::HistogramValue = …;
ExtensionOptionsGuest::ExtensionOptionsGuest(
content::RenderFrameHost* owner_rfh)
: … { … }
ExtensionOptionsGuest::~ExtensionOptionsGuest() = default;
std::unique_ptr<GuestViewBase> ExtensionOptionsGuest::Create(
content::RenderFrameHost* owner_rfh) { … }
void ExtensionOptionsGuest::CreateWebContents(
std::unique_ptr<GuestViewBase> owned_this,
const base::Value::Dict& create_params,
WebContentsCreatedCallback callback) { … }
void ExtensionOptionsGuest::DidInitialize(
const base::Value::Dict& create_params) { … }
void ExtensionOptionsGuest::MaybeRecreateGuestContents(
content::RenderFrameHost* outer_contents_frame) { … }
void ExtensionOptionsGuest::GuestViewDidStopLoading() { … }
const char* ExtensionOptionsGuest::GetAPINamespace() const { … }
int ExtensionOptionsGuest::GetTaskPrefix() const { … }
bool ExtensionOptionsGuest::IsPreferredSizeModeEnabled() const { … }
void ExtensionOptionsGuest::OnPreferredSizeChanged(const gfx::Size& pref_size) { … }
WebContents* ExtensionOptionsGuest::AddNewContents(
WebContents* source,
std::unique_ptr<WebContents> new_contents,
const GURL& target_url,
WindowOpenDisposition disposition,
const blink::mojom::WindowFeatures& window_features,
bool user_gesture,
bool* was_blocked) { … }
WebContents* ExtensionOptionsGuest::OpenURLFromTab(
WebContents* source,
const content::OpenURLParams& params,
base::OnceCallback<void(content::NavigationHandle&)>
navigation_handle_callback) { … }
void ExtensionOptionsGuest::CloseContents(WebContents* source) { … }
bool ExtensionOptionsGuest::HandleContextMenu(
content::RenderFrameHost& render_frame_host,
const content::ContextMenuParams& params) { … }
bool ExtensionOptionsGuest::ShouldResumeRequestsForCreatedWindow() { … }
bool ExtensionOptionsGuest::IsWebContentsCreationOverridden(
content::SiteInstance* source_site_instance,
content::mojom::WindowContainerType window_container_type,
const GURL& opener_url,
const std::string& frame_name,
const GURL& target_url) { … }
WebContents* ExtensionOptionsGuest::CreateCustomWebContents(
content::RenderFrameHost* opener,
content::SiteInstance* source_site_instance,
bool is_renderer_initiated,
const GURL& opener_url,
const std::string& frame_name,
const GURL& target_url,
const content::StoragePartitionConfig& partition_config,
content::SessionStorageNamespace* session_storage_namespace) { … }
void ExtensionOptionsGuest::DidFinishNavigation(
content::NavigationHandle* navigation_handle) { … }
}