Chromium Code Reviews| 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; |