| Index: chrome/browser/ui/views/location_bar/content_setting_image_view.cc
|
| diff --git a/chrome/browser/ui/views/location_bar/content_setting_image_view.cc b/chrome/browser/ui/views/location_bar/content_setting_image_view.cc
|
| index 0aaf76d8af8e94e232d9e932613cbfb44244f862..de78376f3191a80bcf93fd14b3cd1f0dd022924d 100644
|
| --- a/chrome/browser/ui/views/location_bar/content_setting_image_view.cc
|
| +++ b/chrome/browser/ui/views/location_bar/content_setting_image_view.cc
|
| @@ -20,6 +20,7 @@
|
| #include "ui/gfx/canvas.h"
|
| #include "ui/gfx/skia_util.h"
|
| #include "ui/views/border.h"
|
| +#include "ui/views/events/event.h"
|
| #include "ui/views/widget/widget.h"
|
|
|
| using content::WebContents;
|
| @@ -69,8 +70,11 @@ ContentSettingImageView::~ContentSettingImageView() {
|
| }
|
| }
|
|
|
| -void ContentSettingImageView::UpdateFromWebContents(WebContents* web_contents) {
|
| - content_setting_image_model_->UpdateFromWebContents(web_contents);
|
| +void ContentSettingImageView::Update(TabContents* tab_contents) {
|
| + if (tab_contents) {
|
| + content_setting_image_model_->UpdateFromWebContents(
|
| + tab_contents->web_contents());
|
| + }
|
| if (!content_setting_image_model_->is_visible()) {
|
| SetVisible(false);
|
| return;
|
| @@ -81,10 +85,9 @@ void ContentSettingImageView::UpdateFromWebContents(WebContents* web_contents) {
|
| SetVisible(true);
|
|
|
| TabSpecificContentSettings* content_settings = NULL;
|
| - if (web_contents) {
|
| - content_settings =
|
| - TabContents::FromWebContents(web_contents)->content_settings();
|
| - }
|
| + if (tab_contents)
|
| + content_settings = tab_contents->content_settings();
|
| +
|
| if (!content_settings || content_settings->IsBlockageIndicated(
|
| content_setting_image_model_->get_content_settings_type()))
|
| return;
|
| @@ -126,6 +129,19 @@ gfx::Size ContentSettingImageView::GetPreferredSize() {
|
| return preferred_size;
|
| }
|
|
|
| +ui::GestureStatus ContentSettingImageView::OnGestureEvent(
|
| + const views::GestureEvent& event) {
|
| + if (event.type() == ui::ET_GESTURE_TAP) {
|
| + OnClick();
|
| + return ui::GESTURE_STATUS_CONSUMED;
|
| + } else if (event.type() == ui::ET_GESTURE_TAP_DOWN) {
|
| + return ui::GESTURE_STATUS_CONSUMED;
|
| + }
|
| +
|
| + return ui::GESTURE_STATUS_UNKNOWN;
|
| +}
|
| +
|
| +
|
| void ContentSettingImageView::AnimationEnded(const ui::Animation* animation) {
|
| if (pause_animation_)
|
| pause_animation_ = false;
|
| @@ -168,6 +184,10 @@ void ContentSettingImageView::OnMouseReleased(const views::MouseEvent& event) {
|
| if (!HitTest(event.location()))
|
| return;
|
|
|
| + OnClick();
|
| +}
|
| +
|
| +void ContentSettingImageView::OnClick() {
|
| TabContents* tab_contents = parent_->GetTabContents();
|
| if (!tab_contents)
|
| return;
|
| @@ -234,7 +254,7 @@ void ContentSettingImageView::OnPaintBackground(gfx::Canvas* canvas) {
|
| SkPaint paint;
|
| paint.setShader(gfx::CreateGradientShader(kEdgeThickness,
|
| height() - (2 * kEdgeThickness),
|
| - kTopBoxColor, kBottomBoxColor));
|
| + GradientTopColor(), GradientBottomColor()));
|
| SkSafeUnref(paint.getShader());
|
| SkRect color_rect;
|
| color_rect.iset(0, 0, width() - 1, height() - 1);
|
| @@ -242,7 +262,7 @@ void ContentSettingImageView::OnPaintBackground(gfx::Canvas* canvas) {
|
| kBoxCornerRadius, paint);
|
| SkPaint outer_paint;
|
| outer_paint.setStyle(SkPaint::kStroke_Style);
|
| - outer_paint.setColor(kBorderColor);
|
| + outer_paint.setColor(ButtonBorderColor());
|
| color_rect.inset(SkIntToScalar(kEdgeThickness),
|
| SkIntToScalar(kEdgeThickness));
|
| canvas->sk_canvas()->drawRoundRect(color_rect, kBoxCornerRadius,
|
| @@ -270,3 +290,14 @@ int ContentSettingImageView::GetBuiltInHorizontalPadding() const {
|
| return GetBuiltInHorizontalPaddingImpl();
|
| }
|
|
|
| +SkColor ContentSettingImageView::ButtonBorderColor() const {
|
| + return kBorderColor;
|
| +}
|
| +
|
| +SkColor ContentSettingImageView::GradientTopColor() const {
|
| + return kTopBoxColor;
|
| +}
|
| +
|
| +SkColor ContentSettingImageView::GradientBottomColor() const {
|
| + return kBottomBoxColor;
|
| +}
|
|
|