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

Side by Side Diff: chrome/browser/media/media_internals.cc

Issue 10928043: Media Related changes for TabCapture API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix unit test Created 8 years, 2 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 | 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 "chrome/browser/media/media_internals.h" 5 #include "chrome/browser/media/media_internals.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/string16.h" 8 #include "base/string16.h"
9 #include "base/stringprintf.h" 9 #include "base/stringprintf.h"
10 #include "chrome/browser/media/media_internals_observer.h" 10 #include "chrome/browser/media/media_internals_observer.h"
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 void MediaInternals::OnCaptureDevicesOpened( 67 void MediaInternals::OnCaptureDevicesOpened(
68 int render_process_id, 68 int render_process_id,
69 int render_view_id, 69 int render_view_id,
70 const content::MediaStreamDevices& devices) { 70 const content::MediaStreamDevices& devices) {
71 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 71 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
72 if (!media_stream_capture_indicator_.get()) 72 if (!media_stream_capture_indicator_.get())
73 media_stream_capture_indicator_ = new MediaStreamCaptureIndicator(); 73 media_stream_capture_indicator_ = new MediaStreamCaptureIndicator();
74 media_stream_capture_indicator_->CaptureDevicesOpened(render_process_id, 74 media_stream_capture_indicator_->CaptureDevicesOpened(render_process_id,
75 render_view_id, 75 render_view_id,
76 devices); 76 devices);
77
78 for (content::MediaStreamDevices::const_iterator it = devices.begin();
79 it != devices.end(); ++it) {
80 OnMediaRequestStateChange(render_process_id, render_view_id, *it,
no longer working on chromium 2012/10/04 18:41:49 Do we send the StateChange notification for all th
justinlin 2012/10/08 08:59:45 The extension will listen to all the TAB_MEDIA typ
81 content::MediaStreamRequest::STATE_OPENING);
82 }
77 } 83 }
78 84
79 void MediaInternals::OnCaptureDevicesClosed( 85 void MediaInternals::OnCaptureDevicesClosed(
80 int render_process_id, 86 int render_process_id,
81 int render_view_id, 87 int render_view_id,
82 const content::MediaStreamDevices& devices) { 88 const content::MediaStreamDevices& devices) {
83 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 89 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
84 media_stream_capture_indicator_->CaptureDevicesClosed(render_process_id, 90 media_stream_capture_indicator_->CaptureDevicesClosed(render_process_id,
85 render_view_id, 91 render_view_id,
86 devices); 92 devices);
93
94 for (content::MediaStreamDevices::const_iterator it = devices.begin();
95 it != devices.end(); ++it) {
96 OnMediaRequestStateChange(render_process_id, render_view_id, *it,
97 content::MediaStreamRequest::STATE_ERROR);
98 }
99 }
100
101 void MediaInternals::OnMediaRequestStateChange(
no longer working on chromium 2012/10/04 18:41:49 OnMediaRequestStateChanged
justinlin 2012/10/08 08:59:45 Done.
102 int render_process_id,
103 int render_view_id,
104 const content::MediaStreamDevice& device,
105 const content::MediaStreamRequest::RequestState state) {
106 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
107 if (observers_.size()) {
108 FOR_EACH_OBSERVER(MediaInternalsObserver, observers_,
109 OnRequestUpdate(device, state));
110 }
87 } 111 }
88 112
89 void MediaInternals::AddObserver(MediaInternalsObserver* observer) { 113 void MediaInternals::AddObserver(MediaInternalsObserver* observer) {
90 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 114 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
91 observers_.AddObserver(observer); 115 observers_.AddObserver(observer);
92 } 116 }
93 117
94 void MediaInternals::RemoveObserver(MediaInternalsObserver* observer) { 118 void MediaInternals::RemoveObserver(MediaInternalsObserver* observer) {
95 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 119 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
96 observers_.RemoveObserver(observer); 120 observers_.RemoveObserver(observer);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 155
132 void MediaInternals::SendUpdate(const std::string& function, Value* value) { 156 void MediaInternals::SendUpdate(const std::string& function, Value* value) {
133 // Only bother serializing the update to JSON if someone is watching. 157 // Only bother serializing the update to JSON if someone is watching.
134 if (observers_.size()) { 158 if (observers_.size()) {
135 std::vector<const Value*> args; 159 std::vector<const Value*> args;
136 args.push_back(value); 160 args.push_back(value);
137 string16 update = content::WebUI::GetJavascriptCall(function, args); 161 string16 update = content::WebUI::GetJavascriptCall(function, args);
138 FOR_EACH_OBSERVER(MediaInternalsObserver, observers_, OnUpdate(update)); 162 FOR_EACH_OBSERVER(MediaInternalsObserver, observers_, OnUpdate(update));
139 } 163 }
140 } 164 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698