1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_UI_PASSWORDS_UI_UTILS_H_
#define CHROME_BROWSER_UI_PASSWORDS_UI_UTILS_H_
#include <string>
#include <utility>
#include "build/build_config.h"
#include "components/password_manager/core/browser/manage_passwords_referrer.h"
#include "components/password_manager/core/browser/origin_credential_store.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/network/public/mojom/url_loader_factory.mojom.h"
#include "ui/gfx/vector_icon_types.h"
namespace content {
class WebContents;
} // namespace content
namespace gfx {
class ImageSkia;
} // namespace gfx
namespace password_manager {
struct PasswordForm;
} // namespace password_manager
class GURL;
enum class PasswordTitleType {
SAVE_PASSWORD, // plain password
SAVE_ACCOUNT, // login via IDP
UPDATE_PASSWORD, // update plain password
};
class Browser;
class Profile;
struct AccountInfo;
// The desired width and height in pixels for an account avatar.
inline constexpr int kAvatarImageSize = 32;
// Crops and scales |image_skia| to the desired size for an account avatar.
gfx::ImageSkia ScaleImageForAccountAvatar(gfx::ImageSkia image_skia);
// Returns the upper and lower label to be displayed in the account chooser UI
// for |form|. The lower label can be multiline.
std::pair<std::u16string, std::u16string> GetCredentialLabelsForAccountChooser(
const password_manager::PasswordForm& form);
// Returns the formatted title in the Save Password bubble or the Update
// Password bubble (depending on |dialog_type|). If the registry controlled
// domain of |user_visible_url| (i.e. the one seen in the omnibox) differs from
// the registry controlled domain of |form_origin_url|, it adds the site name.
std::u16string GetSavePasswordDialogTitleText(
const GURL& user_visible_url,
const url::Origin& form_origin_url,
PasswordTitleType dialog_type);
// Returns the formatted title in the Manage Passwords bubble. If the registry
// controlled domain of |user_visible_url| (i.e. the one seen in the omnibox)
// differs from the domain of the managed password origin URL
// |password_origin_url|, sets |IDS_MANAGE_PASSWORDS_DIFFERENT_DOMAIN_TITLE| or
// |IDS_MANAGE_PASSWORDS_DIFFERENT_DOMAIN_NO_PASSWORDS_TITLE| as
// the title so that it replaces "this site" in title text with output of
// |FormatUrlForSecurityDisplay(password_origin_url)|.
// Otherwise, sets |IDS_MANAGE_PASSWORDS_TITLE| or
// |IDS_MANAGE_PASSWORDS_NO_PASSWORDS_TITLE| as the title having "this site".
// The *_NO_PASSWORDS_* variants of the title strings are used when no
// credentials are present.
std::u16string GetManagePasswordsDialogTitleText(
const GURL& user_visible_url,
const url::Origin& password_origin_url,
bool has_credentials);
// Returns text that is used when manage passwords bubble is used as a
// confirmation.
std::u16string GetConfirmationManagePasswordsDialogTitleText(bool is_update);
// Returns an username in the form that should be shown in the bubble.
std::u16string GetDisplayUsername(const password_manager::PasswordForm& form);
// Returns either the username or the |IDS_PASSWORD_MANAGER_EMPTY_LOGIN| in case
// it is empty.
std::u16string GetDisplayUsername(
const password_manager::UiCredential& credential);
// Returns |federation_origin| in a human-readable format.
std::u16string GetDisplayFederation(const password_manager::PasswordForm& form);
// Returns the plain text representation of the password in the form that should
// be shown in the bubble.
std::u16string GetDisplayPassword(const password_manager::PasswordForm& form);
// Check if |profile| syncing the Auto sign-in settings (by checking that user
// syncs the PRIORITY_PREFERENCE). The view appearance might depend on it.
bool IsSyncingAutosignSetting(Profile* profile);
// Returns a string URL to the Google Password Manager's passwords subpage
std::string GetGooglePasswordManagerSubPageURLStr();
#if !BUILDFLAG(IS_ANDROID)
// Navigates to the Google Password Manager page.
void NavigateToManagePasswordsPage(
Browser* browser,
password_manager::ManagePasswordsReferrer referrer);
// Navigates to the Google Password Manager subpage to show the credential
// details for the `password_domain_name`.
void NavigateToPasswordDetailsPage(
Browser* browser,
const std::string& password_domain_name,
password_manager::ManagePasswordsReferrer referrer);
#endif // !BUILDFLAG(IS_ANDROID)
mojo::Remote<network::mojom::URLLoaderFactory> GetURLLoaderForMainFrame(
content::WebContents* web_contents);
// Returns that vector icon to represent Google Password Manager in Desktop UI.
// Returns different version for branded builds.
const gfx::VectorIcon& GooglePasswordManagerVectorIcon();
std::optional<AccountInfo> GetAccountInfoForPasswordMessages(
syncer::SyncService* sync_service,
signin::IdentityManager* identity_manager);
// Returns the user account name to be displayed in dialogs, bubbles, etc.
std::string GetDisplayableAccountName(
syncer::SyncService* sync_service,
signin::IdentityManager* identity_manager);
#endif // CHROME_BROWSER_UI_PASSWORDS_UI_UTILS_H_
|