Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / chrome / browser / extensions / api / principals_private / principals_private_api.cc
blob491f4195f06ebf5f6156416dd4163224be91179c
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/extensions/api/principals_private/principals_private_api.h"
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/ui/browser.h"
11 #include "chrome/browser/ui/browser_window.h"
12 #include "components/signin/core/browser/signin_header_helper.h"
13 #include "components/signin/core/common/profile_management_switches.h"
15 namespace extensions {
17 bool PrincipalsPrivateExtensionFunction::RunSync() {
18 if (!switches::IsEnableAccountConsistency()) {
19 SetError(
20 "Need to enable account consistency to use principalsPrivate API.");
21 return false;
23 return RunSyncSafe();
26 bool PrincipalsPrivateSignOutFunction::RunSyncSafe() {
27 Browser* browser = GetCurrentBrowser();
28 if (browser) {
29 profiles::LockProfile(browser->profile());
31 return true;
34 bool PrincipalsPrivateShowAvatarBubbleFunction::RunSyncSafe() {
35 Browser* browser = GetCurrentBrowser();
36 if (browser) {
37 browser->window()->ShowAvatarBubbleFromAvatarButton(
38 BrowserWindow::AVATAR_BUBBLE_MODE_ACCOUNT_MANAGEMENT,
39 signin::ManageAccountsParams());
41 return true;
44 } // namespace extensions