Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3193)

Unified Diff: chrome/installer/util/browser_distribution.h

Issue 15255004: Refactor of BrowserDistribution. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/installer/util/browser_distribution.h
diff --git a/chrome/installer/util/browser_distribution.h b/chrome/installer/util/browser_distribution.h
index d1459ff04fcb6ec0b7e3c8e6d8dd33c44a90701e..778dae1f7b725e9afdfeee338cd5cda4ac3dce42 100644
--- a/chrome/installer/util/browser_distribution.h
+++ b/chrome/installer/util/browser_distribution.h
@@ -29,6 +29,23 @@ class BrowserDistribution {
NUM_TYPES
};
+ enum ShortcutEnum {
+ SHORTCUT_CHROME,
+ SHORTCUT_ALTERNATE_CHROME,
+ SHORTCUT_APP_LAUNCHER
gab 2013/05/18 23:57:22 I wouldn't add the SHORTCUT_APP_LAUNCHER entry jus
calamity 2013/05/24 02:03:11 Implemented it because chrome_app_host_operations.
+ };
+
+ enum SubfolderEnum {
+ SUBFOLDER_CHROME,
+ SUBFOLDER_APPS
gab 2013/05/18 23:57:22 Same for SUBFOLDER_APPS... don't add it yet if not
calamity 2013/05/24 02:03:11 Done.
+ };
+
+ struct ShortcutInfo {
+ string16 name;
+ string16 icon_file;
+ int icon_index;
+ };
+
virtual ~BrowserDistribution() {}
static BrowserDistribution* GetDistribution();
@@ -53,10 +70,15 @@ class BrowserDistribution {
// at run-time.
virtual string16 GetBaseAppName();
- // Returns the localized name of the program.
- virtual string16 GetAppShortCutName();
+ // Returns the name this distribution should use in logs.
+ virtual string16 GetDisplayName();
gab 2013/05/18 23:57:22 I hadn't realized the need sometimes to only get t
huangs 2013/05/21 21:35:41 The old code uses GetAppShortCutName() for non-sho
gab 2013/05/21 21:46:45 I think GetDisplayName() is appropriate for these.
calamity 2013/05/24 02:03:11 Changed the comment. Is there anything else to do
- virtual string16 GetAlternateApplicationName();
+ // Returns the ShortcutInfo for this distribution.
+ virtual ShortcutInfo GetShortcutInfo(ShortcutEnum shortcut_enum);
+
+ // Returns the name of the subfolder in the Start Menu that this distribution
+ // should create shortcuts in.
+ virtual string16 GetStartMenuShortcutSubfolder(SubfolderEnum subfolder_enum);
// Returns the unsuffixed appid of this program.
// The AppUserModelId is a property of Windows programs.
@@ -96,13 +118,6 @@ class BrowserDistribution {
virtual bool CanCreateDesktopShortcuts();
- // Returns the executable filename (not path) that contains the product icon.
- virtual string16 GetIconFilename();
-
- // Returns the index of the icon for the product, inside the file specified by
- // GetIconFilename().
- virtual int GetIconIndex();
-
virtual bool GetChromeChannel(string16* channel);
// Returns true if this distribution includes a DelegateExecute verb handler,
@@ -126,6 +141,20 @@ class BrowserDistribution {
protected:
explicit BrowserDistribution(Type type);
+ virtual string16 GetAppShortCutName();
gab 2013/05/18 23:57:22 I think we should get rid of GetAppShortCutName(),
calamity 2013/05/24 02:03:11 Done.
+ virtual int GetIconIndex();
+ virtual string16 GetIconFilename();
+ virtual string16 GetAlternateApplicationName();
+
+ // Icons are added to the resources of the DLL using icon names. The icon
+ // index for the app list icon is named IDR_X_APP_LIST or (for official
+ // builds) IDR_X_APP_LIST_SXS for Chrome Canary. Creating shortcuts needs to
+ // specify a resource index, which are different to icon names. They are 0
+ // based and contiguous. As Google Chrome builds have extra icons the icon for
+ // Google Chrome builds need to be higher. Unfortunately these indexes are not
+ // in any generated header file.
+ virtual int GetAppListIconIndex();
gab 2013/05/18 23:57:22 Why implement this in this CL if it not implementi
calamity 2013/05/24 02:03:11 Done.
calamity 2013/05/24 02:03:11 Done.
+
template<class DistributionClass>
static BrowserDistribution* GetOrCreateBrowserDistribution(
BrowserDistribution** dist);

Powered by Google App Engine
This is Rietveld 408576698