| 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 #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 } | |
| OLD | NEW |