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/extensions/extension_prefs.h" | 5 #include "chrome/browser/extensions/extension_prefs.h" |
6 | 6 |
7 #include "base/string_number_conversions.h" | 7 #include "base/string_number_conversions.h" |
8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
10 #include "chrome/browser/extensions/extension_pref_store.h" | 10 #include "chrome/browser/extensions/extension_pref_store.h" |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
86 | 86 |
87 // A preference set by the web store to indicate login information for | 87 // A preference set by the web store to indicate login information for |
88 // purchased apps. | 88 // purchased apps. |
89 const char kWebStoreLogin[] = "extensions.webstore_login"; | 89 const char kWebStoreLogin[] = "extensions.webstore_login"; |
90 | 90 |
91 // A preference set by the the NTP to persist the desired launch container type | 91 // A preference set by the the NTP to persist the desired launch container type |
92 // used for apps. | 92 // used for apps. |
93 const char kPrefLaunchType[] = "launchType"; | 93 const char kPrefLaunchType[] = "launchType"; |
94 | 94 |
95 // A preference determining the order of which the apps appear on the NTP. | 95 // A preference determining the order of which the apps appear on the NTP. |
96 const char kPrefAppLaunchIndex[] = "app_launcher_index"; | 96 const char kPrefAppLaunchIndexDepreciated[] = "app_launcher_index"; |
Mihai Parparita -not on Chrome
2011/10/07 23:15:12
Typo (use "Deprecated" instead of "Depreciated").
csharp
2011/11/11 18:13:32
Done.
| |
97 const char kPrefAppLaunchIndex[] = "app_launcher_index_str"; | |
97 | 98 |
98 // A preference determining the page on which an app appears in the NTP. | 99 // A preference determining the page on which an app appears in the NTP. |
99 const char kPrefPageIndex[] = "page_index"; | 100 const char kPrefPageIndexDepreciated[] = "page_index"; |
101 const char kPrefPageIndex[] = "page_index_str"; | |
100 | 102 |
101 // A preference specifying if the user dragged the app on the NTP. | 103 // A preference specifying if the user dragged the app on the NTP. |
102 const char kPrefUserDraggedApp[] = "user_dragged_app_ntp"; | 104 const char kPrefUserDraggedApp[] = "user_dragged_app_ntp"; |
103 | 105 |
104 // A preference for storing extra data sent in update checks for an extension. | 106 // A preference for storing extra data sent in update checks for an extension. |
105 const char kUpdateUrlData[] = "update_url_data"; | 107 const char kUpdateUrlData[] = "update_url_data"; |
106 | 108 |
107 // Whether the browser action is visible in the toolbar. | 109 // Whether the browser action is visible in the toolbar. |
108 const char kBrowserActionVisible[] = "browser_action_visible"; | 110 const char kBrowserActionVisible[] = "browser_action_visible"; |
109 | 111 |
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
391 const DictionaryValue* ext = GetExtensionPref(extension_id); | 393 const DictionaryValue* ext = GetExtensionPref(extension_id); |
392 ListValue* out = NULL; | 394 ListValue* out = NULL; |
393 if (!ext || !ext->GetList(pref_key, &out)) | 395 if (!ext || !ext->GetList(pref_key, &out)) |
394 return false; | 396 return false; |
395 if (out_value) | 397 if (out_value) |
396 *out_value = out; | 398 *out_value = out; |
397 | 399 |
398 return true; | 400 return true; |
399 } | 401 } |
400 | 402 |
403 bool ExtensionPrefs::ReadExtensionPrefString( | |
404 const std::string& extension_id, const std::string& pref_key, | |
405 std::string* out_value) { | |
406 const DictionaryValue* ext = GetExtensionPref(extension_id); | |
407 if (!ext || !ext->GetString(pref_key, out_value)) | |
408 return false; | |
409 | |
410 return true; | |
411 } | |
412 | |
401 bool ExtensionPrefs::ReadExtensionPrefURLPatternSet( | 413 bool ExtensionPrefs::ReadExtensionPrefURLPatternSet( |
402 const std::string& extension_id, | 414 const std::string& extension_id, |
403 const std::string& pref_key, | 415 const std::string& pref_key, |
404 URLPatternSet* result, | 416 URLPatternSet* result, |
405 int valid_schemes) { | 417 int valid_schemes) { |
406 const ListValue* value = NULL; | 418 const ListValue* value = NULL; |
407 if (!ReadExtensionPrefList(extension_id, pref_key, &value)) | 419 if (!ReadExtensionPrefList(extension_id, pref_key, &value)) |
408 return false; | 420 return false; |
409 | 421 |
410 result->ClearPatterns(); | 422 result->ClearPatterns(); |
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
751 if (ext->GetList(kPrefOldGrantedHosts, &hosts)) { | 763 if (ext->GetList(kPrefOldGrantedHosts, &hosts)) { |
752 UpdateExtensionPref( | 764 UpdateExtensionPref( |
753 *ext_id, explicit_hosts, hosts->DeepCopy()); | 765 *ext_id, explicit_hosts, hosts->DeepCopy()); |
754 | 766 |
755 // We can get rid of the old one by setting it to an empty list. | 767 // We can get rid of the old one by setting it to an empty list. |
756 UpdateExtensionPref(*ext_id, kPrefOldGrantedHosts, new ListValue()); | 768 UpdateExtensionPref(*ext_id, kPrefOldGrantedHosts, new ListValue()); |
757 } | 769 } |
758 } | 770 } |
759 } | 771 } |
760 | 772 |
773 void ExtensionPrefs::MigrateAppIndex(const ExtensionIdSet& extension_ids) { | |
774 for (ExtensionIdSet::const_iterator ext_id = extension_ids.begin(); | |
775 ext_id != extension_ids.end(); ++ext_id) { | |
776 std::string index; | |
777 if (ReadExtensionPrefString(*ext_id, kPrefPageIndex, &index)) { | |
Mihai Parparita -not on Chrome
2011/10/07 23:15:12
I'm confused about this migration code, since this
csharp
2011/11/11 18:13:32
Done.
| |
778 int old_index; | |
779 if (ReadExtensionPrefInteger(*ext_id, | |
780 kPrefPageIndexDepreciated, | |
781 &old_index)) { | |
782 SetPageIndex(*ext_id, base::IntToString(old_index)); | |
783 } | |
784 } | |
785 | |
786 if (ReadExtensionPrefString(*ext_id, kPrefAppLaunchIndex, &index)) { | |
787 int old_index; | |
788 if (ReadExtensionPrefInteger(*ext_id, | |
789 kPrefPageIndexDepreciated, | |
790 &old_index)) { | |
791 SetAppLaunchIndex(*ext_id, base::IntToString(old_index)); | |
792 } | |
793 } | |
794 } | |
795 } | |
796 | |
761 ExtensionPermissionSet* ExtensionPrefs::GetGrantedPermissions( | 797 ExtensionPermissionSet* ExtensionPrefs::GetGrantedPermissions( |
762 const std::string& extension_id) { | 798 const std::string& extension_id) { |
763 CHECK(Extension::IdIsValid(extension_id)); | 799 CHECK(Extension::IdIsValid(extension_id)); |
764 return ReadExtensionPrefPermissionSet(extension_id, kPrefGrantedPermissions); | 800 return ReadExtensionPrefPermissionSet(extension_id, kPrefGrantedPermissions); |
765 } | 801 } |
766 | 802 |
767 void ExtensionPrefs::AddGrantedPermissions( | 803 void ExtensionPrefs::AddGrantedPermissions( |
768 const std::string& extension_id, | 804 const std::string& extension_id, |
769 const ExtensionPermissionSet* permissions) { | 805 const ExtensionPermissionSet* permissions) { |
770 CHECK(Extension::IdIsValid(extension_id)); | 806 CHECK(Extension::IdIsValid(extension_id)); |
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
950 iter != extension_ids.end(); ++iter) { | 986 iter != extension_ids.end(); ++iter) { |
951 toolbar_order->Append(new StringValue(*iter)); | 987 toolbar_order->Append(new StringValue(*iter)); |
952 } | 988 } |
953 SavePrefs(); | 989 SavePrefs(); |
954 } | 990 } |
955 | 991 |
956 void ExtensionPrefs::OnExtensionInstalled( | 992 void ExtensionPrefs::OnExtensionInstalled( |
957 const Extension* extension, | 993 const Extension* extension, |
958 Extension::State initial_state, | 994 Extension::State initial_state, |
959 bool from_webstore, | 995 bool from_webstore, |
960 int page_index) { | 996 std::string page_index) { |
961 const std::string& id = extension->id(); | 997 const std::string& id = extension->id(); |
962 CHECK(Extension::IdIsValid(id)); | 998 CHECK(Extension::IdIsValid(id)); |
963 ScopedExtensionPrefUpdate update(prefs_, id); | 999 ScopedExtensionPrefUpdate update(prefs_, id); |
964 DictionaryValue* extension_dict = update.Get(); | 1000 DictionaryValue* extension_dict = update.Get(); |
965 const base::Time install_time = GetCurrentTime(); | 1001 const base::Time install_time = GetCurrentTime(); |
966 extension_dict->Set(kPrefState, Value::CreateIntegerValue(initial_state)); | 1002 extension_dict->Set(kPrefState, Value::CreateIntegerValue(initial_state)); |
967 extension_dict->Set(kPrefLocation, | 1003 extension_dict->Set(kPrefLocation, |
968 Value::CreateIntegerValue(extension->location())); | 1004 Value::CreateIntegerValue(extension->location())); |
969 extension_dict->Set(kPrefFromWebStore, | 1005 extension_dict->Set(kPrefFromWebStore, |
970 Value::CreateBooleanValue(from_webstore)); | 1006 Value::CreateBooleanValue(from_webstore)); |
(...skipping 11 matching lines...) Expand all Loading... | |
982 extension->path()); | 1018 extension->path()); |
983 extension_dict->Set(kPrefPath, Value::CreateStringValue(path)); | 1019 extension_dict->Set(kPrefPath, Value::CreateStringValue(path)); |
984 // We store prefs about LOAD extensions, but don't cache their manifest | 1020 // We store prefs about LOAD extensions, but don't cache their manifest |
985 // since it may change on disk. | 1021 // since it may change on disk. |
986 if (extension->location() != Extension::LOAD) { | 1022 if (extension->location() != Extension::LOAD) { |
987 extension_dict->Set(kPrefManifest, | 1023 extension_dict->Set(kPrefManifest, |
988 extension->manifest_value()->DeepCopy()); | 1024 extension->manifest_value()->DeepCopy()); |
989 } | 1025 } |
990 | 1026 |
991 if (extension->is_app()) { | 1027 if (extension->is_app()) { |
992 if (page_index == -1) | 1028 if (page_index == extension_misc::kUnsetIndex) |
993 page_index = GetNaturalAppPageIndex(); | 1029 page_index = GetNaturalAppPageIndex(); |
994 extension_dict->Set(kPrefPageIndex, | 1030 extension_dict->Set(kPrefPageIndex, |
995 Value::CreateIntegerValue(page_index)); | 1031 Value::CreateStringValue(page_index)); |
996 extension_dict->Set(kPrefAppLaunchIndex, | 1032 extension_dict->Set(kPrefAppLaunchIndex, |
997 Value::CreateIntegerValue(GetNextAppLaunchIndex(page_index))); | 1033 Value::CreateStringValue(GetNextAppLaunchIndex(page_index))); |
998 } | 1034 } |
999 extension_pref_value_map_->RegisterExtension( | 1035 extension_pref_value_map_->RegisterExtension( |
1000 id, install_time, initial_state == Extension::ENABLED); | 1036 id, install_time, initial_state == Extension::ENABLED); |
1001 content_settings_store_->RegisterExtension( | 1037 content_settings_store_->RegisterExtension( |
1002 id, install_time, initial_state == Extension::ENABLED); | 1038 id, install_time, initial_state == Extension::ENABLED); |
1003 } | 1039 } |
1004 | 1040 |
1005 void ExtensionPrefs::OnExtensionUninstalled(const std::string& extension_id, | 1041 void ExtensionPrefs::OnExtensionUninstalled(const std::string& extension_id, |
1006 const Extension::Location& location, | 1042 const Extension::Location& location, |
1007 bool external_uninstall) { | 1043 bool external_uninstall) { |
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1320 return true; | 1356 return true; |
1321 } | 1357 } |
1322 return false; | 1358 return false; |
1323 } | 1359 } |
1324 | 1360 |
1325 void ExtensionPrefs::SetWebStoreLogin(const std::string& login) { | 1361 void ExtensionPrefs::SetWebStoreLogin(const std::string& login) { |
1326 prefs_->SetString(kWebStoreLogin, login); | 1362 prefs_->SetString(kWebStoreLogin, login); |
1327 SavePrefs(); | 1363 SavePrefs(); |
1328 } | 1364 } |
1329 | 1365 |
1330 int ExtensionPrefs::GetAppLaunchIndex(const std::string& extension_id) { | 1366 std::string ExtensionPrefs::GetAppLaunchIndex(const std::string& extension_id) { |
1331 int value; | 1367 std::string value; |
1332 if (ReadExtensionPrefInteger(extension_id, kPrefAppLaunchIndex, &value)) | 1368 if (ReadExtensionPrefString(extension_id, kPrefAppLaunchIndex, &value)) |
1333 return value; | 1369 return value; |
1334 | 1370 |
1335 return -1; | 1371 return extension_misc::kUnsetIndex; |
1336 } | 1372 } |
1337 | 1373 |
1338 void ExtensionPrefs::SetAppLaunchIndex(const std::string& extension_id, | 1374 void ExtensionPrefs::SetAppLaunchIndex(const std::string& extension_id, |
1339 int index) { | 1375 const std::string& index) { |
1340 UpdateExtensionPref(extension_id, kPrefAppLaunchIndex, | 1376 UpdateExtensionPref(extension_id, kPrefAppLaunchIndex, |
1341 Value::CreateIntegerValue(index)); | 1377 Value::CreateStringValue(index)); |
1342 } | 1378 } |
1343 | 1379 |
1344 int ExtensionPrefs::GetNextAppLaunchIndex(int on_page) { | 1380 std::string ExtensionPrefs::GetNextAppLaunchIndex(std::string on_page) { |
1345 const DictionaryValue* extensions = prefs_->GetDictionary(kExtensionsPref); | 1381 const DictionaryValue* extensions = prefs_->GetDictionary(kExtensionsPref); |
1346 if (!extensions) | 1382 if (!extensions) |
1347 return 0; | 1383 return "0"; |
1348 | 1384 |
1349 int max_value = -1; | 1385 std::string max_value = extension_misc::kUnsetIndex; |
1350 for (DictionaryValue::key_iterator extension_id = extensions->begin_keys(); | 1386 for (DictionaryValue::key_iterator extension_id = extensions->begin_keys(); |
1351 extension_id != extensions->end_keys(); ++extension_id) { | 1387 extension_id != extensions->end_keys(); ++extension_id) { |
1352 int value = GetAppLaunchIndex(*extension_id); | 1388 std::string value = GetAppLaunchIndex(*extension_id); |
1353 int page = GetPageIndex(*extension_id); | 1389 std::string page = GetPageIndex(*extension_id); |
1354 if (page == on_page && value > max_value) | 1390 |
1391 int max_value_int, value_int; | |
1392 base::StringToInt(max_value, &max_value_int); | |
1393 base::StringToInt(value, &value_int); | |
1394 if (page == on_page && max_value_int < value_int) | |
1355 max_value = value; | 1395 max_value = value; |
1356 } | 1396 } |
1357 return max_value + 1; | 1397 |
1398 int new_value; | |
1399 base::StringToInt(max_value, &new_value); | |
akalin
2011/10/07 17:31:16
So all I'm seeing are conversions from int->string
| |
1400 ++new_value; | |
1401 | |
1402 return base::IntToString(new_value); | |
1358 } | 1403 } |
1359 | 1404 |
1360 int ExtensionPrefs::GetNaturalAppPageIndex() { | 1405 std::string ExtensionPrefs::GetNaturalAppPageIndex() { |
1361 const DictionaryValue* extensions = prefs_->GetDictionary(kExtensionsPref); | 1406 const DictionaryValue* extensions = prefs_->GetDictionary(kExtensionsPref); |
1362 if (!extensions) | 1407 if (!extensions) |
1363 return 0; | 1408 return "0"; |
1364 | 1409 |
1365 std::map<int, int> page_counts; | 1410 std::map<std::string, int> page_counts; |
1366 for (DictionaryValue::key_iterator extension_id = extensions->begin_keys(); | 1411 for (DictionaryValue::key_iterator extension_id = extensions->begin_keys(); |
1367 extension_id != extensions->end_keys(); ++extension_id) { | 1412 extension_id != extensions->end_keys(); ++extension_id) { |
1368 int page_index = GetPageIndex(*extension_id); | 1413 std::string page_index = GetPageIndex(*extension_id); |
1369 if (page_index >= 0) | 1414 page_counts[page_index] = page_counts[page_index] + 1; |
1370 page_counts[page_index] = page_counts[page_index] + 1; | |
1371 } | 1415 } |
1372 for (int i = 0; ; i++) { | 1416 |
1373 std::map<int, int>::const_iterator it = page_counts.find(i); | 1417 std::map<std::string, int>::const_iterator it = page_counts.begin(); |
1374 if (it == page_counts.end() || it->second < kNaturalAppPageSize) | 1418 for (int i = 0; it != page_counts.end(); ++it, ++i) { |
1375 return i; | 1419 if (it->second < kNaturalAppPageSize) { |
1420 return base::IntToString(i); | |
1421 } | |
1376 } | 1422 } |
1423 | |
1424 // Add a new page | |
1425 return base::IntToString(page_counts.size()); | |
1377 } | 1426 } |
1378 | 1427 |
1379 void ExtensionPrefs::SetAppLauncherOrder( | 1428 void ExtensionPrefs::SetAppLauncherOrder( |
1380 const std::vector<std::string>& extension_ids) { | 1429 const std::vector<std::string>& extension_ids) { |
1381 for (size_t i = 0; i < extension_ids.size(); ++i) | 1430 for (size_t i = 0; i < extension_ids.size(); ++i) { |
1382 SetAppLaunchIndex(extension_ids.at(i), i); | 1431 SetAppLaunchIndex(extension_ids.at(i), base::IntToString(i)); |
1432 } | |
1383 | 1433 |
1384 NotificationService::current()->Notify( | 1434 NotificationService::current()->Notify( |
1385 chrome::NOTIFICATION_EXTENSION_LAUNCHER_REORDERED, | 1435 chrome::NOTIFICATION_EXTENSION_LAUNCHER_REORDERED, |
1386 Source<ExtensionPrefs>(this), | 1436 Source<ExtensionPrefs>(this), |
1387 NotificationService::NoDetails()); | 1437 NotificationService::NoDetails()); |
1388 } | 1438 } |
1389 | 1439 |
1390 int ExtensionPrefs::GetPageIndex(const std::string& extension_id) { | 1440 std::string ExtensionPrefs::GetPageIndex(const std::string& extension_id) { |
1391 int value = -1; | 1441 std::string value; |
1392 ReadExtensionPrefInteger(extension_id, kPrefPageIndex, &value); | 1442 if (ReadExtensionPrefString(extension_id, kPrefPageIndex, &value)) { |
1393 return value; | 1443 return value; |
1444 } | |
1445 | |
1446 return extension_misc::kUnsetIndex; | |
1394 } | 1447 } |
1395 | 1448 |
1396 void ExtensionPrefs::SetPageIndex(const std::string& extension_id, int index) { | 1449 void ExtensionPrefs::SetPageIndex(const std::string& extension_id, |
1450 const std::string& page_index) { | |
1397 UpdateExtensionPref(extension_id, kPrefPageIndex, | 1451 UpdateExtensionPref(extension_id, kPrefPageIndex, |
1398 Value::CreateIntegerValue(index)); | 1452 Value::CreateStringValue(page_index)); |
1399 } | 1453 } |
1400 | 1454 |
1401 bool ExtensionPrefs::WasAppDraggedByUser(const std::string& extension_id) { | 1455 bool ExtensionPrefs::WasAppDraggedByUser(const std::string& extension_id) { |
1402 return ReadExtensionPrefBoolean(extension_id, kPrefUserDraggedApp); | 1456 return ReadExtensionPrefBoolean(extension_id, kPrefUserDraggedApp); |
1403 } | 1457 } |
1404 | 1458 |
1405 void ExtensionPrefs::SetAppDraggedByUser(const std::string& extension_id) { | 1459 void ExtensionPrefs::SetAppDraggedByUser(const std::string& extension_id) { |
1406 UpdateExtensionPref(extension_id, kPrefUserDraggedApp, | 1460 UpdateExtensionPref(extension_id, kPrefUserDraggedApp, |
1407 Value::CreateBooleanValue(true)); | 1461 Value::CreateBooleanValue(true)); |
1408 } | 1462 } |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1536 // are pruned when persisting the preferences to disk). | 1590 // are pruned when persisting the preferences to disk). |
1537 for (ExtensionIdSet::iterator ext_id = extension_ids.begin(); | 1591 for (ExtensionIdSet::iterator ext_id = extension_ids.begin(); |
1538 ext_id != extension_ids.end(); ++ext_id) { | 1592 ext_id != extension_ids.end(); ++ext_id) { |
1539 ScopedExtensionPrefUpdate update(prefs_, *ext_id); | 1593 ScopedExtensionPrefUpdate update(prefs_, *ext_id); |
1540 // This creates an empty dictionary if none is stored. | 1594 // This creates an empty dictionary if none is stored. |
1541 update.Get(); | 1595 update.Get(); |
1542 } | 1596 } |
1543 | 1597 |
1544 FixMissingPrefs(extension_ids); | 1598 FixMissingPrefs(extension_ids); |
1545 MigratePermissions(extension_ids); | 1599 MigratePermissions(extension_ids); |
1600 MigrateAppIndex(extension_ids); | |
1546 | 1601 |
1547 // Store extension controlled preference values in the | 1602 // Store extension controlled preference values in the |
1548 // |extension_pref_value_map_|, which then informs the subscribers | 1603 // |extension_pref_value_map_|, which then informs the subscribers |
1549 // (ExtensionPrefStores) about the winning values. | 1604 // (ExtensionPrefStores) about the winning values. |
1550 for (ExtensionIdSet::iterator ext_id = extension_ids.begin(); | 1605 for (ExtensionIdSet::iterator ext_id = extension_ids.begin(); |
1551 ext_id != extension_ids.end(); ++ext_id) { | 1606 ext_id != extension_ids.end(); ++ext_id) { |
1552 extension_pref_value_map_->RegisterExtension( | 1607 extension_pref_value_map_->RegisterExtension( |
1553 *ext_id, | 1608 *ext_id, |
1554 GetInstallTime(*ext_id), | 1609 GetInstallTime(*ext_id), |
1555 !IsExtensionDisabled(*ext_id)); | 1610 !IsExtensionDisabled(*ext_id)); |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1710 prefs->RegisterListPref(prefs::kExtensionInstallAllowList, | 1765 prefs->RegisterListPref(prefs::kExtensionInstallAllowList, |
1711 PrefService::UNSYNCABLE_PREF); | 1766 PrefService::UNSYNCABLE_PREF); |
1712 prefs->RegisterListPref(prefs::kExtensionInstallDenyList, | 1767 prefs->RegisterListPref(prefs::kExtensionInstallDenyList, |
1713 PrefService::UNSYNCABLE_PREF); | 1768 PrefService::UNSYNCABLE_PREF); |
1714 prefs->RegisterListPref(prefs::kExtensionInstallForceList, | 1769 prefs->RegisterListPref(prefs::kExtensionInstallForceList, |
1715 PrefService::UNSYNCABLE_PREF); | 1770 PrefService::UNSYNCABLE_PREF); |
1716 prefs->RegisterStringPref(kWebStoreLogin, | 1771 prefs->RegisterStringPref(kWebStoreLogin, |
1717 std::string() /* default_value */, | 1772 std::string() /* default_value */, |
1718 PrefService::UNSYNCABLE_PREF); | 1773 PrefService::UNSYNCABLE_PREF); |
1719 } | 1774 } |
OLD | NEW |