#include "content/browser/ssl/ssl_manager.h"
#include <set>
#include <utility>
#include "base/command_line.h"
#include "base/functional/bind.h"
#include "base/memory/raw_ptr.h"
#include "base/metrics/histogram_macros.h"
#include "base/strings/utf_string_conversions.h"
#include "base/supports_user_data.h"
#include "base/trace_event/optional_trace_event.h"
#include "content/browser/devtools/devtools_instrumentation.h"
#include "content/browser/navigation_or_document_handle.h"
#include "content/browser/navigation_subresource_loader_params.h"
#include "content/browser/renderer_host/navigation_entry_impl.h"
#include "content/browser/renderer_host/render_frame_host_impl.h"
#include "content/browser/ssl/ssl_error_handler.h"
#include "content/browser/web_contents/web_contents_impl.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/certificate_request_result_type.h"
#include "content/public/browser/content_browser_client.h"
#include "content/public/browser/devtools_agent_host.h"
#include "content/public/browser/navigation_details.h"
#include "content/public/browser/ssl_host_state_delegate.h"
#include "content/public/common/content_client.h"
#include "content/public/common/content_switches.h"
#include "net/base/url_util.h"
#include "net/cert/cert_status_flags.h"
#include "services/metrics/public/cpp/ukm_builders.h"
#include "services/metrics/public/cpp/ukm_recorder.h"
#include "services/metrics/public/cpp/ukm_source_id.h"
#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
namespace content {
namespace {
const char kSSLManagerKeyName[] = …;
enum class MixedContentType { … };
void OnAllowCertificate(SSLErrorHandler* handler,
StoragePartition* storage_partition,
SSLHostStateDelegate* state_delegate,
bool record_decision,
CertificateRequestResultType decision) { … }
class SSLManagerSet : public base::SupportsUserData::Data { … };
}
void SSLManager::OnSSLCertificateError(
const base::WeakPtr<SSLErrorHandler::Delegate>& delegate,
bool is_primary_main_frame_request,
const GURL& url,
NavigationOrDocumentHandle* navigation_or_document,
int net_error,
const net::SSLInfo& ssl_info,
bool fatal) { … }
SSLManager::SSLManager(NavigationControllerImpl* controller)
: … { … }
SSLManager::~SSLManager() { … }
void SSLManager::DidCommitProvisionalLoad(const LoadCommittedDetails& details) { … }
void SSLManager::DidDisplayMixedContent() { … }
void SSLManager::DidContainInsecureFormAction() { … }
void SSLManager::DidDisplayContentWithCertErrors() { … }
void SSLManager::DidRunMixedContent(const GURL& security_origin) { … }
void SSLManager::DidRunContentWithCertErrors(const GURL& security_origin) { … }
void SSLManager::OnCertError(std::unique_ptr<SSLErrorHandler> handler) { … }
bool SSLManager::HasAllowExceptionForAnyHost() { … }
bool SSLManager::DidStartResourceResponse(
const url::SchemeHostPort& final_response_url,
bool has_certificate_errors) { … }
void SSLManager::OnCertErrorInternal(std::unique_ptr<SSLErrorHandler> handler) { … }
bool SSLManager::UpdateEntry(NavigationEntryImpl* entry,
int add_content_status_flags,
int remove_content_status_flags,
bool notify_changes) { … }
void SSLManager::UpdateLastCommittedEntry(int add_content_status_flags,
int remove_content_status_flags) { … }
void SSLManager::NotifyDidChangeVisibleSSLState() { … }
void SSLManager::NotifySSLInternalStateChanged(BrowserContext* context) { … }
}