OLD | NEW |
| (Empty) |
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_NTP_NEW_TAB_PAGE_HANDLER_H_ | |
6 #define CHROME_BROWSER_UI_WEBUI_NTP_NEW_TAB_PAGE_HANDLER_H_ | |
7 | |
8 #include <stddef.h> | |
9 | |
10 #include "base/macros.h" | |
11 #include "base/memory/weak_ptr.h" | |
12 #include "base/values.h" | |
13 #include "content/public/browser/web_ui_message_handler.h" | |
14 | |
15 class PrefRegistrySimple; | |
16 class Profile; | |
17 | |
18 namespace user_prefs { | |
19 class PrefRegistrySyncable; | |
20 } | |
21 | |
22 // Handler for general New Tab Page functionality that does not belong in a | |
23 // more specialized handler. | |
24 class NewTabPageHandler : public content::WebUIMessageHandler, | |
25 public base::SupportsWeakPtr<NewTabPageHandler> { | |
26 public: | |
27 NewTabPageHandler(); | |
28 | |
29 // Register NTP per-profile preferences. | |
30 static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); | |
31 | |
32 // Registers values (strings etc.) for the page. | |
33 static void GetLocalizedValues(Profile* profile, | |
34 base::DictionaryValue* values); | |
35 | |
36 private: | |
37 ~NewTabPageHandler() override; | |
38 | |
39 // WebUIMessageHandler implementation. | |
40 void RegisterMessages() override; | |
41 | |
42 // Callback for "pageSelected". | |
43 void HandlePageSelected(const base::ListValue* args); | |
44 | |
45 // Tracks the number of times the user has switches pages (for UMA). | |
46 size_t page_switch_count_; | |
47 | |
48 // The purpose of this enum is to track which page on the NTP is showing. | |
49 // The lower 10 bits of kNtpShownPage are used for the index within the page | |
50 // group, and the rest of the bits are used for the page group ID (defined | |
51 // here). | |
52 static const int kPageIdOffset = 10; | |
53 enum { | |
54 INDEX_MASK = (1 << kPageIdOffset) - 1, | |
55 APPS_PAGE_ID = 2 << kPageIdOffset, | |
56 LAST_PAGE_ID = APPS_PAGE_ID, | |
57 }; | |
58 static const int kHistogramEnumerationMax = | |
59 (LAST_PAGE_ID >> kPageIdOffset) + 1; | |
60 | |
61 DISALLOW_COPY_AND_ASSIGN(NewTabPageHandler); | |
62 }; | |
63 | |
64 #endif // CHROME_BROWSER_UI_WEBUI_NTP_NEW_TAB_PAGE_HANDLER_H_ | |
OLD | NEW |