| Index: chrome/browser/profiles/profile_shortcut_manager_win.h
|
| diff --git a/chrome/browser/profiles/profile_shortcut_manager_win.h b/chrome/browser/profiles/profile_shortcut_manager_win.h
|
| index fa627a4064c78faeef04479dc55955c2f2f3bafc..4ecbfecad395b83ed7633834b5aa1ce1d383491c 100644
|
| --- a/chrome/browser/profiles/profile_shortcut_manager_win.h
|
| +++ b/chrome/browser/profiles/profile_shortcut_manager_win.h
|
| @@ -5,7 +5,10 @@
|
| #ifndef CHROME_BROWSER_PROFILES_PROFILE_SHORTCUT_MANAGER_WIN_H_
|
| #define CHROME_BROWSER_PROFILES_PROFILE_SHORTCUT_MANAGER_WIN_H_
|
|
|
| +#include "base/callback.h"
|
| #include "chrome/browser/profiles/profile_shortcut_manager.h"
|
| +#include "content/public/browser/notification_observer.h"
|
| +#include "content/public/browser/notification_registrar.h"
|
|
|
| class BrowserDistribution;
|
|
|
| @@ -13,8 +16,8 @@ class BrowserDistribution;
|
| namespace profiles {
|
| namespace internal {
|
|
|
| -// Name of the badged icon file generated for a given profile.
|
| -extern const char kProfileIconFileName[];
|
| +// Returns the full path to the profile icon file.
|
| +base::FilePath GetProfileIconPath(const base::FilePath& profile_path);
|
|
|
| // Returns the default shortcut filename for the given profile name,
|
| // given |distribution|. Returns a filename appropriate for a
|
| @@ -29,12 +32,16 @@ string16 CreateProfileShortcutFlags(const base::FilePath& profile_path);
|
| } // namespace profiles
|
|
|
| class ProfileShortcutManagerWin : public ProfileShortcutManager,
|
| - public ProfileInfoCacheObserver {
|
| + public ProfileInfoCacheObserver,
|
| + public content::NotificationObserver {
|
| public:
|
| - // Specifies whether a new shortcut should be created if none exist.
|
| + // Specifies whether only the existing shortcut should be updated, a new
|
| + // shortcut should be created if none exist, or only the icon for this profile
|
| + // should be created in the profile directory.
|
| enum CreateOrUpdateMode {
|
| UPDATE_EXISTING_ONLY,
|
| CREATE_WHEN_NONE_FOUND,
|
| + CREATE_OR_UPDATE_ICON_ONLY,
|
| };
|
| // Specifies whether non-profile shortcuts should be updated.
|
| enum NonProfileShortcutAction {
|
| @@ -46,6 +53,9 @@ class ProfileShortcutManagerWin : public ProfileShortcutManager,
|
| virtual ~ProfileShortcutManagerWin();
|
|
|
| // ProfileShortcutManager implementation:
|
| + virtual void CreateOrUpdateProfileIcon(
|
| + const base::FilePath& profile_path,
|
| + const base::Closure& callback) OVERRIDE;
|
| virtual void CreateProfileShortcut(
|
| const base::FilePath& profile_path) OVERRIDE;
|
| virtual void RemoveProfileShortcuts(
|
| @@ -63,18 +73,30 @@ class ProfileShortcutManagerWin : public ProfileShortcutManager,
|
| virtual void OnProfileAvatarChanged(
|
| const base::FilePath& profile_path) OVERRIDE;
|
|
|
| + // content::NotificationObserver implementation:
|
| + virtual void Observe(int type,
|
| + const content::NotificationSource& source,
|
| + const content::NotificationDetails& details) OVERRIDE;
|
| +
|
| private:
|
| // Gives the profile path of an alternate profile than |profile_path|.
|
| // Must only be called when the number profiles is 2.
|
| base::FilePath GetOtherProfilePath(const base::FilePath& profile_path);
|
|
|
| + // Creates or updates shortcuts for the profile at |profile_path| according
|
| + // to the specified |create_mode| and |action|. This will always involve
|
| + // creating or updating the icon file for this profile.
|
| + // Calls |callback| on successful icon creation.
|
| void CreateOrUpdateShortcutsForProfileAtPath(
|
| const base::FilePath& profile_path,
|
| CreateOrUpdateMode create_mode,
|
| - NonProfileShortcutAction action);
|
| + NonProfileShortcutAction action,
|
| + const base::Closure& callback);
|
|
|
| ProfileManager* profile_manager_;
|
|
|
| + content::NotificationRegistrar registrar_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(ProfileShortcutManagerWin);
|
| };
|
|
|
|
|