prefs.js (7832B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ 4 5 const { PrefsHelper } = require("resource://devtools/client/shared/prefs.js"); 6 7 import { isNode } from "./environment"; 8 9 // Schema version to bump when the async store format has changed incompatibly 10 // and old stores should be cleared. 11 const prefsSchemaVersion = 11; 12 const { pref } = Services; 13 14 if (isNode()) { 15 pref("devtools.debugger.logging", false); 16 pref("devtools.debugger.alphabetize-outline", false); 17 pref("devtools.debugger.auto-pretty-print", false); 18 pref("devtools.source-map.client-service.enabled", true); 19 pref("devtools.chrome.enabled", false); 20 pref("devtools.debugger.pause-on-debugger-statement", true); 21 pref("devtools.debugger.pause-on-exceptions", false); 22 pref("devtools.debugger.pause-on-caught-exceptions", false); 23 pref("devtools.debugger.ignore-caught-exceptions", true); 24 pref("devtools.debugger.call-stack-visible", true); 25 pref("devtools.debugger.scopes-visible", true); 26 pref("devtools.debugger.threads-visible", true); 27 pref("devtools.debugger.expressions-visible", false); 28 pref("devtools.debugger.xhr-breakpoints-visible", false); 29 pref("devtools.debugger.breakpoints-visible", true); 30 pref("devtools.debugger.event-listeners-visible", false); 31 pref("devtools.debugger.dom-mutation-breakpoints-visible", false); 32 pref("devtools.debugger.start-panel-collapsed", false); 33 pref("devtools.debugger.end-panel-collapsed", false); 34 pref("devtools.debugger.start-panel-size", 300); 35 pref("devtools.debugger.end-panel-size", 300); 36 pref("devtools.debugger.ui.editor-wrapping", false); 37 pref("devtools.debugger.ui.framework-grouping-on", true); 38 pref("devtools.debugger.pending-selected-location", "{}"); 39 pref("devtools.debugger.expressions", "[]"); 40 pref("devtools.debugger.search-options", "{}"); 41 pref("devtools.debugger.project-directory-root", ""); 42 pref("devtools.debugger.map-scopes-enabled", false); 43 pref("devtools.debugger.prefs-schema-version", prefsSchemaVersion); 44 pref("devtools.debugger.skip-pausing", false); 45 pref("devtools.debugger.log-actions", true); 46 pref("devtools.debugger.log-event-breakpoints", false); 47 pref("devtools.debugger.javascript-tracing-log-method", "debugger-sidebar"); 48 pref("devtools.debugger.javascript-tracing-values", false); 49 pref("devtools.debugger.javascript-tracing-on-next-interaction", false); 50 pref("devtools.debugger.javascript-tracing-on-next-load", false); 51 pref("devtools.debugger.javascript-tracing-function-return", false); 52 pref("devtools.debugger.show-content-scripts", false); 53 pref("devtools.debugger.hide-ignored-sources", false); 54 pref("devtools.debugger.source-map-ignore-list-enabled", true); 55 pref("devtools.debugger.features.wasm", true); 56 pref("devtools.debugger.features.code-folding", false); 57 pref("devtools.debugger.features.autocomplete-expressions", false); 58 pref("devtools.debugger.features.map-expression-bindings", true); 59 pref("devtools.debugger.features.map-await-expression", true); 60 pref("devtools.debugger.features.log-points", true); 61 pref("devtools.debugger.features.inline-preview", true); 62 pref("devtools.debugger.features.javascript-tracing", false); 63 pref("devtools.editor.tabsize", 2); 64 pref("devtools.editor.expandtab", false); 65 pref("devtools.editor.autoclosebrackets", false); 66 } 67 68 export const prefs = new PrefsHelper("devtools", { 69 logging: ["Bool", "debugger.logging"], 70 editorWrapping: ["Bool", "debugger.ui.editor-wrapping"], 71 alphabetizeOutline: ["Bool", "debugger.alphabetize-outline"], 72 autoPrettyPrint: ["Bool", "debugger.auto-pretty-print"], 73 clientSourceMapsEnabled: ["Bool", "source-map.client-service.enabled"], 74 chromeAndExtensionsEnabled: ["Bool", "chrome.enabled"], 75 pauseOnDebuggerStatement: ["Bool", "debugger.pause-on-debugger-statement"], 76 pauseOnExceptions: ["Bool", "debugger.pause-on-exceptions"], 77 pauseOnCaughtExceptions: ["Bool", "debugger.pause-on-caught-exceptions"], 78 ignoreCaughtExceptions: ["Bool", "debugger.ignore-caught-exceptions"], 79 callStackVisible: ["Bool", "debugger.call-stack-visible"], 80 scopesVisible: ["Bool", "debugger.scopes-visible"], 81 threadsVisible: ["Bool", "debugger.threads-visible"], 82 breakpointsVisible: ["Bool", "debugger.breakpoints-visible"], 83 expressionsVisible: ["Bool", "debugger.expressions-visible"], 84 xhrBreakpointsVisible: ["Bool", "debugger.xhr-breakpoints-visible"], 85 eventListenersVisible: ["Bool", "debugger.event-listeners-visible"], 86 domMutationBreakpointsVisible: [ 87 "Bool", 88 "debugger.dom-mutation-breakpoints-visible", 89 ], 90 startPanelCollapsed: ["Bool", "debugger.start-panel-collapsed"], 91 endPanelCollapsed: ["Bool", "debugger.end-panel-collapsed"], 92 startPanelSize: ["Int", "debugger.start-panel-size"], 93 endPanelSize: ["Int", "debugger.end-panel-size"], 94 frameworkGroupingOn: ["Bool", "debugger.ui.framework-grouping-on"], 95 pendingSelectedLocation: ["Json", "debugger.pending-selected-location", {}], 96 expressions: ["Json", "debugger.expressions", []], 97 searchOptions: ["Json", "debugger.search-options"], 98 debuggerPrefsSchemaVersion: ["Int", "debugger.prefs-schema-version"], 99 skipPausing: ["Bool", "debugger.skip-pausing"], 100 mapScopes: ["Bool", "debugger.map-scopes-enabled"], 101 logActions: ["Bool", "debugger.log-actions"], 102 logEventBreakpoints: ["Bool", "debugger.log-event-breakpoints"], 103 indentSize: ["Int", "editor.tabsize"], 104 javascriptTracingLogMethod: [ 105 "String", 106 "debugger.javascript-tracing-log-method", 107 ], 108 javascriptTracingValues: ["Bool", "debugger.javascript-tracing-values"], 109 javascriptTracingOnNextInteraction: [ 110 "Bool", 111 "debugger.javascript-tracing-on-next-interaction", 112 ], 113 javascriptTracingOnNextLoad: [ 114 "Bool", 115 "debugger.javascript-tracing-on-next-load", 116 ], 117 javascriptTracingFunctionReturn: [ 118 "Bool", 119 "debugger.javascript-tracing-function-return", 120 ], 121 showContentScripts: ["Bool", "debugger.show-content-scripts"], 122 hideIgnoredSources: ["Bool", "debugger.hide-ignored-sources"], 123 sourceMapIgnoreListEnabled: [ 124 "Bool", 125 "debugger.source-map-ignore-list-enabled", 126 ], 127 pausedOverlayEnabled: ["Bool", "debugger.features.overlay"], 128 }); 129 130 // The pref may not be defined. Defaulting to null isn't viable (cursor never blinks). 131 // Can't use CodeMirror.defaults here because it's loaded later. 132 // Hardcode the fallback value to that of CodeMirror.defaults.cursorBlinkRate. 133 prefs.cursorBlinkRate = Services.prefs.getIntPref("ui.caretBlinkTime", 530); 134 135 export const features = new PrefsHelper("devtools.debugger.features", { 136 wasm: ["Bool", "wasm"], 137 outline: ["Bool", "outline"], 138 codeFolding: ["Bool", "code-folding"], 139 autocompleteExpression: ["Bool", "autocomplete-expressions"], 140 mapExpressionBindings: ["Bool", "map-expression-bindings"], 141 mapAwaitExpression: ["Bool", "map-await-expression"], 142 logPoints: ["Bool", "log-points"], 143 inlinePreview: ["Bool", "inline-preview"], 144 windowlessServiceWorkers: ["Bool", "windowless-service-workers"], 145 javascriptTracing: ["Bool", "javascript-tracing"], 146 }); 147 148 // Import the asyncStore already spawned by the TargetMixin class 149 const ThreadUtils = require("resource://devtools/client/shared/thread-utils.js"); 150 export const asyncStore = ThreadUtils.asyncStore; 151 152 export function resetSchemaVersion() { 153 prefs.debuggerPrefsSchemaVersion = prefsSchemaVersion; 154 } 155 156 export function verifyPrefSchema() { 157 if (prefs.debuggerPrefsSchemaVersion < prefsSchemaVersion) { 158 asyncStore.pendingBreakpoints = {}; 159 asyncStore.openedURLs = []; 160 asyncStore.xhrBreakpoints = []; 161 asyncStore.eventListenerBreakpoints = undefined; 162 asyncStore.blackboxedRanges = {}; 163 prefs.debuggerPrefsSchemaVersion = prefsSchemaVersion; 164 } 165 }