From daa093eea7c773db06799a13bd7e4e2e2a9f8f14 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 20 Nov 2017 15:06:40 +0100 Subject: BASELINE: Update Chromium to 63.0.3239.58 Change-Id: Ia93b322a00ba4dd4004f3bcf1254063ba90e1605 Reviewed-by: Alexandru Croitor --- chromium/components/cast_channel/cast_socket.cc | 2 + .../components/cast_channel/cast_socket_service.cc | 47 ++++++++-------------- .../components/cast_channel/cast_socket_service.h | 25 +++++------- .../cast_channel/cast_socket_service_unittest.cc | 7 ++-- chromium/components/cast_channel/cast_test_util.h | 15 +++---- chromium/components/cast_channel/cast_transport.h | 4 +- .../cast_channel/cast_transport_unittest.cc | 5 +-- chromium/components/cast_channel/logger.h | 1 - 8 files changed, 42 insertions(+), 64 deletions(-) (limited to 'chromium/components/cast_channel') 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> sockets_; + // List of socket observers. + base::ObserverList observers_; + scoped_refptr logger_; std::unique_ptr 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& open_cb, - CastSocket::Observer* observer)); + const base::Callback& 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 #include +#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 write_queue_; + base::queue write_queue_; // Buffer used for read operations. Reused for every read. scoped_refptr 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 #include -#include - +#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 cb_queue_; + base::queue 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 -#include #include #include #include -- cgit v1.2.1