Issue metadata
Sign in to add a comment
|
Define certificate error hooks for network service |
||||||||||||||||||||||||
Issue descriptionFor the network service, we need: 1.) A hook to decide what to do when a certificate error occurs (cancel or ignore) 2.) A hook to expose SSLInfo and whether the certificate error should be fatal when a request fails because of a certificate error. For this, we probably want to add the boolean into SSLInfo instead of carrying around a separate boolean on its own.
,
Aug 22 2017
for 1): I wonder if we had a callback from network service->browser as we discussed, is it ok if network process caches this info indefinitely? I know you mentioned that we only want it to persist for a week. Is it ok to reason that most users would restart the browser more frequently than that, so if this is cached in-memory it's fine? If not I guess the API can take a duration. for 2) we currently have kURLLoadOptionSendSSLInfo (see url_loader_factory.mojom) that lets the consumer get the SSLInfo. It's off by default since we didn't need that big data in the renderer for subresources. I'd like to understand your proposal of where the hook goes? i.e. if the renderer is making a subresource request, then it would be the one implementing URLLoaderClient and setting the URLLoader options. The certificate info interface would be network process->browser, which is a different path than SSLInfo takes.
,
Aug 22 2017
1) I think caching bypasses in the network process is okay, but I have to double-check what our current behavior is. (It might already be the case that it's tied to browser restart.) But we can't cache cancellations, i.e. if the browser decides to cancel a request because of a certificate error, it might well decide to allow the request if the same error happens again. 2) For this, I just meant that we need to send SSLInfo along with OnComplete. It can be conditional on kSendSSLInfo like for OnReceiveResponse. We wouldn't need to send it on subresources (except, I guess, when DevTools is enabled). We'd only need it on main-frame navigation requests, and even then only when the request fails with a certificate error. Does that sound okay?
,
Aug 22 2017
I think we actually want the bypass state to ultimately live in the network process anyway. The way it currently works doesn't interact with the socket pools right and even causes livelocks (issue #488043).
,
Aug 22 2017
(Right now it pretends not to live in the network stack, but it actually partially does by way of the socket pools, so it's kind of a mess all around.)
,
Aug 22 2017
1) sgtm (i.e. only cache approval of ignoring cert errors) 2) ah, if it's not for subresources (other than devtoolos), that's already the case. i.e. we always send SSLInfo for plznavigate-initiated frame requests
,
Nov 7 2017
,
Nov 7 2017
Apologies, applied the wrong component in bulk.
,
Nov 10 2017
,
Feb 18 2018
,
May 22 2018
per discussion with Emily |
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by est...@chromium.org
, Aug 21 2017