Commit ab448ac1 authored by Steve Block's avatar Steve Block Committed by Android (Google) Code Review
Browse files

Merge "Rename Tab.LockIcon to Tab.SecurityState"

parents 5e65609a 2466effd
......@@ -49,7 +49,7 @@ import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.android.browser.Tab.LockIcon;
import com.android.browser.Tab.SecurityState;
import com.android.internal.view.menu.MenuBuilder;
import java.util.List;
......@@ -81,8 +81,8 @@ public abstract class BaseUi implements UI {
protected Tab mActiveTab;
private InputMethodManager mInputManager;
private Drawable mSecLockIcon;
private Drawable mMixLockIcon;
private Drawable mLockIconSecure;
private Drawable mLockIconMixed;
protected Drawable mGenericFavicon;
protected FrameLayout mContentView;
......@@ -115,8 +115,8 @@ public abstract class BaseUi implements UI {
Resources res = mActivity.getResources();
mInputManager = (InputMethodManager)
browser.getSystemService(Activity.INPUT_METHOD_SERVICE);
mSecLockIcon = res.getDrawable(R.drawable.ic_secure_holo_dark);
mMixLockIcon = res.getDrawable(R.drawable.ic_secure_partial_holo_dark);
mLockIconSecure = res.getDrawable(R.drawable.ic_secure_holo_dark);
mLockIconMixed = res.getDrawable(R.drawable.ic_secure_partial_holo_dark);
FrameLayout frameLayout = (FrameLayout) mActivity.getWindow()
.getDecorView().findViewById(android.R.id.content);
......@@ -590,19 +590,19 @@ public abstract class BaseUi implements UI {
*/
protected void updateLockIconToLatest(Tab t) {
if (t != null && t.inForeground()) {
updateLockIconImage(t.getLockIconType());
updateLockIconImage(t.getSecurityState());
}
}
/**
* Updates the lock-icon image in the title-bar.
*/
private void updateLockIconImage(LockIcon lockIconType) {
private void updateLockIconImage(SecurityState securityState) {
Drawable d = null;
if (lockIconType == LockIcon.LOCK_ICON_SECURE) {
d = mSecLockIcon;
} else if (lockIconType == LockIcon.LOCK_ICON_MIXED) {
d = mMixLockIcon;
if (securityState == SecurityState.SECURITY_STATE_SECURE) {
d = mLockIconSecure;
} else if (securityState == SecurityState.SECURITY_STATE_MIXED) {
d = mLockIconMixed;
}
mNavigationBar.setLock(d);
}
......
......@@ -880,7 +880,7 @@ public class Controller
}
@Override
public void onUpdatedLockIcon(Tab tab) {
public void onUpdatedSecurityState(Tab tab) {
mUi.onTabDataChanged(tab);
}
......
......@@ -98,7 +98,7 @@ public class PageDialogsHandler {
mHttpAuthenticationDialog.setCancelListener(new HttpAuthenticationDialog.CancelListener() {
public void onCancel() {
handler.cancel();
mController.onUpdatedLockIcon(tab);
mController.onUpdatedSecurityState(tab);
mHttpAuthenticationDialog = null;
}
});
......
......@@ -209,8 +209,8 @@ public class PreloadController implements WebViewController {
}
@Override
public void onUpdatedLockIcon(Tab tab) {
if (LOGD_ENABLED) Log.d(LOGTAG, "onUpdatedLockIcon()");
public void onUpdatedSecurityState(Tab tab) {
if (LOGD_ENABLED) Log.d(LOGTAG, "onUpdatedSecurityState()");
}
@Override
......
......@@ -112,10 +112,17 @@ class Tab implements PictureListener {
sAlphaPaint.setColor(Color.TRANSPARENT);
}
public enum LockIcon {
LOCK_ICON_UNSECURE,
LOCK_ICON_SECURE,
LOCK_ICON_MIXED,
public enum SecurityState {
// The page does not use SSL.
SECURITY_STATE_NOT_SECURE,
// The page uses SSL, the certificate is good and all elements are secure.
SECURITY_STATE_SECURE,
// The page uses SSL and the certificate is good, but some elements are insecure.
SECURITY_STATE_MIXED,
// TODO: Add SECURITY_STATE_BAD_CERTIFICATE
// See http://b/5403366
// The page uses SSL but there is a problem with the certificate.
//SECURITY_STATE_BAD_CERTIFICATE,
}
Context mContext;
......@@ -198,7 +205,7 @@ class Tab implements PictureListener {
String mUrl;
String mOriginalUrl;
String mTitle;
LockIcon mLockIcon;
SecurityState mSecurityState;
Bitmap mFavicon;
boolean mIsBookmarkedSite = false;
boolean mIncognito = false;
......@@ -213,7 +220,7 @@ class Tab implements PictureListener {
mTitle = c.getString(R.string.new_tab);
}
mFavicon = null;
mLockIcon = LockIcon.LOCK_ICON_UNSECURE;
mSecurityState = SecurityState.SECURITY_STATE_NOT_SECURE;
}
PageState(Context c, boolean incognito, String url, Bitmap favicon) {
......@@ -221,9 +228,9 @@ class Tab implements PictureListener {
mOriginalUrl = mUrl = url;
mTitle = null;
if (URLUtil.isHttpsUrl(url)) {
mLockIcon = LockIcon.LOCK_ICON_SECURE;
mSecurityState = SecurityState.SECURITY_STATE_SECURE;
} else {
mLockIcon = LockIcon.LOCK_ICON_UNSECURE;
mSecurityState = SecurityState.SECURITY_STATE_NOT_SECURE;
}
mFavicon = favicon;
}
......@@ -640,21 +647,22 @@ class Tab implements PictureListener {
}
/**
* Updates the lock icon. This method is called when we discover another
* resource to be loaded for this page (for example, javascript). While
* we update the icon type, we do not update the lock icon itself until
* we are done loading, it is slightly more secure this way.
* Updates the security state. This method is called when we discover
* another resource to be loaded for this page (for example,
* javascript). While we update the security state, we do not update
* the lock icon until we are done loading, as it is slightly more
* secure this way.
*/
@Override
public void onLoadResource(WebView view, String url) {
if (url != null && url.length() > 0) {
// It is only if the page claims to be secure that we may have
// to update the lock:
if (mCurrentState.mLockIcon == LockIcon.LOCK_ICON_SECURE) {
// If NOT a 'safe' url, change the lock to mixed content!
// to update the security state:
if (mCurrentState.mSecurityState == SecurityState.SECURITY_STATE_SECURE) {
// If NOT a 'safe' url, change the state to mixed content!
if (!(URLUtil.isHttpsUrl(url) || URLUtil.isDataUrl(url)
|| URLUtil.isAboutUrl(url))) {
mCurrentState.mLockIcon = LockIcon.LOCK_ICON_MIXED;
mCurrentState.mSecurityState = SecurityState.SECURITY_STATE_MIXED;
}
}
}
......@@ -755,7 +763,7 @@ class Tab implements PictureListener {
final SslErrorHandler handler, final SslError error) {
if (!mInForeground) {
handler.cancel();
setLockIconType(LockIcon.LOCK_ICON_UNSECURE);
setSecurityState(SecurityState.SECURITY_STATE_NOT_SECURE);
return;
}
if (mSettings.showSecurityWarnings()) {
......@@ -793,7 +801,7 @@ class Tab implements PictureListener {
@Override
public void onCancel(DialogInterface dialog) {
handler.cancel();
setLockIconType(LockIcon.LOCK_ICON_UNSECURE);
setSecurityState(SecurityState.SECURITY_STATE_NOT_SECURE);
mWebViewController.onUserCanceledSsl(Tab.this);
}
})
......@@ -900,7 +908,7 @@ class Tab implements PictureListener {
if (!URLUtil.isHttpsUrl(mCurrentState.mUrl)) {
// In case we stop when loading an HTTPS page from an HTTP page
// but before a provisional load occurred
mCurrentState.mLockIcon = LockIcon.LOCK_ICON_UNSECURE;
mCurrentState.mSecurityState = SecurityState.SECURITY_STATE_NOT_SECURE;
}
mCurrentState.mIncognito = view.isPrivateBrowsingEnabled();
}
......@@ -1881,16 +1889,16 @@ class Tab implements PictureListener {
return mErrorConsole;
}
private void setLockIconType(LockIcon icon) {
mCurrentState.mLockIcon = icon;
mWebViewController.onUpdatedLockIcon(this);
private void setSecurityState(SecurityState securityState) {
mCurrentState.mSecurityState = securityState;
mWebViewController.onUpdatedSecurityState(this);
}
/**
* @return The tab's lock icon type.
* @return The tab's security state.
*/
LockIcon getLockIconType() {
return mCurrentState.mLockIcon;
SecurityState getSecurityState() {
return mCurrentState.mSecurityState;
}
int getLoadProgress() {
......
......@@ -95,7 +95,7 @@ public interface WebViewController {
boolean shouldShowErrorConsole();
void onUpdatedLockIcon(Tab tab);
void onUpdatedSecurityState(Tab tab);
void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment