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

Unified Diff: chrome/browser/ui/views/location_bar/add_to_app_launcher_view.cc

Issue 488373002: Remove the experimental prominent add to app launcher flow. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 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/browser/ui/views/location_bar/add_to_app_launcher_view.cc
diff --git a/chrome/browser/ui/views/location_bar/add_to_app_launcher_view.cc b/chrome/browser/ui/views/location_bar/add_to_app_launcher_view.cc
deleted file mode 100644
index 2d9753ff2c569cd94d12c6b05b66dc9145f6b26a..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/views/location_bar/add_to_app_launcher_view.cc
+++ /dev/null
@@ -1,177 +0,0 @@
-// 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/ui/views/location_bar/add_to_app_launcher_view.h"
-
-#include "base/command_line.h"
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/ui/views/location_bar/location_bar_view.h"
-#include "chrome/common/chrome_switches.h"
-#include "content/public/browser/web_contents.h"
-#include "grit/generated_resources.h"
-#include "grit/theme_resources.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/base/resource/resource_bundle.h"
-#include "ui/gfx/color_utils.h"
-#include "ui/views/controls/image_view.h"
-#include "ui/views/controls/label.h"
-#include "url/gurl.h"
-
-namespace {
-
-// TODO(benwells): Refactor common code between this and
-// ContentSettingImageView.
-const int kBackgroundImages[] = IMAGE_GRID(IDR_OMNIBOX_CONTENT_SETTING_BUBBLE);
-const int kStayOpenTimeMS = 3200; // Time spent with animation fully open.
-
-const int kOpenTimeMS = 150;
-const int kAnimationDurationMS = (kOpenTimeMS * 2) + kStayOpenTimeMS;
-
-// Amount of padding at the edges of the bubble. If |by_icon| is true, this
-// is the padding next to the icon; otherwise it's the padding next to the
-// label. (We increase padding next to the label by the amount of padding
-// "built in" to the icon in order to make the bubble appear to have
-// symmetrical padding.)
-int GetBubbleOuterPadding(bool by_icon) {
- return LocationBarView::kItemPadding - LocationBarView::kBubblePadding +
- (by_icon ? 0 : LocationBarView::kIconInternalPadding);
-}
-
-int GetTotalSpacingWhileAnimating() {
- return GetBubbleOuterPadding(true) + LocationBarView::kItemPadding +
- GetBubbleOuterPadding(false);
-}
-
-} // namespace
-
-AddToAppLauncherView::AddToAppLauncherView(LocationBarView* parent,
- const gfx::FontList& font_list,
- SkColor text_color,
- SkColor parent_background_color)
- : parent_(parent),
- background_painter_(
- views::Painter::CreateImageGridPainter(kBackgroundImages)),
- icon_(new views::ImageView),
- text_label_(new views::Label(base::string16(), font_list)),
- slide_animator_(this) {
- icon_->SetHorizontalAlignment(views::ImageView::LEADING);
- icon_->SetImage(ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
- IDR_BOOKMARK_BAR_APPS_SHORTCUT));
- icon_->SetTooltipText(
- base::UTF8ToUTF16(l10n_util::GetStringUTF8(IDS_ADD_TO_APP_LIST_HINT)));
- AddChildView(icon_);
-
- text_label_->SetVisible(false);
- text_label_->SetEnabledColor(text_color);
- // Calculate the actual background color for the label. The background images
- // are painted atop |parent_background_color|. We grab the color of the
- // middle pixel of the middle image of the background, which we treat as the
- // representative color of the entire background (reasonable, given the
- // current appearance of these images). Then we alpha-blend it over the
- // parent background color to determine the actual color the label text will
- // sit atop.
- const SkBitmap& bitmap(
- ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
- kBackgroundImages[4])->GetRepresentation(1.0f).sk_bitmap());
- SkAutoLockPixels pixel_lock(bitmap);
- SkColor background_image_color =
- bitmap.getColor(bitmap.width() / 2, bitmap.height() / 2);
- // Tricky bit: We alpha blend an opaque version of |background_image_color|
- // against |parent_background_color| using the original image grid color's
- // alpha. This is because AlphaBlend(a, b, 255) always returns |a| unchanged
- // even if |a| is a color with non-255 alpha.
- text_label_->SetBackgroundColor(
- color_utils::AlphaBlend(SkColorSetA(background_image_color, 255),
- parent_background_color,
- SkColorGetA(background_image_color)));
- text_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
- text_label_->SetElideBehavior(gfx::NO_ELIDE);
- text_label_->SetText(base::UTF8ToUTF16(
- l10n_util::GetStringUTF8(IDS_ADD_TO_APP_LIST_NOTIFICATION_TEXT)));
- AddChildView(text_label_);
-
- slide_animator_.SetSlideDuration(kAnimationDurationMS);
- slide_animator_.SetTweenType(gfx::Tween::LINEAR);
-}
-
-AddToAppLauncherView::~AddToAppLauncherView() {
-}
-
-void AddToAppLauncherView::Update(content::WebContents* web_contents) {
- SetVisible(false);
-
- base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
- if (!command_line->HasSwitch(switches::kEnableProminentURLAppFlow) ||
- !command_line->HasSwitch(switches::kEnableStreamlinedHostedApps) ||
- !web_contents || web_contents->IsLoading() ||
- !web_contents->GetLastCommittedURL().SchemeIsHTTPOrHTTPS()) {
- slide_animator_.Reset();
- return;
- }
-
- SetVisible(true);
-
- if (!slide_animator_.is_animating()) {
- text_label_->SetVisible(true);
- slide_animator_.Show();
- }
-}
-
-void AddToAppLauncherView::AnimationEnded(const gfx::Animation* animation) {
- slide_animator_.Reset();
- text_label_->SetVisible(false);
- AnimationProgressed(animation);
-}
-
-void AddToAppLauncherView::AnimationProgressed(
- const gfx::Animation* animation) {
- parent_->Layout();
- parent_->SchedulePaint();
-}
-
-void AddToAppLauncherView::AnimationCanceled(const gfx::Animation* animation) {
- AnimationEnded(animation);
-}
-
-gfx::Size AddToAppLauncherView::GetPreferredSize() const {
- // Height will be ignored by the LocationBarView.
- gfx::Size size(icon_->GetPreferredSize());
- if (slide_animator_.is_animating()) {
- double state = slide_animator_.GetCurrentValue();
- // The fraction of the animation we'll spend animating the string into view,
- // which is also the fraction we'll spend animating it closed; total
- // animation (slide out, show, then slide in) is 1.0.
- const double kOpenFraction =
- static_cast<double>(kOpenTimeMS) / kAnimationDurationMS;
- double size_fraction = 1.0;
- if (state < kOpenFraction)
- size_fraction = state / kOpenFraction;
- if (state > (1.0 - kOpenFraction))
- size_fraction = (1.0 - state) / kOpenFraction;
- size.Enlarge(
- size_fraction * (text_label_->GetPreferredSize().width() +
- GetTotalSpacingWhileAnimating()), 0);
- size.SetToMax(background_painter_->GetMinimumSize());
- }
- return size;
-}
-
-void AddToAppLauncherView::Layout() {
- const int icon_width = icon_->GetPreferredSize().width();
- icon_->SetBounds(
- std::min((width() - icon_width) / 2, GetBubbleOuterPadding(true)),
- 0,
- icon_width,
- height());
- text_label_->SetBounds(
- icon_->bounds().right() + LocationBarView::kItemPadding,
- 0,
- std::max(width() - GetTotalSpacingWhileAnimating() - icon_width, 0),
- height());
-}
-
-void AddToAppLauncherView::OnPaintBackground(gfx::Canvas* canvas) {
- if (slide_animator_.is_animating())
- background_painter_->Paint(canvas, size());
-}

Powered by Google App Engine
This is Rietveld 408576698