Add UI notifications for admin-provided SSL certificates.
This change adds the necktie icon to the omnibox and a warning to the
website settings dropdown notifying the user that they have accessed
data through an admin-provided SSL certificate.
BUG=216495
Review URL: https://chromiumcodereview.appspot.com/13483010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196510 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/ui/website_settings/website_settings.cc b/chrome/browser/ui/website_settings/website_settings.cc
index 8a37c39..28362e7 100644
--- a/chrome/browser/ui/website_settings/website_settings.cc
+++ b/chrome/browser/ui/website_settings/website_settings.cc
@@ -45,6 +45,10 @@
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/resource/resource_bundle.h"
+#if defined(ENABLE_CONFIGURATION_POLICY)
+#include "chrome/browser/policy/browser_policy_connector.h"
+#endif
+
using content::BrowserThread;
namespace {
@@ -257,7 +261,17 @@
(!net::IsCertStatusError(ssl.cert_status) ||
net::IsCertStatusMinorError(ssl.cert_status))) {
// There are no major errors. Check for minor errors.
- if (net::IsCertStatusMinorError(ssl.cert_status)) {
+ bool used_policy_certificates = false;
+#if defined(ENABLE_CONFIGURATION_POLICY)
+ used_policy_certificates =
+ policy::BrowserPolicyConnector::UsedPolicyCertificates(profile);
+#endif
+ if (used_policy_certificates) {
+ site_identity_status_ = SITE_IDENTITY_STATUS_ADMIN_PROVIDED_CERT;
+ site_identity_details_ =
+ l10n_util::GetStringFUTF16(IDS_CERT_POLICY_PROVIDED_CERT_MESSAGE,
+ UTF8ToUTF16(url.host()));
+ } else if (net::IsCertStatusMinorError(ssl.cert_status)) {
site_identity_status_ = SITE_IDENTITY_STATUS_CERT_REVOCATION_UNKNOWN;
string16 issuer_name(UTF8ToUTF16(cert->issuer().GetDisplayName()));
if (issuer_name.empty()) {
@@ -443,7 +457,8 @@
if (site_connection_status_ == SITE_CONNECTION_STATUS_ENCRYPTED_ERROR ||
site_connection_status_ == SITE_CONNECTION_STATUS_MIXED_CONTENT ||
site_identity_status_ == SITE_IDENTITY_STATUS_ERROR ||
- site_identity_status_ == SITE_IDENTITY_STATUS_CERT_REVOCATION_UNKNOWN)
+ site_identity_status_ == SITE_IDENTITY_STATUS_CERT_REVOCATION_UNKNOWN ||
+ site_identity_status_ == SITE_IDENTITY_STATUS_ADMIN_PROVIDED_CERT)
tab_id = WebsiteSettingsUI::TAB_ID_CONNECTION;
ui_->SetSelectedTab(tab_id);
}