blob: 045b05bda99b99dea6293bd66d9b4b72f8ee99e3 [file] [log] [blame]
// 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_PROFILES_PROFILE_MANAGER_OBSERVER_H_
#define CHROME_BROWSER_PROFILES_PROFILE_MANAGER_OBSERVER_H_
#include "base/observer_list_types.h"
class Profile;
enum class ProfileKeepAliveOrigin;
class ProfileManagerObserver : public base::CheckedObserver {
public:
// Called when a Profile is added to the manager, the profile is fully created
// and registered with the ProfileManager. This is only called for normal
// (on-the-record) profiles as the ProfileManager doesn't own the OTR profile.
// For OTR profile creation, see
// ProfileObserver::OnOffTheRecordProfileCreated().
// Unlike ProfileAttributesStorage::Observer::OnProfileAdded(), which is only
// called when a new user is first created, this is called once on every run
// of Chrome, provided that the Profile is in use.
virtual void OnProfileAdded(Profile* profile) {}
// Called when the user deletes a profile and all associated data should be
// erased. Note that the Profile object will not be destroyed until Chrome
// shuts down. See https://crbug.com/88586
virtual void OnProfileMarkedForPermanentDeletion(Profile* profile) {}
// Called when the profile manager is destroying. As the `ProfileManager` is
// owned by the `BrowserProcessImpl`, this will only be called during
// shutdown.
virtual void OnProfileManagerDestroying() {}
// Called when a keep alive is added to a profile, with the respective keep
// alive origin.
virtual void OnKeepAliveAdded(const Profile* profile,
ProfileKeepAliveOrigin keep_alive_origin) {}
// Called when a new profile is being created. This is called at earlier
// stage of Profile creation, i.e., we should not assume Profile
// initialization is completed.
// In most cases, `OnProfileAdded()` is what you want, instead.
virtual void OnProfileCreationStarted(Profile* profile) {}
};
#endif // CHROME_BROWSER_PROFILES_PROFILE_MANAGER_OBSERVER_H_