OLD | NEW |
---|---|
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/options/core_options_handler.h" | 5 #include "chrome/browser/dom_ui/options/core_options_handler.h" |
6 | 6 |
7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
8 #include "base/string16.h" | 8 #include "base/string16.h" |
9 #include "base/string_number_conversions.h" | 9 #include "base/string_number_conversions.h" |
10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
128 dom_ui_->RegisterMessageCallback("coreOptionsInitialize", | 128 dom_ui_->RegisterMessageCallback("coreOptionsInitialize", |
129 NewCallback(this, &CoreOptionsHandler::HandleInitialize)); | 129 NewCallback(this, &CoreOptionsHandler::HandleInitialize)); |
130 dom_ui_->RegisterMessageCallback("fetchPrefs", | 130 dom_ui_->RegisterMessageCallback("fetchPrefs", |
131 NewCallback(this, &CoreOptionsHandler::HandleFetchPrefs)); | 131 NewCallback(this, &CoreOptionsHandler::HandleFetchPrefs)); |
132 dom_ui_->RegisterMessageCallback("observePrefs", | 132 dom_ui_->RegisterMessageCallback("observePrefs", |
133 NewCallback(this, &CoreOptionsHandler::HandleObservePrefs)); | 133 NewCallback(this, &CoreOptionsHandler::HandleObservePrefs)); |
134 dom_ui_->RegisterMessageCallback("setBooleanPref", | 134 dom_ui_->RegisterMessageCallback("setBooleanPref", |
135 NewCallback(this, &CoreOptionsHandler::HandleSetBooleanPref)); | 135 NewCallback(this, &CoreOptionsHandler::HandleSetBooleanPref)); |
136 dom_ui_->RegisterMessageCallback("setIntegerPref", | 136 dom_ui_->RegisterMessageCallback("setIntegerPref", |
137 NewCallback(this, &CoreOptionsHandler::HandleSetIntegerPref)); | 137 NewCallback(this, &CoreOptionsHandler::HandleSetIntegerPref)); |
138 dom_ui_->RegisterMessageCallback("setRealPref", | |
139 NewCallback(this, &CoreOptionsHandler::HandleSetRealPref)); | |
138 dom_ui_->RegisterMessageCallback("setStringPref", | 140 dom_ui_->RegisterMessageCallback("setStringPref", |
139 NewCallback(this, &CoreOptionsHandler::HandleSetStringPref)); | 141 NewCallback(this, &CoreOptionsHandler::HandleSetStringPref)); |
140 dom_ui_->RegisterMessageCallback("setObjectPref", | 142 dom_ui_->RegisterMessageCallback("setObjectPref", |
141 NewCallback(this, &CoreOptionsHandler::HandleSetObjectPref)); | 143 NewCallback(this, &CoreOptionsHandler::HandleSetObjectPref)); |
142 dom_ui_->RegisterMessageCallback("clearPref", | 144 dom_ui_->RegisterMessageCallback("clearPref", |
143 NewCallback(this, &CoreOptionsHandler::HandleClearPref)); | 145 NewCallback(this, &CoreOptionsHandler::HandleClearPref)); |
144 dom_ui_->RegisterMessageCallback("coreOptionsUserMetricsAction", | 146 dom_ui_->RegisterMessageCallback("coreOptionsUserMetricsAction", |
145 NewCallback(this, &CoreOptionsHandler::HandleUserMetricsAction)); | 147 NewCallback(this, &CoreOptionsHandler::HandleUserMetricsAction)); |
146 } | 148 } |
147 | 149 |
(...skipping 26 matching lines...) Expand all Loading... | |
174 void CoreOptionsHandler::SetPref(const std::string& pref_name, | 176 void CoreOptionsHandler::SetPref(const std::string& pref_name, |
175 Value::ValueType pref_type, | 177 Value::ValueType pref_type, |
176 const std::string& value_string, | 178 const std::string& value_string, |
177 const std::string& metric) { | 179 const std::string& metric) { |
178 PrefService* pref_service = dom_ui_->GetProfile()->GetPrefs(); | 180 PrefService* pref_service = dom_ui_->GetProfile()->GetPrefs(); |
179 | 181 |
180 switch (pref_type) { | 182 switch (pref_type) { |
181 case Value::TYPE_BOOLEAN: | 183 case Value::TYPE_BOOLEAN: |
182 pref_service->SetBoolean(pref_name.c_str(), value_string == "true"); | 184 pref_service->SetBoolean(pref_name.c_str(), value_string == "true"); |
183 break; | 185 break; |
186 | |
184 case Value::TYPE_INTEGER: | 187 case Value::TYPE_INTEGER: |
185 int int_value; | 188 int int_value; |
186 if (base::StringToInt(value_string, &int_value)) | 189 CHECK(base::StringToInt(value_string, &int_value)); |
stuartmorgan
2011/01/12 22:59:41
We're going to crash the whole browser for end use
Evan Stade
2011/01/12 23:19:20
yes. We have complete control over the options pag
| |
187 pref_service->SetInteger(pref_name.c_str(), int_value); | 190 pref_service->SetInteger(pref_name.c_str(), int_value); |
191 | |
188 break; | 192 break; |
193 | |
194 case Value::TYPE_REAL: | |
195 double double_value; | |
196 CHECK(base::StringToDouble(value_string, &double_value)); | |
197 pref_service->SetReal(pref_name.c_str(), double_value); | |
198 | |
199 break; | |
200 | |
189 case Value::TYPE_STRING: | 201 case Value::TYPE_STRING: |
190 pref_service->SetString(pref_name.c_str(), value_string); | 202 pref_service->SetString(pref_name.c_str(), value_string); |
191 break; | 203 break; |
204 | |
192 default: | 205 default: |
193 NOTREACHED(); | 206 NOTREACHED(); |
194 return; | 207 return; |
195 } | 208 } |
196 | 209 |
197 pref_service->ScheduleSavePersistentPrefs(); | 210 pref_service->ScheduleSavePersistentPrefs(); |
198 ProcessUserMetric(pref_type, value_string, metric); | 211 ProcessUserMetric(pref_type, value_string, metric); |
199 } | 212 } |
200 | 213 |
201 void CoreOptionsHandler::ClearPref(const std::string& pref_name, | 214 void CoreOptionsHandler::ClearPref(const std::string& pref_name, |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
292 } | 305 } |
293 | 306 |
294 void CoreOptionsHandler::HandleSetBooleanPref(const ListValue* args) { | 307 void CoreOptionsHandler::HandleSetBooleanPref(const ListValue* args) { |
295 HandleSetPref(args, Value::TYPE_BOOLEAN); | 308 HandleSetPref(args, Value::TYPE_BOOLEAN); |
296 } | 309 } |
297 | 310 |
298 void CoreOptionsHandler::HandleSetIntegerPref(const ListValue* args) { | 311 void CoreOptionsHandler::HandleSetIntegerPref(const ListValue* args) { |
299 HandleSetPref(args, Value::TYPE_INTEGER); | 312 HandleSetPref(args, Value::TYPE_INTEGER); |
300 } | 313 } |
301 | 314 |
315 void CoreOptionsHandler::HandleSetRealPref(const ListValue* args) { | |
316 HandleSetPref(args, Value::TYPE_REAL); | |
317 } | |
318 | |
302 void CoreOptionsHandler::HandleSetStringPref(const ListValue* args) { | 319 void CoreOptionsHandler::HandleSetStringPref(const ListValue* args) { |
303 HandleSetPref(args, Value::TYPE_STRING); | 320 HandleSetPref(args, Value::TYPE_STRING); |
304 } | 321 } |
305 | 322 |
306 void CoreOptionsHandler::HandleSetObjectPref(const ListValue* args) { | 323 void CoreOptionsHandler::HandleSetObjectPref(const ListValue* args) { |
307 HandleSetPref(args, Value::TYPE_NULL); | 324 HandleSetPref(args, Value::TYPE_NULL); |
308 } | 325 } |
309 | 326 |
310 void CoreOptionsHandler::HandleSetPref(const ListValue* args, | 327 void CoreOptionsHandler::HandleSetPref(const ListValue* args, |
311 Value::ValueType type) { | 328 Value::ValueType type) { |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
360 | 377 |
361 DictionaryValue* dict = new DictionaryValue; | 378 DictionaryValue* dict = new DictionaryValue; |
362 dict->Set("value", pref->GetValue()->DeepCopy()); | 379 dict->Set("value", pref->GetValue()->DeepCopy()); |
363 dict->SetBoolean("managed", pref->IsManaged()); | 380 dict->SetBoolean("managed", pref->IsManaged()); |
364 result_value.Append(dict); | 381 result_value.Append(dict); |
365 | 382 |
366 dom_ui_->CallJavascriptFunction(callback_function, result_value); | 383 dom_ui_->CallJavascriptFunction(callback_function, result_value); |
367 } | 384 } |
368 } | 385 } |
369 } | 386 } |
OLD | NEW |