| Index: chrome/browser/ui/views/find_bar_view.cc | 
| diff --git a/chrome/browser/ui/views/find_bar_view.cc b/chrome/browser/ui/views/find_bar_view.cc | 
| index 2ae89123a20172051b568537de368dbd0d46194e..1fd5b5920811b3dedf49d4171d747d640f67ebbb 100644 | 
| --- a/chrome/browser/ui/views/find_bar_view.cc | 
| +++ b/chrome/browser/ui/views/find_bar_view.cc | 
| @@ -17,6 +17,7 @@ | 
| #include "chrome/browser/ui/find_bar/find_notification_details.h" | 
| #include "chrome/browser/ui/find_bar/find_tab_helper.h" | 
| #include "chrome/browser/ui/view_ids.h" | 
| +#include "chrome/browser/ui/views/bar_control_button.h" | 
| #include "chrome/browser/ui/views/find_bar_host.h" | 
| #include "chrome/browser/ui/views/frame/browser_view.h" | 
| #include "chrome/grit/generated_resources.h" | 
| @@ -36,9 +37,6 @@ | 
| #include "ui/native_theme/common_theme.h" | 
| #include "ui/native_theme/native_theme.h" | 
| #include "ui/resources/grit/ui_resources.h" | 
| -#include "ui/views/animation/ink_drop_animation_controller.h" | 
| -#include "ui/views/animation/ink_drop_animation_controller_factory.h" | 
| -#include "ui/views/animation/ink_drop_host.h" | 
| #include "ui/views/background.h" | 
| #include "ui/views/border.h" | 
| #include "ui/views/bubble/bubble_border.h" | 
| @@ -68,8 +66,6 @@ const int kInterChildSpacing = 4; | 
| // Additional spacing around the separator. | 
| const int kSeparatorLeftSpacing = 12 - kInterChildSpacing; | 
| const int kSeparatorRightSpacing = 8 - kInterChildSpacing; | 
| -// Extra space around the buttons to increase their event target size. | 
| -const int kButtonExtraTouchSize = 4; | 
|  | 
| // The margins around the match count label (We add extra space so that the | 
| // background highlight extends beyond just the text). | 
| @@ -90,36 +86,10 @@ const SkColor kBackgroundColorMatch = SkColorSetARGB(0, 255, 255, 255); | 
| // The background color of the match count label when no results are found. | 
| const SkColor kBackgroundColorNoMatch = SkColorSetRGB(255, 102, 102); | 
|  | 
| -// The color of the match count label for Material Design. | 
| -const SkColor kMatchTextColorMD = SkColorSetRGB(0x96, 0x96, 0x96); | 
| - | 
| -// Color of the vertical separator between match count and buttons. (MD only.) | 
| -const SkColor kSeparatorColor = SkColorSetARGB(0x26, 0, 0, 0); | 
| - | 
| // The default number of average characters that the text box will be. This | 
| // number brings the width on a "regular fonts" system to about 300px. | 
| const int kDefaultCharWidth = 43; | 
|  | 
| -class FindBarButton : public views::ImageButton, public views::InkDropHost { | 
| - public: | 
| -  explicit FindBarButton(views::ButtonListener* listener); | 
| -  ~FindBarButton() override; | 
| - | 
| - private: | 
| -  void Layout() override; | 
| -  void AddInkDropLayer(ui::Layer* ink_drop_layer) override; | 
| -  void RemoveInkDropLayer(ui::Layer* ink_drop_layer) override; | 
| -  bool OnMousePressed(const ui::MouseEvent& event) override; | 
| -  void OnGestureEvent(ui::GestureEvent* event) override; | 
| -  void OnMouseReleased(const ui::MouseEvent& event) override; | 
| -  void NotifyClick(const ui::Event& event) override; | 
| - | 
| -  // Animation controller for the ink drop ripple effect. | 
| -  scoped_ptr<views::InkDropAnimationController> ink_drop_animation_controller_; | 
| - | 
| -  DISALLOW_COPY_AND_ASSIGN(FindBarButton); | 
| -}; | 
| - | 
| // The match count label is like a normal label, but can process events (which | 
| // makes it easier to forward events to the text input --- see | 
| // FindBarView::TargetForRect). | 
| @@ -138,114 +108,17 @@ class MatchCountLabel : public views::Label { | 
| }  // namespace | 
|  | 
| //////////////////////////////////////////////////////////////////////////////// | 
| -// FindBarButton, public: | 
| - | 
| -FindBarButton::FindBarButton(views::ButtonListener* listener) | 
| -    : views::ImageButton(listener), | 
| -      ink_drop_animation_controller_( | 
| -          views::InkDropAnimationControllerFactory:: | 
| -              CreateInkDropAnimationController(this)) { | 
| -  const int kInkDropLargeSize = 32; | 
| -  const int kInkDropLargeCornerRadius = 4; | 
| -  const int kInkDropSmallSize = 24; | 
| -  const int kInkDropSmallCornerRadius = 2; | 
| - | 
| -  ink_drop_animation_controller_->SetInkDropSize( | 
| -      gfx::Size(kInkDropLargeSize, kInkDropLargeSize), | 
| -      kInkDropLargeCornerRadius, | 
| -      gfx::Size(kInkDropSmallSize, kInkDropSmallSize), | 
| -      kInkDropSmallCornerRadius); | 
| -} | 
| - | 
| -FindBarButton::~FindBarButton() {} | 
| - | 
| -//////////////////////////////////////////////////////////////////////////////// | 
| -// FindBarButton, private: | 
| - | 
| -void FindBarButton::Layout() { | 
| -  ImageButton::Layout(); | 
| - | 
| -  ink_drop_animation_controller_->SetInkDropCenter( | 
| -      GetLocalBounds().CenterPoint()); | 
| -} | 
| - | 
| -void FindBarButton::AddInkDropLayer(ui::Layer* ink_drop_layer) { | 
| -  SetPaintToLayer(true); | 
| -  SetFillsBoundsOpaquely(false); | 
| -  layer()->Add(ink_drop_layer); | 
| -  layer()->StackAtBottom(ink_drop_layer); | 
| -} | 
| - | 
| -void FindBarButton::RemoveInkDropLayer(ui::Layer* ink_drop_layer) { | 
| -  layer()->Remove(ink_drop_layer); | 
| -  SetFillsBoundsOpaquely(true); | 
| -  SetPaintToLayer(false); | 
| -} | 
| - | 
| -bool FindBarButton::OnMousePressed(const ui::MouseEvent& event) { | 
| -  if (IsTriggerableEvent(event)) { | 
| -    ink_drop_animation_controller_->AnimateToState( | 
| -        views::InkDropState::ACTION_PENDING); | 
| -  } | 
| - | 
| -  return ImageButton::OnMousePressed(event); | 
| -} | 
| - | 
| -void FindBarButton::OnGestureEvent(ui::GestureEvent* event) { | 
| -  views::InkDropState ink_drop_state = views::InkDropState::HIDDEN; | 
| -  switch (event->type()) { | 
| -    case ui::ET_GESTURE_TAP_DOWN: | 
| -      ink_drop_state = views::InkDropState::ACTION_PENDING; | 
| -      // The ui::ET_GESTURE_TAP_DOWN event needs to be marked as handled so | 
| -      // that subsequent events for the gesture are sent to |this|. | 
| -      event->SetHandled(); | 
| -      break; | 
| -    case ui::ET_GESTURE_LONG_PRESS: | 
| -      ink_drop_state = views::InkDropState::SLOW_ACTION_PENDING; | 
| -      break; | 
| -    case ui::ET_GESTURE_TAP: | 
| -      ink_drop_state = views::InkDropState::QUICK_ACTION; | 
| -      break; | 
| -    case ui::ET_GESTURE_LONG_TAP: | 
| -      ink_drop_state = views::InkDropState::SLOW_ACTION; | 
| -      break; | 
| -    case ui::ET_GESTURE_END: | 
| -    case ui::ET_GESTURE_TAP_CANCEL: | 
| -      ink_drop_state = views::InkDropState::HIDDEN; | 
| -      break; | 
| -    default: | 
| -      return; | 
| -  } | 
| -  ink_drop_animation_controller_->AnimateToState(ink_drop_state); | 
| - | 
| -  ImageButton::OnGestureEvent(event); | 
| -} | 
| - | 
| -void FindBarButton::OnMouseReleased(const ui::MouseEvent& event) { | 
| -  if (!HitTestPoint(event.location())) | 
| -    ink_drop_animation_controller_->AnimateToState(views::InkDropState::HIDDEN); | 
| - | 
| -  ImageButton::OnMouseReleased(event); | 
| -} | 
| - | 
| -void FindBarButton::NotifyClick(const ui::Event& event) { | 
| -  ink_drop_animation_controller_->AnimateToState( | 
| -      views::InkDropState::QUICK_ACTION); | 
| - | 
| -  ImageButton::NotifyClick(event); | 
| -} | 
| - | 
| -//////////////////////////////////////////////////////////////////////////////// | 
| // FindBarView, public: | 
|  | 
| FindBarView::FindBarView(FindBarHost* host) | 
| : DropdownBarView(host), | 
| -      find_text_(NULL), | 
| -      match_count_text_(NULL), | 
| -      focus_forwarder_view_(NULL), | 
| -      find_previous_button_(NULL), | 
| -      find_next_button_(NULL), | 
| -      close_button_(NULL) { | 
| +      find_text_(nullptr), | 
| +      match_count_text_(nullptr), | 
| +      focus_forwarder_view_(nullptr), | 
| +      separator_(nullptr), | 
| +      find_previous_button_(nullptr), | 
| +      find_next_button_(nullptr), | 
| +      close_button_(nullptr) { | 
| find_text_ = new views::Textfield; | 
| find_text_->set_id(VIEW_ID_FIND_IN_PAGE_TEXT_FIELD); | 
| find_text_->set_default_width_in_chars(kDefaultCharWidth); | 
| @@ -254,7 +127,29 @@ FindBarView::FindBarView(FindBarHost* host) | 
| find_text_->SetTextInputFlags(ui::TEXT_INPUT_FLAG_AUTOCORRECT_OFF); | 
| AddChildView(find_text_); | 
|  | 
| -  find_previous_button_ = new FindBarButton(this); | 
| +  if (ui::MaterialDesignController::IsModeMaterial()) { | 
| +    BarControlButton* find_previous = new BarControlButton(this); | 
| +    find_previous->SetIcon( | 
| +        gfx::VectorIconId::FIND_PREV, | 
| +        base::Bind(&FindBarView::GetTextColorForIcon, base::Unretained(this))); | 
| +    BarControlButton* find_next = new BarControlButton(this); | 
| +    find_next->SetIcon( | 
| +        gfx::VectorIconId::FIND_NEXT, | 
| +        base::Bind(&FindBarView::GetTextColorForIcon, base::Unretained(this))); | 
| +    BarControlButton* close = new BarControlButton(this); | 
| +    close->SetIcon( | 
| +        gfx::VectorIconId::BAR_CLOSE, | 
| +        base::Bind(&FindBarView::GetTextColorForIcon, base::Unretained(this))); | 
| + | 
| +    find_previous_button_ = find_previous; | 
| +    find_next_button_ = find_next; | 
| +    close_button_ = close; | 
| +  } else { | 
| +    find_previous_button_ = new views::ImageButton(this); | 
| +    find_next_button_ = new views::ImageButton(this); | 
| +    close_button_ = new views::ImageButton(this); | 
| +  } | 
| + | 
| find_previous_button_->set_tag(FIND_PREVIOUS_TAG); | 
| find_previous_button_->SetFocusable(true); | 
| find_previous_button_->set_request_focus_on_press(false); | 
| @@ -264,7 +159,6 @@ FindBarView::FindBarView(FindBarHost* host) | 
| l10n_util::GetStringUTF16(IDS_ACCNAME_PREVIOUS)); | 
| AddChildView(find_previous_button_); | 
|  | 
| -  find_next_button_ = new FindBarButton(this); | 
| find_next_button_->set_tag(FIND_NEXT_TAG); | 
| find_next_button_->SetFocusable(true); | 
| find_next_button_->set_request_focus_on_press(false); | 
| @@ -274,7 +168,6 @@ FindBarView::FindBarView(FindBarHost* host) | 
| l10n_util::GetStringUTF16(IDS_ACCNAME_NEXT)); | 
| AddChildView(find_next_button_); | 
|  | 
| -  close_button_ = new FindBarButton(this); | 
| close_button_->set_tag(CLOSE_TAG); | 
| close_button_->SetFocusable(true); | 
| close_button_->set_request_focus_on_press(false); | 
| @@ -655,40 +548,13 @@ void FindBarView::InitViewsForMaterial() { | 
| make_scoped_ptr(new views::ViewTargeter(this))); | 
| AddChildViewAt(match_count_text_, 1); | 
|  | 
| -  views::Separator* separator = | 
| -      new views::Separator(views::Separator::VERTICAL); | 
| -  separator->SetColor(kSeparatorColor); | 
| -  separator->SetBorder(views::Border::CreateEmptyBorder( | 
| +  separator_ = new views::Separator(views::Separator::VERTICAL); | 
| +  separator_->SetBorder(views::Border::CreateEmptyBorder( | 
| 0, kSeparatorLeftSpacing, 0, kSeparatorRightSpacing)); | 
| -  AddChildViewAt(separator, 2); | 
| +  AddChildViewAt(separator_, 2); | 
|  | 
| find_text_->SetBorder(views::Border::NullBorder()); | 
|  | 
| -  struct { | 
| -    views::ImageButton* button; | 
| -    gfx::VectorIconId id; | 
| -  } button_images[] = { | 
| -      {find_previous_button_, gfx::VectorIconId::FIND_PREV}, | 
| -      {find_next_button_, gfx::VectorIconId::FIND_NEXT}, | 
| -      {close_button_, gfx::VectorIconId::BAR_CLOSE}, | 
| -  }; | 
| - | 
| -  for (size_t i = 0; i < arraysize(button_images); ++i) { | 
| -    views::ImageButton* button = button_images[i].button; | 
| -    button->SetBorder(views::Border::CreateEmptyBorder( | 
| -        kButtonExtraTouchSize, kButtonExtraTouchSize, kButtonExtraTouchSize, | 
| -        kButtonExtraTouchSize)); | 
| -    button->SetImageAlignment(views::ImageButton::ALIGN_CENTER, | 
| -                              views::ImageButton::ALIGN_MIDDLE); | 
| - | 
| -    gfx::ImageSkia image = | 
| -        gfx::CreateVectorIcon(button_images[i].id, 16, gfx::kChromeIconGrey); | 
| -    button->SetImage(views::CustomButton::STATE_NORMAL, &image); | 
| -    image = gfx::CreateVectorIcon(button_images[i].id, 16, | 
| -                                  SkColorSetA(gfx::kChromeIconGrey, 0xff / 2)); | 
| -    button->SetImage(views::CustomButton::STATE_DISABLED, &image); | 
| -  } | 
| - | 
| views::BoxLayout* manager = | 
| new views::BoxLayout(views::BoxLayout::kHorizontal, kInteriorPadding, | 
| kInteriorPadding, kInterChildSpacing); | 
| @@ -781,9 +647,18 @@ void FindBarView::OnNativeThemeChanged(const ui::NativeTheme* theme) { | 
| if (!ui::MaterialDesignController::IsModeMaterial()) | 
| return; | 
|  | 
| -  SkColor color = | 
| -      theme->GetSystemColor(ui::NativeTheme::kColorId_DialogBackground); | 
| -  set_background(views::Background::CreateSolidBackground(color)); | 
| -  match_count_text_->SetBackgroundColor(color); | 
| -  match_count_text_->SetEnabledColor(kMatchTextColorMD); | 
| +  SkColor bg_color = theme->GetSystemColor( | 
| +      ui::NativeTheme::kColorId_TextfieldDefaultBackground); | 
| +  set_background(views::Background::CreateSolidBackground(bg_color)); | 
| +  match_count_text_->SetBackgroundColor(bg_color); | 
| + | 
| +  SkColor text_color = | 
| +      theme->GetSystemColor(ui::NativeTheme::kColorId_TextfieldDefaultColor); | 
| +  match_count_text_->SetEnabledColor(SkColorSetA(text_color, 0x69)); | 
| +  separator_->SetColor(SkColorSetA(text_color, 0x26)); | 
| +} | 
| + | 
| +SkColor FindBarView::GetTextColorForIcon() { | 
| +  return GetNativeTheme()->GetSystemColor( | 
| +      ui::NativeTheme::kColorId_TextfieldDefaultColor); | 
| } | 
|  |