1// Copyright (c) 2011 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#ifndef CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_ACCOUNTS_OPTIONS_HANDLER_H_
6#define CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_ACCOUNTS_OPTIONS_HANDLER_H_
7#pragma once
8
9#include "chrome/browser/ui/webui/options/chromeos/cros_options_page_ui_handler.h"
10
11class OptionsManagedBannerHandler;
12
13namespace chromeos {
14
15class UserCrosSettingsProvider;
16
17// ChromeOS accounts options page handler.
18class AccountsOptionsHandler : public CrosOptionsPageUIHandler {
19 public:
20  AccountsOptionsHandler();
21  virtual ~AccountsOptionsHandler();
22
23  // WebUIMessageHandler implementation.
24  virtual void RegisterMessages();
25
26  // OptionsPageUIHandler implementation.
27  virtual void GetLocalizedValues(DictionaryValue* localized_strings);
28  virtual void Initialize();
29
30 private:
31  UserCrosSettingsProvider* users_settings() const;
32
33  // Javascript callbacks to whitelist/unwhitelist user.
34  void WhitelistUser(const ListValue* args);
35  void UnwhitelistUser(const ListValue* args);
36
37  // Javascript callback to fetch known user pictures.
38  void FetchUserPictures(const ListValue* args);
39
40  // Javascript callback to auto add existing users to white list.
41  void WhitelistExistingUsers(const ListValue* args);
42
43  scoped_ptr<OptionsManagedBannerHandler> banner_handler_;
44
45  DISALLOW_COPY_AND_ASSIGN(AccountsOptionsHandler);
46};
47
48}  // namespace chromeos
49
50#endif  // CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_ACCOUNTS_OPTIONS_HANDLER_H_
51