Commit e427e757 authored by Julie Jeongeun Kim's avatar Julie Jeongeun Kim Committed by Commit Bot

Convert NetworkContextRequest to new Mojo types

This CL converts NetworkContextRequest to new Mojo types.

It also updates GetNetworkContext from resource_provider.mojom
and CreateNetworkContext and network_service.mojom and methods
and members which implement them.

Bug: 955171, 978694
Change-Id: I053a8957685e4eed9d44615a5e74b451dc75fe49
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1782203Reviewed-by: default avatarEugene But <eugenebut@chromium.org>
Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Reviewed-by: default avatarJohn Abd-El-Malek <jam@chromium.org>
Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Reviewed-by: default avatarYuri Wiitala <miu@chromium.org>
Commit-Queue: Julie Kim <jkim@igalia.com>
Cr-Commit-Position: refs/heads/master@{#693773}
parent bb552832
......@@ -263,13 +263,13 @@ void CastMirroringServiceHost::GetVideoCaptureHost(
}
void CastMirroringServiceHost::GetNetworkContext(
network::mojom::NetworkContextRequest request) {
mojo::PendingReceiver<network::mojom::NetworkContext> receiver) {
network::mojom::NetworkContextParamsPtr network_context_params =
g_browser_process->system_network_context_manager()
->CreateDefaultNetworkContextParams();
network_context_params->context_name = "mirroring";
content::GetNetworkService()->CreateNetworkContext(
std::move(request), std::move(network_context_params));
std::move(receiver), std::move(network_context_params));
}
void CastMirroringServiceHost::CreateAudioStream(
......
......@@ -86,7 +86,7 @@ class CastMirroringServiceHost final : public mojom::MirroringServiceHost,
void GetVideoCaptureHost(
media::mojom::VideoCaptureHostRequest request) override;
void GetNetworkContext(
network::mojom::NetworkContextRequest request) override;
mojo::PendingReceiver<network::mojom::NetworkContext> receiver) override;
void CreateAudioStream(mojom::AudioStreamCreatorClientPtr client,
const media::AudioParameters& params,
uint32_t total_segments) override;
......
......@@ -44,6 +44,7 @@
#include "extensions/test/extension_test_message_listener.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/interface_request.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/system/data_pipe.h"
#include "net/base/net_errors.h"
#include "net/ssl/ssl_info.h"
......@@ -765,10 +766,11 @@ class MockTCPBoundSocket : public network::mojom::TCPBoundSocket {
class MockNetworkContext : public network::TestNetworkContext {
public:
explicit MockNetworkContext(TCPFailureType tcp_failure_type,
network::mojom::NetworkContextRequest request)
explicit MockNetworkContext(
TCPFailureType tcp_failure_type,
mojo::PendingReceiver<network::mojom::NetworkContext> receiver)
: tcp_failure_type_(tcp_failure_type),
binding_(this, std::move(request)) {}
receiver_(this, std::move(receiver)) {}
~MockNetworkContext() override {}
......@@ -784,7 +786,7 @@ class MockNetworkContext : public network::TestNetworkContext {
// alive. The callback invocation will have no effect, since it uses the
// TCPBoundSocket's pipe, which was just closed.
if (tcp_failure_type_ == TCPFailureType::kCreateTCPServerSocketClosePipe)
binding_.Close();
receiver_.reset();
server_sockets_.emplace_back(std::make_unique<MockTCPServerSocket>(
tcp_failure_type_, std::move(request), std::move(callback)));
}
......@@ -798,7 +800,7 @@ class MockNetworkContext : public network::TestNetworkContext {
network::mojom::SocketObserverPtr observer,
CreateTCPConnectedSocketCallback callback) override {
if (tcp_failure_type_ == TCPFailureType::kConnectClosePipe)
binding_.Close();
receiver_.reset();
connected_sockets_.emplace_back(std::make_unique<MockTCPConnectedSocket>(
tcp_failure_type_, std::move(socket), std::move(observer),
std::move(callback)));
......@@ -810,7 +812,7 @@ class MockNetworkContext : public network::TestNetworkContext {
network::mojom::TCPBoundSocketRequest request,
CreateTCPBoundSocketCallback callback) override {
if (tcp_failure_type_ == TCPFailureType::kBindClosePipe)
binding_.Close();
receiver_.reset();
// These tests only create at most one object of a given type at a time.
bound_sockets_.emplace_back(std::make_unique<MockTCPBoundSocket>(
tcp_failure_type_, std::move(request), std::move(callback)));
......@@ -830,7 +832,7 @@ class MockNetworkContext : public network::TestNetworkContext {
std::vector<std::unique_ptr<MockTCPBoundSocket>> bound_sockets_;
std::vector<std::unique_ptr<MockTCPConnectedSocket>> connected_sockets_;
mojo::Binding<network::mojom::NetworkContext> binding_;
mojo::Receiver<network::mojom::NetworkContext> receiver_;
DISALLOW_COPY_AND_ASSIGN(MockNetworkContext);
};
......
......@@ -31,13 +31,14 @@ namespace {
const int kInvalidResponseCode = -1;
void BindNetworkContext(network::mojom::CustomProxyConfigPtr config,
network::mojom::NetworkContextRequest request,
const std::string& user_agent) {
void BindNetworkContext(
network::mojom::CustomProxyConfigPtr config,
mojo::PendingReceiver<network::mojom::NetworkContext> receiver,
const std::string& user_agent) {
auto params = network::mojom::NetworkContextParams::New();
params->user_agent = user_agent;
params->initial_custom_proxy_config = std::move(config);
content::GetNetworkService()->CreateNetworkContext(std::move(request),
content::GetNetworkService()->CreateNetworkContext(std::move(receiver),
std::move(params));
}
}
......
......@@ -29,7 +29,7 @@ interface ResourceProvider {
// Acquires an interface to the GPU process.
BindGpu(pending_receiver<viz.mojom.Gpu> receiver);
GetVideoCaptureHost(media.mojom.VideoCaptureHost& request);
GetNetworkContext(network.mojom.NetworkContext& request);
GetNetworkContext(pending_receiver<network.mojom.NetworkContext> receiver);
CreateAudioStream(AudioStreamCreatorClient client,
media.mojom.AudioParameters param,
uint32 shared_memory_count);
......
......@@ -53,8 +53,8 @@ void MockUdpSocket::VerifySendingPacket(const media::cast::Packet& packet) {
}
MockNetworkContext::MockNetworkContext(
network::mojom::NetworkContextRequest request)
: binding_(this, std::move(request)) {}
mojo::PendingReceiver<network::mojom::NetworkContext> receiver)
: receiver_(this, std::move(receiver)) {}
MockNetworkContext::~MockNetworkContext() {}
void MockNetworkContext::CreateUDPSocket(
......
......@@ -8,6 +8,7 @@
#include "base/callback.h"
#include "media/cast/net/cast_transport_defines.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "services/network/public/mojom/udp_socket.mojom.h"
#include "services/network/test/test_network_context.h"
#include "testing/gmock/include/gmock/gmock.h"
......@@ -67,7 +68,8 @@ class MockUdpSocket final : public network::mojom::UDPSocket {
class MockNetworkContext final : public network::TestNetworkContext {
public:
explicit MockNetworkContext(network::mojom::NetworkContextRequest request);
explicit MockNetworkContext(
mojo::PendingReceiver<network::mojom::NetworkContext> receiver);
~MockNetworkContext() override;
MOCK_METHOD0(OnUDPSocketCreated, void());
......@@ -82,7 +84,7 @@ class MockNetworkContext final : public network::TestNetworkContext {
MockUdpSocket* udp_socket() const { return udp_socket_.get(); }
private:
mojo::Binding<network::mojom::NetworkContext> binding_;
mojo::Receiver<network::mojom::NetworkContext> receiver_;
std::unique_ptr<MockUdpSocket> udp_socket_;
DISALLOW_COPY_AND_ASSIGN(MockNetworkContext);
};
......
......@@ -120,8 +120,9 @@ class SessionTest : public mojom::ResourceProvider,
}
void GetNetworkContext(
network::mojom::NetworkContextRequest request) override {
network_context_ = std::make_unique<MockNetworkContext>(std::move(request));
mojo::PendingReceiver<network::mojom::NetworkContext> receiver) override {
network_context_ =
std::make_unique<MockNetworkContext>(std::move(receiver));
OnGetNetworkContext();
}
......
......@@ -41,12 +41,13 @@ NetworkContextOwner::~NetworkContextOwner() {
void NetworkContextOwner::InitializeOnIOThread(
const std::vector<std::string> cors_exempt_header_list,
network::mojom::NetworkContextRequest network_context_request) {
mojo::PendingReceiver<network::mojom::NetworkContext>
network_context_receiver) {
DCHECK_CURRENTLY_ON(WebThread::IO);
DCHECK(!network_context_);
network_context_ = std::make_unique<network::NetworkContext>(
nullptr, std::move(network_context_request),
nullptr, std::move(network_context_receiver),
request_context_->GetURLRequestContext(), cors_exempt_header_list);
request_context_->AddObserver(this);
}
......
......@@ -45,7 +45,8 @@ class NetworkContextOwner : public net::URLRequestContextGetterObserver {
private:
void InitializeOnIOThread(
const std::vector<std::string> cors_exempt_header_list,
network::mojom::NetworkContextRequest network_context_request);
mojo::PendingReceiver<network::mojom::NetworkContext>
network_context_receiver);
scoped_refptr<net::URLRequestContextGetter> request_context_;
std::unique_ptr<network::NetworkContext> network_context_;
......
......@@ -102,11 +102,12 @@ void NetworkServiceConfigTestUtil::RequestSocketOnMojoRunner(
}
void NetworkServiceConfigTestUtil::CreateNetworkContextOnNetworkRunner(
network::mojom::NetworkContextRequest network_context_request,
mojo::PendingReceiver<network::mojom::NetworkContext>
network_context_receiver,
base::WaitableEvent* notify) {
DCHECK(net_runner_->RunsTasksInCurrentSequence());
network_context_ = std::make_unique<network::NetworkContext>(
nullptr, std::move(network_context_request),
nullptr, std::move(network_context_receiver),
url_request_context_getter_->GetURLRequestContext(),
/*cors_exempt_header_list=*/std::vector<std::string>());
if (notify)
......
......@@ -58,7 +58,8 @@ class NetworkServiceConfigTestUtil {
base::WeakPtr<NetworkServiceConfigTestUtil> instance,
network::mojom::ProxyResolvingSocketFactoryRequest request);
void CreateNetworkContextOnNetworkRunner(
network::mojom::NetworkContextRequest network_context_request,
mojo::PendingReceiver<network::mojom::NetworkContext>
network_context_receiver,
base::WaitableEvent* notify);
void DeleteNetworkContextOnNetworkRunner(base::WaitableEvent* notify);
......
......@@ -512,7 +512,7 @@ class NetworkContext::ContextNetworkDelegate
NetworkContext::NetworkContext(
NetworkService* network_service,
mojom::NetworkContextRequest request,
mojo::PendingReceiver<mojom::NetworkContext> receiver,
mojom::NetworkContextParamsPtr params,
OnConnectionCloseCallback on_connection_close_callback)
: network_service_(network_service),
......@@ -523,7 +523,7 @@ NetworkContext::NetworkContext(
app_status_listener_(
std::make_unique<NetworkContextApplicationStatusListener>()),
#endif
binding_(this, std::move(request)) {
receiver_(this, std::move(receiver)) {
url_request_context_owner_ = MakeURLRequestContext();
url_request_context_ = url_request_context_owner_.url_request_context.get();
......@@ -533,7 +533,7 @@ NetworkContext::NetworkContext(
// by the NetworkService. In the other constructors, lifetime is shared with
// other consumers, and thus self-deletion is not safe and can result in
// double-frees.
binding_.set_connection_error_handler(base::BindOnce(
receiver_.set_disconnect_handler(base::BindOnce(
&NetworkContext::OnConnectionError, base::Unretained(this)));
socket_factory_ = std::make_unique<SocketFactory>(
......@@ -548,7 +548,7 @@ NetworkContext::NetworkContext(
NetworkContext::NetworkContext(
NetworkService* network_service,
mojom::NetworkContextRequest request,
mojo::PendingReceiver<mojom::NetworkContext> receiver,
net::URLRequestContext* url_request_context,
const std::vector<std::string>& cors_exempt_header_list)
: network_service_(network_service),
......@@ -557,7 +557,7 @@ NetworkContext::NetworkContext(
app_status_listener_(
std::make_unique<NetworkContextApplicationStatusListener>()),
#endif
binding_(this, std::move(request)),
receiver_(this, std::move(receiver)),
cookie_manager_(
std::make_unique<CookieManager>(url_request_context->cookie_store(),
nullptr,
......
......@@ -24,7 +24,7 @@
#include "base/time/time.h"
#include "build/build_config.h"
#include "mojo/public/cpp/base/big_buffer.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "mojo/public/cpp/bindings/strong_binding_set.h"
#include "net/cert/cert_verifier.h"
......@@ -110,7 +110,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
base::OnceCallback<void(NetworkContext* network_context)>;
NetworkContext(NetworkService* network_service,
mojom::NetworkContextRequest request,
mojo::PendingReceiver<mojom::NetworkContext> receiver,
mojom::NetworkContextParamsPtr params,
OnConnectionCloseCallback on_connection_close_callback =
OnConnectionCloseCallback());
......@@ -119,7 +119,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
// URLRequestContext that is not owned by the NetworkContext.
// TODO(mmenke): Remove this constructor when the network service ships.
NetworkContext(NetworkService* network_service,
mojom::NetworkContextRequest request,
mojo::PendingReceiver<mojom::NetworkContext> receiver,
net::URLRequestContext* url_request_context,
const std::vector<std::string>& cors_exempt_header_list);
......@@ -485,7 +485,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
app_status_listener_;
#endif
mojo::Binding<mojom::NetworkContext> binding_;
mojo::Receiver<mojom::NetworkContext> receiver_;
std::unique_ptr<CookieManager> cookie_manager_;
......
......@@ -419,14 +419,14 @@ void NetworkService::SetSSLKeyLogFile(base::File file) {
}
void NetworkService::CreateNetworkContext(
mojom::NetworkContextRequest request,
mojo::PendingReceiver<mojom::NetworkContext> receiver,
mojom::NetworkContextParamsPtr params) {
// Only the first created NetworkContext can have |primary_next_context| set
// to true.
DCHECK(!params->primary_network_context || network_contexts_.empty());
owned_network_contexts_.emplace(std::make_unique<NetworkContext>(
this, std::move(request), std::move(params),
this, std::move(receiver), std::move(params),
base::BindOnce(&NetworkService::OnNetworkContextConnectionClosed,
base::Unretained(this))));
}
......
......@@ -123,8 +123,9 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkService
net::NetLogCaptureMode capture_mode,
base::Value constants) override;
void SetSSLKeyLogFile(base::File file) override;
void CreateNetworkContext(mojom::NetworkContextRequest request,
mojom::NetworkContextParamsPtr params) override;
void CreateNetworkContext(
mojo::PendingReceiver<mojom::NetworkContext> receiver,
mojom::NetworkContextParamsPtr params) override;
void ConfigureStubHostResolver(
bool insecure_dns_client_enabled,
net::DnsConfig::SecureDnsMode secure_dns_mode,
......
......@@ -192,7 +192,7 @@ interface NetworkService {
SetSSLKeyLogFile(mojo_base.mojom.File file);
// Creates a new network context with the given parameters.
CreateNetworkContext(NetworkContext& context,
CreateNetworkContext(pending_receiver<NetworkContext> context,
NetworkContextParams params);
// Configures whether the built-in stub host resolver is used in preference
......
......@@ -25,17 +25,18 @@ class TransitionalURLLoaderFactoryOwner::Core {
: url_request_context_getter_(std::move(url_request_context_getter)),
task_runner_(url_request_context_getter_->GetNetworkTaskRunner()) {}
void CreateNetworkContext(mojom::NetworkContextRequest request) {
void CreateNetworkContext(
mojo::PendingReceiver<mojom::NetworkContext> receiver) {
if (task_runner_->RunsTasksInCurrentSequence()) {
// This must be synchronous since in same-runner case deletes are
// synchronous as well.
CreateNetworkContextOnNetworkThread(std::move(request));
CreateNetworkContextOnNetworkThread(std::move(receiver));
} else {
// Unretained is safe since cross-thread deletes will also be posted.
task_runner_->PostTask(
FROM_HERE,
base::BindOnce(&Core::CreateNetworkContextOnNetworkThread,
base::Unretained(this), std::move(request)));
base::Unretained(this), std::move(receiver)));
}
}
......@@ -57,9 +58,9 @@ class TransitionalURLLoaderFactoryOwner::Core {
}
void CreateNetworkContextOnNetworkThread(
mojom::NetworkContextRequest request) {
mojo::PendingReceiver<mojom::NetworkContext> receiver) {
network_context_ = std::make_unique<network::NetworkContext>(
nullptr /* network_service */, std::move(request),
nullptr /* network_service */, std::move(receiver),
url_request_context_getter_->GetURLRequestContext(),
/*cors_exempt_header_list=*/std::vector<std::string>());
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment