diff options
author | benwells@chromium.org <benwells@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-07 03:55:12 +0000 |
---|---|---|
committer | benwells@chromium.org <benwells@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-07 03:55:12 +0000 |
commit | 6ec11922a4979aac94ed89570596be61bc5f4afc (patch) | |
tree | e0f188b0fb05e0bdf994439b4b029f5dc7935d2e /chrome/browser/ui/browser_win.cc | |
parent | 79fa3789444ac34d2978427b153bb829d242af2d (diff) | |
download | chromium_src-6ec11922a4979aac94ed89570596be61bc5f4afc.zip chromium_src-6ec11922a4979aac94ed89570596be61bc5f4afc.tar.gz chromium_src-6ec11922a4979aac94ed89570596be61bc5f4afc.tar.bz2 |
Add chrome support for pinning tiles to the start screen on Windows 8
This change complements another change to metro_driver.dll
BUG=129598
TEST=Manual testing
Review URL: https://chromiumcodereview.appspot.com/10441113
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140946 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ui/browser_win.cc')
-rw-r--r-- | chrome/browser/ui/browser_win.cc | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/chrome/browser/ui/browser_win.cc b/chrome/browser/ui/browser_win.cc index c4181a8..badf300 100644 --- a/chrome/browser/ui/browser_win.cc +++ b/chrome/browser/ui/browser_win.cc @@ -4,9 +4,12 @@ #include "chrome/browser/ui/browser.h" +#include "base/utf_string_conversions.h" #include "base/win/metro.h" +#include "chrome/browser/bookmarks/bookmark_utils.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser_finder.h" +#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" namespace { @@ -49,3 +52,27 @@ void Browser::NewIncognitoWindow() { } NewEmptyWindow(profile_->GetOffTheRecordProfile()); } + +void Browser::PinCurrentPageToStartScreen() { + HMODULE metro_module = base::win::GetMetroModule(); + if (metro_module) { + GURL url; + string16 title; + TabContentsWrapper* tab = GetSelectedTabContentsWrapper(); + bookmark_utils::GetURLAndTitleToBookmark(tab->web_contents(), &url, &title); + + typedef BOOL (*MetroPinUrlToStartScreen)(string16, string16); + MetroPinUrlToStartScreen metro_pin_url_to_start_screen = + reinterpret_cast<MetroPinUrlToStartScreen>( + ::GetProcAddress(metro_module, "MetroPinUrlToStartScreen")); + if (!metro_pin_url_to_start_screen) { + NOTREACHED(); + return; + } + + VLOG(1) << __FUNCTION__ << " calling pin with title: " << title + << " and url " << UTF8ToUTF16(url.spec()); + metro_pin_url_to_start_screen(title, UTF8ToUTF16(url.spec())); + return; + } +} |