blob: 1b40eb91563fd878fb6f38eefe2a8045c30c6989 [file] [log] [blame]
// Copyright 2023 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_PROFILES_PROFILE_VIEW_UTILS_H_
#define CHROME_BROWSER_UI_PROFILES_PROFILE_VIEW_UTILS_H_
#include <string>
#include <utility>
#include <vector>
class GURL;
class Profile;
class ProfileAttributesEntry;
struct AccountInfo;
// Navigates to the Google Account page.
void NavigateToGoogleAccountPage(Profile* profile, const std::string& email);
// Returns true if account sync is paused, and a sync consent is present.
bool IsSyncPaused(Profile* profile);
// Returns true if there is an unconstented profile.
bool HasUnconstentedProfile(Profile* profile);
// Returns the number of browsers associated with |profile|.
// Note: For regular profiles this includes incognito sessions.
int CountBrowsersFor(Profile* profile);
// Returns the AccountInfo from the profile.
AccountInfo GetAccountInfoFromProfile(const Profile* profile);
// Returns the ProfileAttributesEntry from the profile.
ProfileAttributesEntry* GetProfileAttributesFromProfile(const Profile* profile);
// Returns the profile display name based off the profile attributes.
std::u16string GetProfileMenuDisplayName(
ProfileAttributesEntry* profile_attributes);
// Returns all profile entries sorted by local profile name except for the
// current or omitted profiles.
std::vector<ProfileAttributesEntry*> GetAllOtherProfileEntriesForProfileSubMenu(
const Profile* current_profile);
// Returns true if |command_id| identifies an other profile menu item.
bool IsOtherProfileCommand(int command_id);
// True if the UI may present an affordance to open `url` into an OTR context
// (e.g. a menu option to open the link in a new incognito window).
bool IsOpenLinkOTREnabled(Profile* source_profie, const GURL& url);
#endif // CHROME_BROWSER_UI_PROFILES_PROFILE_VIEW_UTILS_H_