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

Side by Side Diff: content/browser/renderer_host/media/media_stream_ui_controller.cc

Issue 11446042: Make sure that all OpenDevice requests are scrutinized against the audio and video policies. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased again... Created 8 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/media/media_stream_ui_controller.h" 5 #include "content/browser/renderer_host/media/media_stream_ui_controller.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 64
65 } // namespace 65 } // namespace
66 66
67 // UI request contains all data needed to keep track of requests between the 67 // UI request contains all data needed to keep track of requests between the
68 // different calls. 68 // different calls.
69 class MediaStreamRequestForUI : public MediaStreamRequest { 69 class MediaStreamRequestForUI : public MediaStreamRequest {
70 public: 70 public:
71 MediaStreamRequestForUI(int render_pid, 71 MediaStreamRequestForUI(int render_pid,
72 int render_vid, 72 int render_vid,
73 const GURL& origin, 73 const GURL& origin,
74 const StreamOptions& options) 74 const StreamOptions& options,
75 : MediaStreamRequest(render_pid, render_vid, origin, options.audio_type, 75 MediaStreamRequestType request_type)
76 options.video_type), 76 : MediaStreamRequest(render_pid, render_vid, origin, request_type,
77 options.audio_type, options.video_type),
77 posted_task(false) { 78 posted_task(false) {
78 DCHECK(IsAudioMediaType(options.audio_type) || 79 DCHECK(IsAudioMediaType(options.audio_type) ||
79 IsVideoMediaType(options.video_type)); 80 IsVideoMediaType(options.video_type));
80 } 81 }
81 82
82 ~MediaStreamRequestForUI() {} 83 ~MediaStreamRequestForUI() {}
83 84
84 // Whether or not a task was posted to make the call to 85 // Whether or not a task was posted to make the call to
85 // RequestMediaAccessPermission, to make sure that we never post twice to it. 86 // RequestMediaAccessPermission, to make sure that we never post twice to it.
86 bool posted_task; 87 bool posted_task;
(...skipping 30 matching lines...) Expand all
117 118
118 MediaStreamUIController::~MediaStreamUIController() { 119 MediaStreamUIController::~MediaStreamUIController() {
119 DCHECK(requests_.empty()); 120 DCHECK(requests_.empty());
120 } 121 }
121 122
122 void MediaStreamUIController::MakeUIRequest( 123 void MediaStreamUIController::MakeUIRequest(
123 const std::string& label, 124 const std::string& label,
124 int render_process_id, 125 int render_process_id,
125 int render_view_id, 126 int render_view_id,
126 const StreamOptions& request_options, 127 const StreamOptions& request_options,
127 const GURL& security_origin) { 128 const GURL& security_origin, MediaStreamRequestType request_type) {
128 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 129 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
129 130
130 // Create a new request. 131 // Create a new request.
131 if (!requests_.insert( 132 if (!requests_.insert(
132 std::make_pair(label, new MediaStreamRequestForUI( 133 std::make_pair(label, new MediaStreamRequestForUI(
133 render_process_id, render_view_id, security_origin, 134 render_process_id, render_view_id, security_origin,
134 request_options))).second) { 135 request_options, request_type))).second) {
135 NOTREACHED(); 136 NOTREACHED();
136 } 137 }
137 138
138 if (use_fake_ui_) { 139 if (use_fake_ui_) {
139 PostRequestToFakeUI(label); 140 PostRequestToFakeUI(label);
140 return; 141 return;
141 } 142 }
142 143
143 // The UI can handle only one request at the time, do not post the 144 // The UI can handle only one request at the time, do not post the
144 // request to the view if the UI is handling any other request. 145 // request to the view if the UI is handling any other request.
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 } 337 }
337 } 338 }
338 339
339 BrowserThread::PostTask( 340 BrowserThread::PostTask(
340 BrowserThread::IO, FROM_HERE, 341 BrowserThread::IO, FROM_HERE,
341 base::Bind(&MediaStreamUIController::PostResponse, 342 base::Bind(&MediaStreamUIController::PostResponse,
342 weak_ptr_factory_.GetWeakPtr(), label, devices_to_use)); 343 weak_ptr_factory_.GetWeakPtr(), label, devices_to_use));
343 } 344 }
344 345
345 } // namespace content 346 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698