From 8d2e98f84fcf3ccdee7c047428a6cca027adf120 Mon Sep 17 00:00:00 2001 From: Pankaj Garg Date: Fri, 7 Aug 2015 10:01:49 -0700 Subject: Show title if secure site - Show site title if the the site is secure - Don't hide title bar if site certificate has issues Change-Id: Ie10d317b76d449795806b8dbd164355c3ed98b6e --- src/com/android/browser/BaseUi.java | 3 +- src/com/android/browser/NavigationBarBase.java | 52 ++++++++++++++++++------- src/com/android/browser/NavigationBarPhone.java | 21 +++++----- src/com/android/browser/TitleBar.java | 3 +- 4 files changed, 52 insertions(+), 27 deletions(-) (limited to 'src/com/android/browser') diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java index 026e6612..d1c2a11e 100644 --- a/src/com/android/browser/BaseUi.java +++ b/src/com/android/browser/BaseUi.java @@ -702,6 +702,7 @@ public abstract class BaseUi implements UI { private void updateTabSecurityState(Tab t) { if (t != null && t.inForeground()) { mNavigationBar.setSecurityState(t.getSecurityState()); + setUrlTitle(t); } } @@ -712,7 +713,7 @@ public abstract class BaseUi implements UI { title = url; } if (tab.inForeground()) { - mNavigationBar.setDisplayTitle(url); + mNavigationBar.setDisplayTitle(title, url); } } diff --git a/src/com/android/browser/NavigationBarBase.java b/src/com/android/browser/NavigationBarBase.java index 486c2022..90879917 100644 --- a/src/com/android/browser/NavigationBarBase.java +++ b/src/com/android/browser/NavigationBarBase.java @@ -58,7 +58,6 @@ import java.net.URISyntaxException; import java.net.URL; import org.codeaurora.net.NetworkServices; -import org.codeaurora.swe.Engine; import org.codeaurora.swe.WebRefiner; import org.codeaurora.swe.WebView; import org.codeaurora.swe.util.ColorUtils; @@ -93,6 +92,8 @@ public class NavigationBarBase extends LinearLayout implements private static final int WEBREFINER_COUNTER_MSG_DELAY = 3000; private Handler mHandler; + protected int mTrustLevel = SiteTileView.TRUST_UNKNOWN; + private static final String noSitePrefs[] = { "browser://", "about:", @@ -165,21 +166,28 @@ public class NavigationBarBase extends LinearLayout implements public void setSecurityState(Tab.SecurityState securityState) { switch (securityState) { case SECURITY_STATE_SECURE: - mFaviconTile.setTrustLevel(SiteTileView.TRUST_TRUSTED); + mTrustLevel = SiteTileView.TRUST_TRUSTED; mFaviconTile.setBadgeHasCertIssues(false); break; case SECURITY_STATE_MIXED: - mFaviconTile.setTrustLevel(SiteTileView.TRUST_UNTRUSTED); + mTrustLevel = SiteTileView.TRUST_UNTRUSTED; mFaviconTile.setBadgeHasCertIssues(true); + mTitleBar.showTopControls(false); break; case SECURITY_STATE_BAD_CERTIFICATE: - mFaviconTile.setTrustLevel(SiteTileView.TRUST_AVOID); + mTrustLevel = SiteTileView.TRUST_AVOID; mFaviconTile.setBadgeHasCertIssues(true); + mTitleBar.showTopControls(false); break; case SECURITY_STATE_NOT_SECURE: default: - mFaviconTile.setTrustLevel(SiteTileView.TRUST_UNKNOWN); + mTrustLevel = SiteTileView.TRUST_UNKNOWN; } + mFaviconTile.setTrustLevel(mTrustLevel); + } + + public int getTrustLevel() { + return mTrustLevel; } public static int adjustColor(int color, float hueMultiplier, @@ -437,7 +445,7 @@ public class NavigationBarBase extends LinearLayout implements if (mUrlInput.getText().length() == 0) { Tab currentTab = mUiController.getTabControl().getCurrentTab(); if (currentTab != null) { - setDisplayTitle(currentTab.getUrl()); + setDisplayTitle(currentTab.getTitle(), currentTab.getUrl()); } } } @@ -458,10 +466,18 @@ public class NavigationBarBase extends LinearLayout implements } } - void setDisplayTitle(String title) { + void setDisplayTitle(String title, String url) { if (!isEditingUrl()) { - if (!title.equals(mUrlInput.getText().toString())) { - mUrlInput.setText(title, false); + if (!TextUtils.isEmpty(title)) { + if (mTrustLevel == SiteTileView.TRUST_TRUSTED) { + if (!title.equals(mUrlInput.getText().toString())) { + mUrlInput.setText(title, false); + } + return; + } + } + if (!url.equals(mUrlInput.getText().toString())) { + mUrlInput.setText(url, false); } } } @@ -499,21 +515,21 @@ public class NavigationBarBase extends LinearLayout implements // logic in UrlHandler for other schemas if (url != null && t != null && url.startsWith("javascript:")) { mUiController.loadUrl(t, url); - setDisplayTitle(text); + setDisplayTitle(null, text); return; } // add for carrier wap2estore feature if (url != null && t != null && wap2estore && isEstoreTypeUrl(url)) { if (handleEstoreTypeUrl(url)) { - setDisplayTitle(text); + setDisplayTitle(null, text); return; } } // add for rtsp scheme feature if (url != null && t != null && isRtspTypeUrl(url)) { if (handleRtspTypeUrl(url)) { - setDisplayTitle(text); + setDisplayTitle(null, text); return; } } @@ -537,7 +553,7 @@ public class NavigationBarBase extends LinearLayout implements i.putExtra("source", appData); } mUiController.handleNewIntent(i); - setDisplayTitle(text); + setDisplayTitle(null, text); } private boolean isMakeCallTypeUrl(String url) { @@ -648,7 +664,7 @@ public class NavigationBarBase extends LinearLayout implements public void run() { clearFocus(); if (currentTab != null) { - setDisplayTitle(currentTab.getUrl()); + setDisplayTitle(currentTab.getTitle(), currentTab.getUrl()); } } }); @@ -757,6 +773,7 @@ public class NavigationBarBase extends LinearLayout implements mFaviconTile.setVisibility(View.GONE); mMagnify.setVisibility(View.VISIBLE); } + setDisplayTitle(currentTab.getTitle(), currentTab.getUrl()); } mUiController.setWindowDimming(0.0f); } @@ -769,6 +786,13 @@ public class NavigationBarBase extends LinearLayout implements mMore.setVisibility(View.GONE); if (mUiController != null) { mUiController.setWindowDimming(0.75f); + if (mTrustLevel == SiteTileView.TRUST_TRUSTED) { + Tab currentTab = mUiController.getCurrentTab(); + if (currentTab != null) { + mUrlInput.setText(currentTab.getUrl(), false); + mUrlInput.selectAll(); + } + } } break; case STATE_EDITED: diff --git a/src/com/android/browser/NavigationBarPhone.java b/src/com/android/browser/NavigationBarPhone.java index 23df7fce..5fa093be 100644 --- a/src/com/android/browser/NavigationBarPhone.java +++ b/src/com/android/browser/NavigationBarPhone.java @@ -93,22 +93,21 @@ public class NavigationBarPhone extends NavigationBarBase implements StateListen /** * Update the text displayed in the title bar. * @param title String to display. If null, the new tab string will be - * shown. + * @param url */ @Override - void setDisplayTitle(String title) { + void setDisplayTitle(String title, String url) { mUrlInput.setTag(title); if (!isEditingUrl()) { - // add for carrier requirement - show title from native instead of url - Tab currentTab = mUiController.getTabControl().getCurrentTab(); - if (BrowserConfig.getInstance(getContext()) - .hasFeature(BrowserConfig.Feature.TITLE_IN_URL_BAR) && - currentTab != null && currentTab.getTitle() != null) { - mUrlInput.setText(currentTab.getTitle(), false); - } else if (title == null) { + // add for carrier requirement - show title from native instead of url + if ((BrowserConfig.getInstance(getContext()) + .hasFeature(BrowserConfig.Feature.TITLE_IN_URL_BAR) || + mTrustLevel == SiteTileView.TRUST_TRUSTED) && title != null) { + mUrlInput.setText(title, false); + } else if (url == null) { mUrlInput.setText(R.string.new_tab); } else { - mUrlInput.setText(UrlUtils.stripUrl(title), false); + mUrlInput.setText(UrlUtils.stripUrl(url), false); } mUrlInput.setSelection(0); } @@ -127,7 +126,7 @@ public class NavigationBarPhone extends NavigationBarBase implements StateListen public void onFocusChange(View view, boolean hasFocus) { if (view == mUrlInput && !hasFocus) { Tab currentTab = mUiController.getTabControl().getCurrentTab(); - setDisplayTitle(currentTab.getUrl()); + setDisplayTitle(currentTab.getTitle(), currentTab.getUrl()); } super.onFocusChange(view, hasFocus); } diff --git a/src/com/android/browser/TitleBar.java b/src/com/android/browser/TitleBar.java index 93f655d8..fd19a414 100644 --- a/src/com/android/browser/TitleBar.java +++ b/src/com/android/browser/TitleBar.java @@ -187,7 +187,8 @@ public class TitleBar extends FrameLayout implements ViewTreeObserver.OnPreDrawL } protected void enableTopControls(boolean animate) { - if (mIsFixedTitleBar) + if (mIsFixedTitleBar || mNavBar.getTrustLevel() == SiteTileView.TRUST_AVOID + || mNavBar.getTrustLevel() == SiteTileView.TRUST_UNTRUSTED) return; Tab tab = mBaseUi.getActiveTab(); WebView view = tab != null ? tab.getWebView() : null; -- cgit v1.2.3