| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/dom_ui/tips_handler.h" | 5 #include "chrome/browser/dom_ui/tips_handler.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/callback.h" | 9 #include "base/callback.h" |
| 10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
| 11 #include "base/values.h" | 11 #include "base/values.h" |
| 12 #include "chrome/browser/browser_process.h" | 12 #include "chrome/browser/browser_process.h" |
| 13 #include "chrome/browser/prefs/pref_service.h" |
| 13 #include "chrome/browser/profiles/profile.h" | 14 #include "chrome/browser/profiles/profile.h" |
| 14 #include "chrome/browser/web_resource/web_resource_service.h" | 15 #include "chrome/browser/web_resource/promo_resource_service.h" |
| 15 #include "chrome/common/pref_names.h" | 16 #include "chrome/common/pref_names.h" |
| 16 #include "chrome/common/web_resource/web_resource_unpacker.h" | 17 #include "chrome/common/web_resource/web_resource_unpacker.h" |
| 17 #include "chrome/common/url_constants.h" | 18 #include "chrome/common/url_constants.h" |
| 18 #include "googleurl/src/gurl.h" | 19 #include "googleurl/src/gurl.h" |
| 19 #include "grit/generated_resources.h" | 20 #include "grit/generated_resources.h" |
| 20 #include "ui/base/l10n/l10n_util.h" | 21 #include "ui/base/l10n/l10n_util.h" |
| 21 | 22 |
| 22 WebUIMessageHandler* TipsHandler::Attach(WebUI* web_ui) { | 23 WebUIMessageHandler* TipsHandler::Attach(WebUI* web_ui) { |
| 23 web_ui_ = web_ui; | 24 web_ui_ = web_ui; |
| 24 tips_cache_ = web_ui_->GetProfile()->GetPrefs()-> | 25 tips_cache_ = web_ui_->GetProfile()->GetPrefs()-> |
| 25 GetMutableDictionary(prefs::kNTPWebResourceCache); | 26 GetMutableDictionary(prefs::kNTPPromoResourceCache); |
| 26 return WebUIMessageHandler::Attach(web_ui); | 27 return WebUIMessageHandler::Attach(web_ui); |
| 27 } | 28 } |
| 28 | 29 |
| 29 void TipsHandler::RegisterMessages() { | 30 void TipsHandler::RegisterMessages() { |
| 30 web_ui_->RegisterMessageCallback("getTips", | 31 web_ui_->RegisterMessageCallback("getTips", |
| 31 NewCallback(this, &TipsHandler::HandleGetTips)); | 32 NewCallback(this, &TipsHandler::HandleGetTips)); |
| 32 } | 33 } |
| 33 | 34 |
| 34 void TipsHandler::HandleGetTips(const ListValue* args) { | 35 void TipsHandler::HandleGetTips(const ListValue* args) { |
| 35 // List containing the tips to be displayed. | 36 // List containing the tips to be displayed. |
| (...skipping 15 matching lines...) Expand all Loading... |
| 51 prefs::kNTPTipsResourceServer); | 52 prefs::kNTPTipsResourceServer); |
| 52 std::string locale = g_browser_process->GetApplicationLocale(); | 53 std::string locale = g_browser_process->GetApplicationLocale(); |
| 53 if (!EndsWith(server, locale, false)) { | 54 if (!EndsWith(server, locale, false)) { |
| 54 web_ui_->CallJavascriptFunction(L"tips", list_value); | 55 web_ui_->CallJavascriptFunction(L"tips", list_value); |
| 55 return; | 56 return; |
| 56 } | 57 } |
| 57 } | 58 } |
| 58 | 59 |
| 59 if (tips_cache_ != NULL && !tips_cache_->empty()) { | 60 if (tips_cache_ != NULL && !tips_cache_->empty()) { |
| 60 if (tips_cache_->GetInteger( | 61 if (tips_cache_->GetInteger( |
| 61 WebResourceService::kCurrentTipPrefName, ¤t_tip_index) && | 62 PromoResourceService::kCurrentTipPrefName, ¤t_tip_index) && |
| 62 tips_cache_->GetList( | 63 tips_cache_->GetList( |
| 63 WebResourceService::kTipCachePrefName, &wr_list) && | 64 PromoResourceService::kTipCachePrefName, &wr_list) && |
| 64 wr_list && wr_list->GetSize() > 0) { | 65 wr_list && wr_list->GetSize() > 0) { |
| 65 if (wr_list->GetSize() <= static_cast<size_t>(current_tip_index)) { | 66 if (wr_list->GetSize() <= static_cast<size_t>(current_tip_index)) { |
| 66 // Check to see whether the home page is set to NTP; if not, add tip | 67 // Check to see whether the home page is set to NTP; if not, add tip |
| 67 // to set home page before resetting tip index to 0. | 68 // to set home page before resetting tip index to 0. |
| 68 current_tip_index = 0; | 69 current_tip_index = 0; |
| 69 const PrefService::Preference* pref = | 70 const PrefService::Preference* pref = |
| 70 web_ui_->GetProfile()->GetPrefs()->FindPreference( | 71 web_ui_->GetProfile()->GetPrefs()->FindPreference( |
| 71 prefs::kHomePageIsNewTabPage); | 72 prefs::kHomePageIsNewTabPage); |
| 72 bool value; | 73 bool value; |
| 73 if (pref && !pref->IsManaged() && | 74 if (pref && !pref->IsManaged() && |
| (...skipping 10 matching lines...) Expand all Loading... |
| 84 } | 85 } |
| 85 } | 86 } |
| 86 | 87 |
| 87 void TipsHandler::SendTip(const std::string& tip, const std::string& tip_type, | 88 void TipsHandler::SendTip(const std::string& tip, const std::string& tip_type, |
| 88 int tip_index) { | 89 int tip_index) { |
| 89 // List containing the tips to be displayed. | 90 // List containing the tips to be displayed. |
| 90 ListValue list_value; | 91 ListValue list_value; |
| 91 DictionaryValue* tip_dict = new DictionaryValue(); | 92 DictionaryValue* tip_dict = new DictionaryValue(); |
| 92 tip_dict->SetString(tip_type, tip); | 93 tip_dict->SetString(tip_type, tip); |
| 93 list_value.Append(tip_dict); | 94 list_value.Append(tip_dict); |
| 94 tips_cache_->SetInteger(WebResourceService::kCurrentTipPrefName, | 95 tips_cache_->SetInteger(PromoResourceService::kCurrentTipPrefName, |
| 95 tip_index); | 96 tip_index); |
| 96 // Send list of web resource items back out to the DOM. | 97 // Send list of web resource items back out to the DOM. |
| 97 web_ui_->CallJavascriptFunction(L"tips", list_value); | 98 web_ui_->CallJavascriptFunction(L"tips", list_value); |
| 98 } | 99 } |
| 99 | 100 |
| 100 // static | 101 // static |
| 101 void TipsHandler::RegisterUserPrefs(PrefService* prefs) { | 102 void TipsHandler::RegisterUserPrefs(PrefService* prefs) { |
| 102 prefs->RegisterDictionaryPref(prefs::kNTPWebResourceCache); | 103 prefs->RegisterDictionaryPref(prefs::kNTPPromoResourceCache); |
| 103 prefs->RegisterStringPref(prefs::kNTPWebResourceServer, | 104 prefs->RegisterStringPref(prefs::kNTPPromoResourceServer, |
| 104 WebResourceService::kDefaultWebResourceServer); | 105 PromoResourceService::kDefaultPromoResourceServer); |
| 105 } | 106 } |
| 106 | 107 |
| 107 bool TipsHandler::IsValidURL(const std::wstring& url_string) { | 108 bool TipsHandler::IsValidURL(const std::wstring& url_string) { |
| 108 GURL url(WideToUTF8(url_string)); | 109 GURL url(WideToUTF8(url_string)); |
| 109 return !url.is_empty() && (url.SchemeIs(chrome::kHttpScheme) || | 110 return !url.is_empty() && (url.SchemeIs(chrome::kHttpScheme) || |
| 110 url.SchemeIs(chrome::kHttpsScheme)); | 111 url.SchemeIs(chrome::kHttpsScheme)); |
| 111 } | 112 } |
| OLD | NEW |