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..43a7c539cc67d93380208e7a64fe4eb6a57a8cdc 100644 |
--- a/chrome/browser/extensions/extension_sorting.cc |
+++ b/chrome/browser/extensions/extension_sorting.cc |
@@ -51,7 +51,6 @@ ExtensionSorting::ExtensionSorting(ExtensionScopedPrefs* extension_scoped_prefs, |
: extension_scoped_prefs_(extension_scoped_prefs), |
pref_service_(pref_service), |
extension_service_(NULL) { |
- CreateDefaultOrdinals(); |
} |
ExtensionSorting::~ExtensionSorting() { |
@@ -547,6 +546,11 @@ void ExtensionSorting::SyncIfNeeded(const std::string& extension_id) { |
} |
void ExtensionSorting::CreateDefaultOrdinals() { |
+ static bool s_default_ordinales_created = false; |
csharp
2013/05/24 18:06:22
Why isn't this a class variable?
xiyuan
2013/05/24 18:09:13
Right, this needs to be fixed. The flag has to be
stevenjb
2013/05/24 18:16:02
Ugh, I've been working too much with statics and a
|
+ if (s_default_ordinales_created) |
+ return; |
+ s_default_ordinales_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; |