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. 4 5#include "chrome/browser/extensions/api/principals_private/principals_private_api.h" 6 7#include "chrome/browser/browser_process.h" 8#include "chrome/browser/profiles/avatar_menu.h" 9#include "chrome/browser/profiles/profile_window.h" 10#include "chrome/browser/signin/signin_header_helper.h" 11#include "chrome/browser/ui/browser.h" 12#include "chrome/browser/ui/browser_window.h" 13#include "components/signin/core/common/profile_management_switches.h" 14 15namespace extensions { 16 17bool PrincipalsPrivateExtensionFunction::RunSync() { 18 if (!switches::IsEnableAccountConsistency()) { 19 SetError( 20 "Need to enable account consistency to use principalsPrivate API."); 21 return false; 22 } 23 return RunSyncSafe(); 24} 25 26bool PrincipalsPrivateSignOutFunction::RunSyncSafe() { 27 Browser* browser = GetCurrentBrowser(); 28 if (browser) { 29 profiles::LockProfile(browser->profile()); 30 } 31 return true; 32} 33 34bool PrincipalsPrivateShowAvatarBubbleFunction::RunSyncSafe() { 35 Browser* browser = GetCurrentBrowser(); 36 if (browser) { 37 browser->window()->ShowAvatarBubbleFromAvatarButton( 38 BrowserWindow::AVATAR_BUBBLE_MODE_ACCOUNT_MANAGEMENT, 39 signin::ManageAccountsParams()); 40 } 41 return true; 42} 43 44} // namespace extensions 45