• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3 // found in the LICENSE file.
4 
5 #ifndef ASH_FIRST_RUN_DESKTOP_CLEANER_
6 #define ASH_FIRST_RUN_DESKTOP_CLEANER_
7 
8 #include <vector>
9 
10 #include "ash/ash_export.h"
11 #include "base/basictypes.h"
12 #include "base/memory/linked_ptr.h"
13 #include "base/memory/scoped_ptr.h"
14 
15 namespace ash {
16 class ContainerHider;
17 class NotificationBlocker;
18 
19 namespace test {
20 class FirstRunHelperTest;
21 }
22 
23 // Class used to "clean" ash desktop, i.e. hide all windows and notifications.
24 class ASH_EXPORT DesktopCleaner {
25  public:
26   DesktopCleaner();
27   ~DesktopCleaner();
28 
29  private:
30   // Returns the list of containers that DesctopCleaner hides.
31   static std::vector<int> GetContainersToHideForTest();
32 
33   std::vector<linked_ptr<ContainerHider> > container_hiders_;
34   scoped_ptr<NotificationBlocker> notification_blocker_;
35 
36   friend class ash::test::FirstRunHelperTest;
37   DISALLOW_COPY_AND_ASSIGN(DesktopCleaner);
38 };
39 
40 }  // namespace ash
41 
42 #endif  // ASH_FIRST_RUN_DESKTOP_CLEANER_
43