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

Side by Side Diff: chrome/browser/ui/website_settings/website_settings.h

Issue 27026002: CT: Adding preliminary Certificate Transparency support to Chromium. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Distinguish between SCTs from unknown logs and unverified ones Created 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_UI_WEBSITE_SETTINGS_WEBSITE_SETTINGS_H_ 5 #ifndef CHROME_BROWSER_UI_WEBSITE_SETTINGS_WEBSITE_SETTINGS_H_
6 #define CHROME_BROWSER_UI_WEBSITE_SETTINGS_WEBSITE_SETTINGS_H_ 6 #define CHROME_BROWSER_UI_WEBSITE_SETTINGS_WEBSITE_SETTINGS_H_
7 7
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/strings/string16.h" 9 #include "base/strings/string16.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 SITE_IDENTITY_STATUS_NO_CERT, 59 SITE_IDENTITY_STATUS_NO_CERT,
60 // An error occured while verifying the site identity. 60 // An error occured while verifying the site identity.
61 SITE_IDENTITY_STATUS_ERROR, 61 SITE_IDENTITY_STATUS_ERROR,
62 // The site is a trusted internal chrome page. 62 // The site is a trusted internal chrome page.
63 SITE_IDENTITY_STATUS_INTERNAL_PAGE, 63 SITE_IDENTITY_STATUS_INTERNAL_PAGE,
64 // The profile has accessed data using an administrator-provided 64 // The profile has accessed data using an administrator-provided
65 // certificate, so the site might be able to intercept data. 65 // certificate, so the site might be able to intercept data.
66 SITE_IDENTITY_STATUS_ADMIN_PROVIDED_CERT, 66 SITE_IDENTITY_STATUS_ADMIN_PROVIDED_CERT,
67 }; 67 };
68 68
69 // Validation status of a website's certificate via Certificate Transparency.
70 enum CertTransparencyStatus {
71 // No status about the website's certificate is available.
72 CERT_TRANSPARENCY_STATUS_UNKNOWN = 0,
73 // One or more SCTs present, none verified.
74 CERT_TRANSPARENCY_STATUS_HAS_SCT,
75 // One or more valid SCTs were presented for the server's certificate.
76 CERT_TRANSPARENCY_STATUS_HAS_VALID_SCT,
77 // XXX(rsleevi): Do we also plan to track "Presented SCTs, but none valid?"
78 // or "Presented SCTs, but not by any trusted logs" (etc).
79 };
80
69 // Creates a WebsiteSettings for the passed |url| using the given |ssl| status 81 // Creates a WebsiteSettings for the passed |url| using the given |ssl| status
70 // object to determine the status of the site's connection. The 82 // object to determine the status of the site's connection. The
71 // |WebsiteSettings| takes ownership of the |ui|. 83 // |WebsiteSettings| takes ownership of the |ui|.
84 // XXX(rsleevi): Pass through the SCT store.
72 WebsiteSettings(WebsiteSettingsUI* ui, 85 WebsiteSettings(WebsiteSettingsUI* ui,
73 Profile* profile, 86 Profile* profile,
74 TabSpecificContentSettings* tab_specific_content_settings, 87 TabSpecificContentSettings* tab_specific_content_settings,
75 InfoBarService* infobar_service, 88 InfoBarService* infobar_service,
76 const GURL& url, 89 const GURL& url,
77 const content::SSLStatus& ssl, 90 const content::SSLStatus& ssl,
78 content::CertStore* cert_store); 91 content::CertStore* cert_store);
79 virtual ~WebsiteSettings(); 92 virtual ~WebsiteSettings();
80 93
81 // This method is called when ever a permission setting is changed. 94 // This method is called when ever a permission setting is changed.
(...skipping 24 matching lines...) Expand all
106 } 119 }
107 120
108 string16 site_identity_details() const { 121 string16 site_identity_details() const {
109 return site_identity_details_; 122 return site_identity_details_;
110 } 123 }
111 124
112 string16 organization_name() const { 125 string16 organization_name() const {
113 return organization_name_; 126 return organization_name_;
114 } 127 }
115 128
129 string16 cert_transparency_details() const {
130 return cert_transparency_details_;
131 }
132
116 // SiteDataObserver implementation. 133 // SiteDataObserver implementation.
117 virtual void OnSiteDataAccessed() OVERRIDE; 134 virtual void OnSiteDataAccessed() OVERRIDE;
118 135
119 private: 136 private:
120 // Initializes the |WebsiteSettings|. 137 // Initializes the |WebsiteSettings|.
121 void Init(Profile* profile, 138 void Init(Profile* profile,
122 const GURL& url, 139 const GURL& url,
123 const content::SSLStatus& ssl); 140 const content::SSLStatus& ssl);
124 141
125 // Sets (presents) the information about the site's permissions in the |ui_|. 142 // Sets (presents) the information about the site's permissions in the |ui_|.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 // Status of the website's identity verification check. 174 // Status of the website's identity verification check.
158 SiteIdentityStatus site_identity_status_; 175 SiteIdentityStatus site_identity_status_;
159 176
160 // For secure connection |cert_id_| is set to the ID of the server 177 // For secure connection |cert_id_| is set to the ID of the server
161 // certificate. For non secure connections |cert_id_| is 0. 178 // certificate. For non secure connections |cert_id_| is 0.
162 int cert_id_; 179 int cert_id_;
163 180
164 // Status of the connection to the website. 181 // Status of the connection to the website.
165 SiteConnectionStatus site_connection_status_; 182 SiteConnectionStatus site_connection_status_;
166 183
184 CertTransparencyStatus cert_transparency_status_;
185
167 // TODO(markusheintz): Move the creation of all the string16 typed UI 186 // TODO(markusheintz): Move the creation of all the string16 typed UI
168 // strings below to the corresponding UI code, in order to prevent 187 // strings below to the corresponding UI code, in order to prevent
169 // unnecessary UTF-8 string conversions. 188 // unnecessary UTF-8 string conversions.
170 189
171 // Details about the website's identity. If the website's identity has been 190 // Details about the website's identity. If the website's identity has been
172 // verified then |site_identity_details_| contains who verified the identity. 191 // verified then |site_identity_details_| contains who verified the identity.
173 // This string will be displayed in the UI. 192 // This string will be displayed in the UI.
174 string16 site_identity_details_; 193 string16 site_identity_details_;
175 194
176 // Details about the connection to the website. In case of an encrypted 195 // Details about the connection to the website. In case of an encrypted
177 // connection |site_connection_details_| contains encryption details, like 196 // connection |site_connection_details_| contains encryption details, like
178 // encryption strength and ssl protocol version. This string will be 197 // encryption strength and ssl protocol version. This string will be
179 // displayed in the UI. 198 // displayed in the UI.
180 string16 site_connection_details_; 199 string16 site_connection_details_;
181 200
182 // For websites that provided an EV certificate |orgainization_name_| 201 // For websites that provided an EV certificate |orgainization_name_|
183 // contains the organization name of the certificate. In all other cases 202 // contains the organization name of the certificate. In all other cases
184 // |organization_name| is an empty string. This string will be displayed in 203 // |organization_name| is an empty string. This string will be displayed in
185 // the UI. 204 // the UI.
186 string16 organization_name_; 205 string16 organization_name_;
187 206
207 // For websites that were successfully checked using Certificate
208 // Transparency, contains a description about the validation status and which
209 // logs were used. This string will be displayed in the UI.
210 string16 cert_transparency_details_;
211
188 // The |CertStore| provides all X509Certificates. 212 // The |CertStore| provides all X509Certificates.
189 content::CertStore* cert_store_; 213 content::CertStore* cert_store_;
190 214
191 // The |HostContentSettingsMap| is the service that provides and manages 215 // The |HostContentSettingsMap| is the service that provides and manages
192 // content settings (aka. site permissions). 216 // content settings (aka. site permissions).
193 HostContentSettingsMap* content_settings_; 217 HostContentSettingsMap* content_settings_;
194 218
195 // Used to request the number of page visits. 219 // Used to request the number of page visits.
196 CancelableRequestConsumer visit_count_request_consumer_; 220 CancelableRequestConsumer visit_count_request_consumer_;
197 221
198 DISALLOW_COPY_AND_ASSIGN(WebsiteSettings); 222 DISALLOW_COPY_AND_ASSIGN(WebsiteSettings);
199 }; 223 };
200 224
201 #endif // CHROME_BROWSER_UI_WEBSITE_SETTINGS_WEBSITE_SETTINGS_H_ 225 #endif // CHROME_BROWSER_UI_WEBSITE_SETTINGS_WEBSITE_SETTINGS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698