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_FLAGS_UI_H_
6#define CHROME_BROWSER_UI_WEBUI_FLAGS_UI_H_
7
8#include "base/memory/weak_ptr.h"
9#include "content/public/browser/web_ui_controller.h"
10#include "ui/base/layout.h"
11
12#if defined(OS_CHROMEOS)
13#include "chrome/browser/chromeos/settings/device_settings_service.h"
14#endif
15
16class PrefRegistrySimple;
17class Profile;
18
19namespace base {
20class RefCountedMemory;
21}
22
23namespace user_prefs {
24class PrefRegistrySyncable;
25}
26
27class FlagsUI : public content::WebUIController {
28 public:
29  explicit FlagsUI(content::WebUI* web_ui);
30  virtual ~FlagsUI();
31
32  static base::RefCountedMemory* GetFaviconResourceBytes(
33      ui::ScaleFactor scale_factor);
34  static void RegisterPrefs(PrefRegistrySimple* registry);
35#if defined(OS_CHROMEOS)
36  static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
37#endif
38
39 private:
40  base::WeakPtrFactory<FlagsUI> weak_factory_;
41
42  DISALLOW_COPY_AND_ASSIGN(FlagsUI);
43};
44
45#endif  // CHROME_BROWSER_UI_WEBUI_FLAGS_UI_H_
46