#ifndef CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_ORIGIN_CHIP_VIEW_H_
#define CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_ORIGIN_CHIP_VIEW_H_
#include "chrome/browser/safe_browsing/ui_manager.h"
#include "chrome/browser/ui/toolbar/toolbar_model.h"
#include "chrome/browser/ui/views/location_bar/location_icon_view.h"
#include "ui/views/controls/button/button.h"
#include "ui/views/controls/button/label_button.h"
class LocationBarView;
class OriginChipExtensionIcon;
class Profile;
namespace content {
class WebContents;
}
namespace gfx {
class Canvas;
class FontList;
class SlideAnimation;
}
namespace views {
class Button;
class Label;
}
class OriginChipView : public views::LabelButton,
public views::ButtonListener,
public SafeBrowsingUIManager::Observer {
public:
OriginChipView(LocationBarView* location_bar_view,
Profile* profile,
const gfx::FontList& font_list);
virtual ~OriginChipView();
bool ShouldShow();
void Update(content::WebContents* tab);
void OnChanged();
views::ImageView* location_icon_view() {
return location_icon_view_;
}
const views::ImageView* location_icon_view() const {
return location_icon_view_;
}
int ElideDomainTarget(int target_max_width);
void FadeIn();
int host_label_x() const { return host_label_->x(); }
virtual void AnimationProgressed(const gfx::Animation* animation) OVERRIDE;
virtual void AnimationEnded(const gfx::Animation* animation) OVERRIDE;
virtual gfx::Size GetPreferredSize() OVERRIDE;
virtual void Layout() OVERRIDE;
virtual void OnPaintBorder(gfx::Canvas* canvas) OVERRIDE;
virtual void ButtonPressed(views::Button* sender,
const ui::Event& event) OVERRIDE;
virtual void OnSafeBrowsingHit(
const SafeBrowsingUIManager::UnsafeResource& resource) OVERRIDE;
virtual void OnSafeBrowsingMatch(
const SafeBrowsingUIManager::UnsafeResource& resource) OVERRIDE;
private:
void SetBorderImages(const int images[3][9]);
LocationBarView* location_bar_view_;
Profile* profile_;
views::Label* host_label_;
LocationIconView* location_icon_view_;
bool showing_16x16_icon_;
scoped_ptr<OriginChipExtensionIcon> extension_icon_;
GURL url_displayed_;
ToolbarModel::SecurityLevel security_level_;
bool url_malware_;
scoped_ptr<gfx::SlideAnimation> fade_in_animation_;
DISALLOW_COPY_AND_ASSIGN(OriginChipView);
};
#endif