Add new certificateProvider extension API.
[chromium-blink-merge.git] / chrome / browser / ui / bookmarks / bookmark_bubble_sign_in_delegate.cc
blob6400e2d0fec60331a8ca400f8ab5bef4a9e712ac
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chrome/browser/ui/bookmarks/bookmark_bubble_sign_in_delegate.h"
7 #include "chrome/browser/signin/signin_promo.h"
8 #include "chrome/browser/ui/browser.h"
9 #include "chrome/browser/ui/browser_finder.h"
10 #include "chrome/browser/ui/browser_list.h"
11 #include "chrome/browser/ui/browser_window.h"
12 #include "chrome/browser/ui/chrome_pages.h"
13 #include "chrome/browser/ui/tabs/tab_strip_model.h"
15 BookmarkBubbleSignInDelegate::BookmarkBubbleSignInDelegate(Browser* browser)
16 : browser_(browser),
17 profile_(browser->profile()),
18 desktop_type_(browser->host_desktop_type()) {
19 BrowserList::AddObserver(this);
22 BookmarkBubbleSignInDelegate::~BookmarkBubbleSignInDelegate() {
23 BrowserList::RemoveObserver(this);
26 void BookmarkBubbleSignInDelegate::OnSignInLinkClicked() {
27 EnsureBrowser();
28 chrome::ShowBrowserSignin(browser_, signin_metrics::SOURCE_BOOKMARK_BUBBLE);
31 void BookmarkBubbleSignInDelegate::OnBrowserRemoved(Browser* browser) {
32 if (browser == browser_)
33 browser_ = NULL;
36 void BookmarkBubbleSignInDelegate::EnsureBrowser() {
37 if (!browser_) {
38 Profile* original_profile = profile_->GetOriginalProfile();
39 browser_ = chrome::FindLastActiveWithProfile(original_profile,
40 desktop_type_);
41 if (!browser_) {
42 browser_ = new Browser(Browser::CreateParams(original_profile,
43 desktop_type_));