1// Copyright 2020 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#import "ios/chrome/browser/overlays/public/infobar_banner/confirm_infobar_banner_overlay_request_config.h" 6 7#include "components/infobars/core/confirm_infobar_delegate.h" 8#include "components/infobars/core/infobar.h" 9#include "ios/chrome/browser/infobars/infobar_ios.h" 10#import "ios/chrome/browser/infobars/overlays/infobar_overlay_type.h" 11#import "ios/chrome/browser/overlays/public/common/infobars/infobar_overlay_request_config.h" 12#include "ios/chrome/browser/ui/authentication/signin_notification_infobar_delegate.h" 13 14#if !defined(__has_feature) || !__has_feature(objc_arc) 15#error "This file requires ARC support." 16#endif 17 18namespace confirm_infobar_overlays { 19 20OVERLAY_USER_DATA_SETUP_IMPL(ConfirmBannerRequestConfig); 21 22ConfirmBannerRequestConfig::ConfirmBannerRequestConfig( 23 infobars::InfoBar* infobar) 24 : infobar_(infobar) { 25 DCHECK(infobar_); 26 ConfirmInfoBarDelegate* delegate = 27 static_cast<ConfirmInfoBarDelegate*>(infobar_->delegate()); 28 title_text_ = delegate->GetTitleText(); 29 message_text_ = delegate->GetMessageText(); 30 button_label_text_ = 31 delegate->GetButtonLabel(ConfirmInfoBarDelegate::BUTTON_OK); 32 icon_image_ = delegate->GetIcon(); 33 is_high_priority_ = static_cast<InfoBarIOS*>(infobar)->high_priority(); 34 use_icon_background_tint_ = delegate->UseIconBackgroundTint(); 35} 36 37ConfirmBannerRequestConfig::~ConfirmBannerRequestConfig() = default; 38 39void ConfirmBannerRequestConfig::CreateAuxiliaryData( 40 base::SupportsUserData* user_data) { 41 InfobarOverlayRequestConfig::CreateForUserData( 42 user_data, static_cast<InfoBarIOS*>(infobar_), 43 InfobarOverlayType::kBanner, is_high_priority_); 44} 45 46} // namespace confirm_infobar_overlays 47