Adding instrumentation to locate the source of jankiness
[chromium-blink-merge.git] / ash / first_run / desktop_cleaner.h
blob061f1120fe8c9564948f3ed94f4eb07cd2cfcb36
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.
5 #ifndef ASH_FIRST_RUN_DESKTOP_CLEANER_
6 #define ASH_FIRST_RUN_DESKTOP_CLEANER_
8 #include <vector>
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"
15 namespace ash {
16 class ContainerHider;
17 class NotificationBlocker;
19 namespace test {
20 class FirstRunHelperTest;
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();
29 private:
30 // Returns the list of containers that DesctopCleaner hides.
31 static std::vector<int> GetContainersToHideForTest();
33 std::vector<linked_ptr<ContainerHider> > container_hiders_;
34 scoped_ptr<NotificationBlocker> notification_blocker_;
36 friend class ash::test::FirstRunHelperTest;
37 DISALLOW_COPY_AND_ASSIGN(DesktopCleaner);
40 } // namespace ash
42 #endif // ASH_FIRST_RUN_DESKTOP_CLEANER_