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
5#ifndef ANDROID_WEBVIEW_NATIVE_PERMISSION_MEDIA_ACCESS_PERMISSION_REQUEST_H
6#define ANDROID_WEBVIEW_NATIVE_PERMISSION_MEDIA_ACCESS_PERMISSION_REQUEST_H
7
8#include "android_webview/native/permission/aw_permission_request_delegate.h"
9#include "base/callback.h"
10#include "content/public/common/media_stream_request.h"
11
12namespace android_webview {
13
14// The AwPermissionRequestDelegate implementation for media access permission
15// request.
16class MediaAccessPermissionRequest : public AwPermissionRequestDelegate {
17 public:
18  MediaAccessPermissionRequest(const content::MediaStreamRequest& request,
19                               const content::MediaResponseCallback& callback);
20  virtual ~MediaAccessPermissionRequest();
21
22  // AwPermissionRequestDelegate implementation.
23  virtual const GURL& GetOrigin() OVERRIDE;
24  virtual int64 GetResources() OVERRIDE;
25  virtual void NotifyRequestResult(bool allowed) OVERRIDE;
26
27 private:
28  friend class TestMediaAccessPermissionRequest;
29
30  const content::MediaStreamRequest request_;
31  const content::MediaResponseCallback callback_;
32
33  // For test only.
34  content::MediaStreamDevices audio_test_devices_;
35  content::MediaStreamDevices video_test_devices_;
36
37  DISALLOW_COPY_AND_ASSIGN(MediaAccessPermissionRequest);
38};
39
40}  // namespace android_webview
41
42#endif  // ANDROID_WEBVIEW_NATIVE_PERMISSION_MEDIA_ACCESS_PERMISSION_REQUEST_H
43