1ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 2ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// found in the LICENSE file. 4ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 5ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#include "chrome/browser/ui/bookmarks/bookmark_bubble_sign_in_delegate.h" 6ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 7a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "chrome/browser/signin/signin_promo.h" 8ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#include "chrome/browser/ui/browser.h" 9ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#include "chrome/browser/ui/browser_finder.h" 10ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#include "chrome/browser/ui/browser_list.h" 11ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#include "chrome/browser/ui/browser_window.h" 12ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#include "chrome/browser/ui/chrome_pages.h" 13ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#include "chrome/browser/ui/tabs/tab_strip_model.h" 14ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 15ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben MurdochBookmarkBubbleSignInDelegate::BookmarkBubbleSignInDelegate(Browser* browser) 16ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch : browser_(browser), 17ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch profile_(browser->profile()), 18ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch desktop_type_(browser->host_desktop_type()) { 19ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch BrowserList::AddObserver(this); 20ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} 21ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 22ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben MurdochBookmarkBubbleSignInDelegate::~BookmarkBubbleSignInDelegate() { 23ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch BrowserList::RemoveObserver(this); 24ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} 25ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 26ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochvoid BookmarkBubbleSignInDelegate::OnSignInLinkClicked() { 27ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch EnsureBrowser(); 28a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) chrome::ShowBrowserSignin(browser_, signin::SOURCE_BOOKMARK_BUBBLE); 29ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} 30ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 31ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochvoid BookmarkBubbleSignInDelegate::OnBrowserRemoved(Browser* browser) { 32ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch if (browser == browser_) 33ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch browser_ = NULL; 34ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} 35ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 36ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochvoid BookmarkBubbleSignInDelegate::EnsureBrowser() { 37ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch if (!browser_) { 38ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch Profile* original_profile = profile_->GetOriginalProfile(); 39ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch browser_ = chrome::FindLastActiveWithProfile(original_profile, 40ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch desktop_type_); 41ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch if (!browser_) { 42ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch browser_ = new Browser(Browser::CreateParams(original_profile, 43ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch desktop_type_)); 44ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch } 45ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch } 46ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} 47