summaryrefslogtreecommitdiff
path: root/chromium/components/cast_channel
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2017-11-20 15:06:40 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-11-22 11:48:58 +0000
commitdaa093eea7c773db06799a13bd7e4e2e2a9f8f14 (patch)
tree96cc5e7b9194c1b29eab927730bfa419e7111c25 /chromium/components/cast_channel
parentbe59a35641616a4cf23c4a13fa0632624b021c1b (diff)
downloadqtwebengine-chromium-daa093eea7c773db06799a13bd7e4e2e2a9f8f14.tar.gz
BASELINE: Update Chromium to 63.0.3239.58
Change-Id: Ia93b322a00ba4dd4004f3bcf1254063ba90e1605 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/components/cast_channel')
-rw-r--r--chromium/components/cast_channel/cast_socket.cc2
-rw-r--r--chromium/components/cast_channel/cast_socket_service.cc47
-rw-r--r--chromium/components/cast_channel/cast_socket_service.h25
-rw-r--r--chromium/components/cast_channel/cast_socket_service_unittest.cc7
-rw-r--r--chromium/components/cast_channel/cast_test_util.h15
-rw-r--r--chromium/components/cast_channel/cast_transport.h4
-rw-r--r--chromium/components/cast_channel/cast_transport_unittest.cc5
-rw-r--r--chromium/components/cast_channel/logger.h1
8 files changed, 42 insertions, 64 deletions
diff --git a/chromium/components/cast_channel/cast_socket.cc b/chromium/components/cast_channel/cast_socket.cc
index 676ece01858..0b9e88eefb7 100644
--- a/chromium/components/cast_channel/cast_socket.cc
+++ b/chromium/components/cast_channel/cast_socket.cc
@@ -576,6 +576,8 @@ void CastSocketImpl::CloseInternal() {
VLOG_WITH_CONNECTION(1) << "Close ReadyState = "
<< ReadyStateToString(ready_state_);
+ observers_.Clear();
+ delegate_.reset();
transport_.reset();
tcp_socket_.reset();
socket_.reset();
diff --git a/chromium/components/cast_channel/cast_socket_service.cc b/chromium/components/cast_channel/cast_socket_service.cc
index c0d528790a8..3e007afedfb 100644
--- a/chromium/components/cast_channel/cast_socket_service.cc
+++ b/chromium/components/cast_channel/cast_socket_service.cc
@@ -11,19 +11,6 @@
using content::BrowserThread;
-namespace {
-// Connect timeout for connect calls.
-const int kConnectTimeoutSecs = 10;
-
-// Ping interval
-const int kPingIntervalInSecs = 5;
-
-// Liveness timeout for connect calls, in milliseconds. If no message is
-// received from the receiver during kConnectLivenessTimeoutSecs, it is
-// considered gone.
-const int kConnectLivenessTimeoutSecs = kPingIntervalInSecs * 2;
-} // namespace
-
namespace cast_channel {
int CastSocketService::last_channel_id_ = 0;
@@ -89,10 +76,8 @@ CastSocket* CastSocketService::GetSocket(
}
int CastSocketService::OpenSocket(const CastSocketOpenParams& open_params,
- CastSocket::OnOpenCallback open_cb,
- CastSocket::Observer* observer) {
+ CastSocket::OnOpenCallback open_cb) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
- DCHECK(observer);
auto* socket = GetSocket(open_params.ip_endpoint);
if (!socket) {
@@ -105,29 +90,31 @@ int CastSocketService::OpenSocket(const CastSocketOpenParams& open_params,
}
}
- socket->AddObserver(observer);
+ for (auto& observer : observers_)
+ socket->AddObserver(&observer);
+
socket->Connect(std::move(open_cb));
+
return socket->id();
}
-int CastSocketService::OpenSocket(const net::IPEndPoint& ip_endpoint,
- net::NetLog* net_log,
- CastSocket::OnOpenCallback open_cb,
- CastSocket::Observer* observer) {
- auto connect_timeout = base::TimeDelta::FromSeconds(kConnectTimeoutSecs);
- auto ping_interval = base::TimeDelta::FromSeconds(kPingIntervalInSecs);
- auto liveness_timeout =
- base::TimeDelta::FromSeconds(kConnectLivenessTimeoutSecs);
- CastSocketOpenParams open_params(ip_endpoint, net_log, connect_timeout,
- liveness_timeout, ping_interval,
- CastDeviceCapability::NONE);
-
- return OpenSocket(open_params, std::move(open_cb), observer);
+void CastSocketService::AddObserver(CastSocket::Observer* observer) {
+ DCHECK(observer);
+
+ if (observers_.HasObserver(observer))
+ return;
+
+ observers_.AddObserver(observer);
+ for (auto& socket_it : sockets_)
+ socket_it.second->AddObserver(observer);
}
void CastSocketService::RemoveObserver(CastSocket::Observer* observer) {
+ DCHECK(observer);
+
for (auto& socket_it : sockets_)
socket_it.second->RemoveObserver(observer);
+ observers_.RemoveObserver(observer);
}
void CastSocketService::SetSocketForTest(
diff --git a/chromium/components/cast_channel/cast_socket_service.h b/chromium/components/cast_channel/cast_socket_service.h
index b0aa9462a49..f4ccf2f39be 100644
--- a/chromium/components/cast_channel/cast_socket_service.h
+++ b/chromium/components/cast_channel/cast_socket_service.h
@@ -10,6 +10,7 @@
#include "base/macros.h"
#include "base/memory/singleton.h"
+#include "base/observer_list.h"
#include "base/threading/thread_checker.h"
#include "components/cast_channel/cast_socket.h"
#include "content/public/browser/browser_thread.h"
@@ -47,24 +48,13 @@ class CastSocketService {
// Parameters:
// |open_params|: Parameters necessary to open a Cast channel.
// |open_cb|: OnOpenCallback invoked when cast socket is opened.
- // |observer|: Observer handles messages and errors on newly opened socket.
- // Does not take ownership of |observer|.
- int OpenSocket(const CastSocketOpenParams& open_params,
- CastSocket::OnOpenCallback open_cb,
- CastSocket::Observer* observer);
+ virtual int OpenSocket(const CastSocketOpenParams& open_params,
+ CastSocket::OnOpenCallback open_cb);
- // Opens cast socket with |ip_endpoint| and invokes |open_cb| when opening
- // operation finishes. If cast socket with |ip_endpoint| already exists,
- // invoke |open_cb| directly with existing socket's channel ID.
- // |ip_endpoint|: IP address and port of the remote host.
- // |net_log|: Log of socket events.
- // |open_cb|: OnOpenCallback invoked when cast socket is opened.
- // |observer|: Observer handles messages and errors on newly opened socket.
+ // Adds |observer| to socket service. When socket service opens cast socket,
+ // it passes |observer| to opened socket.
// Does not take ownership of |observer|.
- virtual int OpenSocket(const net::IPEndPoint& ip_endpoint,
- net::NetLog* net_log,
- CastSocket::OnOpenCallback open_cb,
- CastSocket::Observer* observer);
+ void AddObserver(CastSocket::Observer* observer);
// Remove |observer| from each socket in |sockets_|
void RemoveObserver(CastSocket::Observer* observer);
@@ -87,6 +77,9 @@ class CastSocketService {
// The collection of CastSocket keyed by channel_id.
std::map<int, std::unique_ptr<CastSocket>> sockets_;
+ // List of socket observers.
+ base::ObserverList<CastSocket::Observer> observers_;
+
scoped_refptr<Logger> logger_;
std::unique_ptr<CastSocket> socket_for_test_;
diff --git a/chromium/components/cast_channel/cast_socket_service_unittest.cc b/chromium/components/cast_channel/cast_socket_service_unittest.cc
index c888a610a5e..aa4e508965c 100644
--- a/chromium/components/cast_channel/cast_socket_service_unittest.cc
+++ b/chromium/components/cast_channel/cast_socket_service_unittest.cc
@@ -88,9 +88,10 @@ TEST_F(CastSocketServiceTest, TestOpenChannel) {
EXPECT_CALL(mock_on_open_callback_, Run(mock_socket));
EXPECT_CALL(*mock_socket, AddObserver(_));
- cast_socket_service_->OpenSocket(ip_endpoint, nullptr /* net_log */,
- mock_on_open_callback_.Get(),
- &mock_observer_);
+ cast_socket_service_->AddObserver(&mock_observer_);
+ CastSocketOpenParams open_param(ip_endpoint, nullptr /* net_log */,
+ base::TimeDelta::FromSeconds(20));
+ cast_socket_service_->OpenSocket(open_param, mock_on_open_callback_.Get());
}
} // namespace cast_channel
diff --git a/chromium/components/cast_channel/cast_test_util.h b/chromium/components/cast_channel/cast_test_util.h
index fb0cffd52e4..8c3627fb928 100644
--- a/chromium/components/cast_channel/cast_test_util.h
+++ b/chromium/components/cast_channel/cast_test_util.h
@@ -70,22 +70,19 @@ class MockCastSocketService : public CastSocketService {
MockCastSocketService();
~MockCastSocketService() override;
- int OpenSocket(const net::IPEndPoint& ip_endpoint,
- net::NetLog* net_log,
- CastSocket::OnOpenCallback open_cb,
- CastSocket::Observer* observer) override {
+ int OpenSocket(const CastSocketOpenParams& open_params,
+ CastSocket::OnOpenCallback open_cb) override {
// Unit test should not call |open_cb| more than once. Just use
// base::AdaptCallbackForRepeating to pass |open_cb| to a mock method.
return OpenSocketInternal(
- ip_endpoint, net_log,
- base::AdaptCallbackForRepeating(std::move(open_cb)), observer);
+ open_params.ip_endpoint, open_params.net_log,
+ base::AdaptCallbackForRepeating(std::move(open_cb)));
}
- MOCK_METHOD4(OpenSocketInternal,
+ MOCK_METHOD3(OpenSocketInternal,
int(const net::IPEndPoint& ip_endpoint,
net::NetLog* net_log,
- const base::Callback<void(CastSocket*)>& open_cb,
- CastSocket::Observer* observer));
+ const base::Callback<void(CastSocket*)>& open_cb));
MOCK_CONST_METHOD1(GetSocket, CastSocket*(int channel_id));
};
diff --git a/chromium/components/cast_channel/cast_transport.h b/chromium/components/cast_channel/cast_transport.h
index efb12ad9da2..3c5d1bc4172 100644
--- a/chromium/components/cast_channel/cast_transport.h
+++ b/chromium/components/cast_channel/cast_transport.h
@@ -5,9 +5,9 @@
#ifndef COMPONENTS_CAST_CHANNEL_CAST_TRANSPORT_H_
#define COMPONENTS_CAST_CHANNEL_CAST_TRANSPORT_H_
-#include <queue>
#include <string>
+#include "base/containers/queue.h"
#include "base/macros.h"
#include "base/memory/ref_counted.h"
#include "base/sequence_checker.h"
@@ -149,7 +149,7 @@ class CastTransportImpl : public CastTransport {
// Queue of pending writes. The message at the front of the queue is the one
// being written.
- std::queue<WriteRequest> write_queue_;
+ base::queue<WriteRequest> write_queue_;
// Buffer used for read operations. Reused for every read.
scoped_refptr<net::GrowableIOBuffer> read_buffer_;
diff --git a/chromium/components/cast_channel/cast_transport_unittest.cc b/chromium/components/cast_channel/cast_transport_unittest.cc
index 8f72615e2b5..9744323c3a6 100644
--- a/chromium/components/cast_channel/cast_transport_unittest.cc
+++ b/chromium/components/cast_channel/cast_transport_unittest.cc
@@ -7,8 +7,7 @@
#include <stddef.h>
#include <stdint.h>
-#include <queue>
-
+#include "base/containers/queue.h"
#include "base/macros.h"
#include "base/memory/ptr_util.h"
#include "base/message_loop/message_loop.h"
@@ -79,7 +78,7 @@ class CompletionQueue {
}
private:
- std::queue<net::CompletionCallback> cb_queue_;
+ base::queue<net::CompletionCallback> cb_queue_;
DISALLOW_COPY_AND_ASSIGN(CompletionQueue);
};
diff --git a/chromium/components/cast_channel/logger.h b/chromium/components/cast_channel/logger.h
index 70a23fc7f5d..f4d91e8bda5 100644
--- a/chromium/components/cast_channel/logger.h
+++ b/chromium/components/cast_channel/logger.h
@@ -7,7 +7,6 @@
#include <stddef.h>
-#include <deque>
#include <map>
#include <memory>
#include <string>