| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 // Font Settings Extension API implementation. | 5 // Font Settings Extension API implementation. |
| 6 | 6 |
| 7 #include "chrome/browser/extensions/api/font_settings/font_settings_api.h" | 7 #include "chrome/browser/extensions/api/font_settings/font_settings_api.h" |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 pref_name.c_str()); | 167 pref_name.c_str()); |
| 168 CHECK(pref); | 168 CHECK(pref); |
| 169 | 169 |
| 170 std::string font_name; | 170 std::string font_name; |
| 171 if (!pref->GetValue()->GetAsString(&font_name)) { | 171 if (!pref->GetValue()->GetAsString(&font_name)) { |
| 172 NOTREACHED(); | 172 NOTREACHED(); |
| 173 return; | 173 return; |
| 174 } | 174 } |
| 175 font_name = MaybeGetLocalizedFontName(font_name); | 175 font_name = MaybeGetLocalizedFontName(font_name); |
| 176 | 176 |
| 177 ListValue args; | 177 base::ListValue args; |
| 178 DictionaryValue* dict = new DictionaryValue(); | 178 base::DictionaryValue* dict = new base::DictionaryValue(); |
| 179 args.Append(dict); | 179 args.Append(dict); |
| 180 dict->SetString(kFontIdKey, font_name); | 180 dict->SetString(kFontIdKey, font_name); |
| 181 dict->SetString(kGenericFamilyKey, generic_family); | 181 dict->SetString(kGenericFamilyKey, generic_family); |
| 182 dict->SetString(kScriptKey, script); | 182 dict->SetString(kScriptKey, script); |
| 183 | 183 |
| 184 extensions::preference_helpers::DispatchEventToExtensions( | 184 extensions::preference_helpers::DispatchEventToExtensions( |
| 185 profile_, | 185 profile_, |
| 186 kOnFontChanged, | 186 kOnFontChanged, |
| 187 &args, | 187 &args, |
| 188 APIPermission::kFontSettings, | 188 APIPermission::kFontSettings, |
| 189 false, | 189 false, |
| 190 pref_name); | 190 pref_name); |
| 191 } | 191 } |
| 192 | 192 |
| 193 void FontSettingsEventRouter::OnFontPrefChanged( | 193 void FontSettingsEventRouter::OnFontPrefChanged( |
| 194 const std::string& event_name, | 194 const std::string& event_name, |
| 195 const std::string& key, | 195 const std::string& key, |
| 196 const std::string& pref_name) { | 196 const std::string& pref_name) { |
| 197 const PrefService::Preference* pref = registrar_.prefs()->FindPreference( | 197 const PrefService::Preference* pref = registrar_.prefs()->FindPreference( |
| 198 pref_name.c_str()); | 198 pref_name.c_str()); |
| 199 CHECK(pref); | 199 CHECK(pref); |
| 200 | 200 |
| 201 ListValue args; | 201 base::ListValue args; |
| 202 DictionaryValue* dict = new DictionaryValue(); | 202 base::DictionaryValue* dict = new base::DictionaryValue(); |
| 203 args.Append(dict); | 203 args.Append(dict); |
| 204 dict->Set(key, pref->GetValue()->DeepCopy()); | 204 dict->Set(key, pref->GetValue()->DeepCopy()); |
| 205 | 205 |
| 206 extensions::preference_helpers::DispatchEventToExtensions( | 206 extensions::preference_helpers::DispatchEventToExtensions( |
| 207 profile_, | 207 profile_, |
| 208 event_name, | 208 event_name, |
| 209 &args, | 209 &args, |
| 210 APIPermission::kFontSettings, | 210 APIPermission::kFontSettings, |
| 211 false, | 211 false, |
| 212 pref_name); | 212 pref_name); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 268 | 268 |
| 269 // We don't support incognito-specific font prefs, so don't consider them when | 269 // We don't support incognito-specific font prefs, so don't consider them when |
| 270 // getting level of control. | 270 // getting level of control. |
| 271 const bool kIncognito = false; | 271 const bool kIncognito = false; |
| 272 std::string level_of_control = | 272 std::string level_of_control = |
| 273 extensions::preference_helpers::GetLevelOfControl(profile_, | 273 extensions::preference_helpers::GetLevelOfControl(profile_, |
| 274 extension_id(), | 274 extension_id(), |
| 275 pref_path, | 275 pref_path, |
| 276 kIncognito); | 276 kIncognito); |
| 277 | 277 |
| 278 DictionaryValue* result = new DictionaryValue(); | 278 base::DictionaryValue* result = new base::DictionaryValue(); |
| 279 result->SetString(kFontIdKey, font_name); | 279 result->SetString(kFontIdKey, font_name); |
| 280 result->SetString(kLevelOfControlKey, level_of_control); | 280 result->SetString(kLevelOfControlKey, level_of_control); |
| 281 SetResult(result); | 281 SetResult(result); |
| 282 return true; | 282 return true; |
| 283 } | 283 } |
| 284 | 284 |
| 285 bool FontSettingsSetFontFunction::RunImpl() { | 285 bool FontSettingsSetFontFunction::RunImpl() { |
| 286 if (profile_->IsOffTheRecord()) { | 286 if (profile_->IsOffTheRecord()) { |
| 287 error_ = kSetFromIncognitoError; | 287 error_ = kSetFromIncognitoError; |
| 288 return false; | 288 return false; |
| (...skipping 18 matching lines...) Expand all Loading... |
| 307 return true; | 307 return true; |
| 308 } | 308 } |
| 309 | 309 |
| 310 bool FontSettingsGetFontListFunction::RunImpl() { | 310 bool FontSettingsGetFontListFunction::RunImpl() { |
| 311 content::GetFontListAsync( | 311 content::GetFontListAsync( |
| 312 Bind(&FontSettingsGetFontListFunction::FontListHasLoaded, this)); | 312 Bind(&FontSettingsGetFontListFunction::FontListHasLoaded, this)); |
| 313 return true; | 313 return true; |
| 314 } | 314 } |
| 315 | 315 |
| 316 void FontSettingsGetFontListFunction::FontListHasLoaded( | 316 void FontSettingsGetFontListFunction::FontListHasLoaded( |
| 317 scoped_ptr<ListValue> list) { | 317 scoped_ptr<base::ListValue> list) { |
| 318 bool success = CopyFontsToResult(list.get()); | 318 bool success = CopyFontsToResult(list.get()); |
| 319 SendResponse(success); | 319 SendResponse(success); |
| 320 } | 320 } |
| 321 | 321 |
| 322 bool FontSettingsGetFontListFunction::CopyFontsToResult(ListValue* fonts) { | 322 bool FontSettingsGetFontListFunction::CopyFontsToResult( |
| 323 scoped_ptr<ListValue> result(new ListValue()); | 323 base::ListValue* fonts) { |
| 324 for (ListValue::iterator it = fonts->begin(); it != fonts->end(); ++it) { | 324 scoped_ptr<base::ListValue> result(new base::ListValue()); |
| 325 ListValue* font_list_value; | 325 for (base::ListValue::iterator it = fonts->begin(); |
| 326 it != fonts->end(); ++it) { |
| 327 base::ListValue* font_list_value; |
| 326 if (!(*it)->GetAsList(&font_list_value)) { | 328 if (!(*it)->GetAsList(&font_list_value)) { |
| 327 NOTREACHED(); | 329 NOTREACHED(); |
| 328 return false; | 330 return false; |
| 329 } | 331 } |
| 330 | 332 |
| 331 std::string name; | 333 std::string name; |
| 332 if (!font_list_value->GetString(0, &name)) { | 334 if (!font_list_value->GetString(0, &name)) { |
| 333 NOTREACHED(); | 335 NOTREACHED(); |
| 334 return false; | 336 return false; |
| 335 } | 337 } |
| 336 | 338 |
| 337 std::string localized_name; | 339 std::string localized_name; |
| 338 if (!font_list_value->GetString(1, &localized_name)) { | 340 if (!font_list_value->GetString(1, &localized_name)) { |
| 339 NOTREACHED(); | 341 NOTREACHED(); |
| 340 return false; | 342 return false; |
| 341 } | 343 } |
| 342 | 344 |
| 343 DictionaryValue* font_name = new DictionaryValue(); | 345 base::DictionaryValue* font_name = new base::DictionaryValue(); |
| 344 font_name->Set(kFontIdKey, Value::CreateStringValue(name)); | 346 font_name->Set(kFontIdKey, Value::CreateStringValue(name)); |
| 345 font_name->Set(kDisplayNameKey, Value::CreateStringValue(localized_name)); | 347 font_name->Set(kDisplayNameKey, Value::CreateStringValue(localized_name)); |
| 346 result->Append(font_name); | 348 result->Append(font_name); |
| 347 } | 349 } |
| 348 | 350 |
| 349 SetResult(result.release()); | 351 SetResult(result.release()); |
| 350 return true; | 352 return true; |
| 351 } | 353 } |
| 352 | 354 |
| 353 bool ClearFontPrefExtensionFunction::RunImpl() { | 355 bool ClearFontPrefExtensionFunction::RunImpl() { |
| (...skipping 15 matching lines...) Expand all Loading... |
| 369 // We don't support incognito-specific font prefs, so don't consider them when | 371 // We don't support incognito-specific font prefs, so don't consider them when |
| 370 // getting level of control. | 372 // getting level of control. |
| 371 const bool kIncognito = false; | 373 const bool kIncognito = false; |
| 372 | 374 |
| 373 std::string level_of_control = | 375 std::string level_of_control = |
| 374 extensions::preference_helpers::GetLevelOfControl(profile_, | 376 extensions::preference_helpers::GetLevelOfControl(profile_, |
| 375 extension_id(), | 377 extension_id(), |
| 376 GetPrefName(), | 378 GetPrefName(), |
| 377 kIncognito); | 379 kIncognito); |
| 378 | 380 |
| 379 DictionaryValue* result = new DictionaryValue(); | 381 base::DictionaryValue* result = new base::DictionaryValue(); |
| 380 result->Set(GetKey(), pref->GetValue()->DeepCopy()); | 382 result->Set(GetKey(), pref->GetValue()->DeepCopy()); |
| 381 result->SetString(kLevelOfControlKey, level_of_control); | 383 result->SetString(kLevelOfControlKey, level_of_control); |
| 382 SetResult(result); | 384 SetResult(result); |
| 383 return true; | 385 return true; |
| 384 } | 386 } |
| 385 | 387 |
| 386 bool SetFontPrefExtensionFunction::RunImpl() { | 388 bool SetFontPrefExtensionFunction::RunImpl() { |
| 387 if (profile_->IsOffTheRecord()) { | 389 if (profile_->IsOffTheRecord()) { |
| 388 error_ = kSetFromIncognitoError; | 390 error_ = kSetFromIncognitoError; |
| 389 return false; | 391 return false; |
| 390 } | 392 } |
| 391 | 393 |
| 392 DictionaryValue* details = NULL; | 394 base::DictionaryValue* details = NULL; |
| 393 EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(0, &details)); | 395 EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(0, &details)); |
| 394 | 396 |
| 395 Value* value; | 397 Value* value; |
| 396 EXTENSION_FUNCTION_VALIDATE(details->Get(GetKey(), &value)); | 398 EXTENSION_FUNCTION_VALIDATE(details->Get(GetKey(), &value)); |
| 397 | 399 |
| 398 PreferenceAPI::Get(profile_)->SetExtensionControlledPref( | 400 PreferenceAPI::Get(profile_)->SetExtensionControlledPref( |
| 399 extension_id(), | 401 extension_id(), |
| 400 GetPrefName(), | 402 GetPrefName(), |
| 401 kExtensionPrefsScopeRegular, | 403 kExtensionPrefsScopeRegular, |
| 402 value->DeepCopy()); | 404 value->DeepCopy()); |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 457 | 459 |
| 458 const char* FontSettingsSetMinimumFontSizeFunction::GetPrefName() { | 460 const char* FontSettingsSetMinimumFontSizeFunction::GetPrefName() { |
| 459 return prefs::kWebKitMinimumFontSize; | 461 return prefs::kWebKitMinimumFontSize; |
| 460 } | 462 } |
| 461 | 463 |
| 462 const char* FontSettingsSetMinimumFontSizeFunction::GetKey() { | 464 const char* FontSettingsSetMinimumFontSizeFunction::GetKey() { |
| 463 return kPixelSizeKey; | 465 return kPixelSizeKey; |
| 464 } | 466 } |
| 465 | 467 |
| 466 } // namespace extensions | 468 } // namespace extensions |
| OLD | NEW |