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

Side by Side Diff: chrome/browser/ui/android/connection_info_popup_android.cc

Issue 2327433002: Stop using CertStore which is not compatible with PlzNavigate. (Closed)
Patch Set: remove cert_store on ios Created 4 years, 3 months 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 #include "chrome/browser/ui/android/connection_info_popup_android.h" 5 #include "chrome/browser/ui/android/connection_info_popup_android.h"
6 6
7 #include "base/android/jni_android.h" 7 #include "base/android/jni_android.h"
8 #include "base/android/jni_array.h" 8 #include "base/android/jni_array.h"
9 #include "base/android/jni_string.h" 9 #include "base/android/jni_string.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
11 #include "chrome/browser/android/resource_mapper.h" 11 #include "chrome/browser/android/resource_mapper.h"
12 #include "chrome/browser/infobars/infobar_service.h" 12 #include "chrome/browser/infobars/infobar_service.h"
13 #include "chrome/browser/profiles/profile.h" 13 #include "chrome/browser/profiles/profile.h"
14 #include "chrome/browser/ssl/chrome_security_state_model_client.h" 14 #include "chrome/browser/ssl/chrome_security_state_model_client.h"
15 #include "chrome/browser/ui/website_settings/website_settings.h" 15 #include "chrome/browser/ui/website_settings/website_settings.h"
16 #include "chrome/grit/generated_resources.h" 16 #include "chrome/grit/generated_resources.h"
17 #include "components/strings/grit/components_strings.h" 17 #include "components/strings/grit/components_strings.h"
18 #include "content/public/browser/browser_context.h" 18 #include "content/public/browser/browser_context.h"
19 #include "content/public/browser/cert_store.h"
20 #include "content/public/browser/navigation_controller.h" 19 #include "content/public/browser/navigation_controller.h"
21 #include "content/public/browser/navigation_entry.h" 20 #include "content/public/browser/navigation_entry.h"
22 #include "content/public/browser/web_contents.h" 21 #include "content/public/browser/web_contents.h"
23 #include "content/public/common/ssl_status.h" 22 #include "content/public/common/ssl_status.h"
24 #include "jni/ConnectionInfoPopup_jni.h" 23 #include "jni/ConnectionInfoPopup_jni.h"
25 #include "net/cert/x509_certificate.h" 24 #include "net/cert/x509_certificate.h"
26 #include "ui/base/l10n/l10n_util.h" 25 #include "ui/base/l10n/l10n_util.h"
27 26
28 using base::android::CheckException; 27 using base::android::CheckException;
29 using base::android::ConvertUTF8ToJavaString; 28 using base::android::ConvertUTF8ToJavaString;
30 using base::android::ConvertUTF16ToJavaString; 29 using base::android::ConvertUTF16ToJavaString;
31 using base::android::GetClass; 30 using base::android::GetClass;
32 using base::android::JavaParamRef; 31 using base::android::JavaParamRef;
33 using base::android::ScopedJavaLocalRef; 32 using base::android::ScopedJavaLocalRef;
34 using content::CertStore;
35 using content::WebContents; 33 using content::WebContents;
36 34
37 static ScopedJavaLocalRef<jobjectArray> GetCertificateChain( 35 static ScopedJavaLocalRef<jobjectArray> GetCertificateChain(
38 JNIEnv* env, 36 JNIEnv* env,
39 const JavaParamRef<jobject>& obj, 37 const JavaParamRef<jobject>& obj,
40 const JavaParamRef<jobject>& java_web_contents) { 38 const JavaParamRef<jobject>& java_web_contents) {
41 content::WebContents* web_contents = 39 content::WebContents* web_contents =
42 content::WebContents::FromJavaWebContents(java_web_contents); 40 content::WebContents::FromJavaWebContents(java_web_contents);
43 if (!web_contents) 41 if (!web_contents)
44 return ScopedJavaLocalRef<jobjectArray>(); 42 return ScopedJavaLocalRef<jobjectArray>();
45 43
46 int cert_id = 44 scoped_refptr<net::X509Certificate> cert =
47 web_contents->GetController().GetVisibleEntry()->GetSSL().cert_id; 45 web_contents->GetController().GetVisibleEntry()->GetSSL().certificate;
48 scoped_refptr<net::X509Certificate> cert;
49 bool ok = CertStore::GetInstance()->RetrieveCert(cert_id, &cert);
50 CHECK(ok);
51 46
52 std::vector<std::string> cert_chain; 47 std::vector<std::string> cert_chain;
53 net::X509Certificate::OSCertHandles cert_handles = 48 net::X509Certificate::OSCertHandles cert_handles =
54 cert->GetIntermediateCertificates(); 49 cert->GetIntermediateCertificates();
55 // Make sure the peer's own cert is the first in the chain, if it's not 50 // Make sure the peer's own cert is the first in the chain, if it's not
56 // already there. 51 // already there.
57 if (cert_handles.empty() || cert_handles[0] != cert->os_cert_handle()) 52 if (cert_handles.empty() || cert_handles[0] != cert->os_cert_handle())
58 cert_handles.insert(cert_handles.begin(), cert->os_cert_handle()); 53 cert_handles.insert(cert_handles.begin(), cert->os_cert_handle());
59 54
60 cert_chain.reserve(cert_handles.size()); 55 cert_chain.reserve(cert_handles.size());
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 89
95 popup_jobject_.Reset(env, java_website_settings_pop); 90 popup_jobject_.Reset(env, java_website_settings_pop);
96 91
97 ChromeSecurityStateModelClient* security_model_client = 92 ChromeSecurityStateModelClient* security_model_client =
98 ChromeSecurityStateModelClient::FromWebContents(web_contents); 93 ChromeSecurityStateModelClient::FromWebContents(web_contents);
99 DCHECK(security_model_client); 94 DCHECK(security_model_client);
100 95
101 presenter_.reset(new WebsiteSettings( 96 presenter_.reset(new WebsiteSettings(
102 this, Profile::FromBrowserContext(web_contents->GetBrowserContext()), 97 this, Profile::FromBrowserContext(web_contents->GetBrowserContext()),
103 TabSpecificContentSettings::FromWebContents(web_contents), web_contents, 98 TabSpecificContentSettings::FromWebContents(web_contents), web_contents,
104 nav_entry->GetURL(), security_model_client->GetSecurityInfo(), 99 nav_entry->GetURL(), security_model_client->GetSecurityInfo()));
105 content::CertStore::GetInstance()));
106 } 100 }
107 101
108 ConnectionInfoPopupAndroid::~ConnectionInfoPopupAndroid() { 102 ConnectionInfoPopupAndroid::~ConnectionInfoPopupAndroid() {
109 } 103 }
110 104
111 void ConnectionInfoPopupAndroid::Destroy(JNIEnv* env, 105 void ConnectionInfoPopupAndroid::Destroy(JNIEnv* env,
112 const JavaParamRef<jobject>& obj) { 106 const JavaParamRef<jobject>& obj) {
113 delete this; 107 delete this;
114 } 108 }
115 109
(...skipping 11 matching lines...) Expand all
127 { 121 {
128 int icon_id = ResourceMapper::MapFromChromiumId( 122 int icon_id = ResourceMapper::MapFromChromiumId(
129 WebsiteSettingsUI::GetIdentityIconID(identity_info.identity_status)); 123 WebsiteSettingsUI::GetIdentityIconID(identity_info.identity_status));
130 124
131 // The headline and the certificate dialog link of the site's identity 125 // The headline and the certificate dialog link of the site's identity
132 // section is only displayed if the site's identity was verified. If the 126 // section is only displayed if the site's identity was verified. If the
133 // site's identity was verified, then the headline contains the organization 127 // site's identity was verified, then the headline contains the organization
134 // name from the provided certificate. If the organization name is not 128 // name from the provided certificate. If the organization name is not
135 // available than the hostname of the site is used instead. 129 // available than the hostname of the site is used instead.
136 std::string headline; 130 std::string headline;
137 if (identity_info.cert_id) { 131 if (identity_info.certificate) {
138 headline = identity_info.site_identity; 132 headline = identity_info.site_identity;
139 } 133 }
140 134
141 ScopedJavaLocalRef<jstring> description = 135 ScopedJavaLocalRef<jstring> description =
142 ConvertUTF8ToJavaString(env, identity_info.identity_status_description); 136 ConvertUTF8ToJavaString(env, identity_info.identity_status_description);
143 base::string16 certificate_label; 137 base::string16 certificate_label;
144 138
145 // Only show the certificate viewer link if the connection actually used a 139 // Only show the certificate viewer link if the connection actually used a
146 // certificate. 140 // certificate.
147 if (identity_info.identity_status != 141 if (identity_info.identity_status !=
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 // There's no tab UI on Android - only connection info is shown. 194 // There's no tab UI on Android - only connection info is shown.
201 NOTIMPLEMENTED(); 195 NOTIMPLEMENTED();
202 } 196 }
203 197
204 // static 198 // static
205 bool 199 bool
206 ConnectionInfoPopupAndroid::RegisterConnectionInfoPopupAndroid( 200 ConnectionInfoPopupAndroid::RegisterConnectionInfoPopupAndroid(
207 JNIEnv* env) { 201 JNIEnv* env) {
208 return RegisterNativesImpl(env); 202 return RegisterNativesImpl(env);
209 } 203 }
OLDNEW
« no previous file with comments | « chrome/browser/ssl/ssl_browser_tests.cc ('k') | chrome/browser/ui/android/toolbar/toolbar_model_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698