#include "third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate.h"
#include <memory>
#include "base/time/time.h"
#include "build/build_config.h"
#include "third_party/blink/public/common/thread_safe_browser_interface_broker_proxy.h"
#include "third_party/blink/public/platform/task_type.h"
#include "third_party/blink/renderer/core/dom/events/event.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/frame/screen.h"
#include "third_party/blink/renderer/core/html/media/html_video_element.h"
#include "third_party/blink/renderer/core/page/chrome_client.h"
#include "third_party/blink/renderer/modules/device_orientation/device_orientation_data.h"
#include "third_party/blink/renderer/modules/device_orientation/device_orientation_event.h"
#include "third_party/blink/renderer/modules/screen_orientation/screen_orientation.h"
#include "third_party/blink/renderer/modules/screen_orientation/screen_orientation_controller.h"
#include "third_party/blink/renderer/modules/screen_orientation/screen_screen_orientation.h"
#include "third_party/blink/renderer/modules/screen_orientation/web_lock_orientation_callback.h"
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
#include "third_party/blink/renderer/platform/wtf/math_extras.h"
#include "ui/display/screen_info.h"
#if BUILDFLAG(IS_ANDROID)
#include "third_party/blink/public/platform/platform.h"
#endif
#undef atan2
#undef fmod
#include <cmath>
namespace blink {
namespace {
class DummyScreenOrientationCallback : public WebLockOrientationCallback { … };
}
constexpr base::TimeDelta MediaControlsOrientationLockDelegate::kLockToAnyDelay;
MediaControlsOrientationLockDelegate::MediaControlsOrientationLockDelegate(
HTMLVideoElement& video)
: … { … }
void MediaControlsOrientationLockDelegate::Attach() { … }
void MediaControlsOrientationLockDelegate::Detach() { … }
void MediaControlsOrientationLockDelegate::MaybeLockOrientation() { … }
void MediaControlsOrientationLockDelegate::ChangeLockToAnyOrientation() { … }
void MediaControlsOrientationLockDelegate::MaybeUnlockOrientation() { … }
void MediaControlsOrientationLockDelegate::MaybeListenToDeviceOrientation() { … }
void MediaControlsOrientationLockDelegate::GotIsAutoRotateEnabledByUser(
bool enabled) { … }
HTMLVideoElement& MediaControlsOrientationLockDelegate::VideoElement() const { … }
Document& MediaControlsOrientationLockDelegate::GetDocument() const { … }
void MediaControlsOrientationLockDelegate::Invoke(
ExecutionContext* execution_context,
Event* event) { … }
device::mojom::blink::ScreenOrientationLockType
MediaControlsOrientationLockDelegate::ComputeOrientationLock() const { … }
MediaControlsOrientationLockDelegate::DeviceOrientationType
MediaControlsOrientationLockDelegate::ComputeDeviceOrientation(
DeviceOrientationData* data) const { … }
void MediaControlsOrientationLockDelegate::
MaybeLockToAnyIfDeviceOrientationMatchesVideo(
DeviceOrientationEvent* event) { … }
void MediaControlsOrientationLockDelegate::Trace(Visitor* visitor) const { … }
}