New issue
Advanced search Search tips

Issue 793071 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 10
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 3
Type: Bug
Proj-Servicification

Blocking:
issue 721401



Sign in to add a comment

proxy_resolving_client_socket.cc should not pass in a null ProxyDelegate

Project Member Reported by xunji...@chromium.org, Dec 7 2017

Issue description

proxy_resolving_client_socket.cc currently passes a null ProxyDelegate to ProxyService. 

We need to investigate how ProxyDelegate interface looks like in NetworkService and converts proxy_resolving_client_socket.cc to using it.
 
Cc: reillyg@chromium.org mmenke@chromium.org
+reillyg@:

Reilly: Do you have a pointer to the new ProxyDelegate interface?

I am moving jingle/glue/proxy_resolving_client_socket.h to services/network/network/cpp, with the goal of converting it to a mojo interface eventually (so we have a socket interface that does proxy resolution on top of connect).
The current implementation uses a null ProxyDelegate when doing ProxyService::ResolveProxy. mmenke@ told me that passing a null ProxyDelegate is potentially bad, and we should not passing a null ProxyDelegate.
How should I interact with the ProxyDelegate interface that you are currently working on?

mmenke@, can you explain the problems with providing a null ProxyDelegate?
ProxyResolvingClientSocket shouldn't implicitly assume that the consumer wants different behavior for it than from any other tunneled socket (Possibly with the exception of marking proxies as bad).
In my current effort there is currently no new ProxyDelegate interface. I am looking at the implementation of the Data Reduction Proxy at a content::ResourceRequest level and so have not been considering any other users of the ProxyService such as ProxyResolvingClientSocket.
Components: Internals>Services>Network
This bug does not block canary

Comment 7 by dxie@chromium.org, May 22 2018

Labels: Hotlist-KnownIssue
Owner: ----
Status: Available (was: Assigned)
I wasn't able to get to this.
Owner: eroman@chromium.org
Status: Assigned (was: Available)
I can take a look at this.
Ideally we can get rid of the per-request ProxyDelegate parameter, and instead associate it with the ProxyResolutionService. Not sure if there is a reason it is currently per request.

There is some overlap here with  Issue 721403 .
I think it may be per-request because the ProxyResolutionService used to be shared between URLRequestContexts.  Of course, that's no longer the case, now.
Labels: -Hotlist-KnownIssue
Labels: OS-Android OS-Chrome OS-Linux OS-Mac OS-Windows
Labels: Proj-Servicification-Stable Hotlist-KnownIssue
Project Member

Comment 16 by bugdroid1@chromium.org, Sep 10

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3d8546ae1e634a30832ab731f192e30110aba0ee

commit 3d8546ae1e634a30832ab731f192e30110aba0ee
Author: Eric Roman <eroman@chromium.org>
Date: Mon Sep 10 17:00:52 2018

Remove net::ProxyDelegate as a per-request parameter of net::ProxyResolutionService.

Previously methods on ProxyResolutionService took an optional ProxyDelegate pointer. This was problematic as not all callers were providing the correct value, and plumbing it down was inconvenient.

Now the ProxyDelegate is instead an internal detail of the ProxyResolutionService.

Bug:  793071 
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I2eed185bc42cdc0bfcb945ad037fe2df52416198
Reviewed-on: https://chromium-review.googlesource.com/1208465
Reviewed-by: Matt Mueller <mattm@chromium.org>
Reviewed-by: Tarun Bansal <tbansal@chromium.org>
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Eric Roman <eroman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589950}
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/components/data_reduction_proxy/content/browser/content_resource_type_provider_unittest.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_protocol_unittest.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_stats_unittest.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate_unittest.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/components/data_reduction_proxy/core/browser/data_reduction_proxy_interceptor_unittest.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/content/test/proxy_service_mojo_unittest.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/net/http/http_network_session.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/net/http/http_network_session.h
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/net/http/http_network_transaction_unittest.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/net/http/http_stream_factory_job.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/net/http/http_stream_factory_job_controller.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/net/http/http_stream_factory_job_controller_unittest.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/net/http/http_stream_factory_unittest.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/net/proxy_resolution/proxy_resolution_service.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/net/proxy_resolution/proxy_resolution_service.h
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/net/proxy_resolution/proxy_resolution_service_unittest.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/net/quic/quic_network_transaction_unittest.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/net/spdy/spdy_network_transaction_unittest.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/net/spdy/spdy_test_util_common.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/net/spdy/spdy_test_util_common.h
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/net/url_request/url_request_context_builder.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/net/url_request/url_request_ftp_job.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/net/url_request/url_request_test_util.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/net/url_request/url_request_test_util.h
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/net/websockets/websocket_end_to_end_test.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/services/network/proxy_lookup_request.cc
[modify] https://crrev.com/3d8546ae1e634a30832ab731f192e30110aba0ee/services/network/proxy_resolving_client_socket.cc

Status: Fixed (was: Started)

Sign in to add a comment