1dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen// Use of this source code is governed by a BSD-style license that can be
3dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen// found in the LICENSE file.
4dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen
5dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#ifndef CHROME_BROWSER_CUSTOM_HANDLERS_REGISTER_PROTOCOL_HANDLER_INFOBAR_DELEGATE_H_
6dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#define CHROME_BROWSER_CUSTOM_HANDLERS_REGISTER_PROTOCOL_HANDLER_INFOBAR_DELEGATE_H_
7dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#pragma once
8dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen
9dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "base/string16.h"
10dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "chrome/browser/tab_contents/confirm_infobar_delegate.h"
11dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen
12dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenclass SkBitmap;
13dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenclass ProtocolHandler;
14dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenclass ProtocolHandlerRegistry;
15dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenclass TabContents;
16dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen
17dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen// An InfoBar delegate that enables the user to allow or deny storing credit
18dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen// card information gathered from a form submission.
19dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenclass RegisterProtocolHandlerInfoBarDelegate : public ConfirmInfoBarDelegate {
20dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen public:
21dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  RegisterProtocolHandlerInfoBarDelegate(TabContents* tab_contents,
22dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen                                         ProtocolHandlerRegistry* registry,
23dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen                                         ProtocolHandler* handler);
24dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen
25dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  // ConfirmInfoBarDelegate:
26dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual bool ShouldExpire(const NavigationController::LoadCommittedDetails&
27dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen      details) const OVERRIDE;
28dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void InfoBarClosed() OVERRIDE;
29dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual Type GetInfoBarType() const OVERRIDE;
30dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual string16 GetMessageText() const OVERRIDE;
31dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual string16 GetButtonLabel(InfoBarButton button) const OVERRIDE;
32dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual bool Accept() OVERRIDE;
33dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual bool Cancel() OVERRIDE;
34dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual string16 GetLinkText() OVERRIDE;
35dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual bool LinkClicked(WindowOpenDisposition disposition) OVERRIDE;
36dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen
37dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen private:
38dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  TabContents* tab_contents_;
39dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  ProtocolHandlerRegistry* registry_;
40dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  ProtocolHandler* handler_;
41dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen
42dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  DISALLOW_COPY_AND_ASSIGN(RegisterProtocolHandlerInfoBarDelegate);
43dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen};
44dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen
45dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#endif  // CHROME_BROWSER_CUSTOM_HANDLERS_REGISTER_PROTOCOL_HANDLER_INFOBAR_DELEGATE_H_
46