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.
5 #ifndef CHROME_BROWSER_CUSTOM_HANDLERS_REGISTER_PROTOCOL_HANDLER_INFOBAR_DELEGATE_H_
6 #define CHROME_BROWSER_CUSTOM_HANDLERS_REGISTER_PROTOCOL_HANDLER_INFOBAR_DELEGATE_H_
8 #include "base/strings/string16.h"
9 #include "chrome/browser/infobars/confirm_infobar_delegate.h"
10 #include "chrome/common/custom_handlers/protocol_handler.h"
13 class ProtocolHandlerRegistry
;
15 // An InfoBar delegate that enables the user to allow or deny storing credit
16 // card information gathered from a form submission.
17 class RegisterProtocolHandlerInfoBarDelegate
: public ConfirmInfoBarDelegate
{
19 // Creates a new register protocol handler infobar and delegate. Searches
20 // |infobar_service| for an existing infobar for the same |handler|; replaces
21 // it with the new infobar if found, otherwise adds the new infobar to
23 static void Create(InfoBarService
* infobar_service
,
24 ProtocolHandlerRegistry
* registry
,
25 const ProtocolHandler
& handler
);
28 RegisterProtocolHandlerInfoBarDelegate(ProtocolHandlerRegistry
* registry
,
29 const ProtocolHandler
& handler
);
30 virtual ~RegisterProtocolHandlerInfoBarDelegate();
32 // ConfirmInfoBarDelegate:
33 virtual InfoBarAutomationType
GetInfoBarAutomationType() const OVERRIDE
;
34 virtual Type
GetInfoBarType() const OVERRIDE
;
35 virtual RegisterProtocolHandlerInfoBarDelegate
*
36 AsRegisterProtocolHandlerInfoBarDelegate() OVERRIDE
;
37 virtual base::string16
GetMessageText() const OVERRIDE
;
38 virtual base::string16
GetButtonLabel(InfoBarButton button
) const OVERRIDE
;
39 virtual bool NeedElevation(InfoBarButton button
) const OVERRIDE
;
40 virtual bool Accept() OVERRIDE
;
41 virtual bool Cancel() OVERRIDE
;
42 virtual base::string16
GetLinkText() const OVERRIDE
;
43 virtual bool LinkClicked(WindowOpenDisposition disposition
) OVERRIDE
;
45 // Returns a user-friendly name for the protocol of this protocol handler.
46 base::string16
GetProtocolName(const ProtocolHandler
& handler
) const;
48 ProtocolHandlerRegistry
* registry_
;
49 ProtocolHandler handler_
;
51 DISALLOW_COPY_AND_ASSIGN(RegisterProtocolHandlerInfoBarDelegate
);
54 #endif // CHROME_BROWSER_CUSTOM_HANDLERS_REGISTER_PROTOCOL_HANDLER_INFOBAR_DELEGATE_H_