| Index: chrome/browser/web_applications/web_app.h
|
| diff --git a/chrome/browser/web_applications/web_app.h b/chrome/browser/web_applications/web_app.h
|
| index 1e4234920bfc7d50a934120ed5b8d6a01a645c23..f8ba264315a3c43474be56a2ace96a3521518715 100644
|
| --- a/chrome/browser/web_applications/web_app.h
|
| +++ b/chrome/browser/web_applications/web_app.h
|
| @@ -58,8 +58,9 @@ struct ShortcutInfo {
|
|
|
| private:
|
| // ShortcutInfo must not be copied; generally it is passed around via
|
| - // scoped_ptrs. This is to allow passing ShortcutInfos between threads,
|
| - // despite ImageFamily having a non-thread-safe reference count.
|
| + // unique_ptr. Since ImageFamily has a non-thread-safe reference count in
|
| + // its member and is bound to UI thread, destroy ShortcutInfo instance
|
| + // on UI thread.
|
| DISALLOW_COPY_AND_ASSIGN(ShortcutInfo);
|
| };
|
|
|
| @@ -229,24 +230,23 @@ std::vector<base::FilePath> GetShortcutPaths(
|
| // shortcut, and is also used as the UserDataDir for platform app shortcuts.
|
| // |shortcut_info| contains info about the shortcut to create, and
|
| // |creation_locations| contains information about where to create them.
|
| -bool CreatePlatformShortcuts(
|
| - const base::FilePath& shortcut_data_path,
|
| - std::unique_ptr<ShortcutInfo> shortcut_info,
|
| - const ShortcutLocations& creation_locations,
|
| - ShortcutCreationReason creation_reason);
|
| +bool CreatePlatformShortcuts(const base::FilePath& shortcut_data_path,
|
| + const ShortcutInfo& shortcut_info,
|
| + const ShortcutLocations& creation_locations,
|
| + ShortcutCreationReason creation_reason);
|
|
|
| // Delete all the shortcuts we have added for this extension. This is the
|
| // platform specific implementation of the DeleteAllShortcuts function, and
|
| // is executed on the FILE thread.
|
| void DeletePlatformShortcuts(const base::FilePath& shortcut_data_path,
|
| - std::unique_ptr<ShortcutInfo> shortcut_info);
|
| + const ShortcutInfo& shortcut_info);
|
|
|
| // Updates all the shortcuts we have added for this extension. This is the
|
| // platform specific implementation of the UpdateAllShortcuts function, and
|
| // is executed on the FILE thread.
|
| void UpdatePlatformShortcuts(const base::FilePath& shortcut_data_path,
|
| const base::string16& old_app_title,
|
| - std::unique_ptr<ShortcutInfo> shortcut_info);
|
| + const ShortcutInfo& shortcut_info);
|
|
|
| // Delete all the shortcuts for an entire profile.
|
| // This is executed on the FILE thread.
|
| @@ -256,6 +256,10 @@ void DeleteAllShortcutsForProfile(const base::FilePath& profile_path);
|
| // on-disk file name .
|
| base::FilePath GetSanitizedFileName(const base::string16& name);
|
|
|
| +// Clears |shortcut_info| and invokes |callback| unless it's null.
|
| +void DeleteShortcutInfoOnUIThread(std::unique_ptr<ShortcutInfo> shortcut_info,
|
| + const base::Closure& callback);
|
| +
|
| } // namespace internals
|
|
|
| } // namespace web_app
|
|
|