Chromium Code Reviews| Index: chrome/browser/ui/views/app_list/win/app_list_service_win.cc |
| diff --git a/chrome/browser/ui/views/app_list/win/app_list_service_win.cc b/chrome/browser/ui/views/app_list/win/app_list_service_win.cc |
| index f5ac4fc46dab7ae3be31ef2d06f2d8ee600ad0ae..02c09bd713b43e3633c7bcb042c468d19b89c178 100644 |
| --- a/chrome/browser/ui/views/app_list/win/app_list_service_win.cc |
| +++ b/chrome/browser/ui/views/app_list/win/app_list_service_win.cc |
| @@ -15,7 +15,6 @@ |
| #include "base/path_service.h" |
| #include "base/prefs/pref_service.h" |
| #include "base/strings/utf_string_conversions.h" |
| -#include "base/threading/sequenced_worker_pool.h" |
|
tapted
2014/04/29 04:20:30
safe?
tapted
2014/04/30 03:26:03
Done.
(context: this header has a habit of disapp
|
| #include "base/time/time.h" |
| #include "base/win/shortcut.h" |
| #include "base/win/windows_version.h" |
| @@ -26,12 +25,6 @@ |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/profiles/profile_manager.h" |
| #include "chrome/browser/shell_integration.h" |
| -#include "chrome/browser/ui/app_list/app_list.h" |
| -#include "chrome/browser/ui/app_list/app_list_controller_delegate.h" |
| -#include "chrome/browser/ui/app_list/app_list_factory.h" |
| -#include "chrome/browser/ui/app_list/app_list_shower.h" |
| -#include "chrome/browser/ui/app_list/app_list_view_delegate.h" |
| -#include "chrome/browser/ui/app_list/scoped_keep_alive.h" |
| #include "chrome/browser/ui/ash/app_list/app_list_service_ash.h" |
| #include "chrome/browser/ui/views/app_list/win/activation_tracker_win.h" |
| #include "chrome/browser/ui/views/app_list/win/app_list_controller_delegate_win.h" |
| @@ -47,7 +40,6 @@ |
| #include "content/public/browser/browser_thread.h" |
| #include "ui/app_list/views/app_list_view.h" |
| #include "ui/base/win/shell.h" |
| -#include "ui/gfx/screen.h" |
| // static |
| AppListService* AppListService::Get(chrome::HostDesktopType desktop_type) { |
| @@ -249,43 +241,6 @@ void SetWindowAttributes(HWND hwnd) { |
| ui::win::SetAppIconForWindow(icon_path, hwnd); |
| } |
| -class AppListFactoryWin : public AppListFactory { |
| - public: |
| - explicit AppListFactoryWin(AppListServiceWin* service) |
| - : service_(service) { |
| - } |
| - |
| - virtual ~AppListFactoryWin() { |
| - } |
| - |
| - virtual AppList* CreateAppList( |
| - Profile* profile, |
| - AppListService* service, |
| - const base::Closure& on_should_dismiss) OVERRIDE { |
| - // The view delegate will be owned by the app list view. The app list view |
| - // manages it's own lifetime. |
| - AppListViewDelegate* view_delegate = |
| - new AppListViewDelegate(profile, |
| - service->GetControllerDelegate()); |
| - app_list::AppListView* view = new app_list::AppListView(view_delegate); |
| - gfx::Point cursor = gfx::Screen::GetNativeScreen()->GetCursorScreenPoint(); |
| - view->InitAsBubbleAtFixedLocation(NULL, |
| - &pagination_model_, |
| - cursor, |
| - views::BubbleBorder::FLOAT, |
| - false /* border_accepts_events */); |
| - SetWindowAttributes(view->GetHWND()); |
| - return new AppListWin(view, on_should_dismiss); |
| - } |
| - |
| - private: |
| - // PaginationModel that is shared across all views. |
| - app_list::PaginationModel pagination_model_; |
| - AppListServiceWin* service_; |
| - |
| - DISALLOW_COPY_AND_ASSIGN(AppListFactoryWin); |
| -}; |
| - |
| } // namespace |
| // static |
| @@ -295,54 +250,18 @@ AppListServiceWin* AppListServiceWin::GetInstance() { |
| } |
| AppListServiceWin::AppListServiceWin() |
| - : enable_app_list_on_next_init_(false), |
| - shower_(new AppListShower( |
| - scoped_ptr<AppListFactory>(new AppListFactoryWin(this)), |
| - this)), |
| - controller_delegate_(new AppListControllerDelegateWin(this)) { |
| + : AppListServiceViews(scoped_ptr<AppListControllerDelegate>( |
| + new AppListControllerDelegateWin(this))), |
| + enable_app_list_on_next_init_(false) { |
| } |
| AppListServiceWin::~AppListServiceWin() { |
| } |
| -void AppListServiceWin::set_can_close(bool can_close) { |
| - shower_->set_can_close(can_close); |
| -} |
| - |
| -gfx::NativeWindow AppListServiceWin::GetAppListWindow() { |
| - return shower_->GetWindow(); |
| -} |
| - |
| -Profile* AppListServiceWin::GetCurrentAppListProfile() { |
| - return shower_->profile(); |
| -} |
| - |
| -AppListControllerDelegate* AppListServiceWin::GetControllerDelegate() { |
| - return controller_delegate_.get(); |
| -} |
| - |
| void AppListServiceWin::ShowForProfile(Profile* requested_profile) { |
| - DCHECK(requested_profile); |
| - if (requested_profile->IsManaged()) |
| - return; |
| - |
| - ScopedKeepAlive keep_alive; |
| - |
| + AppListServiceViews::ShowForProfile(requested_profile); |
| content::BrowserThread::PostBlockingPoolTask( |
| FROM_HERE, base::Bind(SetDidRunForNDayActiveStats)); |
| - |
| - InvalidatePendingProfileLoads(); |
| - SetProfilePath(requested_profile->GetPath()); |
| - shower_->ShowForProfile(requested_profile); |
| - RecordAppListLaunch(); |
| -} |
| - |
| -void AppListServiceWin::DismissAppList() { |
| - shower_->DismissAppList(); |
| -} |
| - |
| -void AppListServiceWin::OnViewBeingDestroyed() { |
| - shower_->HandleViewBeingDestroyed(); |
| } |
| void AppListServiceWin::OnLoadProfileForWarmup(Profile* initial_profile) { |
| @@ -350,7 +269,7 @@ void AppListServiceWin::OnLoadProfileForWarmup(Profile* initial_profile) { |
| return; |
| base::Time before_warmup(base::Time::Now()); |
| - shower_->WarmupForProfile(initial_profile); |
| + shower().WarmupForProfile(initial_profile); |
| UMA_HISTOGRAM_TIMES("Apps.AppListWarmupDuration", |
| base::Time::Now() - before_warmup); |
| } |
| @@ -380,15 +299,7 @@ void AppListServiceWin::Init(Profile* initial_profile) { |
| ScheduleWarmup(); |
| MigrateAppLauncherEnabledPref(); |
| - PerformStartupChecks(initial_profile); |
| -} |
| - |
| -void AppListServiceWin::CreateForProfile(Profile* profile) { |
| - shower_->CreateViewForProfile(profile); |
| -} |
| - |
| -bool AppListServiceWin::IsAppListVisible() const { |
| - return shower_->IsAppListVisible(); |
| + AppListServiceViews::Init(initial_profile); |
| } |
| void AppListServiceWin::CreateShortcut() { |
| @@ -430,7 +341,7 @@ bool AppListServiceWin::IsWarmupNeeded() { |
| // We only need to initialize the view if there's no view already created and |
| // there's no profile loading to be shown. |
| - return !shower_->HasView() && !profile_loader().IsAnyProfileLoading(); |
| + return !shower().HasView() && !profile_loader().IsAnyProfileLoading(); |
| } |
| void AppListServiceWin::LoadProfileForWarmup() { |
| @@ -445,3 +356,21 @@ void AppListServiceWin::LoadProfileForWarmup() { |
| base::Bind(&AppListServiceWin::OnLoadProfileForWarmup, |
| base::Unretained(this))); |
| } |
| + |
| +void AppListServiceWin::OnViewBeingDestroyed() { |
| + activation_tracker_.reset(); |
| + AppListServiceViews::OnViewBeingDestroyed(); |
| +} |
| + |
| +void AppListServiceWin::OnViewCreated() { |
| + SetWindowAttributes(shower().app_list()->GetHWND()); |
| + activation_tracker_.reset(new ActivationTrackerWin(this)); |
| +} |
| + |
| +void AppListServiceWin::OnViewHidden() { |
| + activation_tracker_->OnViewHidden(); |
| +} |
| + |
| +void AppListServiceWin::MoveNearCursor(app_list::AppListView* view) { |
| + AppListWin::MoveNearCursor(view); |
| +} |