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

Unified Diff: components/security_state/ios/ios_security_state_model.mm

Issue 2448943002: Refactor SecurityStateModel/Clients for simplicity and reusability. (Closed)
Patch Set: Remove *SecurityModelClient. Created 4 years, 2 months 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/ios/ios_security_state_model.mm
diff --git a/ios/chrome/browser/ssl/ios_chrome_security_state_model_client.mm b/components/security_state/ios/ios_security_state_model.mm
similarity index 60%
rename from ios/chrome/browser/ssl/ios_chrome_security_state_model_client.mm
rename to components/security_state/ios/ios_security_state_model.mm
index cecafdcf0c692412f74a9322fc5e6ecd94256fd4..5d4360cb377049e2186085878f8b4da4bcced3bf 100644
--- a/ios/chrome/browser/ssl/ios_chrome_security_state_model_client.mm
+++ b/components/security_state/ios/ios_security_state_model.mm
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "ios/chrome/browser/ssl/ios_chrome_security_state_model_client.h"
+#include "components/security_state/ios/ios_security_state_model.h"
#include "base/command_line.h"
#include "base/metrics/field_trial.h"
@@ -15,7 +15,9 @@
#include "ios/web/public/web_state/web_state.h"
#include "net/cert/x509_certificate.h"
-DEFINE_WEB_STATE_USER_DATA_KEY(IOSChromeSecurityStateModelClient);
+DEFINE_WEB_STATE_USER_DATA_KEY(IOSSecurityStateModel);
+
+namespace security_state {
namespace {
@@ -24,58 +26,57 @@ namespace {
// SecurityStateModel::SecurityLevel (a finer-grained SecurityStateModel
// concept that can express all of SecurityStateModel's policies that
// //ios/web doesn't necessarily know about).
-security_state::SecurityStateModel::SecurityLevel
+SecurityStateModel::SecurityLevel
GetSecurityLevelForSecurityStyle(web::SecurityStyle style) {
switch (style) {
case web::SECURITY_STYLE_UNKNOWN:
NOTREACHED();
- return security_state::SecurityStateModel::NONE;
+ return SecurityStateModel::NONE;
case web::SECURITY_STYLE_UNAUTHENTICATED:
- return security_state::SecurityStateModel::NONE;
+ return SecurityStateModel::NONE;
case web::SECURITY_STYLE_AUTHENTICATION_BROKEN:
- return security_state::SecurityStateModel::DANGEROUS;
+ return SecurityStateModel::DANGEROUS;
case web::SECURITY_STYLE_WARNING:
// //ios/web currently doesn't use this style.
NOTREACHED();
- return security_state::SecurityStateModel::SECURITY_WARNING;
+ return SecurityStateModel::SECURITY_WARNING;
case web::SECURITY_STYLE_AUTHENTICATED:
- return security_state::SecurityStateModel::SECURE;
+ return SecurityStateModel::SECURE;
}
- return security_state::SecurityStateModel::NONE;
+ return SecurityStateModel::NONE;
}
} // namespace
-IOSChromeSecurityStateModelClient::IOSChromeSecurityStateModelClient(
+bool IsOriginSecure(const GURL& url) {
+ return web::IsOriginSecure(url);
+}
+
+IOSSecurityStateModel::IOSSecurityStateModel(
web::WebState* web_state)
: web_state_(web_state),
- security_state_model_(new security_state::SecurityStateModel()) {
- security_state_model_->SetClient(this);
-}
+ security_state_model_(new SecurityStateModel()) {}
-IOSChromeSecurityStateModelClient::~IOSChromeSecurityStateModelClient() {}
+IOSSecurityStateModel::~IOSSecurityStateModel() {}
-void IOSChromeSecurityStateModelClient::GetSecurityInfo(
- security_state::SecurityStateModel::SecurityInfo* result) const {
- return security_state_model_->GetSecurityInfo(result);
+void IOSSecurityStateModel::GetSecurityInfo(
+ SecurityStateModel::SecurityInfo* result) const {
+ security_state_model_->GetSecurityInfo(
+ result, GetVisibleSecurityState(), UsedPolicyInstalledCertificate());
}
-bool IOSChromeSecurityStateModelClient::UsedPolicyInstalledCertificate() {
+bool IOSSecurityStateModel::UsedPolicyInstalledCertificate() const {
return false;
}
-bool IOSChromeSecurityStateModelClient::IsOriginSecure(const GURL& url) {
- return web::IsOriginSecure(url);
-}
+std::unique_ptr<SecurityStateModel::VisibleSecurityState>
+IOSSecurityStateModel::GetVisibleSecurityState() const {
+ auto state = base::MakeUnique<SecurityStateModel::VisibleSecurityState>();
-void IOSChromeSecurityStateModelClient::GetVisibleSecurityState(
- security_state::SecurityStateModel::VisibleSecurityState* state) {
web::NavigationItem* item =
web_state_->GetNavigationManager()->GetVisibleItem();
- if (!item || item->GetSSL().security_style == web::SECURITY_STYLE_UNKNOWN) {
- *state = security_state::SecurityStateModel::VisibleSecurityState();
- return;
- }
+ if (!item || item->GetSSL().security_style == web::SECURITY_STYLE_UNKNOWN)
+ return state;
state->connection_info_initialized = true;
state->url = item->GetURL();
@@ -87,4 +88,7 @@ void IOSChromeSecurityStateModelClient::GetVisibleSecurityState(
state->displayed_mixed_content =
(ssl.content_status & web::SSLStatus::DISPLAYED_INSECURE_CONTENT) ? true
: false;
+ return state;
}
+
+} // namespace security_state

Powered by Google App Engine
This is Rietveld 408576698