1// Copyright (c) 2012 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_SIGNIN_INTERNALS_UI_H_
6#define CHROME_BROWSER_UI_WEBUI_SIGNIN_INTERNALS_UI_H_
7
8#include "base/basictypes.h"
9#include "base/compiler_specific.h"
10#include "base/values.h"
11#include "components/signin/core/browser/about_signin_internals.h"
12#include "content/public/browser/web_ui_controller.h"
13
14// The implementation for the chrome://signin-internals page.
15class SignInInternalsUI : public content::WebUIController,
16                          public AboutSigninInternals::Observer {
17 public:
18  explicit SignInInternalsUI(content::WebUI* web_ui);
19  virtual ~SignInInternalsUI();
20
21
22  // content::WebUIController implementation.
23  virtual bool OverrideHandleWebUIMessage(const GURL& source_url,
24                                          const std::string& name,
25                                          const base::ListValue& args) OVERRIDE;
26
27  // AboutSigninInternals::Observer::OnSigninStateChanged implementation.
28  virtual void OnSigninStateChanged(const base::DictionaryValue* info) OVERRIDE;
29
30  // Notification that the cookie accounts are ready to be displayed.
31  virtual void OnCookieAccountsFetched(
32      const base::DictionaryValue* info) OVERRIDE;
33
34 private:
35  DISALLOW_COPY_AND_ASSIGN(SignInInternalsUI);
36};
37
38#endif  // CHROME_BROWSER_UI_WEBUI_SIGNIN_INTERNALS_UI_H_
39