Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(216)

Unified Diff: components/security_state/core/security_state_model.cc

Issue 2448943002: Refactor SecurityStateModel/Clients for simplicity and reusability. (Closed)
Patch Set: update comments. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/security_state/core/security_state_model.cc
diff --git a/components/security_state/security_state_model.cc b/components/security_state/core/security_state_model.cc
similarity index 91%
rename from components/security_state/security_state_model.cc
rename to components/security_state/core/security_state_model.cc
index ad131d00972caede6e55f6bb28163f26b7f84898..c5177076856c72b4ff565ace0ad883cccace6872 100644
--- a/components/security_state/security_state_model.cc
+++ b/components/security_state/core/security_state_model.cc
@@ -2,15 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "components/security_state/security_state_model.h"
+#include "components/security_state/core/security_state_model.h"
#include <stdint.h>
#include "base/command_line.h"
#include "base/metrics/field_trial.h"
#include "base/metrics/histogram_macros.h"
-#include "components/security_state/security_state_model_client.h"
-#include "components/security_state/switches.h"
+#include "components/security_state/core/switches.h"
#include "net/ssl/ssl_cipher_suite_names.h"
#include "net/ssl/ssl_connection_status_flags.h"
@@ -118,7 +117,8 @@ SecurityStateModel::ContentStatus GetContentStatus(bool displayed, bool ran) {
SecurityStateModel::SecurityLevel GetSecurityLevelForRequest(
const SecurityStateModel::VisibleSecurityState& visible_security_state,
- SecurityStateModelClient* client,
+ bool used_policy_installed_certificate,
+ const SecurityStateModel::IsOriginSecureCallback& is_origin_secure_callback,
SecurityStateModel::SHA1DeprecationStatus sha1_status,
SecurityStateModel::ContentStatus mixed_content_status,
SecurityStateModel::ContentStatus content_with_cert_errors_status) {
@@ -144,7 +144,7 @@ SecurityStateModel::SecurityLevel GetSecurityLevelForRequest(
// Choose the appropriate security level for HTTP requests.
if (!is_cryptographic_with_certificate) {
- if (!client->IsOriginSecure(url) && url.IsStandard()) {
+ if (!is_origin_secure_callback.Run(url) && url.IsStandard()) {
return GetSecurityLevelForNonSecureFieldTrial(
visible_security_state.displayed_password_field_on_http ||
visible_security_state.displayed_credit_card_field_on_http);
@@ -168,7 +168,7 @@ SecurityStateModel::SecurityLevel GetSecurityLevelForRequest(
// indicator of a MITM being present (the enterprise), while the
// other authenticated-but-with-errors indicate something may
// be wrong, or may be wrong in the future, but is unclear now.
- if (client->UsedPolicyInstalledCertificate())
+ if (used_policy_installed_certificate)
return SecurityStateModel::SECURE_WITH_POLICY_INSTALLED_CERT;
if (sha1_status == SecurityStateModel::DEPRECATED_SHA1_MAJOR)
@@ -201,8 +201,9 @@ SecurityStateModel::SecurityLevel GetSecurityLevelForRequest(
}
void SecurityInfoForRequest(
- SecurityStateModelClient* client,
const SecurityStateModel::VisibleSecurityState& visible_security_state,
+ bool used_policy_installed_certificate,
+ const SecurityStateModel::IsOriginSecureCallback& is_origin_secure_callback,
SecurityStateModel::SecurityInfo* security_info) {
if (!visible_security_state.connection_info_initialized) {
*security_info = SecurityStateModel::SecurityInfo();
@@ -210,7 +211,8 @@ void SecurityInfoForRequest(
visible_security_state.fails_malware_check;
if (security_info->fails_malware_check) {
security_info->security_level = GetSecurityLevelForRequest(
- visible_security_state, client, SecurityStateModel::UNKNOWN_SHA1,
+ visible_security_state, used_policy_installed_certificate,
+ is_origin_secure_callback, SecurityStateModel::UNKNOWN_SHA1,
SecurityStateModel::CONTENT_STATUS_UNKNOWN,
SecurityStateModel::CONTENT_STATUS_UNKNOWN);
}
@@ -245,7 +247,8 @@ void SecurityInfoForRequest(
visible_security_state.displayed_credit_card_field_on_http;
security_info->security_level = GetSecurityLevelForRequest(
- visible_security_state, client, security_info->sha1_deprecation_status,
+ visible_security_state, used_policy_installed_certificate,
+ is_origin_secure_callback, security_info->sha1_deprecation_status,
security_info->mixed_content_status,
security_info->content_with_cert_errors_status);
}
@@ -281,14 +284,13 @@ SecurityStateModel::SecurityStateModel() {}
SecurityStateModel::~SecurityStateModel() {}
void SecurityStateModel::GetSecurityInfo(
- SecurityStateModel::SecurityInfo* result) const {
- VisibleSecurityState new_visible_state;
- client_->GetVisibleSecurityState(&new_visible_state);
- SecurityInfoForRequest(client_, new_visible_state, result);
-}
-
-void SecurityStateModel::SetClient(SecurityStateModelClient* client) {
- client_ = client;
+ SecurityStateModel::SecurityInfo* result,
+ std::unique_ptr<VisibleSecurityState> visible_security_state,
+ bool used_policy_installed_certificate,
+ IsOriginSecureCallback is_origin_secure_callback) const {
+ SecurityInfoForRequest(*visible_security_state,
+ used_policy_installed_certificate,
+ is_origin_secure_callback, result);
}
SecurityStateModel::VisibleSecurityState::VisibleSecurityState()

Powered by Google App Engine
This is Rietveld 408576698