Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(26)

Side by Side Diff: chrome/browser/media/permission_bubble_media_access_handler.h

Issue 1095393004: Refactor: Make MediaCaptureDevicesDispatcher have pluggable handlers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 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 CHROME_BROWSER_MEDIA_PERMISSION_BUBBLE_MEDIA_ACCESS_HANDLER_H_
6 #define CHROME_BROWSER_MEDIA_PERMISSION_BUBBLE_MEDIA_ACCESS_HANDLER_H_
7
8 #include "chrome/browser/media/media_access_handler.h"
9
10 struct PendingAccessRequest {
11 PendingAccessRequest(const content::MediaStreamRequest& request,
12 const content::MediaResponseCallback& callback);
13 ~PendingAccessRequest();
14
15 // TODO(gbillock): make the MediaStreamDevicesController owned by
16 // this object when we're using bubbles.
17 content::MediaStreamRequest request;
18 content::MediaResponseCallback callback;
19 };
20
21 typedef std::deque<PendingAccessRequest> RequestsQueue;
22 typedef std::map<content::WebContents*, RequestsQueue> RequestsQueues;
23
24 class PermissionBubbleMediaAccessHandler : public MediaAccessHandler {
25 public:
26 explicit PermissionBubbleMediaAccessHandler(RequestsQueues* requests);
27 ~PermissionBubbleMediaAccessHandler() override;
28
29 // MediaAccessHandler implementation.
30 bool SupportsRequest(const content::MediaStreamRequest& request,
31 const extensions::Extension* extension) override;
32 void HandleRequest(content::WebContents* web_contents,
33 const content::MediaStreamRequest& request,
34 const content::MediaResponseCallback& callback,
35 const extensions::Extension* extension) override;
36
37 private:
38 void ProcessQueuedAccessRequest(content::WebContents* web_contents);
39 void OnAccessRequestResponse(content::WebContents* web_contents,
40 const content::MediaStreamDevices& devices,
41 content::MediaStreamRequestResult result,
42 scoped_ptr<content::MediaStreamUI> ui);
43
44 RequestsQueues* pending_requests_;
45 };
46 #endif // CHROME_BROWSER_MEDIA_PERMISSION_BUBBLE_MEDIA_ACCESS_HANDLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698