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

Unified Diff: chrome/browser/android/compositor/layer/toolbar_layer.cc

Issue 787023002: Upstream more layers, decoration title, layer_title_cache (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: updated creation year Created 6 years 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/browser/android/compositor/layer/toolbar_layer.cc
diff --git a/chrome/browser/android/compositor/layer/toolbar_layer.cc b/chrome/browser/android/compositor/layer/toolbar_layer.cc
new file mode 100644
index 0000000000000000000000000000000000000000..2fd0173ce4074153a44add0374368304aab5a0a6
--- /dev/null
+++ b/chrome/browser/android/compositor/layer/toolbar_layer.cc
@@ -0,0 +1,79 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/android/compositor/layer/toolbar_layer.h"
+
+#include "cc/layers/solid_color_layer.h"
+#include "cc/layers/ui_resource_layer.h"
+#include "third_party/skia/include/core/SkColor.h"
+#include "ui/android/resources/resource_manager.h"
+#include "ui/android/resources/ui_resource_android.h"
+
+const SkColor kNormalAnonymizeContentColor = SK_ColorWHITE;
+const SkColor kIncognitoAnonymizeContentColor = 0xFF737373;
+
+namespace chrome {
+namespace android {
+
+// static
+scoped_refptr<ToolbarLayer> ToolbarLayer::Create() {
+ return make_scoped_refptr(new ToolbarLayer());
+}
+
+scoped_refptr<cc::Layer> ToolbarLayer::layer() {
+ return layer_;
+}
+
+void ToolbarLayer::PushResource(ui::ResourceManager::Resource* resource,
+ bool anonymize,
+ bool anonymize_component_is_incognito,
+ bool show_debug) {
+ DCHECK(resource);
+
+ // This layer effectively draws over the space it takes for shadows. Set the
+ // bounds to the non-shadow size so that other things can properly line up.
+ layer_->SetBounds(resource->padding.size());
+
+ bitmap_layer_->SetUIResourceId(resource->ui_resource->id());
+ bitmap_layer_->SetBounds(resource->size);
+
+ anonymize_layer_->SetHideLayerAndSubtree(!anonymize);
+ if (anonymize) {
+ anonymize_layer_->SetPosition(resource->aperture.origin());
+ anonymize_layer_->SetBounds(resource->aperture.size());
+ anonymize_layer_->SetBackgroundColor(anonymize_component_is_incognito
+ ? kIncognitoAnonymizeContentColor
+ : kNormalAnonymizeContentColor);
+ }
+
+ debug_layer_->SetBounds(resource->size);
+ if (show_debug && !debug_layer_->parent())
+ layer_->AddChild(debug_layer_);
+ else if (!show_debug && debug_layer_->parent())
+ debug_layer_->RemoveFromParent();
+}
+
+ToolbarLayer::ToolbarLayer()
+ : layer_(cc::Layer::Create()),
+ bitmap_layer_(cc::UIResourceLayer::Create()),
+ anonymize_layer_(cc::SolidColorLayer::Create()),
+ debug_layer_(cc::SolidColorLayer::Create()) {
+ bitmap_layer_->SetIsDrawable(true);
+ layer_->AddChild(bitmap_layer_);
+
+ anonymize_layer_->SetHideLayerAndSubtree(true);
+ anonymize_layer_->SetIsDrawable(true);
+ anonymize_layer_->SetBackgroundColor(kNormalAnonymizeContentColor);
+ layer_->AddChild(anonymize_layer_);
+
+ debug_layer_->SetIsDrawable(true);
+ debug_layer_->SetBackgroundColor(SK_ColorGREEN);
+ debug_layer_->SetOpacity(0.5f);
+}
+
+ToolbarLayer::~ToolbarLayer() {
+}
+
+} // namespace android
+} // namespace chrome

Powered by Google App Engine
This is Rietveld 408576698