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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java

Issue 1254783003: Move theme color logic to Tab (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Nits Created 5 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
index 0821ec3dd4d99d495da416926d0e2dc2b9e9fdd0..a4a1fce4de38f338711cdce623bf6516203f9014 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.tab;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
+import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.text.TextUtils;
@@ -318,6 +319,9 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
*/
private View mSadTabView;
+ private final int mDefaultThemeColor;
+ private int mThemeColor;
+
/**
* A default {@link ChromeContextMenuItemDelegate} that supports some of the context menu
* functionality.
@@ -685,8 +689,19 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
@Override
public void didChangeThemeColor(int color) {
+ int securityLevel = getSecurityLevel();
+ if (securityLevel == ConnectionSecurityLevel.SECURITY_ERROR
+ || securityLevel == ConnectionSecurityLevel.SECURITY_WARNING
+ || securityLevel == ConnectionSecurityLevel.SECURITY_POLICY_WARNING) {
+ color = mDefaultThemeColor;
+ }
+ if (isShowingInterstitialPage()) color = mDefaultThemeColor;
+ if (color == Color.TRANSPARENT) color = mDefaultThemeColor;
+ color |= 0xFF000000;
+ if (mThemeColor == color) return;
+ mThemeColor = color;
for (TabObserver observer : mObservers) {
- observer.onDidChangeThemeColor(color);
+ observer.onDidChangeThemeColor(Tab.this, mThemeColor);
}
}
@@ -694,6 +709,7 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
public void didAttachInterstitialPage() {
getInfoBarContainer().setVisibility(View.INVISIBLE);
showRenderedPage();
+ didChangeThemeColor(mDefaultThemeColor);
for (TabObserver observer : mObservers) {
observer.onDidAttachInterstitialPage(Tab.this);
@@ -706,6 +722,7 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
@Override
public void didDetachInterstitialPage() {
getInfoBarContainer().setVisibility(View.VISIBLE);
+ didChangeThemeColor(getWebContents().getThemeColor(mDefaultThemeColor));
for (TabObserver observer : mObservers) {
observer.onDidDetachInterstitialPage(Tab.this);
@@ -782,8 +799,14 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
mLaunchType = type;
if (mContext != null) {
mNumPixel16DP = (int) (DeviceDisplayInfo.create(mContext).getDIPScale() * 16);
+ Resources resources = mContext.getResources();
+ mDefaultThemeColor = mIncognito ? resources.getColor(R.color.incognito_primary_color)
+ : resources.getColor(R.color.default_primary_color);
+ mThemeColor = mDefaultThemeColor;
+ } else {
+ mDefaultThemeColor = 0;
+ mNumPixel16DP = 16;
}
- if (mNumPixel16DP == 0) mNumPixel16DP = 16;
// Restore data from the TabState, if it existed.
if (frozenState == null) {
@@ -1104,6 +1127,14 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
}
/**
+ * @return The current theme color based on the value passed from the web contents and the
+ * security state.
+ */
+ public int getThemeColor() {
+ return mThemeColor;
+ }
+
+ /**
* @return The web contents associated with this tab.
*/
public WebContents getWebContents() {
@@ -2261,6 +2292,8 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
mContentViewCore.onShow();
mContentViewCore.attachImeAdapter();
destroyNativePageInternal(previousNativePage);
+ mWebContentsObserver.didChangeThemeColor(
+ getWebContents().getThemeColor(mDefaultThemeColor));
for (TabObserver observer : mObservers) {
observer.onWebContentsSwapped(this, didStartLoad, didFinishLoad);
}

Powered by Google App Engine
This is Rietveld 408576698