diff options
Diffstat (limited to 'content/browser/media')
-rw-r--r-- | content/browser/media/webrtc_internals.cc | 84 | ||||
-rw-r--r-- | content/browser/media/webrtc_internals.h | 52 | ||||
-rw-r--r-- | content/browser/media/webrtc_internals_ui_observer.h | 26 | ||||
-rw-r--r-- | content/browser/media/webrtc_internals_unittest.cc | 99 |
4 files changed, 0 insertions, 261 deletions
diff --git a/content/browser/media/webrtc_internals.cc b/content/browser/media/webrtc_internals.cc deleted file mode 100644 index afd9d12..0000000 --- a/content/browser/media/webrtc_internals.cc +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright (c) 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/browser/media/webrtc_internals.h" - -#include "content/browser/media/webrtc_internals_ui_observer.h" -#include "content/common/media/peer_connection_tracker_messages.h" -#include "content/public/browser/browser_thread.h" - -using base::DictionaryValue; -using base::ProcessId; - -namespace content{ - -WebRTCInternals::WebRTCInternals() { -} - -WebRTCInternals::~WebRTCInternals() { -} - -WebRTCInternals* WebRTCInternals::GetInstance() { - return Singleton<WebRTCInternals>::get(); -} - -void WebRTCInternals::AddPeerConnection(ProcessId pid, - const PeerConnectionInfo& info) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); - if (observers_.size()) { - DictionaryValue* dict = new DictionaryValue(); - if (dict != NULL) { - dict->SetInteger("pid", static_cast<int>(pid)); - dict->SetInteger("lid", info.lid); - dict->SetString("servers", info.servers); - dict->SetString("constraints", info.constraints); - dict->SetString("url", info.url); - - SendUpdate("updatePeerConnectionAdded", dict); - peer_connection_data_.Append(dict); - } - } -} - -void WebRTCInternals::RemovePeerConnection(ProcessId pid, int lid) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); - if (observers_.size()) { - DictionaryValue dict; - dict.SetInteger("pid", static_cast<int>(pid)); - dict.SetInteger("lid", lid); - SendUpdate("updatePeerConnectionRemoved", &dict); - - for (size_t i = 0; i < peer_connection_data_.GetSize(); ++i) { - DictionaryValue* dict = NULL; - peer_connection_data_.GetDictionary(i, &dict); - - int this_pid = 0; - int this_lid = 0; - dict->GetInteger("pid", &this_pid); - dict->GetInteger("lid", &this_lid); - if (this_pid == static_cast<int>(pid) && this_lid == lid) - peer_connection_data_.Remove(i, NULL); - } - } -} - -void WebRTCInternals::AddObserver(WebRTCInternalsUIObserver *observer) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); - observers_.AddObserver(observer); -} - -void WebRTCInternals::RemoveObserver(WebRTCInternalsUIObserver *observer) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); - observers_.RemoveObserver(observer); -} - -void WebRTCInternals::SendUpdate(const std::string& command, Value* value) { - DCHECK(observers_.size()); - - FOR_EACH_OBSERVER(WebRTCInternalsUIObserver, - observers_, - OnUpdate(command, value)); -} - -} // namespace content diff --git a/content/browser/media/webrtc_internals.h b/content/browser/media/webrtc_internals.h deleted file mode 100644 index 50db3da..0000000 --- a/content/browser/media/webrtc_internals.h +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright (c) 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CONTENT_BROWSER_MEDIA_WEBRTC_INTERNALS_H_ -#define CONTENT_BROWSER_MEDIA_WEBRTC_INTERNALS_H_ - -#include "base/memory/singleton.h" -#include "base/observer_list.h" -#include "base/process.h" -#include "base/values.h" -#include "content/common/content_export.h" - -struct PeerConnectionInfo; - -namespace content { - -class WebRTCInternalsUIObserver; - -// This is a singleton class running in the browser process. -// It collects peer connection infomation from the renderers, -// forwards the data to WebRTCInternalsUIObserver and -// sends data collecting commands to the renderers. -class CONTENT_EXPORT WebRTCInternals { - public: - static WebRTCInternals* GetInstance(); - - // Methods called when peer connection status changes. - void AddPeerConnection(base::ProcessId pid, const PeerConnectionInfo& info); - void RemovePeerConnection(base::ProcessId pid, int lid); - - // Methods for adding or removing WebRTCInternalsUIObserver. - void AddObserver(WebRTCInternalsUIObserver *observer); - void RemoveObserver(WebRTCInternalsUIObserver *observer); - - private: - friend struct DefaultSingletonTraits<WebRTCInternals>; - - WebRTCInternals(); - virtual ~WebRTCInternals(); - - // Send updates to observers on UI thread. - void SendUpdate(const std::string& command, base::Value* value); - - // Only the IO thread should access these fields. - ObserverList<WebRTCInternalsUIObserver> observers_; - base::ListValue peer_connection_data_; -}; - -} // namespace content - -#endif // CONTENT_BROWSER_MEDIA_WEBRTC_INTERNALS_H_ diff --git a/content/browser/media/webrtc_internals_ui_observer.h b/content/browser/media/webrtc_internals_ui_observer.h deleted file mode 100644 index 44839df..0000000 --- a/content/browser/media/webrtc_internals_ui_observer.h +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CONTENT_BROWSER_MEDIA_WEBRTC_INTERNALS_UI_OBSERVER_H_ -#define CONTENT_BROWSER_MEDIA_WEBRTC_INTERNALS_UI_OBSERVER_H_ - -namespace base { -class Value; -} // namespace base - -namespace content { - -// Implement this interface to receive WebRTCInternals updates. -class WebRTCInternalsUIObserver { - public: - virtual ~WebRTCInternalsUIObserver() {} - - // This is called on the browser IO thread. - virtual void OnUpdate(const std::string& command, - const base::Value* args) = 0; -}; - -} // namespace content - -#endif // CONTENT_BROWSER_MEDIA_WEBRTC_INTERNALS_UI_OBSERVER_H_ diff --git a/content/browser/media/webrtc_internals_unittest.cc b/content/browser/media/webrtc_internals_unittest.cc deleted file mode 100644 index 5206443..0000000 --- a/content/browser/media/webrtc_internals_unittest.cc +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright (c) 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "base/memory/scoped_ptr.h" -#include "base/message_loop.h" -#include "base/values.h" -#include "content/browser/media/webrtc_internals.h" -#include "content/browser/media/webrtc_internals_ui_observer.h" -#include "content/common/media/peer_connection_tracker_messages.h" -#include "content/public/test/test_browser_thread.h" -#include "testing/gtest/include/gtest/gtest.h" - -namespace content { -class MockWebRTCInternalsProxy : public content::WebRTCInternalsUIObserver { - public: - void OnUpdate(const std::string& command, const Value* value) OVERRIDE { - data_ = command; - } - - std::string data() { - return data_; - } - - private: - std::string data_; -}; - -class WebRTCInternalsTest : public testing::Test { - public: - WebRTCInternalsTest() - : io_thread_(content::BrowserThread::IO, &io_loop_) {} - - protected: - virtual void SetUp() { - webrtc_internals_ = WebRTCInternals::GetInstance(); - } - - PeerConnectionInfo GetPeerConnectionInfo(uintptr_t lid) { - PeerConnectionInfo info; - info.lid = lid; - info.servers = "s"; - info.constraints = "c"; - info.url = "u"; - return info; - } - std::string ExpectedInfo(std::string prefix, - std::string id, - std::string suffix) { - static const std::string kstatic_part1 = std::string( - "{\"constraints\":\"c\","); - static const std::string kstatic_part2 = std::string( - ",\"servers\":\"s\",\"url\":\"u\"}"); - return prefix + kstatic_part1 + id + kstatic_part2 + suffix; - } - - MessageLoop io_loop_; - content::TestBrowserThread io_thread_; - WebRTCInternals *webrtc_internals_; -}; - -TEST_F(WebRTCInternalsTest, GetInstance) { - EXPECT_TRUE(webrtc_internals_); -} - -TEST_F(WebRTCInternalsTest, AddRemoveObserver) { - scoped_ptr<MockWebRTCInternalsProxy> observer( - new MockWebRTCInternalsProxy()); - webrtc_internals_->AddObserver(observer.get()); - webrtc_internals_->RemoveObserver(observer.get()); - webrtc_internals_->AddPeerConnection(3, GetPeerConnectionInfo(4)); - EXPECT_EQ("", observer->data()); - - webrtc_internals_->RemovePeerConnection(3, 4); -} - -TEST_F(WebRTCInternalsTest, SendAddPeerConnectionUpdate) { - scoped_ptr<MockWebRTCInternalsProxy> observer( - new MockWebRTCInternalsProxy()); - webrtc_internals_->AddObserver(observer.get()); - webrtc_internals_->AddPeerConnection(1, GetPeerConnectionInfo(2)); - EXPECT_EQ("updatePeerConnectionAdded", observer->data()); - - webrtc_internals_->RemoveObserver(observer.get()); - webrtc_internals_->RemovePeerConnection(1, 2); -} - -TEST_F(WebRTCInternalsTest, SendRemovePeerConnectionUpdate) { - scoped_ptr<MockWebRTCInternalsProxy> observer( - new MockWebRTCInternalsProxy()); - webrtc_internals_->AddObserver(observer.get()); - webrtc_internals_->AddPeerConnection(1, GetPeerConnectionInfo(2)); - webrtc_internals_->RemovePeerConnection(1, 2); - EXPECT_EQ("updatePeerConnectionRemoved", observer->data()); - - webrtc_internals_->RemoveObserver(observer.get()); -} - -} // namespace content |