blob: 1de0b012811b6558157d3be033dcab154f7dc5a4 [file] [log] [blame]
// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {loadTimeData} from 'chrome://resources/js/load_time_data.js';
/**
* Specifies page visibility based on incognito status and ChromeOS guest mode.
*/
export interface OsPageVisibility {
a11y: boolean;
advancedSettings: boolean;
appearance: {
bookmarksBar: boolean,
homeButton: boolean,
pageZoom: boolean,
setTheme: boolean,
setWallpaper: boolean,
};
autofill: boolean;
bluetooth: boolean;
dateTime: boolean;
device: boolean;
downloads: {
googleDrive: boolean,
smbShares: boolean,
};
extensions: boolean;
internet: boolean;
kerberos: boolean;
languages: {
manageInputMethods: boolean,
inputMethodsList: boolean,
};
multidevice: boolean;
onStartup: boolean;
people: boolean|{
googleAccounts: boolean,
lockScreen: boolean,
manageUsers: boolean,
};
printing: boolean;
privacy: {
contentProtectionAttestation: boolean,
networkPrediction: boolean,
searchPrediction: boolean,
wakeOnWifi: boolean,
};
reset: boolean;
}
const isAccountManagerEnabled =
loadTimeData.valueExists('isAccountManagerEnabled') &&
loadTimeData.getBoolean('isAccountManagerEnabled');
const isKerberosEnabled = loadTimeData.valueExists('isKerberosEnabled') &&
loadTimeData.getBoolean('isKerberosEnabled');
const isGuestMode = loadTimeData.getBoolean('isGuest');
/**
* Dictionary defining page visibility.
*/
let osPageVisibility: OsPageVisibility;
if (isGuestMode) {
osPageVisibility = {
a11y: true,
advancedSettings: true,
appearance: {
setWallpaper: false,
setTheme: false,
homeButton: false,
bookmarksBar: false,
pageZoom: false,
},
autofill: false,
bluetooth: true,
dateTime: true,
device: true,
downloads: {
googleDrive: false,
smbShares: false,
},
extensions: false,
internet: true,
kerberos: isKerberosEnabled,
languages: {
manageInputMethods: true,
inputMethodsList: true,
},
multidevice: false,
onStartup: false,
people: false,
printing: true,
privacy: {
contentProtectionAttestation: true,
searchPrediction: false,
networkPrediction: false,
wakeOnWifi: true,
},
reset: false,
};
} else {
osPageVisibility = {
a11y: true,
advancedSettings: true,
appearance: {
setWallpaper: true,
setTheme: true,
homeButton: true,
bookmarksBar: true,
pageZoom: true,
},
autofill: true,
bluetooth: true,
dateTime: true,
device: true,
downloads: {
googleDrive: true,
smbShares: true,
},
extensions: true,
internet: true,
kerberos: isKerberosEnabled,
languages: {
manageInputMethods: true,
inputMethodsList: true,
},
multidevice: true,
onStartup: true,
people: {
lockScreen: true,
googleAccounts: isAccountManagerEnabled,
manageUsers: true,
},
printing: true,
privacy: {
contentProtectionAttestation: true,
searchPrediction: true,
networkPrediction: true,
wakeOnWifi: true,
},
reset: true,
};
}
export {osPageVisibility};