 Chromium Code Reviews
 Chromium Code Reviews Issue 10928043:
  Media Related changes for TabCapture API  (Closed) 
  Base URL: svn://svn.chromium.org/chrome/trunk/src
    
  
    Issue 10928043:
  Media Related changes for TabCapture API  (Closed) 
  Base URL: svn://svn.chromium.org/chrome/trunk/src| 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 |