#include "chrome/browser/guest_view/chrome_guest_view_manager_delegate.h"
#include "build/build_config.h"
#include "chrome/browser/task_manager/web_contents_tags.h"
#include "chrome/common/buildflags.h"
#include "components/captive_portal/core/buildflags.h"
#if BUILDFLAG(IS_CHROMEOS)
#include "chrome/browser/ash/app_mode/kiosk_chrome_app_manager.h"
#include "chrome/browser/ash/app_mode/kiosk_controller.h"
#include "chrome/browser/ash/app_mode/kiosk_system_session.h"
#endif
#if BUILDFLAG(ENABLE_GLIC)
#include "chrome/browser/glic/host/guest_util.h"
#endif
#if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION)
#include "chrome/browser/captive_portal/captive_portal_service_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ssl/chrome_security_blocking_page_factory.h"
#include "components/captive_portal/content/captive_portal_tab_helper.h"
#endif
namespace extensions {
ChromeGuestViewManagerDelegate::ChromeGuestViewManagerDelegate() = default;
ChromeGuestViewManagerDelegate::~ChromeGuestViewManagerDelegate() = default;
void ChromeGuestViewManagerDelegate::OnGuestAdded(
content::WebContents* guest_web_contents) const {
ExtensionsGuestViewManagerDelegate::OnGuestAdded(guest_web_contents);
task_manager::WebContentsTags::CreateForGuestContents(guest_web_contents);
#if BUILDFLAG(IS_CHROMEOS)
ash::KioskController::Get().OnGuestAdded(guest_web_contents);
#endif
#if BUILDFLAG(ENABLE_GLIC)
glic::OnGuestAdded(guest_web_contents);
#endif
#if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION)
Profile* profile =
Profile::FromBrowserContext(guest_web_contents->GetBrowserContext());
captive_portal::CaptivePortalTabHelper::CreateForWebContents(
guest_web_contents, CaptivePortalServiceFactory::GetForProfile(profile),
base::BindRepeating(&ChromeSecurityBlockingPageFactory::
OpenLoginPageInAnyTabbedBrowserOrCreateOne,
profile, false));
#endif
}
bool ChromeGuestViewManagerDelegate::IsOwnedByControlledFrameEmbedder(
const guest_view::GuestViewBase* guest) {
return ExtensionsGuestViewManagerDelegate::
IsGuestAvailableToContextWithFeature(guest, "controlledFrameInternal");
}
}