1// Copyright (c) 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 CHROME_BROWSER_EXTENSIONS_LAUNCH_UTIL_H_ 6#define CHROME_BROWSER_EXTENSIONS_LAUNCH_UTIL_H_ 7 8#include <string> 9 10#include "chrome/common/extensions/extension_constants.h" 11 12class ExtensionService; 13 14namespace user_prefs { 15class PrefRegistrySyncable; 16} 17 18namespace extensions { 19namespace launch_util { 20 21void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); 22 23} // namespace launch_util 24 25class Extension; 26class ExtensionPrefs; 27 28// Gets the launch type preference. If no preference is set, returns 29// LAUNCH_TYPE_DEFAULT. 30// Returns LAUNCH_TYPE_WINDOW if there's no preference and 31// 'streamlined hosted apps' are enabled. 32LaunchType GetLaunchType(const ExtensionPrefs* prefs, 33 const Extension* extension); 34 35// Returns the LaunchType that is set in the prefs. Returns LAUNCH_TYPE_INVALID 36// if no value is set in prefs. 37LaunchType GetLaunchTypePrefValue(const ExtensionPrefs* prefs, 38 const std::string& extension_id); 39 40// Sets an extension's launch type preference and syncs the value if necessary. 41void SetLaunchType(ExtensionService* prefs, 42 const std::string& extension_id, 43 LaunchType launch_type); 44 45// Finds the right launch container based on the launch type. 46// If |extension|'s prefs do not have a launch type set, then the default 47// value from GetLaunchType() is used to choose the launch container. 48LaunchContainer GetLaunchContainer(const ExtensionPrefs* prefs, 49 const Extension* extension); 50 51// Returns true if a launch container preference has been specified for 52// |extension|. GetLaunchContainer() will still return a default value even if 53// this returns false. 54bool HasPreferredLaunchContainer(const ExtensionPrefs* prefs, 55 const Extension* extension); 56 57} // namespace extensions 58 59#endif // CHROME_BROWSER_EXTENSIONS_LAUNCH_UTIL_H_ 60