Index: chrome/browser/extensions/extension_sorting.cc |
diff --git a/chrome/browser/extensions/extension_sorting.cc b/chrome/browser/extensions/extension_sorting.cc |
index 2240c9ea92a6e8919b02c484eafec2d9ec4374e8..7f670aa074484362518ba3fb8d62a71e49187440 100644 |
--- a/chrome/browser/extensions/extension_sorting.cc |
+++ b/chrome/browser/extensions/extension_sorting.cc |
@@ -50,8 +50,8 @@ ExtensionSorting::ExtensionSorting(ExtensionScopedPrefs* extension_scoped_prefs, |
PrefService* pref_service) |
: extension_scoped_prefs_(extension_scoped_prefs), |
pref_service_(pref_service), |
- extension_service_(NULL) { |
- CreateDefaultOrdinals(); |
+ extension_service_(NULL), |
+ default_ordinals_created_(false) { |
} |
ExtensionSorting::~ExtensionSorting() { |
@@ -547,6 +547,10 @@ void ExtensionSorting::SyncIfNeeded(const std::string& extension_id) { |
} |
void ExtensionSorting::CreateDefaultOrdinals() { |
+ if (default_ordinals_created_) |
+ return; |
+ default_ordinals_created_ = true; |
+ |
// The following defines the default order of apps. |
#if defined(OS_CHROMEOS) |
std::vector<std::string> app_ids; |
@@ -573,7 +577,8 @@ void ExtensionSorting::CreateDefaultOrdinals() { |
bool ExtensionSorting::GetDefaultOrdinals( |
const std::string& extension_id, |
syncer::StringOrdinal* page_ordinal, |
- syncer::StringOrdinal* app_launch_ordinal) const { |
+ syncer::StringOrdinal* app_launch_ordinal) { |
+ CreateDefaultOrdinals(); |
AppOrdinalsMap::const_iterator it = default_ordinals_.find(extension_id); |
if (it == default_ordinals_.end()) |
return false; |