Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(446)

Side by Side Diff: chrome/browser/ui/webui/ntp/new_tab_page_handler.cc

Issue 1757673002: NTP4/apps page: fix page stickiness (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@remove-promo-cpp
Patch Set: todookie Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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 #include "chrome/browser/ui/webui/ntp/new_tab_page_handler.h"
6
7 #include "base/bind.h"
8 #include "base/bind_helpers.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "chrome/browser/browser_process.h"
11 #include "chrome/browser/profiles/profile.h"
12 #include "chrome/browser/ui/webui/ntp/new_tab_ui.h"
13 #include "chrome/common/pref_names.h"
14 #include "components/browser_sync/browser/profile_sync_service.h"
15 #include "components/pref_registry/pref_registry_syncable.h"
16 #include "components/prefs/pref_service.h"
17 #include "content/public/browser/web_ui.h"
18
19 NewTabPageHandler::NewTabPageHandler() : page_switch_count_(0) {
20 }
21
22 NewTabPageHandler::~NewTabPageHandler() {}
23
24 void NewTabPageHandler::RegisterMessages() {
25 web_ui()->RegisterMessageCallback("pageSelected",
26 base::Bind(&NewTabPageHandler::HandlePageSelected,
27 base::Unretained(this)));
28 }
29
30 void NewTabPageHandler::HandlePageSelected(const base::ListValue* args) {
31 page_switch_count_++;
32
33 double page_id_double;
34 CHECK(args->GetDouble(0, &page_id_double));
35 int page_id = static_cast<int>(page_id_double);
36
37 double index_double;
38 CHECK(args->GetDouble(1, &index_double));
39 int index = static_cast<int>(index_double);
40
41 PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs();
42 prefs->SetInteger(prefs::kNtpShownPage, page_id | index);
43 }
44
45 // static
46 void NewTabPageHandler::RegisterProfilePrefs(
47 user_prefs::PrefRegistrySyncable* registry) {
48 // TODO(estade): should be syncable.
49 registry->RegisterIntegerPref(prefs::kNtpShownPage, APPS_PAGE_ID);
50 }
51
52 // static
53 void NewTabPageHandler::GetLocalizedValues(Profile* profile,
54 base::DictionaryValue* values) {
55 values->SetInteger("apps_page_id", APPS_PAGE_ID);
56
57 PrefService* prefs = profile->GetPrefs();
58 int shown_page = prefs->GetInteger(prefs::kNtpShownPage);
59 values->SetInteger("shown_page_type", shown_page & ~INDEX_MASK);
60 values->SetInteger("shown_page_index", shown_page & INDEX_MASK);
61 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/ntp/new_tab_page_handler.h ('k') | chrome/browser/ui/webui/ntp/new_tab_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698