// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_SECURITY_STATE_SECURITY_STATE_MODEL_CLIENT_H_ #define COMPONENTS_SECURITY_STATE_SECURITY_STATE_MODEL_CLIENT_H_ #include "base/macros.h" #include "base/memory/ref_counted.h" #include "components/security_state/security_state_model.h" #include "net/cert/cert_status_flags.h" namespace net { class X509Certificate; } // namespace net namespace security_state { // Provides embedder-specific information that a SecurityStateModel // needs to determine the page's security status. class SecurityStateModelClient { public: SecurityStateModelClient() {} virtual ~SecurityStateModelClient() {} // Retrieves the visible security state that is relevant to the // SecurityStateModel. virtual void GetVisibleSecurityState( SecurityStateModel::VisibleSecurityState* state) = 0; // Returns the certificate used to load the page or request. virtual bool RetrieveCert(scoped_refptr* cert) = 0; // Returns true if the page or request is known to be loaded with a // certificate installed by the system administrator. virtual bool UsedPolicyInstalledCertificate() = 0; // Returns true if the given |url|'s origin should be considered secure. virtual bool IsOriginSecure(const GURL& url) = 0; private: DISALLOW_COPY_AND_ASSIGN(SecurityStateModelClient); }; } // namespace security_state #endif // COMPONENTS_SECURITY_STATE_SECURITY_STATE_MODEL_CLIENT_H_