diff options
author | xiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-17 08:39:51 +0000 |
---|---|---|
committer | xiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-17 08:39:51 +0000 |
commit | ed54318708245efdfcf7454d3aaebfd419f4448c (patch) | |
tree | 8e233da9e3ca2c2cb8b57f04d75dde3d1cf1f704 /chrome/browser/shell_integration.h | |
parent | 80cf356e08919b18f502f20864d6f6b72b48eb60 (diff) | |
download | chromium_src-ed54318708245efdfcf7454d3aaebfd419f4448c.zip chromium_src-ed54318708245efdfcf7454d3aaebfd419f4448c.tar.gz chromium_src-ed54318708245efdfcf7454d3aaebfd419f4448c.tar.bz2 |
Implement web app shortcuts natively per issue 25528
- Implement a CreateApplicationShortcutView similar to the current Gears-based one;
- Add a few profile prefs to persist user's last checked shortcut locations
- Implement a web_app::CreateShortcut that stores icon under "<profile>/Web Applications"
in a similar layout as gears (i.e. <host>/<scheme_port>/<web_app_title>.ico) and calls
file_util code to creates shortcut on Windows;
- Add Win7 taskbar pin/unpin support function to file_util;
- Update TabContents to replace gears with new code;
Note:
- Gears dialog is modaless but this one is a modal dialog.
- Gear's icon store is not migrated because gears icons
could still be used by shortcuts created by gears and
thus we could not delete them even after migration. And we
are not using the local ico files in the dialog even if
they exists.
- New CreateApplicationShortcutView is included when
TOOLKIT_VIEW is defined. However on platforms other
than Windows, the actual CreateShortCut code is not
implemented. Right now it calls ShellIntegration's
CreateDesktopShort if OS_LINUX is defined and
NOTREACHED() for other platforms.
BUG=25528
TEST=Verify the new UI provides the same functionality as gears under XP/Vista and support pinning on Win 7.
Review URL: http://codereview.chromium.org/372012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32165 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/shell_integration.h')
-rw-r--r-- | chrome/browser/shell_integration.h | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/chrome/browser/shell_integration.h b/chrome/browser/shell_integration.h index 7558121..9e7b8bb 100644 --- a/chrome/browser/shell_integration.h +++ b/chrome/browser/shell_integration.h @@ -11,10 +11,7 @@ #include "base/ref_counted.h" #include "base/string16.h" #include "googleurl/src/gurl.h" - -#if defined(OS_LINUX) #include "third_party/skia/include/core/SkBitmap.h" -#endif class FilePath; @@ -44,6 +41,22 @@ class ShellIntegration { // user. This method is very fast so it can be invoked in the UI thread. static bool IsFirefoxDefaultBrowser(); + struct ShortcutInfo { + GURL url; + string16 title; + string16 description; + SkBitmap favicon; + + bool create_on_desktop; + bool create_in_applications_menu; + + // 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 + // Mac dock or the gnome/kde application launcher. However, those are not + // implemented yet. + bool create_in_quick_launch_bar; + }; + #if defined(OS_LINUX) // Returns filename for .desktop file based on |url|, sanitized for security. static FilePath GetDesktopShortcutFilename(const GURL& url); @@ -55,15 +68,6 @@ class ShellIntegration { const std::string& template_contents, const GURL& url, const string16& title, const std::string& icon_name); - struct ShortcutInfo { - GURL url; - string16 title; - SkBitmap favicon; - - bool create_on_desktop; - bool create_in_applications_menu; - }; - // Creates a desktop shortcut. It is not guaranteed to exist immediately after // returning from this function, because actual file operation is done on the // file thread. |