Commit b55d1dd9 authored by Wei Li's avatar Wei Li Committed by Commit Bot

UIDevTools: Fix regression on Windows

Recent commit 13fc02ff broke Windows build because the compiler on
Windows uses different ABIs than those on Linux. The change caused
the UI devtools server failed to be created so no connection could
be made. This CL fixes the calling, and added a unit test to
prevent future brokerage.

BUG=903987

Change-Id: Ie8c0201ab817482b9e7d6eaf305ff0620dff3540
Reviewed-on: https://chromium-review.googlesource.com/c/1336446Reviewed-by: default avatarLeonard Grey <lgrey@chromium.org>
Reviewed-by: default avatarReilly Grant <reillyg@chromium.org>
Reviewed-by: default avatarCait Phillips <caitkp@chromium.org>
Commit-Queue: Wei Li <weili@chromium.org>
Cr-Commit-Position: refs/heads/master@{#608913}
parent 3bcdf2a2
......@@ -177,7 +177,10 @@ test("components_unittests") {
]
if (toolkit_views && use_aura) {
deps += [ "//components/ui_devtools/views:unit_tests" ]
deps += [
"//components/ui_devtools:unit_tests",
"//components/ui_devtools/views:unit_tests",
]
}
if (enable_nacl) {
......
......@@ -119,11 +119,16 @@ source_set("unit_tests") {
}
sources = [
"css_agent_unittest.cc",
#TODO(lgrey,weili): fix and enable css agent tests.
#"css_agent_unittest.cc",
"devtools_server_unittest.cc",
]
deps = [
":test_support",
"//base/test:test_support",
"//net:test_support",
"//services/network:network_service",
"//testing/gtest",
]
......
......@@ -6,3 +6,10 @@ include_rules = [
"+third_party/blink/renderer/platform/inspector_protocol",
"+ui/gfx",
]
specific_include_rules = {
"devtools_server_unittest\.cc": [
"+services/network/network_context.h",
"+services/network/network_service.h",
]
}
......@@ -100,8 +100,9 @@ std::unique_ptr<UiDevToolsServer> UiDevToolsServer::CreateForViews(
int port = GetUiDevToolsPort(enable_devtools_flag, default_port);
server = base::WrapUnique(new UiDevToolsServer(port, kUIDevtoolsServerTag));
network::mojom::TCPServerSocketPtr server_socket;
CreateTCPServerSocket(mojo::MakeRequest(&server_socket), network_context,
port, kUIDevtoolsServerTag,
auto request = mojo::MakeRequest(&server_socket);
CreateTCPServerSocket(std::move(request), network_context, port,
kUIDevtoolsServerTag,
base::BindOnce(&UiDevToolsServer::MakeServer,
server->weak_ptr_factory_.GetWeakPtr(),
std::move(server_socket)));
......
// Copyright 2018 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 "components/ui_devtools/devtools_server.h"
#include "base/command_line.h"
#include "base/test/scoped_task_environment.h"
#include "net/base/address_list.h"
#include "net/base/completion_once_callback.h"
#include "net/base/test_completion_callback.h"
#include "net/socket/tcp_client_socket.h"
#include "services/network/network_context.h"
#include "services/network/network_service.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace ui_devtools {
// Tests whether the server for Views is properly created so we can connect to
// it.
TEST(UIDevToolsServerTest, ConnectionToViewsServer) {
static constexpr char fake_flag[] = "ui_devtools";
// Use port 80 to prevent firewall issues.
static constexpr int fake_port = 80;
base::CommandLine::ForCurrentProcess()->AppendSwitch(fake_flag);
base::test::ScopedTaskEnvironment scoped_task_environment(
base::test::ScopedTaskEnvironment::MainThreadType::IO);
network::mojom::NetworkServicePtr network_service_ptr;
network::mojom::NetworkServiceRequest network_service_request =
mojo::MakeRequest(&network_service_ptr);
auto network_service =
network::NetworkService::Create(std::move(network_service_request),
/*netlog=*/nullptr);
network::mojom::NetworkContextPtr network_context_ptr;
network_service_ptr->CreateNetworkContext(
mojo::MakeRequest(&network_context_ptr),
network::mojom::NetworkContextParams::New());
std::unique_ptr<UiDevToolsServer> server = UiDevToolsServer::CreateForViews(
network_context_ptr.get(), fake_flag, fake_port);
// Connect to the server socket.
net::AddressList addr(
net::IPEndPoint(net::IPAddress(127, 0, 0, 1), fake_port));
auto client_socket = std::make_unique<net::TCPClientSocket>(
addr, nullptr, nullptr, net::NetLogSource());
net::TestCompletionCallback callback;
int connect_result =
callback.GetResult(client_socket->Connect(callback.callback()));
ASSERT_EQ(net::OK, connect_result);
ASSERT_TRUE(client_socket->IsConnected());
}
} // namespace ui_devtools
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