app_list_service_views.cc revision f8ee788a64d60abd8f2d742a5fdedde054ecd910
1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/ui/app_list/app_list_service_views.h"
6
7#include "chrome/browser/ui/app_list/app_list_controller_delegate.h"
8#include "chrome/browser/ui/app_list/scoped_keep_alive.h"
9
10AppListServiceViews::AppListServiceViews(
11    scoped_ptr<AppListControllerDelegate> controller_delegate)
12    : shower_(this),
13      can_dismiss_(true),
14      controller_delegate_(controller_delegate.Pass()) {
15}
16
17AppListServiceViews::~AppListServiceViews() {}
18
19void AppListServiceViews::OnViewBeingDestroyed() {
20  can_dismiss_ = true;
21  shower_.HandleViewBeingDestroyed();
22}
23
24void AppListServiceViews::Init(Profile* initial_profile) {
25  PerformStartupChecks(initial_profile);
26}
27
28void AppListServiceViews::CreateForProfile(Profile* requested_profile) {
29  shower_.CreateViewForProfile(requested_profile);
30}
31
32void AppListServiceViews::ShowForProfile(Profile* requested_profile) {
33  DCHECK(requested_profile);
34  if (requested_profile->IsSupervised())
35    return;
36
37  ScopedKeepAlive keep_alive;
38
39  InvalidatePendingProfileLoads();
40  SetProfilePath(requested_profile->GetPath());
41  shower_.ShowForProfile(requested_profile);
42  RecordAppListLaunch();
43}
44
45void AppListServiceViews::DismissAppList() {
46  if (!can_dismiss_)
47    return;
48
49  shower_.DismissAppList();
50}
51
52bool AppListServiceViews::IsAppListVisible() const {
53  return shower_.IsAppListVisible();
54}
55
56gfx::NativeWindow AppListServiceViews::GetAppListWindow() {
57  return shower_.GetWindow();
58}
59
60Profile* AppListServiceViews::GetCurrentAppListProfile() {
61  return shower_.profile();
62}
63
64AppListControllerDelegate* AppListServiceViews::GetControllerDelegate() {
65  return controller_delegate_.get();
66}
67
68AppListControllerDelegate*
69AppListServiceViews::GetControllerDelegateForCreate() {
70  return controller_delegate_.get();
71}
72