HTMLMediaSession.h [plain text]
#ifndef HTMLMediaSession_h
#define HTMLMediaSession_h
#if ENABLE(VIDEO)
#include "MediaPlayer.h"
#include "MediaSession.h"
namespace WebCore {
class HTMLMediaElement;
class HTMLMediaSession : public MediaSession {
public:
static std::unique_ptr<HTMLMediaSession> create(MediaSessionClient&);
HTMLMediaSession(MediaSessionClient&);
virtual ~HTMLMediaSession() { }
bool playbackPermitted(const HTMLMediaElement&) const;
bool dataLoadingPermitted(const HTMLMediaElement&) const;
bool fullscreenPermitted(const HTMLMediaElement&) const;
bool pageAllowsDataLoading(const HTMLMediaElement&) const;
bool pageAllowsPlaybackAfterResuming(const HTMLMediaElement&) const;
#if ENABLE(IOS_AIRPLAY)
bool showingPlaybackTargetPickerPermitted(const HTMLMediaElement&) const;
bool currentPlaybackTargetIsWireless(const HTMLMediaElement&) const;
void showPlaybackTargetPicker(const HTMLMediaElement&);
bool hasWirelessPlaybackTargets(const HTMLMediaElement&) const;
bool wirelessVideoPlaybackDisabled(const HTMLMediaElement&) const;
void setWirelessVideoPlaybackDisabled(const HTMLMediaElement&, bool);
void setHasPlaybackTargetAvailabilityListeners(const HTMLMediaElement&, bool);
#endif
bool requiresFullscreenForVideoPlayback(const HTMLMediaElement&) const;
MediaPlayer::Preload effectivePreloadForElement(const HTMLMediaElement&) const;
void applyMediaPlayerRestrictions(const HTMLMediaElement&);
enum BehaviorRestrictionFlags {
NoRestrictions = 0,
RequireUserGestureForLoad = 1 << 0,
RequireUserGestureForRateChange = 1 << 1,
RequireUserGestureForFullscreen = 1 << 2,
RequirePageConsentToLoadMedia = 1 << 3,
RequirePageConsentToResumeMedia = 1 << 4,
#if ENABLE(IOS_AIRPLAY)
RequireUserGestureToShowPlaybackTargetPicker = 1 << 5,
WirelessVideoPlaybackDisabled = 1 << 6,
#endif
};
typedef unsigned BehaviorRestrictions;
void addBehaviorRestriction(BehaviorRestrictions);
void removeBehaviorRestriction(BehaviorRestrictions);
private:
BehaviorRestrictions m_restrictions;
};
}
#endif // MediaSession_h
#endif // ENABLE(VIDEO)