Commit 97dfcd2c authored by Chris Lu's avatar Chris Lu Committed by Commit Bot

[ios] Add Update Password Interaction Handler

Each InfobarType needs its own InteractionHandler to properly register
the UI handlers for each Infobar type.

Bug: 1071914
Change-Id: I784ce1045200bb6012ce569a4ee39e3a4619c0f7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2354595Reviewed-by: default avatarSergio Collazos <sczs@chromium.org>
Commit-Queue: Chris Lu <thegreenfrog@chromium.org>
Cr-Commit-Position: refs/heads/master@{#797810}
parent aa2e6ee0
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#import "ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent.h" #import "ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent.h"
#import "ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/confirm/confirm_infobar_interaction_handler.h" #import "ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/confirm/confirm_infobar_interaction_handler.h"
#import "ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/passwords/password_infobar_interaction_handler.h" #import "ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/passwords/password_infobar_interaction_handler.h"
#import "ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/passwords/update_password_infobar_interaction_handler.h"
#import "ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/save_card/save_card_infobar_interaction_handler.h" #import "ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/save_card/save_card_infobar_interaction_handler.h"
#import "ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/translate/translate_infobar_interaction_handler.h" #import "ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/translate/translate_infobar_interaction_handler.h"
#import "ios/chrome/browser/ui/infobars/infobar_feature.h" #import "ios/chrome/browser/ui/infobars/infobar_feature.h"
...@@ -24,6 +25,8 @@ void AttachInfobarOverlayBrowserAgent(Browser* browser) { ...@@ -24,6 +25,8 @@ void AttachInfobarOverlayBrowserAgent(Browser* browser) {
InfobarOverlayBrowserAgent::FromBrowser(browser); InfobarOverlayBrowserAgent::FromBrowser(browser);
browser_agent->AddInfobarInteractionHandler( browser_agent->AddInfobarInteractionHandler(
std::make_unique<PasswordInfobarInteractionHandler>(browser)); std::make_unique<PasswordInfobarInteractionHandler>(browser));
browser_agent->AddInfobarInteractionHandler(
std::make_unique<UpdatePasswordInfobarInteractionHandler>(browser));
browser_agent->AddInfobarInteractionHandler( browser_agent->AddInfobarInteractionHandler(
std::make_unique<ConfirmInfobarInteractionHandler>()); std::make_unique<ConfirmInfobarInteractionHandler>());
browser_agent->AddInfobarInteractionHandler( browser_agent->AddInfobarInteractionHandler(
......
...@@ -13,6 +13,8 @@ source_set("passwords") { ...@@ -13,6 +13,8 @@ source_set("passwords") {
"password_infobar_modal_interaction_handler.mm", "password_infobar_modal_interaction_handler.mm",
"password_infobar_modal_overlay_request_callback_installer.h", "password_infobar_modal_overlay_request_callback_installer.h",
"password_infobar_modal_overlay_request_callback_installer.mm", "password_infobar_modal_overlay_request_callback_installer.mm",
"update_password_infobar_interaction_handler.h",
"update_password_infobar_interaction_handler.mm",
] ]
deps = [ deps = [
"//base", "//base",
......
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_BROWSER_AGENT_INTERACTION_HANDLERS_PASSWORDS_UPDATE_PASSWORD_INFOBAR_INTERACTION_HANDLER_H_
#define IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_BROWSER_AGENT_INTERACTION_HANDLERS_PASSWORDS_UPDATE_PASSWORD_INFOBAR_INTERACTION_HANDLER_H_
#import "ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/infobar_interaction_handler.h"
class Browser;
// An InfobarInteractionHandler that updates the model layer for interaction
// events with the UI for update password infobars.
class UpdatePasswordInfobarInteractionHandler
: public InfobarInteractionHandler {
public:
UpdatePasswordInfobarInteractionHandler(Browser* browser);
~UpdatePasswordInfobarInteractionHandler() override;
};
#endif // IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_BROWSER_AGENT_INTERACTION_HANDLERS_PASSWORDS_UPDATE_PASSWORD_INFOBAR_INTERACTION_HANDLER_H_
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import "ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/passwords/update_password_infobar_interaction_handler.h"
#import "ios/chrome/browser/infobars/infobar_type.h"
#import "ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/passwords/password_infobar_banner_interaction_handler.h"
#import "ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/passwords/password_infobar_modal_interaction_handler.h"
#import "ios/chrome/browser/overlays/public/infobar_banner/save_password_infobar_banner_overlay.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
UpdatePasswordInfobarInteractionHandler::
UpdatePasswordInfobarInteractionHandler(Browser* browser)
: InfobarInteractionHandler(
InfobarType::kInfobarTypePasswordUpdate,
std::make_unique<PasswordInfobarBannerInteractionHandler>(),
/*sheet_handler=*/nullptr,
std::make_unique<PasswordInfobarModalInteractionHandler>(browser)) {}
UpdatePasswordInfobarInteractionHandler::
~UpdatePasswordInfobarInteractionHandler() = default;
...@@ -32,6 +32,10 @@ InfobarOverlayRequestFactoryImpl::InfobarOverlayRequestFactoryImpl() { ...@@ -32,6 +32,10 @@ InfobarOverlayRequestFactoryImpl::InfobarOverlayRequestFactoryImpl() {
CreateFactory<SavePasswordInfobarBannerOverlayRequestConfig>(), CreateFactory<SavePasswordInfobarBannerOverlayRequestConfig>(),
/*detail_sheet_factory=*/nullptr, /*detail_sheet_factory=*/nullptr,
CreateFactory<PasswordInfobarModalOverlayRequestConfig>()); CreateFactory<PasswordInfobarModalOverlayRequestConfig>());
SetUpFactories(InfobarType::kInfobarTypePasswordUpdate,
CreateFactory<SavePasswordInfobarBannerOverlayRequestConfig>(),
/*detail_sheet_factory=*/nullptr,
CreateFactory<PasswordInfobarModalOverlayRequestConfig>());
SetUpFactories(InfobarType::kInfobarTypeTranslate, SetUpFactories(InfobarType::kInfobarTypeTranslate,
CreateFactory<TranslateBannerRequestConfig>(), CreateFactory<TranslateBannerRequestConfig>(),
/*detail_sheet_factory=*/nullptr, /*detail_sheet_factory=*/nullptr,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment