| Index: chrome/browser/website_settings_model.h
|
| diff --git a/chrome/browser/website_settings_model.h b/chrome/browser/website_settings_model.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2e895c7e42722fed22f8bc8269195ace901a829a
|
| --- /dev/null
|
| +++ b/chrome/browser/website_settings_model.h
|
| @@ -0,0 +1,118 @@
|
| +// Copyright (c) 2012 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 CHROME_BROWSER_WEBSITE_SETTINGS_MODEL_H_
|
| +#define CHROME_BROWSER_WEBSITE_SETTINGS_MODEL_H_
|
| +
|
| +#include "base/string16.h"
|
| +#include "googleurl/src/gurl.h"
|
| +
|
| +namespace content {
|
| +struct SSLStatus;
|
| +}
|
| +
|
| +class CertStore;
|
| +class Profile;
|
| +class TabContentsWrapper;
|
| +
|
| +// The |WebsiteSettingsModel| provides information about the connection and the
|
| +// identity of a website. The |WebsiteSettingsModel| is the backend for the
|
| +// WebsiteSettingsUI which displays this information.
|
| +class WebsiteSettingsModel {
|
| + public:
|
| + // Status of a connection to a website.
|
| + enum SiteConnectionStatus {
|
| + SITE_CONNECTION_STATUS_UNKNOWN = 0, // No status available.
|
| + SITE_CONNECTION_STATUS_ENCRYPTED, // Connection is encrypted.
|
| + SITE_CONNECTION_STATUS_MIXED_CONTENT, // Site has unencrypted content.
|
| + SITE_CONNECTION_STATUS_UNENCRYPTED, // Connection is not encrypted.
|
| + SITE_CONNECTION_STATUS_ENCRYPTED_ERROR, // Connection error occured.
|
| + SITE_CONNECTION_STATUS_INTERNAL_PAGE, // Internal site.
|
| + };
|
| +
|
| + // Validation status of a website's identity.
|
| + enum SiteIdentityStatus {
|
| + // No status about the website's identity available.
|
| + SITE_IDENTITY_STATUS_UNKNOWN = 0,
|
| + // The website provided a valid certificate.
|
| + SITE_IDENTITY_STATUS_CERT,
|
| + // The website provided a valid EV certificate.
|
| + SITE_IDENTITY_STATUS_EV_CERT,
|
| + // The website provided a valid DNSSEC certificate.
|
| + SITE_IDENTITY_STATUS_DNSSEC_CERT,
|
| + // The website provided a valid certificate but no revocation check could be
|
| + // performed.
|
| + SITE_IDENTITY_STATUS_CERT_REVOCATION_UNKNOWN,
|
| + // Site identity could not be verified because the site did not provide a
|
| + // certificate. This is the expected state for HTTP connections.
|
| + SITE_IDENTITY_STATUS_NO_CERT,
|
| + // An error occured while verifying the site identity.
|
| + SITE_IDENTITY_STATUS_ERROR,
|
| + // The site is a trusted internal chrome page.
|
| + SITE_IDENTITY_STATUS_INTERNAL_PAGE,
|
| + };
|
| +
|
| + // Creates a WebsiteSettingsModel for the passed |url| using the given |ssl|
|
| + // status object to determine the status of the site's connection.
|
| + WebsiteSettingsModel(Profile* profile,
|
| + const GURL& url,
|
| + const content::SSLStatus& ssl,
|
| + CertStore* cert_store);
|
| +
|
| + virtual ~WebsiteSettingsModel();
|
| +
|
| + // Accessors.
|
| + SiteConnectionStatus site_connection_status() const {
|
| + return site_connection_status_;
|
| + }
|
| +
|
| + SiteIdentityStatus site_identity_status() const {
|
| + return site_identity_status_;
|
| + }
|
| +
|
| + string16 site_connection_details() const {
|
| + return site_connection_details_;
|
| + }
|
| +
|
| + string16 site_identity_details() const {
|
| + return site_identity_details_;
|
| + }
|
| +
|
| + string16 organization_name() const {
|
| + return organization_name_;
|
| + }
|
| +
|
| + private:
|
| + // Initializes the |WebsiteSettingsModel|.
|
| + void Init(Profile* profile,
|
| + const GURL& url,
|
| + const content::SSLStatus& ssl);
|
| +
|
| + // Status of the website's identity verification check.
|
| + SiteIdentityStatus site_identity_status_;
|
| +
|
| + // Status of the connection to the website.
|
| + SiteConnectionStatus site_connection_status_;
|
| +
|
| + // Details about the website's identity. If the website's identity has been
|
| + // verified then |site_identity_details_| contains who verified the identity.
|
| + string16 site_identity_details_;
|
| +
|
| + // Details about the connection to the website. In case of an encrypted
|
| + // connection |site_connection_details_| contains encryption details, like
|
| + // encryption strength and ssl protocol version.
|
| + string16 site_connection_details_;
|
| +
|
| + // For websites that provided an EV certificate |orgainization_name_| contains
|
| + // the organization name of the certificate. In all other cases
|
| + // |organization_name| is an empty string.
|
| + string16 organization_name_;
|
| +
|
| + // The |CertStore| provides all X509Certificates.
|
| + CertStore* cert_store_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(WebsiteSettingsModel);
|
| +};
|
| +
|
| +#endif // CHROME_BROWSER_WEBSITE_SETTINGS_MODEL_H_
|
|
|