#include "third_party/blink/renderer/modules/picture_in_picture/html_video_element_picture_in_picture.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/dom/dom_exception.h"
#include "third_party/blink/renderer/core/dom/events/event.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/frame/picture_in_picture_controller.h"
#include "third_party/blink/renderer/core/html/media/html_video_element.h"
#include "third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_window.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
namespace blink {
Status;
namespace {
const char kDetachedError[] = …;
const char kMetadataNotLoadedError[] = …;
const char kVideoTrackNotAvailableError[] = …;
const char kFeaturePolicyBlocked[] = …;
const char kNotAvailable[] = …;
const char kUserGestureRequired[] = …;
const char kDisablePictureInPicturePresent[] = …;
const char kAutoPipAndroid[] = …;
const char kDocumentPip[] = …;
}
ScriptPromise<PictureInPictureWindow>
HTMLVideoElementPictureInPicture::requestPictureInPicture(
ScriptState* script_state,
HTMLVideoElement& element,
ExceptionState& exception_state) { … }
bool HTMLVideoElementPictureInPicture::FastHasAttribute(
const HTMLVideoElement& element,
const QualifiedName& name) { … }
void HTMLVideoElementPictureInPicture::SetBooleanAttribute(
HTMLVideoElement& element,
const QualifiedName& name,
bool value) { … }
void HTMLVideoElementPictureInPicture::CheckIfPictureInPictureIsAllowed(
HTMLVideoElement& element,
ExceptionState& exception_state) { … }
}