• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
15 namespace extensions {
16 
RunSync()17 bool PrincipalsPrivateExtensionFunction::RunSync() {
18   if (!switches::IsNewProfileManagement()) {
19     SetError(
20         "Need to enable new-profile-management to use principalsPrivate API.");
21     return false;
22   }
23   return RunSyncSafe();
24 }
25 
RunSyncSafe()26 bool PrincipalsPrivateSignOutFunction::RunSyncSafe() {
27   Browser* browser = GetCurrentBrowser();
28   if (browser) {
29     profiles::LockProfile(browser->profile());
30   }
31   return true;
32 }
33 
RunSyncSafe()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());
40   }
41   return true;
42 }
43 
44 }  // namespace extensions
45