media_access_permission_request.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. // Copyright 2014 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef ANDROID_WEBVIEW_BROWSER_PERMISSION_MEDIA_ACCESS_PERMISSION_REQUEST_H_
  5. #define ANDROID_WEBVIEW_BROWSER_PERMISSION_MEDIA_ACCESS_PERMISSION_REQUEST_H_
  6. #include <stdint.h>
  7. #include "android_webview/browser/permission/aw_permission_request_delegate.h"
  8. #include "base/callback.h"
  9. #include "content/public/browser/media_stream_request.h"
  10. #include "third_party/blink/public/common/mediastream/media_stream_request.h"
  11. namespace android_webview {
  12. // The AwPermissionRequestDelegate implementation for media access permission
  13. // request.
  14. class MediaAccessPermissionRequest : public AwPermissionRequestDelegate {
  15. public:
  16. MediaAccessPermissionRequest(const content::MediaStreamRequest& request,
  17. content::MediaResponseCallback callback);
  18. MediaAccessPermissionRequest(const MediaAccessPermissionRequest&) = delete;
  19. MediaAccessPermissionRequest& operator=(const MediaAccessPermissionRequest&) =
  20. delete;
  21. ~MediaAccessPermissionRequest() override;
  22. // AwPermissionRequestDelegate implementation.
  23. const GURL& GetOrigin() override;
  24. int64_t GetResources() override;
  25. void NotifyRequestResult(bool allowed) override;
  26. private:
  27. friend class TestMediaAccessPermissionRequest;
  28. const content::MediaStreamRequest request_;
  29. content::MediaResponseCallback callback_;
  30. // For test only.
  31. blink::MediaStreamDevices audio_test_devices_;
  32. blink::MediaStreamDevices video_test_devices_;
  33. };
  34. } // namespace android_webview
  35. #endif // ANDROID_WEBVIEW_BROWSER_PERMISSION_MEDIA_ACCESS_PERMISSION_REQUEST_H_