| Index: chrome/browser/media/media_internals.cc
|
| diff --git a/chrome/browser/media/media_internals.cc b/chrome/browser/media/media_internals.cc
|
| index cca5c7650b2cfa132099abedff26a1649a81176b..69d9a5bd753e6e2f7181e874f23cb024fbd68f7d 100644
|
| --- a/chrome/browser/media/media_internals.cc
|
| +++ b/chrome/browser/media/media_internals.cc
|
| @@ -9,44 +9,63 @@
|
| #include "base/stringprintf.h"
|
| #include "chrome/browser/media/media_internals_observer.h"
|
| #include "chrome/browser/media/media_stream_capture_indicator.h"
|
| +#include "chrome/browser/tab_contents/tab_util.h"
|
| #include "content/public/browser/browser_thread.h"
|
| +#include "content/public/browser/web_contents.h"
|
| #include "content/public/browser/web_ui.h"
|
| #include "media/base/media_log.h"
|
| #include "media/base/media_log_event.h"
|
|
|
| using content::BrowserThread;
|
|
|
| +namespace {
|
| +
|
| +std::string GetStreamID(int render_process_id,
|
| + int render_view_id,
|
| + int stream_id) {
|
| + return base::StringPrintf("audio_streams.%d:%d:%d",
|
| + render_process_id, render_view_id, stream_id);
|
| +}
|
| +
|
| +}
|
| +
|
| MediaInternals* MediaInternals::GetInstance() {
|
| return Singleton<MediaInternals>::get();
|
| }
|
|
|
| MediaInternals::~MediaInternals() {}
|
|
|
| -void MediaInternals::OnDeleteAudioStream(void* host, int stream_id) {
|
| +void MediaInternals::OnDeleteAudioStream(int render_process_id,
|
| + int render_view_id,
|
| + int stream_id) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| - std::string stream = base::StringPrintf("audio_streams.%p:%d",
|
| - host, stream_id);
|
| - DeleteItem(stream);
|
| + DeleteItem(GetStreamID(render_process_id, render_view_id, stream_id));
|
| }
|
|
|
| -void MediaInternals::OnSetAudioStreamPlaying(
|
| - void* host, int stream_id, bool playing) {
|
| +void MediaInternals::OnSetAudioStreamPlaying(int render_process_id,
|
| + int render_view_id,
|
| + int stream_id,
|
| + bool playing) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| - UpdateAudioStream(host, stream_id,
|
| + UpdateAudioStream(render_process_id, render_view_id, stream_id,
|
| "playing", Value::CreateBooleanValue(playing));
|
| }
|
|
|
| -void MediaInternals::OnSetAudioStreamStatus(
|
| - void* host, int stream_id, const std::string& status) {
|
| +void MediaInternals::OnSetAudioStreamStatus(int render_process_id,
|
| + int render_view_id,
|
| + int stream_id,
|
| + const std::string& status) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| - UpdateAudioStream(host, stream_id,
|
| + UpdateAudioStream(render_process_id, render_view_id, stream_id,
|
| "status", Value::CreateStringValue(status));
|
| }
|
|
|
| -void MediaInternals::OnSetAudioStreamVolume(
|
| - void* host, int stream_id, double volume) {
|
| +void MediaInternals::OnSetAudioStreamVolume(int render_process_id,
|
| + int render_view_id,
|
| + int stream_id,
|
| + double volume) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| - UpdateAudioStream(host, stream_id,
|
| + UpdateAudioStream(render_process_id, render_view_id, stream_id,
|
| "volume", Value::CreateDoubleValue(volume));
|
| }
|
|
|
| @@ -103,11 +122,15 @@ void MediaInternals::SendEverything() {
|
|
|
| MediaInternals::MediaInternals() {}
|
|
|
| -void MediaInternals::UpdateAudioStream(
|
| - void* host, int stream_id, const std::string& property, Value* value) {
|
| - std::string stream = base::StringPrintf("audio_streams.%p:%d",
|
| - host, stream_id);
|
| - UpdateItem("media.addAudioStream", stream, property, value);
|
| +void MediaInternals::UpdateAudioStream(int render_process_id,
|
| + int render_view_id,
|
| + int stream_id,
|
| + const std::string& property,
|
| + Value* value) {
|
| + const std::string id = GetStreamID(
|
| + render_process_id, render_view_id, stream_id);
|
| + UpdateItem("media.addAudioStream", render_process_id, render_view_id, id,
|
| + property, value);
|
| }
|
|
|
| void MediaInternals::DeleteItem(const std::string& item) {
|
| @@ -117,8 +140,12 @@ void MediaInternals::DeleteItem(const std::string& item) {
|
| }
|
|
|
| void MediaInternals::UpdateItem(
|
| - const std::string& update_fn, const std::string& id,
|
| - const std::string& property, Value* value) {
|
| + const std::string& update_fn,
|
| + int render_process_id,
|
| + int render_view_id,
|
| + const std::string& id,
|
| + const std::string& property,
|
| + Value* value) {
|
| DictionaryValue* item_properties;
|
| if (!data_.GetDictionary(id, &item_properties)) {
|
| item_properties = new DictionaryValue();
|
| @@ -126,6 +153,14 @@ void MediaInternals::UpdateItem(
|
| item_properties->SetString("id", id);
|
| }
|
| item_properties->Set(property, value);
|
| +
|
| + content::WebContents* web_contents =
|
| + tab_util::GetWebContentsByID(render_process_id, render_view_id);
|
| + if (web_contents) {
|
| + string16 tab_title = web_contents->GetTitle();
|
| + item_properties->Set("tab_title", Value::CreateStringValue(tab_title));
|
| + }
|
| +
|
| SendUpdate(update_fn, item_properties);
|
| }
|
|
|
|
|