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#ifndef CHROME_BROWSER_APPS_APP_WINDOW_REGISTRY_UTIL_H_
6#define CHROME_BROWSER_APPS_APP_WINDOW_REGISTRY_UTIL_H_
7
8#include "ui/gfx/native_widget_types.h"
9
10namespace extensions {
11class AppWindow;
12}
13
14// Utility functions to interact with app windows across all profiles.
15class AppWindowRegistryUtil {
16 public:
17  // Returns the app window for |window|, looking in all browser contexts.
18  static extensions::AppWindow* GetAppWindowForNativeWindowAnyProfile(
19      gfx::NativeWindow window);
20
21  // Returns true if the number of app windows registered across all browser
22  // contexts is non-zero. |window_type_mask| is a bitwise OR filter of
23  // AppWindow::WindowType, or 0 for any window type.
24  static bool IsAppWindowRegisteredInAnyProfile(int window_type_mask);
25
26  // Close all app windows in all profiles.
27  static void CloseAllAppWindows();
28};
29
30#endif  // CHROME_BROWSER_APPS_APP_WINDOW_REGISTRY_UTIL_H_
31