| Index: chrome/browser/android/compositor/layer/tab_layer.cc
|
| diff --git a/chrome/browser/android/compositor/layer/tab_layer.cc b/chrome/browser/android/compositor/layer/tab_layer.cc
|
| index 1791dd3084914071c1fa6e15ac664b44c31d006a..892d488caeda8f31428359b052901f66abddd2e0 100644
|
| --- a/chrome/browser/android/compositor/layer/tab_layer.cc
|
| +++ b/chrome/browser/android/compositor/layer/tab_layer.cc
|
| @@ -134,6 +134,7 @@ void TabLayer::SetProperties(int id,
|
| bool show_toolbar,
|
| int default_theme_color,
|
| int toolbar_background_color,
|
| + int default_close_button_color,
|
| int close_button_color,
|
| bool anonymize_toolbar,
|
| int toolbar_textbox_resource_id,
|
| @@ -143,7 +144,8 @@ void TabLayer::SetProperties(int id,
|
| float toolbar_y_offset,
|
| float side_border_scale,
|
| bool attach_content,
|
| - bool inset_border) {
|
| + bool inset_border,
|
| + bool title_layer_needs_update) {
|
| if (alpha <= 0) {
|
| layer_->SetHideLayerAndSubtree(true);
|
| return;
|
| @@ -153,8 +155,9 @@ void TabLayer::SetProperties(int id,
|
|
|
| // Grab required resources
|
| ui::ResourceManager::Resource* border_resource =
|
| - resource_manager_->GetResource(ui::ANDROID_RESOURCE_TYPE_STATIC,
|
| - border_resource_id);
|
| + resource_manager_->GetStaticResourceWithTint(border_resource_id,
|
| + toolbar_background_color,
|
| + default_theme_color);
|
| ui::ResourceManager::Resource* border_inner_shadow_resource =
|
| resource_manager_->GetResource(ui::ANDROID_RESOURCE_TYPE_STATIC,
|
| border_inner_shadow_resource_id);
|
| @@ -164,9 +167,21 @@ void TabLayer::SetProperties(int id,
|
| ui::ResourceManager::Resource* contour_resource =
|
| resource_manager_->GetResource(ui::ANDROID_RESOURCE_TYPE_STATIC,
|
| contour_resource_id);
|
| +
|
| + // If the tint for the border was not created, use the default color for the
|
| + // close button.
|
| + if (title_layer_needs_update) {
|
| + layer_title_cache_->UpdateTitleForTab(id, border_resource->tint);
|
| + }
|
| + int close_color = close_button_color;
|
| + if (border_resource->tint == default_theme_color) {
|
| + close_color = default_close_button_color;
|
| + }
|
| ui::ResourceManager::Resource* close_btn_resource =
|
| - resource_manager_->GetResource(ui::ANDROID_RESOURCE_TYPE_STATIC,
|
| - close_button_resource_id);
|
| + resource_manager_->GetStaticResourceWithTint(close_button_resource_id,
|
| + close_color,
|
| + default_close_button_color);
|
| +
|
| ui::ResourceManager::Resource* back_logo_resource = nullptr;
|
|
|
| DecorationTitle* title_layer = nullptr;
|
| @@ -478,12 +493,6 @@ void TabLayer::SetProperties(int id,
|
| front_border_->SetBounds(border_size);
|
| front_border_->SetOpacity(border_alpha);
|
| front_border_->SetNearestNeighbor(toolbar_visible);
|
| -
|
| - if (toolbar_background_color != toolbar_background_color_) {
|
| - toolbar_background_color_ = toolbar_background_color;
|
| - front_border_->SetFilters(
|
| - *createSolidColorFilter(toolbar_background_color).get());
|
| - }
|
| }
|
|
|
| front_border_inner_shadow_->SetHideLayerAndSubtree(
|
| @@ -522,13 +531,6 @@ void TabLayer::SetProperties(int id,
|
|
|
| close_button_->SetHideLayerAndSubtree(!close_btn_visible);
|
| if (close_btn_visible) {
|
| -
|
| - if (close_button_color != close_button_color_) {
|
| - close_button_color_ = close_button_color;
|
| - close_button_->SetFilters(
|
| - *createSolidColorFilter(close_button_color).get());
|
| - }
|
| -
|
| close_button_->SetPosition(close_button_position);
|
| close_button_->SetBounds(close_button_size);
|
| // Non-linear alpha looks better.
|
| @@ -628,20 +630,6 @@ void TabLayer::SetProperties(int id,
|
| }
|
| }
|
|
|
| -std::unique_ptr<cc::FilterOperations> TabLayer::createSolidColorFilter(
|
| - int color) {
|
| - std::unique_ptr<cc::FilterOperations> filters =
|
| - base::WrapUnique(new cc::FilterOperations());
|
| - SkScalar colorMatrix[] = {
|
| - SkColorGetR(color) / 255.0f, 0, 0, 0, 0,
|
| - 0, SkColorGetG(color) / 255.0f, 0, 0, 0,
|
| - 0, 0, SkColorGetB(color) / 255.0f, 0, 0,
|
| - 0, 0, 0, 1, 0,
|
| - };
|
| - filters->Append(cc::FilterOperation::CreateColorMatrixFilter(colorMatrix));
|
| - return filters;
|
| -}
|
| -
|
| scoped_refptr<cc::Layer> TabLayer::layer() {
|
| return layer_;
|
| }
|
| @@ -651,8 +639,6 @@ TabLayer::TabLayer(bool incognito,
|
| LayerTitleCache* layer_title_cache,
|
| TabContentManager* tab_content_manager)
|
| : incognito_(incognito),
|
| - toolbar_background_color_(0),
|
| - close_button_color_(0),
|
| resource_manager_(resource_manager),
|
| layer_title_cache_(layer_title_cache),
|
| layer_(cc::Layer::Create()),
|
|
|