register_protocol_handler_infobar_delegate.h revision 7dbb3d5cf0c15f500944d211057644d6a2f37371
154da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant// Copyright (c) 2012 The Chromium Authors. All rights reserved. 254da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant// Use of this source code is governed by a BSD-style license that can be 354da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant// found in the LICENSE file. 454da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant 5b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant#ifndef CHROME_BROWSER_CUSTOM_HANDLERS_REGISTER_PROTOCOL_HANDLER_INFOBAR_DELEGATE_H_ 6b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant#define CHROME_BROWSER_CUSTOM_HANDLERS_REGISTER_PROTOCOL_HANDLER_INFOBAR_DELEGATE_H_ 754da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant 854da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant#include "base/strings/string16.h" 954da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant#include "chrome/browser/infobars/confirm_infobar_delegate.h" 1054da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant#include "chrome/common/custom_handlers/protocol_handler.h" 1154da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant 1254da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnantclass InfoBarService; 1354da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnantclass ProtocolHandlerRegistry; 1454da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant 1554da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant// An InfoBar delegate that enables the user to allow or deny storing credit 1654da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant// card information gathered from a form submission. 1754da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnantclass RegisterProtocolHandlerInfoBarDelegate : public ConfirmInfoBarDelegate { 1854da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant public: 1954da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant // Creates a new RPH delegate. Searches |infobar_service| for an existing 2054da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant // delegate for the same |handler|; replaces it with the new delegate if 2154da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant // found, otherwise adds the new infobar to |infobar_service|. 2254da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant static void Create(InfoBarService* infobar_service, 2354da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant ProtocolHandlerRegistry* registry, 2454da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant const ProtocolHandler& handler); 2554da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant 2654da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant private: 2754da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant RegisterProtocolHandlerInfoBarDelegate(InfoBarService* infobar_service, 2854da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant ProtocolHandlerRegistry* registry, 2954da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant const ProtocolHandler& handler); 3054da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant virtual ~RegisterProtocolHandlerInfoBarDelegate(); 3154da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant 3254da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant // ConfirmInfoBarDelegate: 3354da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant virtual InfoBarAutomationType GetInfoBarAutomationType() const OVERRIDE; 3454da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant virtual Type GetInfoBarType() const OVERRIDE; 357de47902d08e6cd08977b573b134f21b5782fc4bHoward Hinnant virtual RegisterProtocolHandlerInfoBarDelegate* 367de47902d08e6cd08977b573b134f21b5782fc4bHoward Hinnant AsRegisterProtocolHandlerInfoBarDelegate() OVERRIDE; 3754da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant virtual string16 GetMessageText() const OVERRIDE; 3854da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant virtual string16 GetButtonLabel(InfoBarButton button) const OVERRIDE; 3954da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant virtual bool NeedElevation(InfoBarButton button) const OVERRIDE; 4054da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant virtual bool Accept() OVERRIDE; 4154da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant virtual bool Cancel() OVERRIDE; 4254da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant virtual string16 GetLinkText() const OVERRIDE; 4354da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant virtual bool LinkClicked(WindowOpenDisposition disposition) OVERRIDE; 4454da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant 457de47902d08e6cd08977b573b134f21b5782fc4bHoward Hinnant // Returns a user-friendly name for the protocol of this protocol handler. 467de47902d08e6cd08977b573b134f21b5782fc4bHoward Hinnant string16 GetProtocolName(const ProtocolHandler& handler) const; 4754da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant 4854da338f59b56e267dd6d1c0981e3c607c94c2b7Howard Hinnant ProtocolHandlerRegistry* registry_; 49 ProtocolHandler handler_; 50 51 DISALLOW_COPY_AND_ASSIGN(RegisterProtocolHandlerInfoBarDelegate); 52}; 53 54#endif // CHROME_BROWSER_CUSTOM_HANDLERS_REGISTER_PROTOCOL_HANDLER_INFOBAR_DELEGATE_H_ 55