1// Copyright 2014 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/options/automatic_settings_reset_handler.h" 6 7#include "base/bind.h" 8#include "base/bind_helpers.h" 9#include "base/time/time.h" 10#include "chrome/browser/prefs/chrome_pref_service_factory.h" 11#include "chrome/browser/profiles/profile.h" 12#include "chrome/common/url_constants.h" 13#include "chrome/grit/generated_resources.h" 14#include "content/public/browser/web_ui.h" 15#include "grit/components_strings.h" 16 17namespace { 18 19void OnDismissedAutomaticSettingsResetBanner(Profile* profile, 20 const base::ListValue* value) { 21 chrome_prefs::ClearResetTime(profile); 22} 23 24} // namespace 25 26namespace options { 27 28AutomaticSettingsResetHandler::AutomaticSettingsResetHandler() {} 29AutomaticSettingsResetHandler::~AutomaticSettingsResetHandler() {} 30 31void AutomaticSettingsResetHandler::InitializePage() { 32 static const int kBannerShowTimeInDays = 5; 33 34 const base::Time then = 35 chrome_prefs::GetResetTime(Profile::FromWebUI(web_ui())); 36 if (!then.is_null()) { 37 const base::Time now = base::Time::Now(); 38 if ((now - then).InDays() < kBannerShowTimeInDays) 39 web_ui()->CallJavascriptFunction("AutomaticSettingsResetBanner.show"); 40 } 41} 42 43void AutomaticSettingsResetHandler::GetLocalizedValues( 44 base::DictionaryValue* localized_strings) { 45 DCHECK(localized_strings); 46 47 static const OptionsStringResource resources[] = { 48 { "automaticSettingsResetBannerResetButtonText", 49 IDS_AUTOMATIC_SETTINGS_RESET_BANNER_RESET_BUTTON_TEXT }, 50 { "automaticSettingsResetBannerText", 51 IDS_AUTOMATIC_SETTINGS_RESET_BANNER_TEXT }, 52 { "automaticSettingsResetLearnMoreUrl", 53 IDS_LEARN_MORE }, 54 }; 55 56 RegisterStrings(localized_strings, resources, arraysize(resources)); 57 localized_strings->SetString( 58 "automaticSettingsResetLearnMoreUrl", 59 chrome::kAutomaticSettingsResetLearnMoreURL); 60} 61 62void AutomaticSettingsResetHandler::RegisterMessages() { 63 web_ui()->RegisterMessageCallback( 64 "onDismissedAutomaticSettingsResetBanner", 65 base::Bind(&OnDismissedAutomaticSettingsResetBanner, 66 Profile::FromWebUI(web_ui()))); 67} 68 69} // namespace options 70