summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/browser_win.cc
diff options
context:
space:
mode:
authorbenwells@chromium.org <benwells@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-07 03:55:12 +0000
committerbenwells@chromium.org <benwells@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-07 03:55:12 +0000
commit6ec11922a4979aac94ed89570596be61bc5f4afc (patch)
treee0f188b0fb05e0bdf994439b4b029f5dc7935d2e /chrome/browser/ui/browser_win.cc
parent79fa3789444ac34d2978427b153bb829d242af2d (diff)
downloadchromium_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.cc27
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;
+ }
+}