blob: c75464dc66ecedd8dbfac47b0dbdb4b6c68fd969 [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
cr.define('settings', function() {
/** @interface */
class AppearanceBrowserProxy {
/** @return {!Promise<number>} */
getDefaultZoom() {}
/**
* @param {string} themeId
* @return {!Promise<!chrome.management.ExtensionInfo>} Theme info.
*/
getThemeInfo(themeId) {}
/** @return {boolean} Whether the current profile is supervised. */
isSupervised() {}
/**
* @return {!Promise<boolean>} Whether the wallpaper setting row should be
* visible.
*/
isWallpaperSettingVisible() {}
/**
* @return {!Promise<boolean>} Whether the wallpaper is policy controlled.
*/
isWallpaperPolicyControlled() {}
// <if expr="chromeos">
openWallpaperManager() {}
// </if>
useDefaultTheme() {}
// <if expr="is_linux and not chromeos">
useSystemTheme() {}
// </if>
/**
* @param {string} url The url of which to check validity.
* @return {!Promise<boolean>}
*/
validateStartupPage(url) {}
}
/**
* @implements {settings.AppearanceBrowserProxy}
*/
class AppearanceBrowserProxyImpl {
/** @override */
getDefaultZoom() {
return new Promise(function(resolve) {
chrome.settingsPrivate.getDefaultZoom(resolve);
});
}
/** @override */
getThemeInfo(themeId) {
return new Promise(function(resolve) {
chrome.management.get(themeId, resolve);
});
}
/** @override */
isSupervised() {
return loadTimeData.getBoolean('isSupervised');
}
// <if expr="chromeos">
/** @override */
isWallpaperSettingVisible() {
return cr.sendWithPromise('isWallpaperSettingVisible');
}
/** @override */
isWallpaperPolicyControlled() {
return cr.sendWithPromise('isWallpaperPolicyControlled');
}
/** @override */
openWallpaperManager() {
chrome.send('openWallpaperManager');
}
// </if>
/** @override */
useDefaultTheme() {
chrome.send('useDefaultTheme');
}
// <if expr="is_linux and not chromeos">
/** @override */
useSystemTheme() {
chrome.send('useSystemTheme');
}
// </if>
/** @override */
validateStartupPage(url) {
return cr.sendWithPromise('validateStartupPage', url);
}
}
cr.addSingletonGetter(AppearanceBrowserProxyImpl);
return {
AppearanceBrowserProxy: AppearanceBrowserProxy,
AppearanceBrowserProxyImpl: AppearanceBrowserProxyImpl,
};
});