tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 }