OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/proxy/proxy_resolver_factory_mojo.h" | 5 #include "net/proxy/proxy_resolver_factory_mojo.h" |
6 | 6 |
7 #include <list> | 7 #include <list> |
8 #include <map> | 8 #include <map> |
9 #include <memory> | 9 #include <memory> |
10 #include <queue> | 10 #include <queue> |
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
260 } | 260 } |
261 case GetProxyForUrlAction::DROP: { | 261 case GetProxyForUrlAction::DROP: { |
262 client.reset(); | 262 client.reset(); |
263 break; | 263 break; |
264 } | 264 } |
265 case GetProxyForUrlAction::DISCONNECT: { | 265 case GetProxyForUrlAction::DISCONNECT: { |
266 binding_.Close(); | 266 binding_.Close(); |
267 break; | 267 break; |
268 } | 268 } |
269 case GetProxyForUrlAction::WAIT_FOR_CLIENT_DISCONNECT: { | 269 case GetProxyForUrlAction::WAIT_FOR_CLIENT_DISCONNECT: { |
270 ASSERT_FALSE(client.WaitForIncomingResponse()); | 270 base::RunLoop run_loop; |
271 client.set_connection_error_handler(run_loop.QuitClosure()); | |
272 run_loop.Run(); | |
273 ASSERT_TRUE(client.encountered_error()); | |
leonhsl(Using Gerrit)
2016/06/27 11:03:16
I think InterfacePtr would detect the connection e
yzshen1
2016/06/29 21:36:20
Please look at base::MessageLoop::ScopedNestableTa
leonhsl(Using Gerrit)
2016/06/29 22:53:49
Yeah I noticed the multiple layers of base::RunLoo
leonhsl(Using Gerrit)
2016/07/01 08:53:50
Done.
| |
271 break; | 274 break; |
272 } | 275 } |
273 case GetProxyForUrlAction::MAKE_DNS_REQUEST: { | 276 case GetProxyForUrlAction::MAKE_DNS_REQUEST: { |
274 interfaces::HostResolverRequestInfoPtr request( | 277 interfaces::HostResolverRequestInfoPtr request( |
275 interfaces::HostResolverRequestInfo::New()); | 278 interfaces::HostResolverRequestInfo::New()); |
276 request->host = url.spec(); | 279 request->host = url.spec(); |
277 request->port = 12345; | 280 request->port = 12345; |
278 interfaces::HostResolverRequestClientPtr dns_client; | 281 interfaces::HostResolverRequestClientPtr dns_client; |
279 mojo::GetProxy(&dns_client); | 282 mojo::GetProxy(&dns_client); |
280 client->ResolveDns(std::move(request), std::move(dns_client)); | 283 client->ResolveDns(std::move(request), std::move(dns_client)); |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
423 blocked_clients_.push_back( | 426 blocked_clients_.push_back( |
424 base::WrapUnique(new interfaces::ProxyResolverFactoryRequestClientPtr( | 427 base::WrapUnique(new interfaces::ProxyResolverFactoryRequestClientPtr( |
425 std::move(client)))); | 428 std::move(client)))); |
426 break; | 429 break; |
427 } | 430 } |
428 case CreateProxyResolverAction::DROP_BOTH: { | 431 case CreateProxyResolverAction::DROP_BOTH: { |
429 // Both |request| and |client| will be closed. | 432 // Both |request| and |client| will be closed. |
430 break; | 433 break; |
431 } | 434 } |
432 case CreateProxyResolverAction::WAIT_FOR_CLIENT_DISCONNECT: { | 435 case CreateProxyResolverAction::WAIT_FOR_CLIENT_DISCONNECT: { |
433 ASSERT_FALSE(client.WaitForIncomingResponse()); | 436 base::RunLoop run_loop; |
437 client.set_connection_error_handler(run_loop.QuitClosure()); | |
438 run_loop.RunUntilIdle(); | |
yzshen1
2016/06/29 21:36:20
Please note that RunUntilIdle is incorrect. The me
leonhsl(Using Gerrit)
2016/06/29 22:53:49
Understood.
leonhsl(Using Gerrit)
2016/07/01 08:53:50
Done.
| |
439 ASSERT_TRUE(client.encountered_error()); | |
434 break; | 440 break; |
435 } | 441 } |
436 case CreateProxyResolverAction::MAKE_DNS_REQUEST: { | 442 case CreateProxyResolverAction::MAKE_DNS_REQUEST: { |
437 interfaces::HostResolverRequestInfoPtr request( | 443 interfaces::HostResolverRequestInfoPtr request( |
438 interfaces::HostResolverRequestInfo::New()); | 444 interfaces::HostResolverRequestInfo::New()); |
439 request->host = pac_script; | 445 request->host = pac_script; |
440 request->port = 12345; | 446 request->port = 12345; |
441 interfaces::HostResolverRequestClientPtr dns_client; | 447 interfaces::HostResolverRequestClientPtr dns_client; |
442 mojo::GetProxy(&dns_client); | 448 mojo::GetProxy(&dns_client); |
443 client->ResolveDns(std::move(request), std::move(dns_client)); | 449 client->ResolveDns(std::move(request), std::move(dns_client)); |
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
891 mock_proxy_resolver_.ClearBlockedClients(); | 897 mock_proxy_resolver_.ClearBlockedClients(); |
892 request->WaitForResult(); | 898 request->WaitForResult(); |
893 } | 899 } |
894 | 900 |
895 TEST_F(ProxyResolverFactoryMojoTest, DeleteResolver) { | 901 TEST_F(ProxyResolverFactoryMojoTest, DeleteResolver) { |
896 CreateProxyResolver(); | 902 CreateProxyResolver(); |
897 proxy_resolver_mojo_.reset(); | 903 proxy_resolver_mojo_.reset(); |
898 on_delete_callback_.WaitForResult(); | 904 on_delete_callback_.WaitForResult(); |
899 } | 905 } |
900 } // namespace net | 906 } // namespace net |
OLD | NEW |