UserMediaPermissionCheck.h [plain text]
#ifndef UserMediaPermissionCheck_h
#define UserMediaPermissionCheck_h
#if ENABLE(MEDIA_STREAM)
#include "ActiveDOMObject.h"
#include "MediaDevices.h"
#include <wtf/RefCounted.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
class Document;
class SecurityOrigin;
class UserMediaPermissionCheckClient {
public:
virtual ~UserMediaPermissionCheckClient() { }
virtual void didCompletePermissionCheck(const String&, bool) = 0;
};
class UserMediaPermissionCheck final : public ContextDestructionObserver, public RefCounted<UserMediaPermissionCheck> {
public:
static Ref<UserMediaPermissionCheck> create(Document&, UserMediaPermissionCheckClient&);
virtual ~UserMediaPermissionCheck();
void start();
void setClient(UserMediaPermissionCheckClient* client) { m_client = client; }
WEBCORE_EXPORT SecurityOrigin* userMediaDocumentOrigin() const;
WEBCORE_EXPORT SecurityOrigin* topLevelDocumentOrigin() const;
WEBCORE_EXPORT void setUserMediaAccessInfo(const String&, bool);
WEBCORE_EXPORT String mediaDeviceIdentifierHashSalt() const { return m_mediaDeviceIdentifierHashSalt; }
private:
UserMediaPermissionCheck(ScriptExecutionContext&, UserMediaPermissionCheckClient&);
void contextDestroyed() final;
UserMediaPermissionCheckClient* m_client;
String m_mediaDeviceIdentifierHashSalt;
bool m_hasPersistentPermission { false };
};
}
#endif // ENABLE(MEDIA_STREAM)
#endif // UserMediaPermissionCheck_h