| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_BROWSER_SHELL_INTEGRATION_H_ | 5 #ifndef CHROME_BROWSER_SHELL_INTEGRATION_H_ |
| 6 #define CHROME_BROWSER_SHELL_INTEGRATION_H_ | 6 #define CHROME_BROWSER_SHELL_INTEGRATION_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 std::string extension_id; | 99 std::string extension_id; |
| 100 bool is_platform_app; | 100 bool is_platform_app; |
| 101 string16 title; | 101 string16 title; |
| 102 string16 description; | 102 string16 description; |
| 103 base::FilePath extension_path; | 103 base::FilePath extension_path; |
| 104 gfx::ImageFamily favicon; | 104 gfx::ImageFamily favicon; |
| 105 base::FilePath profile_path; | 105 base::FilePath profile_path; |
| 106 std::string profile_name; | 106 std::string profile_name; |
| 107 }; | 107 }; |
| 108 | 108 |
| 109 // This specifies a folder in the system applications menu (e.g the Start Menu |
| 110 // on Windows). |
| 111 // |
| 112 // These represent the applications menu root, the "Google Chrome" folder and |
| 113 // the "Chrome Apps" folder respectively. |
| 114 // |
| 115 // NB: On Linux, these locations may not be used by the window manager (e.g |
| 116 // Unity and Gnome Shell). |
| 117 enum ApplicationsMenuLocation { |
| 118 APP_MENU_LOCATION_NONE, |
| 119 APP_MENU_LOCATION_ROOT, |
| 120 APP_MENU_LOCATION_SUBDIR_CHROME, |
| 121 APP_MENU_LOCATION_SUBDIR_CHROMEAPPS, |
| 122 }; |
| 123 |
| 109 // Info about which locations to create app shortcuts in. | 124 // Info about which locations to create app shortcuts in. |
| 110 struct ShortcutLocations { | 125 struct ShortcutLocations { |
| 111 ShortcutLocations(); | 126 ShortcutLocations(); |
| 112 | 127 |
| 113 bool on_desktop; | 128 bool on_desktop; |
| 114 bool in_applications_menu; | 129 |
| 115 string16 applications_menu_subdir; | 130 ApplicationsMenuLocation applications_menu_location; |
| 116 | 131 |
| 117 // For Windows, this refers to quick launch bar prior to Win7. In Win7, | 132 // For Windows, this refers to quick launch bar prior to Win7. In Win7, |
| 118 // this means "pin to taskbar". For Mac/Linux, this could be used for | 133 // this means "pin to taskbar". For Mac/Linux, this could be used for |
| 119 // Mac dock or the gnome/kde application launcher. However, those are not | 134 // Mac dock or the gnome/kde application launcher. However, those are not |
| 120 // implemented yet. | 135 // implemented yet. |
| 121 bool in_quick_launch_bar; | 136 bool in_quick_launch_bar; |
| 122 | 137 |
| 138 #if defined(OS_POSIX) |
| 123 // For Linux, this refers to a shortcut which the system knows about (for | 139 // For Linux, this refers to a shortcut which the system knows about (for |
| 124 // the purpose of identifying windows and giving them the correct | 140 // the purpose of identifying windows and giving them the correct |
| 125 // title/icon), but which does not show up in menus or search results. | 141 // title/icon), but which does not show up in menus or search results. |
| 126 // Ignored if in_applications_menu == true. | 142 // Ignored if applications_menu_location is not APP_MENU_LOCATION_NONE. |
| 127 bool hidden; | 143 bool hidden; |
| 144 #endif |
| 128 }; | 145 }; |
| 129 | 146 |
| 130 // Data that needs to be passed between the app launcher stub and Chrome. | 147 // Data that needs to be passed between the app launcher stub and Chrome. |
| 131 struct AppModeInfo { | 148 struct AppModeInfo { |
| 132 }; | 149 }; |
| 133 static void SetAppModeInfo(const AppModeInfo* info); | 150 static void SetAppModeInfo(const AppModeInfo* info); |
| 134 static const AppModeInfo* AppModeInfo(); | 151 static const AppModeInfo* AppModeInfo(); |
| 135 | 152 |
| 136 // Is the current instance of Chrome running in App mode. | 153 // Is the current instance of Chrome running in App mode. |
| 137 bool IsRunningInAppMode(); | 154 bool IsRunningInAppMode(); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 178 // This method is only public for the sake of tests and shouldn't be called | 195 // This method is only public for the sake of tests and shouldn't be called |
| 179 // externally otherwise. | 196 // externally otherwise. |
| 180 static int MigrateShortcutsInPathInternal(const base::FilePath& chrome_exe, | 197 static int MigrateShortcutsInPathInternal(const base::FilePath& chrome_exe, |
| 181 const base::FilePath& path, | 198 const base::FilePath& path, |
| 182 bool check_dual_mode); | 199 bool check_dual_mode); |
| 183 | 200 |
| 184 // Returns the path to the Start Menu shortcut for the given Chrome. | 201 // Returns the path to the Start Menu shortcut for the given Chrome. |
| 185 static base::FilePath GetStartMenuShortcut(const base::FilePath& chrome_exe); | 202 static base::FilePath GetStartMenuShortcut(const base::FilePath& chrome_exe); |
| 186 #endif // defined(OS_WIN) | 203 #endif // defined(OS_WIN) |
| 187 | 204 |
| 205 #if !defined(OS_WIN) |
| 206 // TODO(calamity): replace with |
| 207 // BrowserDistribution::GetStartMenuShortcutSubfolder() once |
| 208 // BrowserDistribution is cross-platform. |
| 209 // Gets the name of the Chrome Apps menu folder in which to place app |
| 210 // shortcuts. This is needed for Mac and Linux. |
| 211 static base::string16 GetAppShortcutsSubdirName(); |
| 212 #endif |
| 213 |
| 188 // The current default web client application UI state. This is used when | 214 // The current default web client application UI state. This is used when |
| 189 // querying if Chrome is the default browser or the default handler | 215 // querying if Chrome is the default browser or the default handler |
| 190 // application for a url protocol, and communicates the state and result of | 216 // application for a url protocol, and communicates the state and result of |
| 191 // a request. | 217 // a request. |
| 192 enum DefaultWebClientUIState { | 218 enum DefaultWebClientUIState { |
| 193 STATE_PROCESSING, | 219 STATE_PROCESSING, |
| 194 STATE_NOT_DEFAULT, | 220 STATE_NOT_DEFAULT, |
| 195 STATE_IS_DEFAULT, | 221 STATE_IS_DEFAULT, |
| 196 STATE_UNKNOWN | 222 STATE_UNKNOWN |
| 197 }; | 223 }; |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 326 // Set Chrome as the default handler for this protocol. | 352 // Set Chrome as the default handler for this protocol. |
| 327 virtual bool SetAsDefault(bool interactive_permitted) OVERRIDE; | 353 virtual bool SetAsDefault(bool interactive_permitted) OVERRIDE; |
| 328 | 354 |
| 329 std::string protocol_; | 355 std::string protocol_; |
| 330 | 356 |
| 331 DISALLOW_COPY_AND_ASSIGN(DefaultProtocolClientWorker); | 357 DISALLOW_COPY_AND_ASSIGN(DefaultProtocolClientWorker); |
| 332 }; | 358 }; |
| 333 }; | 359 }; |
| 334 | 360 |
| 335 #endif // CHROME_BROWSER_SHELL_INTEGRATION_H_ | 361 #endif // CHROME_BROWSER_SHELL_INTEGRATION_H_ |
| OLD | NEW |