Home | History | Annotate | Download | only in custom_handlers
      1 // Copyright (c) 2011 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 #include "chrome/browser/custom_handlers/register_protocol_handler_infobar_delegate.h"
      6 
      7 #include "base/utf_string_conversions.h"
      8 #include "chrome/browser/custom_handlers/protocol_handler_registry.h"
      9 #include "grit/generated_resources.h"
     10 #include "ui/base/l10n/l10n_util.h"
     11 
     12 RegisterProtocolHandlerInfoBarDelegate::RegisterProtocolHandlerInfoBarDelegate(
     13     TabContents* tab_contents,
     14     ProtocolHandlerRegistry* registry,
     15     ProtocolHandler* handler)
     16     : ConfirmInfoBarDelegate(tab_contents),
     17       tab_contents_(tab_contents),
     18       registry_(registry),
     19       handler_(handler) {
     20 }
     21 
     22 bool RegisterProtocolHandlerInfoBarDelegate::ShouldExpire(
     23     const NavigationController::LoadCommittedDetails& details) const {
     24   // The user has submitted a form, causing the page to navigate elsewhere. We
     25   // don't want the infobar to be expired at this point, because the user won't
     26   // get a chance to answer the question.
     27   return false;
     28 }
     29 
     30 void RegisterProtocolHandlerInfoBarDelegate::InfoBarClosed() {
     31   delete this;
     32 }
     33 
     34 InfoBarDelegate::Type
     35     RegisterProtocolHandlerInfoBarDelegate::GetInfoBarType() const {
     36   return PAGE_ACTION_TYPE;
     37 }
     38 
     39 string16 RegisterProtocolHandlerInfoBarDelegate::GetMessageText() const {
     40   ProtocolHandler* old_handler = registry_->GetHandlerFor(handler_->protocol());
     41   return old_handler ?
     42       l10n_util::GetStringFUTF16(IDS_REGISTER_PROTOCOL_HANDLER_CONFIRM_REPLACE,
     43           handler_->title(), UTF8ToUTF16(handler_->url().host()),
     44           UTF8ToUTF16(handler_->protocol()), old_handler->title()) :
     45       l10n_util::GetStringFUTF16(IDS_REGISTER_PROTOCOL_HANDLER_CONFIRM,
     46           handler_->title(), UTF8ToUTF16(handler_->url().host()),
     47           UTF8ToUTF16(handler_->protocol()));
     48 }
     49 
     50 string16 RegisterProtocolHandlerInfoBarDelegate::GetButtonLabel(
     51     InfoBarButton button) const {
     52   return (button == BUTTON_OK) ?
     53       l10n_util::GetStringFUTF16(IDS_REGISTER_PROTOCOL_HANDLER_ACCEPT,
     54                                  handler_->title()) :
     55       l10n_util::GetStringUTF16(IDS_REGISTER_PROTOCOL_HANDLER_DENY);
     56 }
     57 
     58 bool RegisterProtocolHandlerInfoBarDelegate::Accept() {
     59   registry_->OnAcceptRegisterProtocolHandler(handler_);
     60   return true;
     61 }
     62 
     63 bool RegisterProtocolHandlerInfoBarDelegate::Cancel() {
     64   registry_->OnDenyRegisterProtocolHandler(handler_);
     65   return true;
     66 }
     67 
     68 string16 RegisterProtocolHandlerInfoBarDelegate::GetLinkText() {
     69   // TODO(koz): Make this a 'learn more' link.
     70   return string16();
     71 }
     72 
     73 bool RegisterProtocolHandlerInfoBarDelegate::LinkClicked(
     74     WindowOpenDisposition disposition) {
     75   return false;
     76 }
     77