Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(65)

Side by Side Diff: chrome/browser/ui/app_list/recommended_apps.cc

Issue 156843004: Remove ExtensionService::extension_prefs() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix UserScriptListenerTests.MultiProfile Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 #include "chrome/browser/ui/app_list/recommended_apps.h" 5 #include "chrome/browser/ui/app_list/recommended_apps.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "chrome/browser/extensions/extension_service.h"
12 #include "chrome/browser/extensions/install_tracker.h" 11 #include "chrome/browser/extensions/install_tracker.h"
13 #include "chrome/browser/extensions/install_tracker_factory.h" 12 #include "chrome/browser/extensions/install_tracker_factory.h"
14 #include "chrome/browser/profiles/profile.h" 13 #include "chrome/browser/profiles/profile.h"
15 #include "chrome/browser/ui/app_list/recommended_apps_observer.h" 14 #include "chrome/browser/ui/app_list/recommended_apps_observer.h"
16 #include "chrome/common/pref_names.h" 15 #include "chrome/common/pref_names.h"
17 #include "extensions/browser/extension_prefs.h" 16 #include "extensions/browser/extension_prefs.h"
18 #include "extensions/browser/extension_system.h" 17 #include "extensions/browser/extension_registry.h"
19 #include "extensions/browser/extension_system_provider.h"
20 #include "extensions/browser/extensions_browser_client.h"
21 #include "extensions/browser/pref_names.h" 18 #include "extensions/browser/pref_names.h"
22 #include "extensions/common/extension.h" 19 #include "extensions/common/extension.h"
23 #include "extensions/common/extension_set.h" 20 #include "extensions/common/extension_set.h"
24 21
25 namespace app_list { 22 namespace app_list {
26 23
27 namespace { 24 namespace {
28 25
29 struct AppSortInfo { 26 struct AppSortInfo {
30 AppSortInfo() : app(NULL) {} 27 AppSortInfo() : app(NULL) {}
31 AppSortInfo(const extensions::Extension* app, 28 AppSortInfo(const extensions::Extension* app,
32 const base::Time& last_launch_time) 29 const base::Time& last_launch_time)
33 : app(app), last_launch_time(last_launch_time) {} 30 : app(app), last_launch_time(last_launch_time) {}
34 31
35 const extensions::Extension* app; 32 const extensions::Extension* app;
36 base::Time last_launch_time; 33 base::Time last_launch_time;
37 }; 34 };
38 35
39 bool AppLaunchedMoreRecent(const AppSortInfo& app1, const AppSortInfo& app2) { 36 bool AppLaunchedMoreRecent(const AppSortInfo& app1, const AppSortInfo& app2) {
40 return app1.last_launch_time > app2.last_launch_time; 37 return app1.last_launch_time > app2.last_launch_time;
41 } 38 }
42 39
43 } // namespace 40 } // namespace
44 41
45 RecommendedApps::RecommendedApps(Profile* profile) : profile_(profile) { 42 RecommendedApps::RecommendedApps(Profile* profile) : profile_(profile) {
46 extensions::InstallTrackerFactory::GetForProfile(profile_)->AddObserver(this); 43 extensions::InstallTrackerFactory::GetForProfile(profile_)->AddObserver(this);
47 44
48 ExtensionService* service = 45 extensions::ExtensionPrefs* prefs = extensions::ExtensionPrefs::Get(profile_);
49 extensions::ExtensionSystem::Get(profile_)->extension_service();
50 extensions::ExtensionPrefs* prefs = service->extension_prefs();
51 pref_change_registrar_.Init(prefs->pref_service()); 46 pref_change_registrar_.Init(prefs->pref_service());
52 pref_change_registrar_.Add(extensions::pref_names::kExtensions, 47 pref_change_registrar_.Add(extensions::pref_names::kExtensions,
53 base::Bind(&RecommendedApps::Update, 48 base::Bind(&RecommendedApps::Update,
54 base::Unretained(this))); 49 base::Unretained(this)));
55 50
56 Update(); 51 Update();
57 } 52 }
58 53
59 RecommendedApps::~RecommendedApps() { 54 RecommendedApps::~RecommendedApps() {
60 extensions::InstallTrackerFactory::GetForProfile(profile_) 55 extensions::InstallTrackerFactory::GetForProfile(profile_)
61 ->RemoveObserver(this); 56 ->RemoveObserver(this);
62 } 57 }
63 58
64 void RecommendedApps::AddObserver(RecommendedAppsObserver* observer) { 59 void RecommendedApps::AddObserver(RecommendedAppsObserver* observer) {
65 observers_.AddObserver(observer); 60 observers_.AddObserver(observer);
66 } 61 }
67 62
68 void RecommendedApps::RemoveObserver(RecommendedAppsObserver* observer) { 63 void RecommendedApps::RemoveObserver(RecommendedAppsObserver* observer) {
69 observers_.RemoveObserver(observer); 64 observers_.RemoveObserver(observer);
70 } 65 }
71 66
72 void RecommendedApps::Update() { 67 void RecommendedApps::Update() {
73 ExtensionService* service = 68 extensions::ExtensionPrefs* prefs = extensions::ExtensionPrefs::Get(profile_);
74 extensions::ExtensionSystem::Get(profile_)->extension_service();
75 extensions::ExtensionPrefs* prefs = service->extension_prefs();
76 69
77 std::vector<AppSortInfo> sorted_apps; 70 std::vector<AppSortInfo> sorted_apps;
78 const extensions::ExtensionSet* extensions = service->extensions(); 71 const extensions::ExtensionSet& extensions =
79 for (extensions::ExtensionSet::const_iterator app = extensions->begin(); 72 extensions::ExtensionRegistry::Get(profile_)->enabled_extensions();
80 app != extensions->end(); ++app) { 73 for (extensions::ExtensionSet::const_iterator app = extensions.begin();
74 app != extensions.end();
75 ++app) {
81 if (!(*app)->ShouldDisplayInAppLauncher()) 76 if (!(*app)->ShouldDisplayInAppLauncher())
82 continue; 77 continue;
83 78
84 sorted_apps.push_back( 79 sorted_apps.push_back(
85 AppSortInfo(app->get(), prefs->GetLastLaunchTime((*app)->id()))); 80 AppSortInfo(app->get(), prefs->GetLastLaunchTime((*app)->id())));
86 } 81 }
87 82
88 std::sort(sorted_apps.begin(), sorted_apps.end(), &AppLaunchedMoreRecent); 83 std::sort(sorted_apps.begin(), sorted_apps.end(), &AppLaunchedMoreRecent);
89 84
90 const size_t kMaxRecommendedApps = 4; 85 const size_t kMaxRecommendedApps = 4;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 } 127 }
133 128
134 void RecommendedApps::OnAppsReordered() {} 129 void RecommendedApps::OnAppsReordered() {}
135 130
136 void RecommendedApps::OnAppInstalledToAppList( 131 void RecommendedApps::OnAppInstalledToAppList(
137 const std::string& extension_id) {} 132 const std::string& extension_id) {}
138 133
139 void RecommendedApps::OnShutdown() {} 134 void RecommendedApps::OnShutdown() {}
140 135
141 } // namespace app_list 136 } // namespace app_list
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698