MediaDevicesRequest.h [plain text]
#ifndef MediaDevicesRequest_h
#define MediaDevicesRequest_h
#if ENABLE(MEDIA_STREAM)
#include "ActiveDOMObject.h"
#include "MediaDevices.h"
#include "MediaStreamCreationClient.h"
#include "MediaStreamTrackSourcesRequestClient.h"
#include "UserMediaPermissionCheck.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
class Document;
class Frame;
class SecurityOrigin;
typedef int ExceptionCode;
class MediaDevicesRequest : public MediaStreamTrackSourcesRequestClient, public UserMediaPermissionCheckClient, public ContextDestructionObserver {
public:
static RefPtr<MediaDevicesRequest> create(Document*, MediaDevices::EnumerateDevicesPromise&&, ExceptionCode&);
virtual ~MediaDevicesRequest();
void start();
SecurityOrigin* securityOrigin() const;
private:
MediaDevicesRequest(ScriptExecutionContext*, MediaDevices::EnumerateDevicesPromise&&);
const String& requestOrigin() const final;
void didCompleteTrackSourceInfoRequest(const TrackSourceInfoVector&) final;
void contextDestroyed() final;
void didCompletePermissionCheck(const String&, bool) final;
String hashID(const String&);
MediaDevices::EnumerateDevicesPromise m_promise;
RefPtr<MediaDevicesRequest> m_protector;
RefPtr<UserMediaPermissionCheck> m_permissionCheck;
String m_idHashSalt;
bool m_havePersistentPermission { false };
};
}
#endif // ENABLE(MEDIA_STREAM)
#endif // MediaDevicesRequest_h