• Bruce Dawson's avatar
    Revert "Implement the WindowsSystemProxyResolutionService/Request" · 5889b656
    Bruce Dawson authored
    This reverts commit 33f234e7.
    
    Reason for revert: Windows 7 test bots are failing
    
    This is because WinHttpCreateProxyResolver requires Windows 8+.
    https://docs.microsoft.com/en-us/windows/win32/api/winhttp/nf-winhttp-winhttpcreateproxyresolver
    
    Original change's description:
    > Implement the WindowsSystemProxyResolutionService/Request
    > 
    > This change creates a functional proxy resolver for Windows that relies
    > on WinHttp APIs. This is not in its final state, though. This CL
    > represents the simplest, least-work way to implement this proxy
    > resolution service. Work still to come includes:
    > - Complete NetLogs
    > - Better error reporting from WinHttp APIs
    > - Proxy Delegate
    > - Proxy retry info
    > - Assurance that the proxy configs we're receiving are from the system
    > 
    > The WindowsSystemProxyResolutionService is the object that external
    > callers use to resolve a proxy. These callers can keep track of the
    > status of this proxy resolution via a ProxyResolutionRequest,
    > implemented here as a WindowsSystemProxyResolutionRequest. The request
    > object is mainly intended to kick off a specific proxy resolution and
    > report a result via a caller-provided callback. Both of these objects
    > deal with a WindowsSystemProxyResolver.
    > 
    > The WindowsSystemProxyResolver is a new class that does all the required
    > interfacing with WinHttp APIs. It is a reference counted object created
    > by the WindowsSystemProxyResolutionService. Once created, it is used for
    > the lifetime of the WindowsSystemProxyResolutionService. Throughout that
    > time, the Resolver indirectly keeps a WinHttp session handle open. Each
    > WindowsSystemProxyResolutionRequest is given a reference to the new
    > resolver. When the Request object attempts to resolve a proxy for a
    > given URL, it'll call into the Resolver object. Under the hood, the
    > Resolver object creates a handle for the proxy resolution and runs the
    > async call to WinHttp. At any time, the Request object can choose to
    > ignore a pending result from the Resolver (ex: shutdown). The Resolver
    > object must be reference counted because async WinHttp calls call back
    > directly into the Resolver object, so it needs to stay alive as long as
    > we're waiting for an async response from WinHttp.
    > 
    > The only other new object is the WinHttpAPIWrapper, which is just a thin
    > wrapper over WinHttp APIs which we use to enable easier testing and
    > to simplify some interactions with WinHttp. A WinHttpAPIWrapper is owned
    > by a WindowsSystemProxyResolver. The Resolver object is the only object
    > that should interact with the Wrapper object in any meaningful way.
    > Internally, the WinHttpAPIWrapper keeps track of the opened WinHttp
    > session handle that we're using for the lifetime of the Resolver object.
    > 
    > This change includes tests for the WindowsSystemProxyResolver layer (by
    > mocking out the WinHttpAPIWrapper) and the
    > WindowsSystemProxyResolutionService (by mocking out the
    > WindowsSystemProxyResolver).
    > 
    > Bug: 1032820
    > Change-Id: Ic1c60033ff148e6e8f3708e37a2af366613fefac
    > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2159128
    > Commit-Queue: Nicolas Arciniega <niarci@microsoft.com>
    > Reviewed-by: Ramin Halavati <rhalavati@chromium.org>
    > Reviewed-by: Eric Roman <eroman@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#790493}
    
    TBR=eroman@chromium.org,rhalavati@chromium.org,niarci@microsoft.com
    
    Change-Id: I54d4659d5165261af912c427fdeb8f372a7bb2bf
    No-Presubmit: true
    No-Tree-Checks: true
    No-Try: true
    Bug: 1032820
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2311063Reviewed-by: default avatarBruce Dawson <brucedawson@chromium.org>
    Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#790602}
    5889b656
BUILD.gn 238 KB