From 3a090fd4f68709486e1b05f7057d2303d31affc6 Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Tue, 4 Sep 2018 03:13:48 +0000 Subject: [PATCH] Update hosted app origin text animation This CL updates the opening animation for hosted app titlebars to match recent UI mocks by: - Removing the slide motion but retain the fade animation of the origin text. - Making the origin text bold. - Synchronising the fade durations of the origin text and app menu button highlight. Before: https://bugs.chromium.org/p/chromium/issues/attachment?aid=355048&signed_aid=mI6IiKwlkm5uzn4Cv6Asxg==&inline=1 After: https://bugs.chromium.org/p/chromium/issues/attachment?aid=355049&signed_aid=bfJDeHt7BMIqsW1SYf3DRg==&inline=1 This CL only includes the minimal changes needed to update the animation to be suitable for merging to M70. Further code clean ups have been moved to: https://chromium-review.googlesource.com/c/chromium/src/+/1198707/1 Bug: 878187 Change-Id: I0938f124e39ebf113843e62d63d6a0b9dc4417cc Reviewed-on: https://chromium-review.googlesource.com/1192463 Reviewed-by: Elly Fong-Jones Commit-Queue: Alan Cutter Cr-Original-Commit-Position: refs/heads/master@{#588223}(cherry picked from commit 1375b6e13ed007952bc0813d29d8484e24ee51c0) Reviewed-on: https://chromium-review.googlesource.com/1203511 Reviewed-by: Alan Cutter Cr-Commit-Position: refs/branch-heads/3538@{#17} Cr-Branched-From: 79f7c91a2b2a2932cd447fa6f865cb6662fa8fa6-refs/heads/master@{#587811} --- .../ui/views/frame/hosted_app_origin_text.cc | 27 +++++-------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/chrome/browser/ui/views/frame/hosted_app_origin_text.cc b/chrome/browser/ui/views/frame/hosted_app_origin_text.cc index 335d2737ffaf9..a91883f479e76 100644 --- a/chrome/browser/ui/views/frame/hosted_app_origin_text.cc +++ b/chrome/browser/ui/views/frame/hosted_app_origin_text.cc @@ -7,6 +7,7 @@ #include "base/i18n/rtl.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/extensions/hosted_app_browser_controller.h" +#include "chrome/browser/ui/views/chrome_typography.h" #include "ui/accessibility/ax_node_data.h" #include "ui/compositor/layer_animation_element.h" #include "ui/compositor/layer_animation_sequence.h" @@ -21,7 +22,7 @@ constexpr base::TimeDelta kOriginSlideInDuration = constexpr base::TimeDelta kOriginPauseDuration = base::TimeDelta::FromMilliseconds(2500); constexpr base::TimeDelta kOriginSlideOutDuration = - base::TimeDelta::FromMilliseconds(500); + base::TimeDelta::FromMilliseconds(800); constexpr gfx::Tween::Type kTweenType = gfx::Tween::FAST_OUT_SLOW_IN_2; @@ -35,7 +36,9 @@ HostedAppOriginText::HostedAppOriginText(Browser* browser) { SetLayoutManager(std::make_unique()); label_ = std::make_unique( - browser->hosted_app_controller()->GetFormattedUrlOrigin()) + browser->hosted_app_controller()->GetFormattedUrlOrigin(), + ChromeTextContext::CONTEXT_BODY_TEXT_SMALL, + ChromeTextStyle::STYLE_EMPHASIZED) .release(); label_->SetElideBehavior(gfx::ELIDE_HEAD); label_->SetSubpixelRenderingEnabled(false); @@ -64,13 +67,8 @@ void HostedAppOriginText::StartSlideAnimation() { // Current state will become the first animation keyframe. DCHECK_EQ(label_layer->opacity(), 0); - gfx::Transform out_of_frame; - out_of_frame.Translate( - label_->bounds().width() * (base::i18n::IsRTL() ? -1 : 1), 0); - label_layer->SetTransform(out_of_frame); auto opacity_sequence = std::make_unique(); - auto transform_sequence = std::make_unique(); // Slide in. auto opacity_keyframe = ui::LayerAnimationElement::CreateOpacityElement( @@ -78,16 +76,9 @@ void HostedAppOriginText::StartSlideAnimation() { opacity_keyframe->set_tween_type(kTweenType); opacity_sequence->AddElement(std::move(opacity_keyframe)); - auto transform_keyframe = ui::LayerAnimationElement::CreateTransformElement( - gfx::Transform(), kOriginSlideInDuration); - transform_keyframe->set_tween_type(kTweenType); - transform_sequence->AddElement(std::move(transform_keyframe)); - // Pause. opacity_sequence->AddElement( ui::LayerAnimationElement::CreatePauseElement(0, kOriginPauseDuration)); - transform_sequence->AddElement( - ui::LayerAnimationElement::CreatePauseElement(0, kOriginPauseDuration)); // Slide out. opacity_keyframe = ui::LayerAnimationElement::CreateOpacityElement( @@ -95,13 +86,7 @@ void HostedAppOriginText::StartSlideAnimation() { opacity_keyframe->set_tween_type(kTweenType); opacity_sequence->AddElement(std::move(opacity_keyframe)); - transform_keyframe = ui::LayerAnimationElement::CreateTransformElement( - out_of_frame, kOriginSlideOutDuration); - transform_keyframe->set_tween_type(kTweenType); - transform_sequence->AddElement(std::move(transform_keyframe)); - - label_layer->GetAnimator()->StartTogether( - {opacity_sequence.release(), transform_sequence.release()}); + label_layer->GetAnimator()->StartAnimation(opacity_sequence.release()); base::SequencedTaskRunnerHandle::Get()->PostDelayedTask( FROM_HERE,