| 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
|
|
|