New issue
Advanced search Search tips

Issue 783262 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Dec 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 2
Type: Bug
Team-Security-UX

Blocking:
issue 448486


Show other hotlists

Hotlists containing this issue:
EnamelAndFriendsFixIt


Sign in to add a comment

Move |should_ssl_errors_be_fatal| into SSLInfo

Project Member Reported by est...@chromium.org, Nov 9 2017

Issue description

Background: https://chromium-review.googlesource.com/c/chromium/src/+/609542/14/content/browser/loader/navigation_url_loader_network_service.cc#348

Right now both SSLInfo and a bool |should_ssl_errors_be_fatal| are surfaced for requests that fail due to certificate errors. As discussed in the above comment, it would make sense to put that boolean directly into SSLInfo so that we don't have to pass two arguments around so that consumers can decide how to treat certificate errors.

We'd try to get this in to M64 to unblock some PlzNavigate+network service work.
 
Blocking: 448486
Blocking: 783265

Comment 3 by est...@chromium.org, Nov 10 2017

Cc: est...@chromium.org
Owner: carlosil@chromium.org
Carlos, could you take a look at this one? It's a good way to dip your toe into the committed interstitials water.

What we want to do is set a flag on net::SSLInfo called |is_fatal_cert_error|. We can set that flag in SSLClientSocketImpl::GetSSLInfo() and QuicChromiumClientSession::GetSSLInfo() when transport_security_state_->ShouldSSLErrorsBeFatal() is true.

Then we can get rid of the boolean fatal argument in a whole bunch of places: URLRequest::NotifySSLCertificateError, URLRequest::Delegate::OnSSLCertificateError and all its overrides, SSLManager::OnSSLCertificateError and the functions it calls, the SSLErrorHandler constructor, and NavigationURLLoaderDelegate::OnRequestFailed and its overrides/callsites.

Comment 4 by est...@chromium.org, Nov 10 2017

Depending on how many places need to be updated, it might make sense to add the flag to SSLInfo but then update all the places that use it incrementally. If we take this approach, the priority should be to update the NavigationURLLoaderDelegate::OnRequestFailed overrides and callsites over the other uses of this flag, because that's the one that's most relevant to committed interstitials.

Comment 5 by est...@chromium.org, Nov 10 2017

Labels: Hotlist-EnamelAndFriendsFixIt
Status: Started (was: Assigned)

Comment 7 by est...@chromium.org, Nov 21 2017

Blocking: -783265
Project Member

Comment 8 by bugdroid1@chromium.org, Dec 6 2017

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

commit 811333893d25ec4c391e6dd968e4960c08251d4c
Author: Carlos IL <carlosil@chromium.org>
Date: Wed Dec 06 17:18:45 2017

Added |is_fatal_cert_error| flag to ssl_info

ssl_info now has a boolean is_fatal_cert_error flag. Flag gets
populated in GetSSLInfo. Separate |should_ssl_errors_be_fatal| bool was
removed from NavigationURLLoaderDelegate::OnRequestFailed and its
overrides.

Bug:  783262 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_site_isolation
Change-Id: If95f1ba06aeea177276cf10eac6b2a0484dfebbc
Reviewed-on: https://chromium-review.googlesource.com/778042
Reviewed-by: Ryan Sleevi <rsleevi@chromium.org>
Reviewed-by: Camille Lamy <clamy@chromium.org>
Reviewed-by: Emily Stark <estark@chromium.org>
Commit-Queue: Carlos IL <carlosil@chromium.org>
Cr-Commit-Position: refs/heads/master@{#522121}
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/chrome/browser/ssl/ssl_error_handler.cc
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/chrome/browser/ssl/ssl_error_handler.h
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/chrome/browser/ssl/ssl_error_navigation_throttle.cc
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/chrome/browser/ssl/ssl_error_navigation_throttle.h
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/chrome/browser/ssl/ssl_error_navigation_throttle_unittest.cc
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/content/browser/frame_host/navigation_handle_impl.cc
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/content/browser/frame_host/navigation_handle_impl.h
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/content/browser/frame_host/navigation_handle_impl_unittest.cc
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/content/browser/frame_host/navigation_request.h
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/content/browser/loader/navigation_url_loader_delegate.h
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/content/browser/loader/navigation_url_loader_impl.cc
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/content/browser/loader/navigation_url_loader_network_service.cc
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/content/browser/loader/navigation_url_loader_unittest.cc
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/content/public/browser/navigation_handle.h
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/content/test/test_navigation_url_loader.cc
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/content/test/test_navigation_url_loader_delegate.cc
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/content/test/test_navigation_url_loader_delegate.h
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/net/quic/chromium/crypto/proof_verifier_chromium.cc
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/net/quic/chromium/crypto/proof_verifier_chromium.h
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/net/quic/chromium/crypto/proof_verifier_chromium_test.cc
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/net/quic/chromium/quic_chromium_client_session.cc
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/net/quic/chromium/quic_chromium_client_session.h
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/net/quic/chromium/quic_chromium_client_session_test.cc
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/net/socket/ssl_client_socket_impl.cc
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/net/socket/ssl_client_socket_impl.h
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/net/socket/ssl_client_socket_unittest.cc
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/net/ssl/ssl_info.cc
[modify] https://crrev.com/811333893d25ec4c391e6dd968e4960c08251d4c/net/ssl/ssl_info.h

That CL has the changes for NavigationURLLoaderDelegate::OnRequestFailed (and its overrides and callsites), but there is a bit more of cleanup left that I will do on a separate CL, keeping the bug open until then.
Project Member

Comment 10 by bugdroid1@chromium.org, Dec 7 2017

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

commit f658840585c0a21aca23994ee6235712f531e440
Author: Carlos IL <carlosil@chromium.org>
Date: Thu Dec 07 18:13:31 2017

Finished cleanup of |should_ssl_errors_be_fatal| flag

Removed separate |should_ssl_errors_be_fatal| flag from places that
were still passing it, since it is no longer required as |ssl_info| now
contains that information.

Bug:  783262 
Change-Id: I0994458c32dc2cf078108032b6d6c3f9d2c6cfc3
Reviewed-on: https://chromium-review.googlesource.com/811452
Reviewed-by: Camille Lamy <clamy@chromium.org>
Reviewed-by: Emily Stark <estark@chromium.org>
Commit-Queue: Carlos IL <carlosil@chromium.org>
Cr-Commit-Position: refs/heads/master@{#522477}
[modify] https://crrev.com/f658840585c0a21aca23994ee6235712f531e440/chrome/browser/ssl/ssl_error_navigation_throttle_unittest.cc
[modify] https://crrev.com/f658840585c0a21aca23994ee6235712f531e440/content/browser/frame_host/navigation_handle_impl.cc
[modify] https://crrev.com/f658840585c0a21aca23994ee6235712f531e440/content/browser/frame_host/navigation_handle_impl.h
[modify] https://crrev.com/f658840585c0a21aca23994ee6235712f531e440/content/browser/loader/navigation_resource_handler.cc
[modify] https://crrev.com/f658840585c0a21aca23994ee6235712f531e440/content/browser/loader/navigation_url_loader_impl.cc
[modify] https://crrev.com/f658840585c0a21aca23994ee6235712f531e440/content/browser/loader/navigation_url_loader_impl.h
[modify] https://crrev.com/f658840585c0a21aca23994ee6235712f531e440/content/browser/loader/navigation_url_loader_impl_core.cc
[modify] https://crrev.com/f658840585c0a21aca23994ee6235712f531e440/content/browser/loader/navigation_url_loader_impl_core.h
[modify] https://crrev.com/f658840585c0a21aca23994ee6235712f531e440/content/browser/loader/resource_dispatcher_host_impl.cc
[modify] https://crrev.com/f658840585c0a21aca23994ee6235712f531e440/content/public/browser/navigation_handle.h

Status: Fixed (was: Started)

Sign in to add a comment