Backed out changeset 85303b3d8d17 (bug 882790) a=backout

This commit is contained in:
Gabriel Luong 2015-08-07 13:22:57 -07:00
parent aae1f6f147
commit 0e4fa0a2a4
19 changed files with 263 additions and 289 deletions

View File

@ -127,6 +127,16 @@
label="&debuggerUI.autoPrettyPrint;"
accesskey="&debuggerUI.autoPrettyPrint.accesskey;"
command="toggleAutoPrettyPrint"/>
<menuitem id="pause-on-exceptions"
type="checkbox"
label="&debuggerUI.pauseExceptions;"
accesskey="&debuggerUI.pauseExceptions.accesskey;"
command="togglePauseOnExceptions"/>
<menuitem id="ignore-caught-exceptions"
type="checkbox"
label="&debuggerUI.ignoreCaughtExceptions;"
accesskey="&debuggerUI.ignoreCaughtExceptions.accesskey;"
command="toggleIgnoreCaughtExceptions"/>
<menuitem id="show-panes-on-startup"
type="checkbox"
label="&debuggerUI.showPanesOnInit;"
@ -338,9 +348,6 @@
class="devtools-toolbarbutton"
tooltiptext="&debuggerUI.sources.toggleBreakpoints;"
command="toggleBreakpointsCommand"/>
<toolbarbutton id="toggle-pause-exceptions"
class="devtools-toolbarbutton"
command="togglePauseOnExceptionsCommand"/>
<toolbarbutton id="toggle-promise-debugger"
class="devtools-toolbarbutton"
tooltiptext="&debuggerUI.sources.togglePromiseDebugger;"

View File

@ -8,7 +8,7 @@
const TAB_URL = EXAMPLE_URL + "doc_pause-exceptions.html";
let gTab, gPanel, gDebugger;
let gFrames, gVariables, gPrefs;
let gFrames, gVariables, gPrefs, gOptions;
function test() {
requestLongerTimeout(2);
@ -19,16 +19,19 @@ function test() {
gFrames = gDebugger.DebuggerView.StackFrames;
gVariables = gDebugger.DebuggerView.Variables;
gPrefs = gDebugger.Prefs;
gOptions = gDebugger.DebuggerView.Options;
is(gPrefs.pauseOnExceptions, false,
"The pause-on-exceptions pref should be disabled by default.");
isnot(gOptions._pauseOnExceptionsItem.getAttribute("checked"), "true",
"The pause-on-exceptions menu item should not be checked.");
testPauseOnExceptionsDisabled()
.then(clickToPauseOnAllExceptions)
.then(testPauseOnAllExceptionsEnabled)
.then(clickToPauseOnUncaughtExceptions)
.then(testPauseOnUncaughtExceptionsEnabled)
.then(clickToStopPauseOnExceptions)
.then(enablePauseOnExceptions)
.then(disableIgnoreCaughtExceptions)
.then(testPauseOnExceptionsEnabled)
.then(disablePauseOnExceptions)
.then(enableIgnoreCaughtExceptions)
.then(() => closeDebuggerAndFinish(gPanel))
.then(null, aError => {
ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
@ -79,52 +82,9 @@ function testPauseOnExceptionsDisabled() {
return finished;
}
function testPauseOnUncaughtExceptionsEnabled() {
let finished = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_SCOPES).then(() => {
info("Testing enabled pause-on-uncaught-exceptions only.");
is(gDebugger.gThreadClient.state, "paused",
"Should only be getting stack frames while paused (1).");
ok(isCaretPos(gPanel, 26),
"Should be paused on the debugger statement (1).");
let innerScope = gVariables.getScopeAtIndex(0);
let innerNodes = innerScope.target.querySelector(".variables-view-element-details").childNodes;
is(gFrames.itemCount, 1,
"Should have one frame.");
is(gVariables._store.length, 3,
"Should have three scopes.");
is(innerNodes[0].querySelector(".name").getAttribute("value"), "this",
"Should have the right property name for 'this'.");
is(innerNodes[0].querySelector(".value").getAttribute("value"), "<button>",
"Should have the right property value for 'this'.");
let finished = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.AFTER_FRAMES_CLEARED).then(() => {
isnot(gDebugger.gThreadClient.state, "paused",
"Should not be paused after resuming.");
ok(isCaretPos(gPanel, 26),
"Should be idle on the debugger statement.");
ok(true, "Frames were cleared, debugger didn't pause again.");
});
EventUtils.sendMouseEvent({ type: "mousedown" },
gDebugger.document.getElementById("resume"),
gDebugger);
return finished;
});
generateMouseClickInTab(gTab, "content.document.querySelector('button')");
return finished;
}
function testPauseOnAllExceptionsEnabled() {
function testPauseOnExceptionsEnabled() {
let finished = waitForCaretAndScopes(gPanel, 19).then(() => {
info("Testing enabled pause-on-all-exceptions.");
info("Testing enabled pause-on-exceptions.");
is(gDebugger.gThreadClient.state, "paused",
"Should only be getting stack frames while paused.");
@ -145,7 +105,7 @@ function testPauseOnAllExceptionsEnabled() {
"Should have the right property value for <exception>.");
let finished = waitForCaretAndScopes(gPanel, 26).then(() => {
info("Testing enabled pause-on-all-exceptions and resumed after pause.");
info("Testing enabled pause-on-exceptions and resumed after pause.");
is(gDebugger.gThreadClient.state, "paused",
"Should only be getting stack frames while paused.");
@ -193,63 +153,81 @@ function testPauseOnAllExceptionsEnabled() {
return finished;
}
function clickToPauseOnAllExceptions() {
var deferred = promise.defer();
var pauseOnExceptionsButton = getPauseOnExceptionsButton();
function enablePauseOnExceptions() {
let deferred = promise.defer();
gDebugger.gThreadClient.addOneTimeListener("resumed", () => {
is(pauseOnExceptionsButton.getAttribute("tooltiptext"),
"Pause on uncaught exceptions",
"The button's tooltip text should be 'Pause on uncaught exceptions'.");
is(pauseOnExceptionsButton.getAttribute("state"), 1,
"The pause on exceptions button state variable should be 1");
is(gPrefs.pauseOnExceptions, true,
"The pause-on-exceptions pref should now be enabled.");
is(gOptions._pauseOnExceptionsItem.getAttribute("checked"), "true",
"The pause-on-exceptions menu item should now be checked.");
deferred.resolve();
ok(true, "Pausing on exceptions was enabled.");
deferred.resolve();
});
pauseOnExceptionsButton.click();
gOptions._pauseOnExceptionsItem.setAttribute("checked", "true");
gOptions._togglePauseOnExceptions();
return deferred.promise;
}
function clickToPauseOnUncaughtExceptions() {
var deferred = promise.defer();
var pauseOnExceptionsButton = getPauseOnExceptionsButton();
function disablePauseOnExceptions() {
let deferred = promise.defer();
gDebugger.gThreadClient.addOneTimeListener("resumed", () =>{
is(pauseOnExceptionsButton.getAttribute("tooltiptext"),
"Do not pause on exceptions",
"The button's tooltip text should be 'Do not pause on exceptions'.");
is(pauseOnExceptionsButton.getAttribute("state"), 2,
"The pause on exceptions button state variable should be 2");
gDebugger.gThreadClient.addOneTimeListener("resumed", () => {
is(gPrefs.pauseOnExceptions, false,
"The pause-on-exceptions pref should now be disabled.");
isnot(gOptions._pauseOnExceptionsItem.getAttribute("checked"), "true",
"The pause-on-exceptions menu item should now be unchecked.");
deferred.resolve();
ok(true, "Pausing on exceptions was disabled.");
deferred.resolve();
});
pauseOnExceptionsButton.click();
gOptions._pauseOnExceptionsItem.setAttribute("checked", "false");
gOptions._togglePauseOnExceptions();
return deferred.promise;
}
function clickToStopPauseOnExceptions() {
var deferred = promise.defer();
var pauseOnExceptionsButton = getPauseOnExceptionsButton();
function enableIgnoreCaughtExceptions() {
let deferred = promise.defer();
gDebugger.gThreadClient.addOneTimeListener("resumed", () =>{
is(pauseOnExceptionsButton.getAttribute("tooltiptext"),
"Pause on all exceptions",
"The button's tooltip text should be 'Pause on all exceptions'.");
is(pauseOnExceptionsButton.getAttribute("state"), 0,
"The pause on exceptions button state variable should be 0");
gDebugger.gThreadClient.addOneTimeListener("resumed", () => {
is(gPrefs.ignoreCaughtExceptions, true,
"The ignore-caught-exceptions pref should now be enabled.");
is(gOptions._ignoreCaughtExceptionsItem.getAttribute("checked"), "true",
"The ignore-caught-exceptions menu item should now be checked.");
deferred.resolve();
ok(true, "Ignore caught exceptions was enabled.");
deferred.resolve();
});
pauseOnExceptionsButton.click();
gOptions._ignoreCaughtExceptionsItem.setAttribute("checked", "true");
gOptions._toggleIgnoreCaughtExceptions();
return deferred.promise;
}
function getPauseOnExceptionsButton() {
return gDebugger.document.getElementById("toggle-pause-exceptions");
}
function disableIgnoreCaughtExceptions() {
let deferred = promise.defer();
gDebugger.gThreadClient.addOneTimeListener("resumed", () => {
is(gPrefs.ignoreCaughtExceptions, false,
"The ignore-caught-exceptions pref should now be disabled.");
isnot(gOptions._ignoreCaughtExceptionsItem.getAttribute("checked"), "true",
"The ignore-caught-exceptions menu item should now be unchecked.");
ok(true, "Ignore caught exceptions was disabled.");
deferred.resolve();
});
gOptions._ignoreCaughtExceptionsItem.setAttribute("checked", "false");
gOptions._toggleIgnoreCaughtExceptions();
return deferred.promise;
}
registerCleanupFunction(function() {
gTab = null;
@ -258,4 +236,5 @@ registerCleanupFunction(function() {
gFrames = null;
gVariables = null;
gPrefs = null;
gOptions = null;
});

View File

@ -2,16 +2,15 @@
http://creativecommons.org/publicdomain/zero/1.0/ */
/**
* Make sure that pausing on exceptions works after tab reload.
* Make sure that pausing on exceptions works after reload.
*/
const TAB_URL = EXAMPLE_URL + "doc_pause-exceptions.html";
let gTab, gPanel, gDebugger;
let gFrames, gVariables, gPrefs;
let gFrames, gVariables, gPrefs, gOptions;
function test() {
requestLongerTimeout(2);
initDebugger(TAB_URL).then(([aTab,, aPanel]) => {
gTab = aTab;
gPanel = aPanel;
@ -19,15 +18,19 @@ function test() {
gFrames = gDebugger.DebuggerView.StackFrames;
gVariables = gDebugger.DebuggerView.Variables;
gPrefs = gDebugger.Prefs;
gOptions = gDebugger.DebuggerView.Options;
is(gPrefs.pauseOnExceptions, false,
"The pause-on-exceptions pref should be disabled by default.");
isnot(gOptions._pauseOnExceptionsItem.getAttribute("checked"), "true",
"The pause-on-exceptions menu item should not be checked.");
clickToPauseOnAllExceptions()
enablePauseOnExceptions()
.then(disableIgnoreCaughtExceptions)
.then(() => reloadActiveTab(gPanel, gDebugger.EVENTS.SOURCE_SHOWN))
.then(testPauseOnAllExceptionsEnabledAfterReload)
.then(clickToPauseOnUncaughtExceptions)
.then(clickToStopPauseOnExceptions)
.then(testPauseOnExceptionsAfterReload)
.then(disablePauseOnExceptions)
.then(enableIgnoreCaughtExceptions)
.then(() => closeDebuggerAndFinish(gPanel))
.then(null, aError => {
ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
@ -35,9 +38,9 @@ function test() {
});
}
function testPauseOnAllExceptionsEnabledAfterReload() {
function testPauseOnExceptionsAfterReload() {
let finished = waitForCaretAndScopes(gPanel, 19).then(() => {
info("Testing enabled pause-on-all-exceptions.");
info("Testing enabled pause-on-exceptions.");
is(gDebugger.gThreadClient.state, "paused",
"Should only be getting stack frames while paused.");
@ -58,7 +61,7 @@ function testPauseOnAllExceptionsEnabledAfterReload() {
"Should have the right property value for <exception>.");
let finished = waitForCaretAndScopes(gPanel, 26).then(() => {
info("Testing enabled pause-on-all-exceptions and resumed after pause.");
info("Testing enabled pause-on-exceptions and resumed after pause.");
is(gDebugger.gThreadClient.state, "paused",
"Should only be getting stack frames while paused.");
@ -106,61 +109,80 @@ function testPauseOnAllExceptionsEnabledAfterReload() {
return finished;
}
function clickToPauseOnAllExceptions() {
var deferred = promise.defer();
var pauseOnExceptionsButton = getPauseOnExceptionsButton();
function enablePauseOnExceptions() {
let deferred = promise.defer();
gDebugger.gThreadClient.addOneTimeListener("resumed", () => {
is(pauseOnExceptionsButton.getAttribute("tooltiptext"),
"Pause on uncaught exceptions",
"The button's tooltip text should be 'Pause on uncaught exceptions'.");
is(pauseOnExceptionsButton.getAttribute("state"), 1,
"The pause on exceptions button state variable should be 1");
is(gPrefs.pauseOnExceptions, true,
"The pause-on-exceptions pref should now be enabled.");
is(gOptions._pauseOnExceptionsItem.getAttribute("checked"), "true",
"The pause-on-exceptions menu item should now be checked.");
deferred.resolve();
ok(true, "Pausing on exceptions was enabled.");
deferred.resolve();
});
pauseOnExceptionsButton.click();
gOptions._pauseOnExceptionsItem.setAttribute("checked", "true");
gOptions._togglePauseOnExceptions();
return deferred.promise;
}
function clickToPauseOnUncaughtExceptions() {
var deferred = promise.defer();
var pauseOnExceptionsButton = getPauseOnExceptionsButton();
function disablePauseOnExceptions() {
let deferred = promise.defer();
gDebugger.gThreadClient.addOneTimeListener("resumed", () =>{
is(pauseOnExceptionsButton.getAttribute("tooltiptext"),
"Do not pause on exceptions",
"The button's tooltip text should be 'Do not pause on exceptions'.");
is(pauseOnExceptionsButton.getAttribute("state"), 2,
"The pause on exceptions button state variable should be 2");
gDebugger.gThreadClient.addOneTimeListener("resumed", () => {
is(gPrefs.pauseOnExceptions, false,
"The pause-on-exceptions pref should now be disabled.");
isnot(gOptions._pauseOnExceptionsItem.getAttribute("checked"), "true",
"The pause-on-exceptions menu item should now be unchecked.");
deferred.resolve();
ok(true, "Pausing on exceptions was disabled.");
deferred.resolve();
});
pauseOnExceptionsButton.click();
gOptions._pauseOnExceptionsItem.setAttribute("checked", "false");
gOptions._togglePauseOnExceptions();
return deferred.promise;
}
function clickToStopPauseOnExceptions() {
var deferred = promise.defer();
var pauseOnExceptionsButton = getPauseOnExceptionsButton();
function enableIgnoreCaughtExceptions() {
let deferred = promise.defer();
gDebugger.gThreadClient.addOneTimeListener("resumed", () =>{
is(pauseOnExceptionsButton.getAttribute("tooltiptext"),
"Pause on all exceptions",
"The button's tooltip text should be 'Pause on all exceptions'.");
is(pauseOnExceptionsButton.getAttribute("state"), 0,
"The pause on exceptions button state variable should be 0");
gDebugger.gThreadClient.addOneTimeListener("resumed", () => {
is(gPrefs.ignoreCaughtExceptions, true,
"The ignore-caught-exceptions pref should now be enabled.");
is(gOptions._ignoreCaughtExceptionsItem.getAttribute("checked"), "true",
"The ignore-caught-exceptions menu item should now be checked.");
deferred.resolve();
ok(true, "Ignore caught exceptions was enabled.");
deferred.resolve();
});
pauseOnExceptionsButton.click();
gOptions._ignoreCaughtExceptionsItem.setAttribute("checked", "true");
gOptions._toggleIgnoreCaughtExceptions();
return deferred.promise;
}
function getPauseOnExceptionsButton() {
return gDebugger.document.getElementById("toggle-pause-exceptions");
function disableIgnoreCaughtExceptions() {
let deferred = promise.defer();
gDebugger.gThreadClient.addOneTimeListener("resumed", () => {
is(gPrefs.ignoreCaughtExceptions, false,
"The ignore-caught-exceptions pref should now be disabled.");
isnot(gOptions._ignoreCaughtExceptionsItem.getAttribute("checked"), "true",
"The ignore-caught-exceptions menu item should now be unchecked.");
ok(true, "Ignore caught exceptions was disabled.");
deferred.resolve();
});
gOptions._ignoreCaughtExceptionsItem.setAttribute("checked", "false");
gOptions._toggleIgnoreCaughtExceptions();
return deferred.promise;
}
registerCleanupFunction(function() {
@ -170,4 +192,5 @@ registerCleanupFunction(function() {
gFrames = null;
gVariables = null;
gPrefs = null;
gOptions = null;
});

View File

@ -12,7 +12,7 @@ const JS_URL = EXAMPLE_URL + "code_math_bogus_map.js";
// logs, so we are disabling that here.
DevToolsUtils.reportingDisabled = true;
let gPanel, gDebugger, gFrames, gSources, gPrefs;
let gPanel, gDebugger, gFrames, gSources, gPrefs, gOptions;
function test() {
initDebugger(TAB_URL).then(([aTab,, aPanel]) => {
@ -21,18 +21,22 @@ function test() {
gFrames = gDebugger.DebuggerView.StackFrames;
gSources = gDebugger.DebuggerView.Sources;
gPrefs = gDebugger.Prefs;
gOptions = gDebugger.DebuggerView.Options;
is(gPrefs.pauseOnExceptions, false,
"The pause-on-exceptions pref should be disabled by default.");
isnot(gOptions._pauseOnExceptionsItem.getAttribute("checked"), "true",
"The pause-on-exceptions menu item should not be checked.");
waitForSourceShown(gPanel, JS_URL)
.then(checkInitialSource)
.then(clickToPauseOnAllExceptions)
.then(clickToPauseOnUncaughtExceptions)
.then(enablePauseOnExceptions)
.then(disableIgnoreCaughtExceptions)
.then(testSetBreakpoint)
.then(reloadPage)
.then(testHitBreakpoint)
.then(clickToStopPauseOnExceptions)
.then(enableIgnoreCaughtExceptions)
.then(disablePauseOnExceptions)
.then(() => closeDebuggerAndFinish(gPanel))
.then(null, aError => {
ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
@ -45,61 +49,38 @@ function checkInitialSource() {
"The debugger should show the minified js file.");
}
function clickToPauseOnAllExceptions() {
var deferred = promise.defer();
var pauseOnExceptionsButton = getPauseOnExceptionsButton();
function enablePauseOnExceptions() {
let deferred = promise.defer();
gDebugger.gThreadClient.addOneTimeListener("resumed", () => {
is(pauseOnExceptionsButton.getAttribute("tooltiptext"),
"Pause on uncaught exceptions",
"The button's tooltip text should be 'Pause on uncaught exceptions'.");
is(pauseOnExceptionsButton.getAttribute("state"), 1,
"The pause on exceptions button state variable should be 1");
is(gPrefs.pauseOnExceptions, true,
"The pause-on-exceptions pref should now be enabled.");
deferred.resolve();
ok(true, "Pausing on exceptions was enabled.");
deferred.resolve();
});
pauseOnExceptionsButton.click();
gOptions._pauseOnExceptionsItem.setAttribute("checked", "true");
gOptions._togglePauseOnExceptions();
return deferred.promise;
}
function clickToPauseOnUncaughtExceptions() {
var deferred = promise.defer();
var pauseOnExceptionsButton = getPauseOnExceptionsButton();
gDebugger.gThreadClient.addOneTimeListener("resumed", () =>{
is(pauseOnExceptionsButton.getAttribute("tooltiptext"),
"Do not pause on exceptions",
"The button's tooltip text should be 'Do not pause on exceptions'.");
is(pauseOnExceptionsButton.getAttribute("state"), 2,
"The pause on exceptions button state variable should be 2");
deferred.resolve();
});
pauseOnExceptionsButton.click();
return deferred.promise;
}
function clickToStopPauseOnExceptions() {
var deferred = promise.defer();
var pauseOnExceptionsButton = getPauseOnExceptionsButton();
function disableIgnoreCaughtExceptions() {
let deferred = promise.defer();
gDebugger.gThreadClient.addOneTimeListener("resumed", () => {
is(pauseOnExceptionsButton.getAttribute("tooltiptext"),
"Pause on all exceptions",
"The button's tooltip text should be 'Pause on all exceptions'.");
is(pauseOnExceptionsButton.getAttribute("state"), 0,
"The pause on exceptions button state variable should be 0");
is(gPrefs.ignoreCaughtExceptions, false,
"The ignore-caught-exceptions pref should now be disabled.");
deferred.resolve();
ok(true, "Ignore caught exceptions was disabled.");
deferred.resolve();
});
pauseOnExceptionsButton.click();
return deferred.promise;
}
function getPauseOnExceptionsButton() {
return gDebugger.document.getElementById("toggle-pause-exceptions");
gOptions._ignoreCaughtExceptionsItem.setAttribute("checked", "false");
gOptions._toggleIgnoreCaughtExceptions();
return deferred.promise;
}
function testSetBreakpoint() {
@ -131,11 +112,62 @@ function testHitBreakpoint() {
gDebugger.gThreadClient.resume(aResponse => {
ok(!aResponse.error, "Shouldn't get an error resuming.");
is(aResponse.type, "resumed", "Type should be 'resumed'.");
is(gFrames.itemCount, 2, "Should have two frames.");
waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_SCOPES).then(() => {
is(gFrames.itemCount, 2, "Should have two frames.");
// This is weird, but we need to let the debugger a chance to
// update first
executeSoon(() => {
gDebugger.gThreadClient.resume(() => {
gDebugger.gThreadClient.addOneTimeListener("paused", () => {
gDebugger.gThreadClient.resume(() => {
// We also need to make sure the next step doesn't add a
// "resumed" handler until this is completely finished
executeSoon(() => {
deferred.resolve();
});
});
});
});
});
});
});
return deferred.promise;
}
function enableIgnoreCaughtExceptions() {
let deferred = promise.defer();
gDebugger.gThreadClient.addOneTimeListener("resumed", () => {
is(gPrefs.ignoreCaughtExceptions, true,
"The ignore-caught-exceptions pref should now be enabled.");
ok(true, "Ignore caught exceptions was enabled.");
deferred.resolve();
});
gOptions._ignoreCaughtExceptionsItem.setAttribute("checked", "true");
gOptions._toggleIgnoreCaughtExceptions();
return deferred.promise;
}
function disablePauseOnExceptions() {
let deferred = promise.defer();
gDebugger.gThreadClient.addOneTimeListener("resumed", () => {
is(gPrefs.pauseOnExceptions, false,
"The pause-on-exceptions pref should now be disabled.");
ok(true, "Pausing on exceptions was disabled.");
deferred.resolve();
});
gOptions._pauseOnExceptionsItem.setAttribute("checked", "false");
gOptions._togglePauseOnExceptions();
return deferred.promise;
}
@ -145,5 +177,6 @@ registerCleanupFunction(function() {
gFrames = null;
gSources = null;
gPrefs = null;
gOptions = null;
DevToolsUtils.reportingDisabled = false;
});

View File

@ -17,6 +17,8 @@ function OptionsView(DebuggerController, DebuggerView) {
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);
@ -33,6 +35,8 @@ OptionsView.prototype = {
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");
@ -40,6 +44,8 @@ OptionsView.prototype = {
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);
@ -63,6 +69,8 @@ OptionsView.prototype = {
_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(),
@ -101,6 +109,27 @@ OptionsView.prototype = {
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.
*/
@ -169,6 +198,7 @@ OptionsView.prototype = {
},
_button: null,
_pauseOnExceptionsItem: null,
_showPanesOnStartupItem: null,
_showVariablesOnlyEnumItem: null,
_showVariablesFilterBoxItem: null,

View File

@ -8,9 +8,6 @@
const KNOWN_SOURCE_GROUPS = {
"Add-on SDK": "resource://gre/modules/commonjs/",
};
const DO_NOT_PAUSE_ON_EXCEPTIONS = 0;
const PAUSE_ON_ALL_EXCEPTIONS = 1;
const PAUSE_ON_UNCAUGHT_EXCEPTIONS = 2;
KNOWN_SOURCE_GROUPS[L10N.getStr("anonymousSourcesLabel")] = "anonymous";
@ -23,12 +20,10 @@ function SourcesView(DebuggerController, DebuggerView) {
this.Breakpoints = DebuggerController.Breakpoints;
this.SourceScripts = DebuggerController.SourceScripts;
this.DebuggerView = DebuggerView;
this.DebuggerController = DebuggerController;
this.togglePrettyPrint = this.togglePrettyPrint.bind(this);
this.toggleBlackBoxing = this.toggleBlackBoxing.bind(this);
this.toggleBreakpoints = this.toggleBreakpoints.bind(this);
this.togglePauseOnExceptions = this.togglePauseOnExceptions.bind(this);
this._onEditorLoad = this._onEditorLoad.bind(this);
this._onEditorUnload = this._onEditorUnload.bind(this);
@ -61,9 +56,6 @@ SourcesView.prototype = Heritage.extend(WidgetMethods, {
this._unnamedSourceIndex = 0;
this.emptyText = L10N.getStr("noSourcesText");
this._blackBoxCheckboxTooltip = L10N.getStr("blackBoxCheckboxTooltip");
this._pauseAllExceptionsTooltip = L10N.getStr("pauseAllExceptionsTooltip");
this._pauseUncaughtExceptionsTooltip = L10N.getStr("pauseUncaughtExceptionsTooltip");
this._pauseNoExceptionsTooltip = L10N.getStr("pauseNoExceptionsTooltip");
this._commandset = document.getElementById("debuggerCommands");
this._popupset = document.getElementById("debuggerPopupset");
@ -74,7 +66,6 @@ SourcesView.prototype = Heritage.extend(WidgetMethods, {
this._stopBlackBoxButton = document.getElementById("black-boxed-message-button");
this._prettyPrintButton = document.getElementById("pretty-print");
this._toggleBreakpointsButton = document.getElementById("toggle-breakpoints");
this._togglePauseOnExceptionsButton = document.getElementById("toggle-pause-exceptions");
this._newTabMenuItem = document.getElementById("debugger-sources-context-newtab");
this._copyUrlMenuItem = document.getElementById("debugger-sources-context-copyurl");
@ -82,9 +73,6 @@ SourcesView.prototype = Heritage.extend(WidgetMethods, {
this._prettyPrintButton.removeAttribute("hidden");
}
this._togglePauseOnExceptionsButton.setAttribute("tooltiptext", this._pauseAllExceptionsTooltip);
this._togglePauseOnExceptionsButton.setAttribute("state", DO_NOT_PAUSE_ON_EXCEPTIONS);
window.on(EVENTS.EDITOR_LOADED, this._onEditorLoad, false);
window.on(EVENTS.EDITOR_UNLOADED, this._onEditorUnload, false);
this.widget.addEventListener("select", this._onSourceSelect, false);
@ -150,7 +138,6 @@ SourcesView.prototype = Heritage.extend(WidgetMethods, {
unBlackBoxButton: () => this._onStopBlackBoxing(),
prettyPrintCommand: () => this.togglePrettyPrint(),
toggleBreakpointsCommand: () =>this.toggleBreakpoints(),
togglePauseOnExceptionsCommand: () => this.togglePauseOnExceptions(),
togglePromiseDebuggerCommand: () => this.togglePromiseDebugger(),
nextSourceCommand: () => this.selectNextItem(),
prevSourceCommand: () => this.selectPrevItem()
@ -629,37 +616,6 @@ SourcesView.prototype = Heritage.extend(WidgetMethods, {
}
},
/**
* Toggles the pause on exceptions functionality
*/
togglePauseOnExceptions: function() {
let state = Number(this._togglePauseOnExceptionsButton.getAttribute("state"));
let tooltip;
state = ++state % 3;
if (state === DO_NOT_PAUSE_ON_EXCEPTIONS) {
tooltip = this._pauseAllExceptionsTooltip;
Prefs.pauseOnExceptions = false;
Prefs.ignoreCaughtExceptions = false;
} else if ( state === PAUSE_ON_ALL_EXCEPTIONS) {
tooltip = this._pauseUncaughtExceptionsTooltip;
Prefs.pauseOnExceptions = true;
Prefs.ignoreCaughtExceptions = false;
} else {
tooltip = this._pauseNoExceptionsTooltip;
Prefs.pauseOnExceptions = true;
Prefs.ignoreCaughtExceptions = true;
}
this.DebuggerController.activeThread.pauseOnExceptions(
Prefs.pauseOnExceptions,
Prefs.ignoreCaughtExceptions);
this._togglePauseOnExceptionsButton.setAttribute("tooltiptext", tooltip);
this._togglePauseOnExceptionsButton.setAttribute("state", state);
},
togglePromiseDebugger: function() {
if (Prefs.promiseDebuggerEnabled) {
let promisePane = this.DebuggerView._promisePane;

View File

@ -243,8 +243,7 @@ StackFramesView.prototype = Heritage.extend(WidgetMethods, {
},
_mirror: null,
_prevBlackBoxedUrl: null,
_popupset: null
_prevBlackBoxedUrl: null
});
DebuggerView.StackFrames = new StackFramesView(DebuggerController, DebuggerView);

View File

@ -66,6 +66,16 @@
- the button that clears the collected tracing data in the tracing tab. -->
<!ENTITY debuggerUI.clearButton.tooltip "Clear the collected traces">
<!-- LOCALIZATION NOTE (debuggerUI.pauseExceptions): This is the label for the
- checkbox that toggles pausing on exceptions. -->
<!ENTITY debuggerUI.pauseExceptions "Pause on Exceptions">
<!ENTITY debuggerUI.pauseExceptions.accesskey "E">
<!-- LOCALIZATION NOTE (debuggerUI.ignoreCaughtExceptions): This is the label for the
- checkbox that toggles ignoring caught exceptions. -->
<!ENTITY debuggerUI.ignoreCaughtExceptions "Ignore Caught Exceptions">
<!ENTITY debuggerUI.ignoreCaughtExceptions.accesskey "C">
<!-- LOCALIZATION NOTE (debuggerUI.showPanesOnInit): This is the label for the
- checkbox that toggles visibility of panes when opening the debugger. -->
<!ENTITY debuggerUI.showPanesOnInit "Show Panes on Startup">

View File

@ -156,21 +156,6 @@ otherEvents=Other
# source.
blackBoxCheckboxTooltip=Toggle black boxing
# LOCALIZATION NOTE (pauseAllExceptionsTooltip): The tooltip text to display when
# the user hovers over the pause on exceptions button in the "pause on all
# exceptions" state.
pauseAllExceptionsTooltip=Pause on all exceptions
# LOCALIZATION NOTE (pauseUncaughtExceptionsTooltip): The tooltip text to display when
# the user hovers over the pause on exceptions button in the "pause on uncaught
# exceptions" state.
pauseUncaughtExceptionsTooltip=Pause on uncaught exceptions
# LOCALIZATION NOTE (pauseNoExceptionsTooltip): The tooltip text to display when
# the user hovers over the pause on exceptions button in the "pause on no
# exceptions" state.
pauseNoExceptionsTooltip=Do not pause on exceptions
# LOCALIZATION NOTE (noMatchingStringsText): The text to display in the
# global search results when there are no matching strings after filtering.
noMatchingStringsText=No matches found

View File

@ -393,12 +393,6 @@ browser.jar:
skin/classic/browser/devtools/debugger-blackbox@2x.png (../shared/devtools/images/debugger-blackbox@2x.png)
skin/classic/browser/devtools/debugger-prettyprint.png (../shared/devtools/images/debugger-prettyprint.png)
skin/classic/browser/devtools/debugger-prettyprint@2x.png (../shared/devtools/images/debugger-prettyprint@2x.png)
skin/classic/browser/devtools/debugger-no-pause-exceptions.png (../shared/devtools/images/debugger-no-pause-exceptions.png)
skin/classic/browser/devtools/debugger-no-pause-exceptions@2x.png (../shared/devtools/images/debugger-no-pause-exceptions@2x.png)
skin/classic/browser/devtools/debugger-pause-all-exceptions.png (../shared/devtools/images/debugger-pause-all-exceptions.png)
skin/classic/browser/devtools/debugger-pause-all-exceptions@2x.png (../shared/devtools/images/debugger-pause-all-exceptions@2x.png)
skin/classic/browser/devtools/debugger-pause-uncaught-exceptions.png (../shared/devtools/images/debugger-pause-uncaught-exceptions.png)
skin/classic/browser/devtools/debugger-pause-uncaught-exceptions@2x.png (../shared/devtools/images/debugger-pause-uncaught-exceptions@2x.png)
skin/classic/browser/devtools/debugger-toggleBreakpoints.png (../shared/devtools/images/debugger-toggleBreakpoints.png)
skin/classic/browser/devtools/debugger-toggleBreakpoints@2x.png (../shared/devtools/images/debugger-toggleBreakpoints@2x.png)
skin/classic/browser/devtools/tracer-icon.png (../shared/devtools/images/tracer-icon.png)

View File

@ -497,12 +497,6 @@ browser.jar:
skin/classic/browser/devtools/debugger-blackbox@2x.png (../shared/devtools/images/debugger-blackbox@2x.png)
skin/classic/browser/devtools/debugger-prettyprint.png (../shared/devtools/images/debugger-prettyprint.png)
skin/classic/browser/devtools/debugger-prettyprint@2x.png (../shared/devtools/images/debugger-prettyprint@2x.png)
skin/classic/browser/devtools/debugger-no-pause-exceptions.png (../shared/devtools/images/debugger-no-pause-exceptions.png)
skin/classic/browser/devtools/debugger-no-pause-exceptions@2x.png (../shared/devtools/images/debugger-no-pause-exceptions@2x.png)
skin/classic/browser/devtools/debugger-pause-all-exceptions.png (../shared/devtools/images/debugger-pause-all-exceptions.png)
skin/classic/browser/devtools/debugger-pause-all-exceptions@2x.png (../shared/devtools/images/debugger-pause-all-exceptions@2x.png)
skin/classic/browser/devtools/debugger-pause-uncaught-exceptions.png (../shared/devtools/images/debugger-pause-uncaught-exceptions.png)
skin/classic/browser/devtools/debugger-pause-uncaught-exceptions@2x.png (../shared/devtools/images/debugger-pause-uncaught-exceptions@2x.png)
skin/classic/browser/devtools/debugger-toggleBreakpoints.png (../shared/devtools/images/debugger-toggleBreakpoints.png)
skin/classic/browser/devtools/debugger-toggleBreakpoints@2x.png (../shared/devtools/images/debugger-toggleBreakpoints@2x.png)
skin/classic/browser/devtools/tracer-icon.png (../shared/devtools/images/tracer-icon.png)

View File

@ -92,36 +92,6 @@
}
}
#toggle-pause-exceptions[state="0"] {
list-style-image: url(debugger-no-pause-exceptions.png);
}
@media (min-resolution: 1.25dppx) {
#toggle-pause-exceptions[state="0"] {
list-style-image: url(debugger-no-pause-exceptions@2x.png);
}
}
#toggle-pause-exceptions[state="1"] {
list-style-image: url(debugger-pause-all-exceptions.png);
}
@media (min-resolution: 1.25dppx) {
#toggle-pause-exceptions[state="1"] {
list-style-image: url(debugger-pause-all-exceptions@2x.png);
}
}
#toggle-pause-exceptions[state="2"] {
list-style-image: url(debugger-pause-uncaught-exceptions.png);
}
@media (min-resolution: 1.25dppx) {
#toggle-pause-exceptions[state="2"] {
list-style-image: url(debugger-pause-uncaught-exceptions@2x.png);
}
}
#toggle-promise-debugger {
/* TODO Bug 1186119: Add a toggle promise debugger image */
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -508,12 +508,6 @@ browser.jar:
skin/classic/browser/devtools/debugger-blackbox@2x.png (../shared/devtools/images/debugger-blackbox@2x.png)
skin/classic/browser/devtools/debugger-prettyprint.png (../shared/devtools/images/debugger-prettyprint.png)
skin/classic/browser/devtools/debugger-prettyprint@2x.png (../shared/devtools/images/debugger-prettyprint@2x.png)
skin/classic/browser/devtools/debugger-no-pause-exceptions.png (../shared/devtools/images/debugger-no-pause-exceptions.png)
skin/classic/browser/devtools/debugger-no-pause-exceptions@2x.png (../shared/devtools/images/debugger-no-pause-exceptions@2x.png)
skin/classic/browser/devtools/debugger-pause-all-exceptions.png (../shared/devtools/images/debugger-pause-all-exceptions.png)
skin/classic/browser/devtools/debugger-pause-all-exceptions@2x.png (../shared/devtools/images/debugger-pause-all-exceptions@2x.png)
skin/classic/browser/devtools/debugger-pause-uncaught-exceptions.png (../shared/devtools/images/debugger-pause-uncaught-exceptions.png)
skin/classic/browser/devtools/debugger-pause-uncaught-exceptions@2x.png (../shared/devtools/images/debugger-pause-uncaught-exceptions@2x.png)
skin/classic/browser/devtools/debugger-toggleBreakpoints.png (../shared/devtools/images/debugger-toggleBreakpoints.png)
skin/classic/browser/devtools/debugger-toggleBreakpoints@2x.png (../shared/devtools/images/debugger-toggleBreakpoints@2x.png)
skin/classic/browser/devtools/tracer-icon.png (../shared/devtools/images/tracer-icon.png)