| Index: chrome/android/java/src/org/chromium/chrome/browser/tab/ChromeTab.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/ChromeTab.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/ChromeTab.java
|
| index 12a3c6f7573249ae174c73481c4fc1d7312fe905..02e9e4ca85ef3713513eee5dfea85abb914448cf 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/ChromeTab.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/ChromeTab.java
|
| @@ -8,6 +8,7 @@ import android.annotation.TargetApi;
|
| import android.app.ActivityManager;
|
| import android.content.Context;
|
| import android.content.Intent;
|
| +import android.content.res.Resources;
|
| import android.graphics.Rect;
|
| import android.media.AudioManager;
|
| import android.os.Build;
|
| @@ -58,6 +59,7 @@ import org.chromium.chrome.browser.policy.PolicyAuditor.AuditEvent;
|
| import org.chromium.chrome.browser.preferences.PrefServiceBridge;
|
| import org.chromium.chrome.browser.rlz.RevenueStats;
|
| import org.chromium.chrome.browser.search_engines.TemplateUrlService;
|
| +import org.chromium.chrome.browser.ssl.ConnectionSecurityLevel;
|
| import org.chromium.chrome.browser.tab.TabUma.TabCreationState;
|
| import org.chromium.chrome.browser.tabmodel.TabCreatorManager.TabCreator;
|
| import org.chromium.chrome.browser.tabmodel.TabModel;
|
| @@ -192,6 +194,8 @@ public class ChromeTab extends Tab {
|
|
|
| private boolean mShouldClearRedirectHistoryForTabClobbering;
|
|
|
| + private final int mDefaultThemeColor;
|
| +
|
| /**
|
| * Basic constructor. This is hidden, so that explicitly named factory methods are used to
|
| * create tabs. initialize() needs to be called afterwards to complete the second level
|
| @@ -229,6 +233,11 @@ public class ChromeTab extends Tab {
|
| if (mActivity != null && creationState != null) {
|
| setTabUma(new TabUma(
|
| this, creationState, mActivity.getTabModelSelector().getModel(incognito)));
|
| + Resources resources = mActivity.getResources();
|
| + mDefaultThemeColor = incognito ? resources.getColor(R.color.incognito_primary_color)
|
| + : resources.getColor(R.color.default_primary_color);
|
| + } else {
|
| + mDefaultThemeColor = 0;
|
| }
|
|
|
| if (incognito) {
|
| @@ -256,6 +265,7 @@ public class ChromeTab extends Tab {
|
| super(id, incognito, null, null);
|
| mActivity = null;
|
| mTabRedirectHandler = new TabRedirectHandler(null);
|
| + mDefaultThemeColor = 0;
|
| }
|
|
|
| /**
|
| @@ -1371,4 +1381,22 @@ public class ChromeTab extends Tab {
|
| public OverrideUrlLoadingResult getLastOverrideUrlLoadingResultForTests() {
|
| return mLastOverrideUrlLoadingResult;
|
| }
|
| +
|
| + /**
|
| + * @return The theme color based on declared color and the security state.
|
| + */
|
| + public int getThemeColor() {
|
| + int securityLevel = getSecurityLevel();
|
| + if (securityLevel == ConnectionSecurityLevel.SECURITY_ERROR
|
| + || securityLevel == ConnectionSecurityLevel.SECURITY_WARNING
|
| + || securityLevel == ConnectionSecurityLevel.SECURITY_POLICY_WARNING) {
|
| + return mDefaultThemeColor;
|
| + }
|
| + if (isShowingInterstitialPage()) return mDefaultThemeColor;
|
| + if (isIncognito()) return mDefaultThemeColor;
|
| +
|
| + int color = getWebContents().getThemeColor(mDefaultThemeColor);
|
| + color |= 0xFF000000;
|
| + return color;
|
| + }
|
| }
|
|
|