OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 } |
OLD | NEW |