Support tunneled requests in NetworkServiceProxyDelegate

With this change, CustomProxyConfig can specify rules for http://,
https://, ws://, and wss:// requests with a single proxy list.

NetworkServiceProxyDelegate will now support proxy resolution not just
for http:// requests, but for any scheme (except ftp://, which isn't
proxied in //net, either).  The delegate will also modify the CONNECT
request headers to include the headers specified in CustomProxyConfig.

The meaning of CustomProxyConfig is modified to let features specify
proxying behavior precisely through net::ProxyConfig::ProxyRules.  In
particular, the proxy rules now determine which schemes are proxied with
no additional assumptions in NetworkServiceProxyDelegate.

Bug: 915659
Change-Id: I2dd2a95ab96bdf4d14cffa5c2541fbb678cd3f94
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1417455
Commit-Queue: Wojciech Dzier┼╝anowski <wdzierzanowski@opera.com>
Reviewed-by: Tarun Bansal <tbansal@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#640680}
11 files changed