blob: 231d71ad7de3034c98c78b23efe2c395f7b62b8c [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import * as Common from '../core/common/common.js';
function createSettingValue(
category: Common.Settings.SettingCategory, settingName: string, defaultValue: unknown,
settingType = Common.Settings.SettingType.BOOLEAN): Common.Settings.SettingRegistration {
return {category, settingName, defaultValue, settingType};
}
export function stubNoopSettings() {
sinon.stub(Common.Settings.Settings, 'instance').returns({
createSetting: (name: string) => ({
name,
get: () => [],
set: () => {},
addChangeListener: () => {},
removeChangeListener: () => {},
setDisabled: () => {},
setTitle: () => {},
title: () => {},
asRegExp: () => {},
type: () => Common.Settings.SettingType.BOOLEAN,
getAsArray: () => [],
}),
moduleSetting: (name: string) => ({
name,
get: () => [],
set: () => {},
addChangeListener: () => {},
removeChangeListener: () => {},
setDisabled: () => {},
setTitle: () => {},
title: () => {},
asRegExp: () => {},
type: () => Common.Settings.SettingType.BOOLEAN,
getAsArray: () => [],
}),
createLocalSetting: (name: string) => ({
name,
get: () => [],
set: () => {},
addChangeListener: () => {},
removeChangeListener: () => {},
setDisabled: () => {},
setTitle: () => {},
title: () => {},
asRegExp: () => {},
type: () => Common.Settings.SettingType.BOOLEAN,
getAsArray: () => [],
}),
} as unknown as Common.Settings.Settings);
}
export const DEFAULT_SETTING_REGISTRATIONS_FOR_TEST = [
createSettingValue(
Common.Settings.SettingCategory.ADORNER, 'adorner-settings', [], Common.Settings.SettingType.ARRAY),
createSettingValue(Common.Settings.SettingCategory.APPEARANCE, 'disable-paused-state-overlay', false),
createSettingValue(
Common.Settings.SettingCategory.APPEARANCE, 'sidebar-position', 'auto', Common.Settings.SettingType.ENUM),
createSettingValue(Common.Settings.SettingCategory.CONSOLE, 'custom-formatters', false),
createSettingValue(Common.Settings.SettingCategory.DEBUGGER, 'pause-on-exception-enabled', false),
createSettingValue(Common.Settings.SettingCategory.DEBUGGER, 'pause-on-caught-exception', false),
createSettingValue(Common.Settings.SettingCategory.DEBUGGER, 'pause-on-uncaught-exception', false),
createSettingValue(Common.Settings.SettingCategory.DEBUGGER, 'disable-async-stack-traces', false),
createSettingValue(Common.Settings.SettingCategory.DEBUGGER, 'breakpoints-active', true),
createSettingValue(Common.Settings.SettingCategory.DEBUGGER, 'java-script-disabled', false),
createSettingValue(Common.Settings.SettingCategory.DEBUGGER, 'skip-content-scripts', true),
createSettingValue(
Common.Settings.SettingCategory.DEBUGGER, 'automatically-ignore-list-known-third-party-scripts', true),
createSettingValue(Common.Settings.SettingCategory.DEBUGGER, 'skip-anonymous-scripts', false),
createSettingValue(Common.Settings.SettingCategory.DEBUGGER, 'enable-ignore-listing', true),
createSettingValue(
Common.Settings.SettingCategory.DEBUGGER, 'skip-stack-frames-pattern',
'/node_modules/|^node:', Common.Settings.SettingType.REGEX),
createSettingValue(Common.Settings.SettingCategory.DEBUGGER, 'navigator-group-by-folder', true),
createSettingValue(Common.Settings.SettingCategory.ELEMENTS, 'dom-word-wrap', true),
createSettingValue(Common.Settings.SettingCategory.ELEMENTS, 'show-detailed-inspect-tooltip', true),
createSettingValue(Common.Settings.SettingCategory.ELEMENTS, 'show-html-comments', true),
createSettingValue(Common.Settings.SettingCategory.ELEMENTS, 'show-ua-shadow-dom', false),
createSettingValue(Common.Settings.SettingCategory.PERFORMANCE, 'annotations-hidden', false),
createSettingValue(Common.Settings.SettingCategory.NETWORK, 'cache-disabled', false),
createSettingValue(Common.Settings.SettingCategory.RENDERING, 'avif-format-disabled', false),
createSettingValue(
Common.Settings.SettingCategory.RENDERING, 'emulated-css-media', '', Common.Settings.SettingType.ENUM),
createSettingValue(
Common.Settings.SettingCategory.RENDERING, 'emulated-css-media-feature-prefers-color-scheme', '',
Common.Settings.SettingType.ENUM),
createSettingValue(
Common.Settings.SettingCategory.RENDERING, 'emulated-css-media-feature-forced-colors', '',
Common.Settings.SettingType.ENUM),
createSettingValue(
Common.Settings.SettingCategory.RENDERING, 'emulated-css-media-feature-prefers-reduced-motion', '',
Common.Settings.SettingType.ENUM),
createSettingValue(
Common.Settings.SettingCategory.RENDERING, 'emulated-css-media-feature-prefers-contrast', '',
Common.Settings.SettingType.ENUM),
createSettingValue(
Common.Settings.SettingCategory.RENDERING, 'emulated-css-media-feature-prefers-reduced-data', '',
Common.Settings.SettingType.ENUM),
createSettingValue(
Common.Settings.SettingCategory.RENDERING, 'emulated-css-media-feature-prefers-reduced-transparency', '',
Common.Settings.SettingType.ENUM),
createSettingValue(
Common.Settings.SettingCategory.RENDERING, 'emulated-css-media-feature-color-gamut', '',
Common.Settings.SettingType.ENUM),
createSettingValue(
Common.Settings.SettingCategory.RENDERING, 'emulated-vision-deficiency', '', Common.Settings.SettingType.ENUM),
createSettingValue(
Common.Settings.SettingCategory.RENDERING, 'emulated-os-text-scale', '', Common.Settings.SettingType.ENUM),
createSettingValue(
Common.Settings.SettingCategory.RENDERING, 'emulate-auto-dark-mode', '', Common.Settings.SettingType.ENUM),
createSettingValue(Common.Settings.SettingCategory.RENDERING, 'local-fonts-disabled', false),
createSettingValue(Common.Settings.SettingCategory.RENDERING, 'show-paint-rects', false),
createSettingValue(Common.Settings.SettingCategory.RENDERING, 'show-layout-shift-regions', false),
createSettingValue(Common.Settings.SettingCategory.RENDERING, 'show-ad-highlights', false),
createSettingValue(Common.Settings.SettingCategory.RENDERING, 'show-debug-borders', false),
createSettingValue(Common.Settings.SettingCategory.RENDERING, 'show-fps-counter', false),
createSettingValue(Common.Settings.SettingCategory.RENDERING, 'show-scroll-bottleneck-rects', false),
createSettingValue(Common.Settings.SettingCategory.RENDERING, 'webp-format-disabled', false),
createSettingValue(Common.Settings.SettingCategory.SOURCES, 'allow-scroll-past-eof', true),
createSettingValue(Common.Settings.SettingCategory.SOURCES, 'css-source-maps-enabled', true),
createSettingValue(Common.Settings.SettingCategory.SOURCES, 'inline-variable-values', true),
createSettingValue(Common.Settings.SettingCategory.SOURCES, 'auto-pretty-print-minified', true),
createSettingValue(Common.Settings.SettingCategory.SOURCES, 'js-source-maps-enabled', true),
createSettingValue(Common.Settings.SettingCategory.SOURCES, 'show-whitespaces-in-editor', 'none'),
createSettingValue(Common.Settings.SettingCategory.SOURCES, 'sources.word-wrap', true),
createSettingValue(Common.Settings.SettingCategory.SOURCES, 'text-editor-autocompletion', true),
createSettingValue(Common.Settings.SettingCategory.SOURCES, 'text-editor-auto-detect-indent', false),
createSettingValue(Common.Settings.SettingCategory.SOURCES, 'text-editor-bracket-closing', true),
createSettingValue(Common.Settings.SettingCategory.SOURCES, 'text-editor-bracket-matching', true),
createSettingValue(Common.Settings.SettingCategory.SOURCES, 'text-editor-code-folding', true),
createSettingValue(Common.Settings.SettingCategory.SOURCES, 'text-editor-indent', ' '),
createSettingValue(Common.Settings.SettingCategory.SOURCES, 'text-editor-tab-moves-focus', false),
createSettingValue(
Common.Settings.SettingCategory.EMULATION, 'emulation.touch', '', Common.Settings.SettingType.ENUM),
createSettingValue(
Common.Settings.SettingCategory.EMULATION, 'emulation.idle-detection', '', Common.Settings.SettingType.ENUM),
createSettingValue(
Common.Settings.SettingCategory.EMULATION, 'emulation.cpu-pressure', '', Common.Settings.SettingType.ENUM),
createSettingValue(
Common.Settings.SettingCategory.GRID, 'show-grid-line-labels', 'none', Common.Settings.SettingType.ENUM),
createSettingValue(Common.Settings.SettingCategory.GRID, 'extend-grid-lines', true),
createSettingValue(Common.Settings.SettingCategory.GRID, 'show-grid-areas', true),
createSettingValue(Common.Settings.SettingCategory.GRID, 'show-grid-track-sizes', true),
createSettingValue(Common.Settings.SettingCategory.NONE, 'active-keybind-set', '', Common.Settings.SettingType.ENUM),
createSettingValue(Common.Settings.SettingCategory.NONE, 'user-shortcuts', [], Common.Settings.SettingType.ARRAY),
createSettingValue(
Common.Settings.SettingCategory.APPEARANCE, 'help.show-release-note', true, Common.Settings.SettingType.BOOLEAN),
createSettingValue(Common.Settings.SettingCategory.NETWORK, 'request-blocking-enabled', false),
createSettingValue(Common.Settings.SettingCategory.CONSOLE, 'monitoring-xhr-enabled', false),
createSettingValue(
Common.Settings.SettingCategory.NONE, 'custom-network-conditions', [], Common.Settings.SettingType.ARRAY),
createSettingValue(
Common.Settings.SettingCategory.NONE, 'calibrated-cpu-throttling', [], Common.Settings.SettingType.BOOLEAN),
createSettingValue(Common.Settings.SettingCategory.NONE, 'gdp.ai-conversation-count', 0),
createSettingValue(
Common.Settings.SettingCategory.APPEARANCE, 'ui-theme', 'systemPreferred', Common.Settings.SettingType.ENUM),
createSettingValue(Common.Settings.SettingCategory.APPEARANCE, 'language', 'en-US', Common.Settings.SettingType.ENUM),
createSettingValue(
Common.Settings.SettingCategory.PERSISTENCE, 'persistence-network-overrides-enabled', true,
Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.NETWORK, 'network-log.preserve-log', true, Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.NETWORK, 'network-log.record-log', true, Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.SOURCES, 'network.enable-remote-file-loading', false,
Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.CONSOLE, 'hide-network-messages', false, Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.CONSOLE, 'selected-context-filter-enabled', false,
Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.CONSOLE, 'console-group-similar', false, Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.CONSOLE, 'console-shows-cors-errors', false, Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.CONSOLE, 'console-timestamps-enabled', false,
Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.CONSOLE, 'console-insights-enabled', true, Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.CONSOLE, 'console-insights-onboarding-finished', true,
Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.CONSOLE, 'console-history-autocomplete', false,
Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.CONSOLE, 'console-autocomplete-on-enter', false,
Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.CONSOLE, 'preserve-console-log', false, Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.CONSOLE, 'console-eager-eval', false, Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.CONSOLE, 'console-user-activation-eval', false,
Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.CONSOLE, 'console-trace-expand', false, Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.PERFORMANCE, 'flamechart-selected-navigation', false,
Common.Settings.SettingType.ENUM),
createSettingValue(
Common.Settings.SettingCategory.ELEMENTS, 'show-css-property-documentation-on-hover', false,
Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.ACCOUNT, 'sync-preferences', false, Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.AI, 'ai-assistance-enabled', false, Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.AI, 'ai-annotations-enabled', false, Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.AI, 'ai-assistance-history-entries', [], Common.Settings.SettingType.ARRAY),
createSettingValue(
Common.Settings.SettingCategory.AI, 'ai-assistance-patching-fre-completed', false,
Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.AI, 'ai-code-completion-enabled', false, Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.AI, 'ai-code-completion-teaser-dismissed', false,
Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.MOBILE, 'emulation.show-device-outline', false,
Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.APPEARANCE, 'chrome-theme-colors', true, Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.PERFORMANCE, 'timeline.user-had-shortcuts-dialog-opened-once', false,
Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.ELEMENTS, 'show-event-listeners-for-ancestors', true,
Common.Settings.SettingType.BOOLEAN),
createSettingValue(
Common.Settings.SettingCategory.ELEMENTS, 'highlight-node-on-hover-in-overlay', true,
Common.Settings.SettingType.BOOLEAN),
createSettingValue(Common.Settings.SettingCategory.ELEMENTS, 'global-ai-button-click-count', 0),
createSettingValue(Common.Settings.SettingCategory.ACCOUNT, 'receive-gdp-badges', false),
createSettingValue(Common.Settings.SettingCategory.GLOBAL, 'currentDockState', 'right'),
createSettingValue(
Common.Settings.SettingCategory.CONSOLE, 'console-insight-teasers-enabled', true,
Common.Settings.SettingType.BOOLEAN),
];
export function setupSettings(reset: boolean) {
// Create the appropriate settings needed to boot.
Common.Settings.registerSettingsForTest(DEFAULT_SETTING_REGISTRATIONS_FOR_TEST.slice(0), reset);
// Instantiate the storage.
const storage = new Common.Settings.SettingsStorage({}, undefined, 'test');
Common.Settings.Settings.instance({
forceNew: reset,
syncedStorage: storage,
globalStorage: storage,
localStorage: storage,
settingRegistrations: Common.SettingRegistration.getRegisteredSettings()
});
}
export function cleanupSettings() {
Common.Settings.resetSettings();
}
export function setupSettingsHooks() {
beforeEach(() => setupSettings(true));
afterEach(cleanupSettings);
}
export function createSettingsForTest(settingRegistrations = DEFAULT_SETTING_REGISTRATIONS_FOR_TEST.slice(0)) {
const storage = new Common.Settings.SettingsStorage({});
return new Common.Settings.Settings({
syncedStorage: storage,
globalStorage: storage,
localStorage: storage,
settingRegistrations,
});
}