| Index: chrome/browser/ui/passwords/manage_passwords_bubble_model.cc
|
| diff --git a/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc b/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc
|
| index 4fd0b1a75f274a9ee62d17b2c85e92d6e6cddf7e..3f735022af651c9e1e54ee520759d1bf3b401e31 100644
|
| --- a/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc
|
| +++ b/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc
|
| @@ -17,6 +17,7 @@
|
| #include "chrome/browser/password_manager/password_store_factory.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/sync/profile_sync_service_factory.h"
|
| +#include "chrome/browser/ui/desktop_ios_promotion/desktop_ios_promotion_util.h"
|
| #include "chrome/browser/ui/passwords/manage_passwords_view_utils.h"
|
| #include "chrome/browser/ui/passwords/passwords_model_delegate.h"
|
| #include "chrome/grit/chromium_strings.h"
|
| @@ -282,6 +283,7 @@ ManagePasswordsBubbleModel::ManagePasswordsBubbleModel(
|
| case password_manager::ui::CREDENTIAL_REQUEST_STATE:
|
| case password_manager::ui::AUTO_SIGNIN_STATE:
|
| case password_manager::ui::CHROME_SIGN_IN_PROMO_STATE:
|
| + case password_manager::ui::CHROME_DESKTOP_IOS_PROMO_STATE:
|
| case password_manager::ui::INACTIVE_STATE:
|
| NOTREACHED();
|
| break;
|
| @@ -305,6 +307,7 @@ ManagePasswordsBubbleModel::ManagePasswordsBubbleModel(
|
| case password_manager::ui::MANAGE_STATE:
|
| case password_manager::ui::CREDENTIAL_REQUEST_STATE:
|
| case password_manager::ui::CHROME_SIGN_IN_PROMO_STATE:
|
| + case password_manager::ui::CHROME_DESKTOP_IOS_PROMO_STATE:
|
| case password_manager::ui::INACTIVE_STATE:
|
| NOTREACHED();
|
| break;
|
| @@ -423,11 +426,12 @@ bool ManagePasswordsBubbleModel::ShouldShowMultipleAccountUpdateUI() const {
|
| local_credentials_.size() > 1 && !password_overridden_;
|
| }
|
|
|
| -bool ManagePasswordsBubbleModel::ReplaceToShowSignInPromoIfNeeded() {
|
| +bool ManagePasswordsBubbleModel::ReplaceToShowPromotionIfNeeded() {
|
| DCHECK_EQ(password_manager::ui::PENDING_PASSWORD_STATE, state_);
|
| PrefService* prefs = GetProfile()->GetPrefs();
|
| const browser_sync::ProfileSyncService* sync_service =
|
| ProfileSyncServiceFactory::GetForProfile(GetProfile());
|
| + // Signin promotion.
|
| if (password_bubble_experiment::ShouldShowChromeSignInPasswordPromo(
|
| prefs, sync_service)) {
|
| interaction_keeper_->ReportInteractions(this);
|
| @@ -442,6 +446,17 @@ bool ManagePasswordsBubbleModel::ReplaceToShowSignInPromoIfNeeded() {
|
| interaction_keeper_->set_sign_in_promo_shown_count(show_count);
|
| return true;
|
| }
|
| + // Desktop to mobile promotion.
|
| + if (desktop_ios_promotion::IsEligibleForIOSPromotion()) {
|
| + interaction_keeper_->ReportInteractions(this);
|
| + title_brand_link_range_ = gfx::Range();
|
| + title_ =
|
| + l10n_util::GetStringUTF16(IDS_PASSWORD_MANAGER_DESKTOP_IOS_PROMO_TITLE);
|
| + state_ = password_manager::ui::CHROME_DESKTOP_IOS_PROMO_STATE;
|
| + // TODO(crbug.com/676655): Update impression count.
|
| + // TODO(crbug.com/676655): Add required logging.
|
| + return true;
|
| + }
|
| return false;
|
| }
|
|
|
|
|