// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_EXTENSIONS_LAUNCH_UTIL_H_ #define CHROME_BROWSER_EXTENSIONS_LAUNCH_UTIL_H_ #include <string> #include "components/services/app_service/public/cpp/app_launch_util.h" #include "extensions/common/constants.h" namespace content { class BrowserContext; } namespace extensions { class Extension; class ExtensionPrefs; // Gets the launch type preference. If no preference is set, returns // LAUNCH_TYPE_DEFAULT. // Returns LAUNCH_TYPE_WINDOW if there's no preference and // bookmark apps are enabled. LaunchType GetLaunchType(const ExtensionPrefs* prefs, const Extension* extension); // Returns the LaunchType that is set in the prefs. Returns LAUNCH_TYPE_INVALID // if no value is set in prefs. LaunchType GetLaunchTypePrefValue(const ExtensionPrefs* prefs, const std::string& extension_id); // Sets an extension's launch type preference and syncs the value if necessary. void SetLaunchType(content::BrowserContext* context, const std::string& extension_id, LaunchType launch_type); // Finds the right launch container based on the launch type. // If |extension|'s prefs do not have a launch type set, then the default // value from GetLaunchType() is used to choose the launch container. apps::LaunchContainer GetLaunchContainer(const ExtensionPrefs* prefs, const Extension* extension); // Returns true if a launch container preference has been specified for // |extension|. GetLaunchContainer() will still return a default value even if // this returns false. bool HasPreferredLaunchContainer(const ExtensionPrefs* prefs, const Extension* extension); // Whether |extension| will launch in a window. bool LaunchesInWindow(content::BrowserContext* context, const Extension* extension); } // namespace extensions #endif // CHROME_BROWSER_EXTENSIONS_LAUNCH_UTIL_H_