summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/Tab.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/browser/Tab.java')
-rw-r--r--src/com/android/browser/Tab.java28
1 files changed, 22 insertions, 6 deletions
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index 3d90ab6c0..8a3febe29 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -210,9 +210,11 @@ class Tab implements PictureListener {
String mOriginalUrl;
String mTitle;
SecurityState mSecurityState;
+ // This is non-null only when mSecurityState is SECURITY_STATE_BAD_CERTIFICATE.
+ SslError mSslCertificateError;
Bitmap mFavicon;
- boolean mIsBookmarkedSite = false;
- boolean mIncognito = false;
+ boolean mIsBookmarkedSite;
+ boolean mIncognito;
PageState(Context c, boolean incognito) {
mIncognito = incognito;
@@ -223,14 +225,12 @@ class Tab implements PictureListener {
mOriginalUrl = mUrl = "";
mTitle = c.getString(R.string.new_tab);
}
- mFavicon = null;
mSecurityState = SecurityState.SECURITY_STATE_NOT_SECURE;
}
PageState(Context c, boolean incognito, String url, Bitmap favicon) {
mIncognito = incognito;
mOriginalUrl = mUrl = url;
- mTitle = null;
if (URLUtil.isHttpsUrl(url)) {
mSecurityState = SecurityState.SECURITY_STATE_SECURE;
} else {
@@ -925,6 +925,7 @@ class Tab implements PictureListener {
// In case we stop when loading an HTTPS page from an HTTP page
// but before a provisional load occurred
mCurrentState.mSecurityState = SecurityState.SECURITY_STATE_NOT_SECURE;
+ mCurrentState.mSslCertificateError = null;
}
mCurrentState.mIncognito = view.isPrivateBrowsingEnabled();
}
@@ -1013,7 +1014,6 @@ class Tab implements PictureListener {
// Build a confirmation dialog to display to the user.
final AlertDialog d =
new AlertDialog.Builder(mContext)
- .setTitle(R.string.attention)
.setIcon(android.R.drawable.ic_dialog_alert)
.setMessage(R.string.popup_window_attempt)
.setPositiveButton(R.string.allow, allowListener)
@@ -1265,7 +1265,6 @@ class Tab implements PictureListener {
final View layout = inflater.inflate(R.layout.setup_autofill_dialog, null);
builder.setView(layout)
- .setTitle(R.string.autofill_setup_dialog_title)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
@@ -1905,8 +1904,13 @@ class Tab implements PictureListener {
return mErrorConsole;
}
+ /**
+ * Sets the security state, clears the SSL certificate error and informs
+ * the controller.
+ */
private void setSecurityState(SecurityState securityState) {
mCurrentState.mSecurityState = securityState;
+ mCurrentState.mSslCertificateError = null;
mWebViewController.onUpdatedSecurityState(this);
}
@@ -1917,6 +1921,15 @@ class Tab implements PictureListener {
return mCurrentState.mSecurityState;
}
+ /**
+ * Gets the SSL certificate error, if any, for the page's main resource.
+ * This is only non-null when the security state is
+ * SECURITY_STATE_BAD_CERTIFICATE.
+ */
+ SslError getSslCertificateError() {
+ return mCurrentState.mSslCertificateError;
+ }
+
int getLoadProgress() {
if (mInPageLoad) {
return mPageLoadProgress;
@@ -2278,7 +2291,10 @@ class Tab implements PictureListener {
if (error.getUrl().equals(mCurrentState.mUrl)) {
// The security state should currently be SECURITY_STATE_SECURE.
setSecurityState(SecurityState.SECURITY_STATE_BAD_CERTIFICATE);
+ mCurrentState.mSslCertificateError = error;
} else if (getSecurityState() == SecurityState.SECURITY_STATE_SECURE) {
+ // The page's main resource is secure and this error is for a
+ // sub-resource.
setSecurityState(SecurityState.SECURITY_STATE_MIXED);
}
}