1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_UI_WEBSITE_SETTINGS_WEBSITE_SETTINGS_INFOBAR_DELEGATE_H_
6#define CHROME_BROWSER_UI_WEBSITE_SETTINGS_WEBSITE_SETTINGS_INFOBAR_DELEGATE_H_
7
8#include "components/infobars/core/confirm_infobar_delegate.h"
9
10class InfoBarService;
11
12// This class configures an infobar that is shown when the website settings UI
13// is closed and the settings for one or more site permissions have been
14// changed. The user is shown a message indicating that a reload of the page is
15// required for the changes to take effect, and presented a button to perform
16// the reload right from the infobar.
17class WebsiteSettingsInfoBarDelegate : public ConfirmInfoBarDelegate {
18 public:
19  // Creates a website settings infobar and delegate and adds the infobar to
20  // |infobar_service|.
21  static void Create(InfoBarService* infobar_service);
22
23 private:
24  WebsiteSettingsInfoBarDelegate();
25  virtual ~WebsiteSettingsInfoBarDelegate();
26
27  // ConfirmInfoBarDelegate:
28  virtual int GetIconID() const OVERRIDE;
29  virtual Type GetInfoBarType() const OVERRIDE;
30  virtual base::string16 GetMessageText() const OVERRIDE;
31  virtual int GetButtons() const OVERRIDE;
32  virtual base::string16 GetButtonLabel(InfoBarButton button) const OVERRIDE;
33  virtual bool Accept() OVERRIDE;
34
35  DISALLOW_COPY_AND_ASSIGN(WebsiteSettingsInfoBarDelegate);
36};
37
38#endif  // CHROME_BROWSER_UI_WEBSITE_SETTINGS_WEBSITE_SETTINGS_INFOBAR_DELEGATE_H_
39