Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / ash / first_run / desktop_cleaner.h
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_