#include "chrome/browser/vr/ui_host/vr_ui_host_impl.h"
#include <memory>
#include "base/containers/contains.h"
#include "base/task/single_thread_task_runner.h"
#include "build/build_config.h"
#include "chrome/browser/media/webrtc/media_capture_devices_dispatcher.h"
#include "chrome/browser/media/webrtc/media_stream_capture_indicator.h"
#include "chrome/browser/vr/vr_browser_renderer_thread.h"
#include "chrome/browser/vr/vr_tab_helper.h"
#include "components/content_settings/browser/page_specific_content_settings.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/device_service.h"
#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/permission_controller.h"
#include "content/public/browser/xr_runtime_manager.h"
#include "device/base/features.h"
#include "device/vr/public/mojom/vr_service.mojom.h"
#include "third_party/blink/public/common/permissions/permission_utils.h"
#include "ui/base/l10n/l10n_util.h"
namespace vr {
namespace {
static constexpr base::TimeDelta kPermissionPromptTimeout = …;
#if BUILDFLAG(IS_WIN)
static constexpr base::TimeDelta kFirstWindowsPermissionPromptTimeout =
base::Seconds(10);
#endif
base::TimeDelta GetPermissionPromptTimeout(bool first_time) { … }
static constexpr base::TimeDelta kPollCapturingStateInterval = …;
const CapturingStateModel g_default_capturing_state;
}
VRUiHostImpl::CapturingStateModelTransience::CapturingStateModelTransience(
CapturingStateModel* capturing_model)
: … { … }
void VRUiHostImpl::CapturingStateModelTransience::ResetStartTimes() { … }
void VRUiHostImpl::CapturingStateModelTransience::
TurnFlagsOnBasedOnTriggeredState(
const CapturingStateModel& model_with_triggered_states) { … }
void VRUiHostImpl::CapturingStateModelTransience::
TurnOffAllFlagsTogetherWhenAllTransiencesExpire(
const base::TimeDelta& transience_period) { … }
VRUiHostImpl::VRUiHostImpl(
content::WebContents& contents,
const std::vector<device::mojom::XRViewPtr>& views,
mojo::PendingRemote<device::mojom::ImmersiveOverlay> overlay)
: … { … }
VRUiHostImpl::~VRUiHostImpl() { … }
void VRUiHostImpl::WebXRFramesThrottledChanged(bool throttled) { … }
void VRUiHostImpl::OnPromptAdded() { … }
void VRUiHostImpl::OnPromptRemoved() { … }
void VRUiHostImpl::OnDialogOpened(const DesktopMediaPicker::Params&) { … }
void VRUiHostImpl::OnDialogClosed() { … }
void VRUiHostImpl::ShowExternalNotificationPrompt() { … }
void VRUiHostImpl::RemoveHeadsetNotificationPrompt() { … }
void VRUiHostImpl::InitCapturingStates() { … }
void VRUiHostImpl::PollCapturingState() { … }
}