chromium/chrome/browser/password_manager/android/password_manager_launcher_android.h

// Copyright 2019 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_PASSWORD_MANAGER_ANDROID_PASSWORD_MANAGER_LAUNCHER_ANDROID_H_
#define CHROME_BROWSER_PASSWORD_MANAGER_ANDROID_PASSWORD_MANAGER_LAUNCHER_ANDROID_H_

#include "components/password_manager/core/browser/manage_passwords_referrer.h"

namespace content {
class WebContents;
}

class Profile;

namespace password_manager_launcher {

// Opens the password settings page.
void ShowPasswordSettings(content::WebContents* web_contents,
                          password_manager::ManagePasswordsReferrer referrer,
                          bool manage_passkeys);

// Determines whether password management will be available if
// ShowPasswordSettings() is called with |manage_passkeys| set to true.
// This returns false if UPM isn't available for the current user, but the
// Play Services password manager will be shown anyway when passkeys are
// present.
bool CanManagePasswordsWhenPasskeysPresent(Profile* profile);

// Test override to prevent CanManagePasswordsWhenPasskeysPresent from invoking
// JNI.
void OverrideManagePasswordWhenPasskeysPresentForTesting(bool can_manage);

}  // namespace password_manager_launcher

#endif  // CHROME_BROWSER_PASSWORD_MANAGER_ANDROID_PASSWORD_MANAGER_LAUNCHER_ANDROID_H_