| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #ifndef CHROME_BROWSER_EXTENSIONS_CHROME_APP_SORTING_H_ | 5 #ifndef CHROME_BROWSER_EXTENSIONS_CHROME_APP_SORTING_H_ |
| 6 #define CHROME_BROWSER_EXTENSIONS_CHROME_APP_SORTING_H_ | 6 #define CHROME_BROWSER_EXTENSIONS_CHROME_APP_SORTING_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <string> | 10 #include <string> |
| 11 | 11 |
| 12 #include "base/basictypes.h" | 12 #include "base/basictypes.h" |
| 13 #include "extensions/browser/app_sorting.h" | 13 #include "extensions/browser/app_sorting.h" |
| 14 #include "extensions/browser/extension_prefs.h" | 14 #include "extensions/browser/extension_prefs.h" |
| 15 #include "extensions/common/extension.h" | 15 #include "extensions/common/extension.h" |
| 16 #include "sync/api/string_ordinal.h" | 16 #include "sync/api/string_ordinal.h" |
| 17 | 17 |
| 18 class ExtensionSyncService; | 18 class ExtensionSyncService; |
| 19 class PrefService; | 19 class PrefService; |
| 20 class Profile; |
| 20 | 21 |
| 21 namespace extensions { | 22 namespace extensions { |
| 22 | 23 |
| 23 class ExtensionScopedPrefs; | 24 class ExtensionScopedPrefs; |
| 24 | 25 |
| 25 class ChromeAppSorting : public AppSorting { | 26 class ChromeAppSorting : public AppSorting { |
| 26 public: | 27 public: |
| 27 ChromeAppSorting(); | 28 ChromeAppSorting(); |
| 28 virtual ~ChromeAppSorting(); | 29 virtual ~ChromeAppSorting(); |
| 29 | 30 |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 149 // Returns |app_launch_ordinal| if it has no collision in the page specified | 150 // Returns |app_launch_ordinal| if it has no collision in the page specified |
| 150 // by |page_ordinal|. Otherwise, returns an ordinal after |app_launch_ordinal| | 151 // by |page_ordinal|. Otherwise, returns an ordinal after |app_launch_ordinal| |
| 151 // that has no conflict. | 152 // that has no conflict. |
| 152 syncer::StringOrdinal ResolveCollision( | 153 syncer::StringOrdinal ResolveCollision( |
| 153 const syncer::StringOrdinal& page_ordinal, | 154 const syncer::StringOrdinal& page_ordinal, |
| 154 const syncer::StringOrdinal& app_launch_ordinal) const; | 155 const syncer::StringOrdinal& app_launch_ordinal) const; |
| 155 | 156 |
| 156 // Returns the number of items in |m| visible on the new tab page. | 157 // Returns the number of items in |m| visible on the new tab page. |
| 157 size_t CountItemsVisibleOnNtp(const AppLaunchOrdinalMap& m) const; | 158 size_t CountItemsVisibleOnNtp(const AppLaunchOrdinalMap& m) const; |
| 158 | 159 |
| 160 Profile* profile_; |
| 159 ExtensionScopedPrefs* extension_scoped_prefs_; // Weak, owns this instance. | 161 ExtensionScopedPrefs* extension_scoped_prefs_; // Weak, owns this instance. |
| 160 ExtensionSyncService* extension_sync_service_; // Weak. | 162 ExtensionSyncService* extension_sync_service_; // Weak. |
| 161 | 163 |
| 162 // A map of all the StringOrdinal page ordinals mapping to the collections of | 164 // A map of all the StringOrdinal page ordinals mapping to the collections of |
| 163 // app launch ordinals that exist on that page. This is used for mapping | 165 // app launch ordinals that exist on that page. This is used for mapping |
| 164 // StringOrdinals to their Integer equivalent as well as quick lookup of the | 166 // StringOrdinals to their Integer equivalent as well as quick lookup of the |
| 165 // any collision of on the NTP (icons with the same page and same app launch | 167 // any collision of on the NTP (icons with the same page and same app launch |
| 166 // ordinals). The possiblity of collisions means that a multimap must be used | 168 // ordinals). The possiblity of collisions means that a multimap must be used |
| 167 // (although the collisions must all be resolved once all the syncing is | 169 // (although the collisions must all be resolved once all the syncing is |
| 168 // done). | 170 // done). |
| 169 PageOrdinalMap ntp_ordinal_map_; | 171 PageOrdinalMap ntp_ordinal_map_; |
| 170 | 172 |
| 171 // Defines the default ordinals. | 173 // Defines the default ordinals. |
| 172 AppOrdinalsMap default_ordinals_; | 174 AppOrdinalsMap default_ordinals_; |
| 173 | 175 |
| 174 // Used to construct the default ordinals once when needed instead of on | 176 // Used to construct the default ordinals once when needed instead of on |
| 175 // construction when the app order may not have been determined. | 177 // construction when the app order may not have been determined. |
| 176 bool default_ordinals_created_; | 178 bool default_ordinals_created_; |
| 177 | 179 |
| 178 // The set of extensions that don't appear in the new tab page. | 180 // The set of extensions that don't appear in the new tab page. |
| 179 std::set<std::string> ntp_hidden_extensions_; | 181 std::set<std::string> ntp_hidden_extensions_; |
| 180 | 182 |
| 181 DISALLOW_COPY_AND_ASSIGN(ChromeAppSorting); | 183 DISALLOW_COPY_AND_ASSIGN(ChromeAppSorting); |
| 182 }; | 184 }; |
| 183 | 185 |
| 184 } // namespace extensions | 186 } // namespace extensions |
| 185 | 187 |
| 186 #endif // CHROME_BROWSER_EXTENSIONS_CHROME_APP_SORTING_H_ | 188 #endif // CHROME_BROWSER_EXTENSIONS_CHROME_APP_SORTING_H_ |
| OLD | NEW |