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

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: additional cleanup 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/extension_system_factory.h" 11 #include "chrome/browser/extensions/extension_system_factory.h"
13 #include "chrome/browser/extensions/install_tracker.h" 12 #include "chrome/browser/extensions/install_tracker.h"
14 #include "chrome/browser/extensions/install_tracker_factory.h" 13 #include "chrome/browser/extensions/install_tracker_factory.h"
15 #include "chrome/browser/profiles/profile.h" 14 #include "chrome/browser/profiles/profile.h"
16 #include "chrome/browser/ui/app_list/recommended_apps_observer.h" 15 #include "chrome/browser/ui/app_list/recommended_apps_observer.h"
17 #include "chrome/common/pref_names.h" 16 #include "chrome/common/pref_names.h"
18 #include "extensions/browser/extension_prefs.h" 17 #include "extensions/browser/extension_prefs.h"
18 #include "extensions/browser/extension_registry.h"
19 #include "extensions/browser/pref_names.h" 19 #include "extensions/browser/pref_names.h"
20 #include "extensions/common/extension.h" 20 #include "extensions/common/extension.h"
21 #include "extensions/common/extension_set.h" 21 #include "extensions/common/extension_set.h"
22 22
23 namespace app_list { 23 namespace app_list {
24 24
25 namespace { 25 namespace {
26 26
27 struct AppSortInfo { 27 struct AppSortInfo {
28 AppSortInfo() : app(NULL) {} 28 AppSortInfo() : app(NULL) {}
29 AppSortInfo(const extensions::Extension* app, 29 AppSortInfo(const extensions::Extension* app,
30 const base::Time& last_launch_time) 30 const base::Time& last_launch_time)
31 : app(app), last_launch_time(last_launch_time) {} 31 : app(app), last_launch_time(last_launch_time) {}
32 32
33 const extensions::Extension* app; 33 const extensions::Extension* app;
34 base::Time last_launch_time; 34 base::Time last_launch_time;
35 }; 35 };
36 36
37 bool AppLaunchedMoreRecent(const AppSortInfo& app1, const AppSortInfo& app2) { 37 bool AppLaunchedMoreRecent(const AppSortInfo& app1, const AppSortInfo& app2) {
38 return app1.last_launch_time > app2.last_launch_time; 38 return app1.last_launch_time > app2.last_launch_time;
39 } 39 }
40 40
41 } // namespace 41 } // namespace
42 42
43 RecommendedApps::RecommendedApps(Profile* profile) : profile_(profile) { 43 RecommendedApps::RecommendedApps(Profile* profile) : profile_(profile) {
44 extensions::InstallTrackerFactory::GetForProfile(profile_)->AddObserver(this); 44 extensions::InstallTrackerFactory::GetForProfile(profile_)->AddObserver(this);
45 45
46 ExtensionService* service = 46 extensions::ExtensionPrefs* prefs = extensions::ExtensionPrefs::Get(profile_);
47 extensions::ExtensionSystem::Get(profile_)->extension_service();
48 extensions::ExtensionPrefs* prefs = service->extension_prefs();
49 pref_change_registrar_.Init(prefs->pref_service()); 47 pref_change_registrar_.Init(prefs->pref_service());
50 pref_change_registrar_.Add(extensions::pref_names::kExtensions, 48 pref_change_registrar_.Add(extensions::pref_names::kExtensions,
51 base::Bind(&RecommendedApps::Update, 49 base::Bind(&RecommendedApps::Update,
52 base::Unretained(this))); 50 base::Unretained(this)));
53 51
54 Update(); 52 Update();
55 } 53 }
56 54
57 RecommendedApps::~RecommendedApps() { 55 RecommendedApps::~RecommendedApps() {
58 extensions::InstallTrackerFactory::GetForProfile(profile_) 56 extensions::InstallTrackerFactory::GetForProfile(profile_)
59 ->RemoveObserver(this); 57 ->RemoveObserver(this);
60 } 58 }
61 59
62 void RecommendedApps::AddObserver(RecommendedAppsObserver* observer) { 60 void RecommendedApps::AddObserver(RecommendedAppsObserver* observer) {
63 observers_.AddObserver(observer); 61 observers_.AddObserver(observer);
64 } 62 }
65 63
66 void RecommendedApps::RemoveObserver(RecommendedAppsObserver* observer) { 64 void RecommendedApps::RemoveObserver(RecommendedAppsObserver* observer) {
67 observers_.RemoveObserver(observer); 65 observers_.RemoveObserver(observer);
68 } 66 }
69 67
70 void RecommendedApps::Update() { 68 void RecommendedApps::Update() {
71 ExtensionService* service = 69 extensions::ExtensionPrefs* prefs = extensions::ExtensionPrefs::Get(profile_);
72 extensions::ExtensionSystem::Get(profile_)->extension_service();
73 extensions::ExtensionPrefs* prefs = service->extension_prefs();
74 70
75 std::vector<AppSortInfo> sorted_apps; 71 std::vector<AppSortInfo> sorted_apps;
76 const extensions::ExtensionSet* extensions = service->extensions(); 72 const extensions::ExtensionSet& extensions =
77 for (extensions::ExtensionSet::const_iterator app = extensions->begin(); 73 extensions::ExtensionRegistry::Get(profile_)->enabled_extensions();
78 app != extensions->end(); ++app) { 74 for (extensions::ExtensionSet::const_iterator app = extensions.begin();
75 app != extensions.end(); ++app) {
79 if (!(*app)->ShouldDisplayInAppLauncher()) 76 if (!(*app)->ShouldDisplayInAppLauncher())
80 continue; 77 continue;
81 78
82 sorted_apps.push_back( 79 sorted_apps.push_back(
83 AppSortInfo(app->get(), prefs->GetLastLaunchTime((*app)->id()))); 80 AppSortInfo(app->get(), prefs->GetLastLaunchTime((*app)->id())));
84 } 81 }
85 82
86 std::sort(sorted_apps.begin(), sorted_apps.end(), &AppLaunchedMoreRecent); 83 std::sort(sorted_apps.begin(), sorted_apps.end(), &AppLaunchedMoreRecent);
87 84
88 const size_t kMaxRecommendedApps = 4; 85 const size_t kMaxRecommendedApps = 4;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 } 127 }
131 128
132 void RecommendedApps::OnAppsReordered() {} 129 void RecommendedApps::OnAppsReordered() {}
133 130
134 void RecommendedApps::OnAppInstalledToAppList( 131 void RecommendedApps::OnAppInstalledToAppList(
135 const std::string& extension_id) {} 132 const std::string& extension_id) {}
136 133
137 void RecommendedApps::OnShutdown() {} 134 void RecommendedApps::OnShutdown() {}
138 135
139 } // namespace app_list 136 } // namespace app_list
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698