| Index: chrome/browser/web_applications/web_app.cc | 
| diff --git a/chrome/browser/web_applications/web_app.cc b/chrome/browser/web_applications/web_app.cc | 
| index fe07e15d096d716b4426fd4cc507fa9f7580bdd2..ed805f783ee2aa443f88101446c40957ba153a52 100644 | 
| --- a/chrome/browser/web_applications/web_app.cc | 
| +++ b/chrome/browser/web_applications/web_app.cc | 
| @@ -66,7 +66,7 @@ bool IconPrecedes(const WebApplicationInfo::IconInfo& left, | 
| #endif | 
|  | 
| void DeleteShortcutsOnFileThread( | 
| -    const ShellIntegration::ShortcutInfo& shortcut_info) { | 
| +    const web_app::ShortcutInfo& shortcut_info) { | 
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 
|  | 
| base::FilePath shortcut_data_dir = web_app::GetWebAppDataDirectory( | 
| @@ -77,7 +77,7 @@ void DeleteShortcutsOnFileThread( | 
|  | 
| void UpdateShortcutsOnFileThread( | 
| const base::string16& old_app_title, | 
| -    const ShellIntegration::ShortcutInfo& shortcut_info) { | 
| +    const web_app::ShortcutInfo& shortcut_info) { | 
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 
|  | 
| base::FilePath shortcut_data_dir = web_app::GetWebAppDataDirectory( | 
| @@ -88,7 +88,7 @@ void UpdateShortcutsOnFileThread( | 
|  | 
| void UpdateAllShortcutsForShortcutInfo( | 
| const base::string16& old_app_title, | 
| -    const ShellIntegration::ShortcutInfo& shortcut_info) { | 
| +    const web_app::ShortcutInfo& shortcut_info) { | 
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 
|  | 
| BrowserThread::PostTask( | 
| @@ -97,7 +97,7 @@ void UpdateAllShortcutsForShortcutInfo( | 
| base::Bind(&UpdateShortcutsOnFileThread, old_app_title, shortcut_info)); | 
| } | 
|  | 
| -void OnImageLoaded(ShellIntegration::ShortcutInfo shortcut_info, | 
| +void OnImageLoaded(web_app::ShortcutInfo shortcut_info, | 
| web_app::ShortcutInfoCallback callback, | 
| const gfx::ImageFamily& image_family) { | 
| // If the image failed to load (e.g. if the resource being loaded was empty) | 
| @@ -147,8 +147,8 @@ base::FilePath GetSanitizedFileName(const base::string16& name) { | 
|  | 
| bool CreateShortcutsOnFileThread( | 
| ShortcutCreationReason reason, | 
| -    const ShellIntegration::ShortcutLocations& locations, | 
| -    const ShellIntegration::ShortcutInfo& shortcut_info) { | 
| +    const web_app::ShortcutLocations& locations, | 
| +    const web_app::ShortcutInfo& shortcut_info) { | 
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 
|  | 
| base::FilePath shortcut_data_dir = GetWebAppDataDirectory( | 
| @@ -160,8 +160,24 @@ bool CreateShortcutsOnFileThread( | 
|  | 
| }  // namespace internals | 
|  | 
| +web_app::ShortcutInfo::ShortcutInfo() | 
| +    : is_platform_app(false) { | 
| +} | 
| + | 
| +web_app::ShortcutInfo::~ShortcutInfo() {} | 
| + | 
| +web_app::ShortcutLocations::ShortcutLocations() | 
| +    : on_desktop(false), | 
| +      applications_menu_location(APP_MENU_LOCATION_NONE), | 
| +      in_quick_launch_bar(false) | 
| +#if defined(OS_POSIX) | 
| +      , hidden(false) | 
| +#endif | 
| +      { | 
| +} | 
| + | 
| void GetShortcutInfoForTab(content::WebContents* web_contents, | 
| -                           ShellIntegration::ShortcutInfo* info) { | 
| +                           web_app::ShortcutInfo* info) { | 
| DCHECK(info);  // Must provide a valid info. | 
|  | 
| const FaviconTabHelper* favicon_tab_helper = | 
| @@ -188,9 +204,9 @@ void GetShortcutInfoForTab(content::WebContents* web_contents, | 
| void UpdateShortcutForTabContents(content::WebContents* web_contents) {} | 
| #endif | 
|  | 
| -ShellIntegration::ShortcutInfo ShortcutInfoForExtensionAndProfile( | 
| +web_app::ShortcutInfo ShortcutInfoForExtensionAndProfile( | 
| const extensions::Extension* app, Profile* profile) { | 
| -  ShellIntegration::ShortcutInfo shortcut_info; | 
| +  web_app::ShortcutInfo shortcut_info; | 
| shortcut_info.extension_id = app->id(); | 
| shortcut_info.is_platform_app = app->is_platform_app(); | 
| shortcut_info.url = extensions::AppLaunchInfo::GetLaunchWebURL(app); | 
| @@ -207,7 +223,7 @@ void UpdateShortcutInfoAndIconForApp( | 
| const extensions::Extension* extension, | 
| Profile* profile, | 
| const web_app::ShortcutInfoCallback& callback) { | 
| -  ShellIntegration::ShortcutInfo shortcut_info = | 
| +  web_app::ShortcutInfo shortcut_info = | 
| ShortcutInfoForExtensionAndProfile(extension, profile); | 
|  | 
| std::vector<extensions::ImageLoader::ImageRepresentation> info_list; | 
| @@ -291,7 +307,7 @@ base::FilePath GetWebAppDataDirectory(const base::FilePath& profile_path, | 
| } | 
|  | 
| std::string GenerateApplicationNameFromInfo( | 
| -    const ShellIntegration::ShortcutInfo& shortcut_info) { | 
| +    const web_app::ShortcutInfo& shortcut_info) { | 
| if (!shortcut_info.extension_id.empty()) { | 
| return web_app::GenerateApplicationNameFromExtensionId( | 
| shortcut_info.extension_id); | 
| @@ -324,8 +340,8 @@ std::string GetExtensionIdFromApplicationName(const std::string& app_name) { | 
|  | 
| void CreateShortcutsForShortcutInfo( | 
| web_app::ShortcutCreationReason reason, | 
| -    const ShellIntegration::ShortcutLocations& locations, | 
| -    const ShellIntegration::ShortcutInfo& shortcut_info) { | 
| +    const web_app::ShortcutLocations& locations, | 
| +    const web_app::ShortcutInfo& shortcut_info) { | 
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 
|  | 
| BrowserThread::PostTask( | 
| @@ -338,7 +354,7 @@ void CreateShortcutsForShortcutInfo( | 
|  | 
| void CreateShortcuts( | 
| ShortcutCreationReason reason, | 
| -    const ShellIntegration::ShortcutLocations& locations, | 
| +    const web_app::ShortcutLocations& locations, | 
| Profile* profile, | 
| const extensions::Extension* app) { | 
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 
|  |