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 PrefService; | 18 class PrefService; |
19 | 19 |
20 namespace extensions { | 20 namespace extensions { |
21 | 21 |
22 class ExtensionScopedPrefs; | 22 class ExtensionScopedPrefs; |
23 | 23 |
24 class ChromeAppSorting : public AppSorting { | 24 class ChromeAppSorting : public AppSorting { |
25 public: | 25 public: |
26 explicit ChromeAppSorting(content::BrowserContext* browser_context); | 26 explicit ChromeAppSorting(content::BrowserContext* browser_context); |
27 ~ChromeAppSorting() override; | 27 ~ChromeAppSorting() override; |
28 | 28 |
29 // AppSorting implementation: | 29 // AppSorting implementation: |
30 void SetExtensionScopedPrefs(ExtensionScopedPrefs* prefs) override; | |
31 void CheckExtensionScopedPrefs() const override; | |
32 void Initialize(const extensions::ExtensionIdList& extension_ids) override; | 30 void Initialize(const extensions::ExtensionIdList& extension_ids) override; |
not at google - send to devlin
2015/07/29 18:22:03
I'd like to take this off the public interface, an
Marc Treib
2015/07/30 14:04:12
Agreed. I'll do this when the remaining stuff is s
| |
33 void FixNTPOrdinalCollisions() override; | 31 void FixNTPOrdinalCollisions() override; |
34 void EnsureValidOrdinals( | 32 void EnsureValidOrdinals( |
35 const std::string& extension_id, | 33 const std::string& extension_id, |
36 const syncer::StringOrdinal& suggested_page) override; | 34 const syncer::StringOrdinal& suggested_page) override; |
37 void OnExtensionMoved(const std::string& moved_extension_id, | 35 void OnExtensionMoved(const std::string& moved_extension_id, |
38 const std::string& predecessor_extension_id, | 36 const std::string& predecessor_extension_id, |
39 const std::string& successor_extension_id) override; | 37 const std::string& successor_extension_id) override; |
40 syncer::StringOrdinal GetAppLaunchOrdinal( | 38 syncer::StringOrdinal GetAppLaunchOrdinal( |
41 const std::string& extension_id) const override; | 39 const std::string& extension_id) const override; |
42 void SetAppLaunchOrdinal( | 40 void SetAppLaunchOrdinal( |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
145 // Returns |app_launch_ordinal| if it has no collision in the page specified | 143 // Returns |app_launch_ordinal| if it has no collision in the page specified |
146 // by |page_ordinal|. Otherwise, returns an ordinal after |app_launch_ordinal| | 144 // by |page_ordinal|. Otherwise, returns an ordinal after |app_launch_ordinal| |
147 // that has no conflict. | 145 // that has no conflict. |
148 syncer::StringOrdinal ResolveCollision( | 146 syncer::StringOrdinal ResolveCollision( |
149 const syncer::StringOrdinal& page_ordinal, | 147 const syncer::StringOrdinal& page_ordinal, |
150 const syncer::StringOrdinal& app_launch_ordinal) const; | 148 const syncer::StringOrdinal& app_launch_ordinal) const; |
151 | 149 |
152 // Returns the number of items in |m| visible on the new tab page. | 150 // Returns the number of items in |m| visible on the new tab page. |
153 size_t CountItemsVisibleOnNtp(const AppLaunchOrdinalMap& m) const; | 151 size_t CountItemsVisibleOnNtp(const AppLaunchOrdinalMap& m) const; |
154 | 152 |
155 ExtensionScopedPrefs* extension_scoped_prefs_; // Weak, owns this instance. | |
156 content::BrowserContext* browser_context_; | 153 content::BrowserContext* browser_context_; |
157 | 154 |
158 // A map of all the StringOrdinal page ordinals mapping to the collections of | 155 // A map of all the StringOrdinal page ordinals mapping to the collections of |
159 // app launch ordinals that exist on that page. This is used for mapping | 156 // app launch ordinals that exist on that page. This is used for mapping |
160 // StringOrdinals to their Integer equivalent as well as quick lookup of the | 157 // StringOrdinals to their Integer equivalent as well as quick lookup of the |
161 // any collision of on the NTP (icons with the same page and same app launch | 158 // any collision of on the NTP (icons with the same page and same app launch |
162 // ordinals). The possiblity of collisions means that a multimap must be used | 159 // ordinals). The possiblity of collisions means that a multimap must be used |
163 // (although the collisions must all be resolved once all the syncing is | 160 // (although the collisions must all be resolved once all the syncing is |
164 // done). | 161 // done). |
165 PageOrdinalMap ntp_ordinal_map_; | 162 PageOrdinalMap ntp_ordinal_map_; |
166 | 163 |
167 // Defines the default ordinals. | 164 // Defines the default ordinals. |
168 AppOrdinalsMap default_ordinals_; | 165 AppOrdinalsMap default_ordinals_; |
169 | 166 |
170 // Used to construct the default ordinals once when needed instead of on | 167 // Used to construct the default ordinals once when needed instead of on |
171 // construction when the app order may not have been determined. | 168 // construction when the app order may not have been determined. |
172 bool default_ordinals_created_; | 169 bool default_ordinals_created_; |
173 | 170 |
174 // The set of extensions that don't appear in the new tab page. | 171 // The set of extensions that don't appear in the new tab page. |
175 std::set<std::string> ntp_hidden_extensions_; | 172 std::set<std::string> ntp_hidden_extensions_; |
176 | 173 |
177 DISALLOW_COPY_AND_ASSIGN(ChromeAppSorting); | 174 DISALLOW_COPY_AND_ASSIGN(ChromeAppSorting); |
178 }; | 175 }; |
179 | 176 |
180 } // namespace extensions | 177 } // namespace extensions |
181 | 178 |
182 #endif // CHROME_BROWSER_EXTENSIONS_CHROME_APP_SORTING_H_ | 179 #endif // CHROME_BROWSER_EXTENSIONS_CHROME_APP_SORTING_H_ |
OLD | NEW |