| Index: chrome/browser/shell_integration.h
|
| diff --git a/chrome/browser/shell_integration.h b/chrome/browser/shell_integration.h
|
| index f8559844e8d7df644f469c4825333001d33245c1..aad3072020d35059fa9d169aa88e4a35d9d9750c 100644
|
| --- a/chrome/browser/shell_integration.h
|
| +++ b/chrome/browser/shell_integration.h
|
| @@ -106,13 +106,22 @@ class ShellIntegration {
|
| std::string profile_name;
|
| };
|
|
|
| + // For Windows, these refer to "Start Menu", "Start Menu/Google Chrome",
|
| + // and "Start Menu/Chrome Apps" respectively.
|
| + enum ApplicationsMenuLocation {
|
| + APP_MENU_LOCATION_NONE,
|
| + APP_MENU_LOCATION_ROOT,
|
| + APP_MENU_LOCATION_SUBDIR_CHROME,
|
| + APP_MENU_LOCATION_SUBDIR_CHROMEAPPS,
|
| + };
|
| +
|
| // Info about which locations to create app shortcuts in.
|
| struct ShortcutLocations {
|
| ShortcutLocations();
|
|
|
| bool on_desktop;
|
| - bool in_applications_menu;
|
| - string16 applications_menu_subdir;
|
| +
|
| + ApplicationsMenuLocation applications_menu_location;
|
|
|
| // For Windows, this refers to quick launch bar prior to Win7. In Win7,
|
| // this means "pin to taskbar". For Mac/Linux, this could be used for
|
| @@ -120,11 +129,13 @@ class ShellIntegration {
|
| // implemented yet.
|
| bool in_quick_launch_bar;
|
|
|
| +#if defined(OS_POSIX)
|
| // For Linux, this refers to a shortcut which the system knows about (for
|
| // the purpose of identifying windows and giving them the correct
|
| // title/icon), but which does not show up in menus or search results.
|
| - // Ignored if in_applications_menu == true.
|
| + // Ignored if applications_menu_location is not APP_MENU_LOCATION_NONE.
|
| bool hidden;
|
| +#endif
|
| };
|
|
|
| // Data that needs to be passed between the app launcher stub and Chrome.
|
| @@ -185,6 +196,15 @@ class ShellIntegration {
|
| static base::FilePath GetStartMenuShortcut(const base::FilePath& chrome_exe);
|
| #endif // defined(OS_WIN)
|
|
|
| +#if !defined(OS_WIN)
|
| + // TODO(calamity): replace with
|
| + // BrowserDistribution::GetStartMenuShortcutSubfolder() once
|
| + // BrowserDistribution is cross-platform.
|
| + // Gets the name of the Chrome Apps menu folder in which to place app
|
| + // shortcuts. This is needed for Mac and Linux.
|
| + static base::string16 GetAppShortcutsSubdirName();
|
| +#endif
|
| +
|
| // The current default web client application UI state. This is used when
|
| // querying if Chrome is the default browser or the default handler
|
| // application for a url protocol, and communicates the state and result of
|
|
|