The ResourceLoadInfo provided to the WebContentsObserver::ResourceLoadComplete() notification does not include the |ip| field (it's null).
This is because ResourceDispatcher::ContinueForNavigation passes a default network::ResourceResponseHead() to URLLoaderClientImpl::OnReceiveResponse.
The frame request being triggered from the browser, the actual ResourceResponseHead is stashed in the request and retrieved in the WebURLLoaderImpl.
We should stash that ResourceResponseHead in a place where the ResourceDispatcher can access it so it can pass it to URLLoaderClientImpl::OnReceiveResponse and the code path is the same for subresource and frames.
Comment 1 by jcivelli@chromium.org
, Mar 27 2018