Files
roytam1 240cfdae23 import changes from `dev' branch of rmottola/Arctic-Fox:
- Bug 1195615 - Log a web console warning when a HPKP header is ignored due to a non-built in root cert. r=keeler (dcd24f0163)
- Bug 1156865 - Re-enable RDP logging in debugger xpcshell tests; r=jlongster (cb82a79d32)
- Bug 848502 - Add a context menu to the debugger sources panel. r=vporof (58a299ded4)
- Bug 1145262 - Modularize the pane views in the debugger. r=fitzgen (64b9eca0b5)
- Bug 1145262 - Modularize the toolbar views in the debugger. r=fitzgen (c827d2ed92)
- Bug 1167957 - Remove spidermonkey specific JS from debugger (795b7d00fb)
- Bug 1160199 - Implement TabActor.listWorkers;r=jlong (b11fef647b)
- Bug 1164077 - Implement WorkerActor.attach;r=jlong (d3c0a7c820)
- Bug 1164564 - Clean up the helper functions for the debugger tests;r=jlong (b5d3bbbc99)
- Bug 1164564 - Define an instance of the worker loader for worker threads;r=jlong (4eac1636b3)
- Bug 1164564 - Implement WorkerActor.attachThread;r=jlong (fe1ac8ba3d)
- Bug 1169343 - Implement DebuggerView.Workers;r=jlong (12996e5440)
- Bug 1171967 - Emit newSource events on ThreadClient instead of DebuggerClient;r=pbrosset (417dce4d13)
- Bug 1171967 - Implement WorkerTarget;r=jlong (c8963b9b35)
- Bug 1189587: Tighten signature of pref_HashTableLookup. r=njn (de84745d54)
- Bug 1188205 - Fix more constructors in netwerk; r=mcmanus (afcf42b3f8)
- namespaces (867f2a3213)
- Bug 1181319 - Correctly use NS_DECL_ISUPPORTS_INHERITED instead of NS_DECL_ISUPPORTS for DataChannelChild. r=mcmanus (bbe6681ea0)
- Bug 1163909 - Remove nsFtpState::mSessionStartTime, which is dead. r=mcmanus. (f7c218ed91)
- Bug 1170837 - Make nsMultiMixedConv not return an error when served only a package's metadata from the cache r=honzab (afb0684b1d)
2022-04-06 09:28:39 +08:00

210 lines
7.4 KiB
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
// A time interval sufficient for the options popup panel to finish hiding
// itself.
const POPUP_HIDDEN_DELAY = 100; // ms
/**
* Functions handling the options UI.
*/
function OptionsView(DebuggerController, DebuggerView) {
dumpn("OptionsView was instantiated");
this.DebuggerController = DebuggerController;
this.DebuggerView = DebuggerView;
this._toggleAutoPrettyPrint = this._toggleAutoPrettyPrint.bind(this);
this._togglePauseOnExceptions = this._togglePauseOnExceptions.bind(this);
this._toggleIgnoreCaughtExceptions = this._toggleIgnoreCaughtExceptions.bind(this);
this._toggleShowPanesOnStartup = this._toggleShowPanesOnStartup.bind(this);
this._toggleShowVariablesOnlyEnum = this._toggleShowVariablesOnlyEnum.bind(this);
this._toggleShowVariablesFilterBox = this._toggleShowVariablesFilterBox.bind(this);
this._toggleShowOriginalSource = this._toggleShowOriginalSource.bind(this);
this._toggleAutoBlackBox = this._toggleAutoBlackBox.bind(this);
}
OptionsView.prototype = {
/**
* Initialization function, called when the debugger is started.
*/
initialize: function() {
dumpn("Initializing the OptionsView");
this._button = document.getElementById("debugger-options");
this._autoPrettyPrint = document.getElementById("auto-pretty-print");
this._pauseOnExceptionsItem = document.getElementById("pause-on-exceptions");
this._ignoreCaughtExceptionsItem = document.getElementById("ignore-caught-exceptions");
this._showPanesOnStartupItem = document.getElementById("show-panes-on-startup");
this._showVariablesOnlyEnumItem = document.getElementById("show-vars-only-enum");
this._showVariablesFilterBoxItem = document.getElementById("show-vars-filter-box");
this._showOriginalSourceItem = document.getElementById("show-original-source");
this._autoBlackBoxItem = document.getElementById("auto-black-box");
this._autoPrettyPrint.setAttribute("checked", Prefs.autoPrettyPrint);
this._pauseOnExceptionsItem.setAttribute("checked", Prefs.pauseOnExceptions);
this._ignoreCaughtExceptionsItem.setAttribute("checked", Prefs.ignoreCaughtExceptions);
this._showPanesOnStartupItem.setAttribute("checked", Prefs.panesVisibleOnStartup);
this._showVariablesOnlyEnumItem.setAttribute("checked", Prefs.variablesOnlyEnumVisible);
this._showVariablesFilterBoxItem.setAttribute("checked", Prefs.variablesSearchboxVisible);
this._showOriginalSourceItem.setAttribute("checked", Prefs.sourceMapsEnabled);
this._autoBlackBoxItem.setAttribute("checked", Prefs.autoBlackBox);
this._addCommands();
},
/**
* Destruction function, called when the debugger is closed.
*/
destroy: function() {
dumpn("Destroying the OptionsView");
// Nothing to do here yet.
},
/**
* Add commands that XUL can fire.
*/
_addCommands: function() {
XULUtils.addCommands(document.getElementById('debuggerCommands'), {
toggleAutoPrettyPrint: () => this._toggleAutoPrettyPrint(),
togglePauseOnExceptions: () => this._togglePauseOnExceptions(),
toggleIgnoreCaughtExceptions: () => this._toggleIgnoreCaughtExceptions(),
toggleShowPanesOnStartup: () => this._toggleShowPanesOnStartup(),
toggleShowOnlyEnum: () => this._toggleShowVariablesOnlyEnum(),
toggleShowVariablesFilterBox: () => this._toggleShowVariablesFilterBox(),
toggleShowOriginalSource: () => this._toggleShowOriginalSource(),
toggleAutoBlackBox: () => this._toggleAutoBlackBox()
});
},
/**
* Listener handling the 'gear menu' popup showing event.
*/
_onPopupShowing: function() {
this._button.setAttribute("open", "true");
window.emit(EVENTS.OPTIONS_POPUP_SHOWING);
},
/**
* Listener handling the 'gear menu' popup hiding event.
*/
_onPopupHiding: function() {
this._button.removeAttribute("open");
},
/**
* Listener handling the 'gear menu' popup hidden event.
*/
_onPopupHidden: function() {
window.emit(EVENTS.OPTIONS_POPUP_HIDDEN);
},
/**
* Listener handling the 'auto pretty print' menuitem command.
*/
_toggleAutoPrettyPrint: function(){
Prefs.autoPrettyPrint =
this._autoPrettyPrint.getAttribute("checked") == "true";
},
/**
* Listener handling the 'pause on exceptions' menuitem command.
*/
_togglePauseOnExceptions: function() {
Prefs.pauseOnExceptions =
this._pauseOnExceptionsItem.getAttribute("checked") == "true";
this.DebuggerController.activeThread.pauseOnExceptions(
Prefs.pauseOnExceptions,
Prefs.ignoreCaughtExceptions);
},
_toggleIgnoreCaughtExceptions: function() {
Prefs.ignoreCaughtExceptions =
this._ignoreCaughtExceptionsItem.getAttribute("checked") == "true";
this.DebuggerController.activeThread.pauseOnExceptions(
Prefs.pauseOnExceptions,
Prefs.ignoreCaughtExceptions);
},
/**
* Listener handling the 'show panes on startup' menuitem command.
*/
_toggleShowPanesOnStartup: function() {
Prefs.panesVisibleOnStartup =
this._showPanesOnStartupItem.getAttribute("checked") == "true";
},
/**
* Listener handling the 'show non-enumerables' menuitem command.
*/
_toggleShowVariablesOnlyEnum: function() {
let pref = Prefs.variablesOnlyEnumVisible =
this._showVariablesOnlyEnumItem.getAttribute("checked") == "true";
this.DebuggerView.Variables.onlyEnumVisible = pref;
},
/**
* Listener handling the 'show variables searchbox' menuitem command.
*/
_toggleShowVariablesFilterBox: function() {
let pref = Prefs.variablesSearchboxVisible =
this._showVariablesFilterBoxItem.getAttribute("checked") == "true";
this.DebuggerView.Variables.searchEnabled = pref;
},
/**
* Listener handling the 'show original source' menuitem command.
*/
_toggleShowOriginalSource: function() {
let pref = Prefs.sourceMapsEnabled =
this._showOriginalSourceItem.getAttribute("checked") == "true";
// Don't block the UI while reconfiguring the server.
window.once(EVENTS.OPTIONS_POPUP_HIDDEN, () => {
// The popup panel needs more time to hide after triggering onpopuphidden.
window.setTimeout(() => {
this.DebuggerController.reconfigureThread({
useSourceMaps: pref,
autoBlackBox: Prefs.autoBlackBox
});
}, POPUP_HIDDEN_DELAY);
});
},
/**
* Listener handling the 'automatically black box minified sources' menuitem
* command.
*/
_toggleAutoBlackBox: function() {
let pref = Prefs.autoBlackBox =
this._autoBlackBoxItem.getAttribute("checked") == "true";
// Don't block the UI while reconfiguring the server.
window.once(EVENTS.OPTIONS_POPUP_HIDDEN, () => {
// The popup panel needs more time to hide after triggering onpopuphidden.
window.setTimeout(() => {
this.DebuggerController.reconfigureThread({
useSourceMaps: Prefs.sourceMapsEnabled,
autoBlackBox: pref
});
}, POPUP_HIDDEN_DELAY);
});
},
_button: null,
_pauseOnExceptionsItem: null,
_showPanesOnStartupItem: null,
_showVariablesOnlyEnumItem: null,
_showVariablesFilterBoxItem: null,
_showOriginalSourceItem: null,
_autoBlackBoxItem: null
};
DebuggerView.Options = new OptionsView(DebuggerController, DebuggerView);