Bug 815280 - Add a enable/disable all breakpoints button to the sources toolbar, r=rcampbell
--HG-- rename : browser/themes/linux/devtools/blackBoxMessageEye.png => browser/themes/linux/devtools/debugger-blackboxMessageEye.png rename : browser/themes/osx/devtools/blackBoxMessageEye.png => browser/themes/osx/devtools/debugger-blackboxMessageEye.png rename : browser/themes/windows/devtools/blackBoxMessageEye.png => browser/themes/windows/devtools/debugger-blackboxMessageEye.png
|
@ -1228,7 +1228,7 @@ SourceScripts.prototype = {
|
||||||
* A promize that resolves to [aSource, isBlackBoxed] or rejects to
|
* A promize that resolves to [aSource, isBlackBoxed] or rejects to
|
||||||
* [aSource, error].
|
* [aSource, error].
|
||||||
*/
|
*/
|
||||||
blackBox: function(aSource, aBlackBoxFlag) {
|
setBlackBoxing: function(aSource, aBlackBoxFlag) {
|
||||||
const sourceClient = this.activeThread.source(aSource);
|
const sourceClient = this.activeThread.source(aSource);
|
||||||
const deferred = promise.defer();
|
const deferred = promise.defer();
|
||||||
|
|
||||||
|
@ -1282,11 +1282,9 @@ SourceScripts.prototype = {
|
||||||
// Revert the rejected promise from the cache, so that the original
|
// Revert the rejected promise from the cache, so that the original
|
||||||
// source's text may be shown when the source is selected.
|
// source's text may be shown when the source is selected.
|
||||||
this._cache.set(aSource.url, textPromise);
|
this._cache.set(aSource.url, textPromise);
|
||||||
|
|
||||||
deferred.reject([aSource, message || error]);
|
deferred.reject([aSource, message || error]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
deferred.resolve([aSource, text]);
|
deferred.resolve([aSource, text]);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1455,10 +1453,10 @@ EventListeners.prototype = {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
promise.all(aResponse.listeners.map(listener => {
|
let outstandingListenersDefinitionSite = aResponse.listeners.map(aListener => {
|
||||||
const deferred = promise.defer();
|
const deferred = promise.defer();
|
||||||
|
|
||||||
gThreadClient.pauseGrip(listener.function).getDefinitionSite(aResponse => {
|
gThreadClient.pauseGrip(aListener.function).getDefinitionSite(aResponse => {
|
||||||
if (aResponse.error) {
|
if (aResponse.error) {
|
||||||
const msg = "Error getting function definition site: " + aResponse.message;
|
const msg = "Error getting function definition site: " + aResponse.message;
|
||||||
DevToolsUtils.reportException("scheduleEventListenersFetch", msg);
|
DevToolsUtils.reportException("scheduleEventListenersFetch", msg);
|
||||||
|
@ -1466,13 +1464,15 @@ EventListeners.prototype = {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
listener.function.url = aResponse.url;
|
aListener.function.url = aResponse.url;
|
||||||
deferred.resolve(listener);
|
deferred.resolve(aListener);
|
||||||
});
|
});
|
||||||
|
|
||||||
return deferred.promise;
|
return deferred.promise;
|
||||||
})).then(listeners => {
|
});
|
||||||
this._onEventListeners(listeners);
|
|
||||||
|
promise.all(outstandingListenersDefinitionSite).then(aListeners => {
|
||||||
|
this._onEventListeners(aListeners);
|
||||||
|
|
||||||
// Notify that event listeners were fetched and shown in the view,
|
// Notify that event listeners were fetched and shown in the view,
|
||||||
// and callback to resume the active thread if necessary.
|
// and callback to resume the active thread if necessary.
|
||||||
|
|
|
@ -12,14 +12,16 @@ function SourcesView() {
|
||||||
dumpn("SourcesView was instantiated");
|
dumpn("SourcesView was instantiated");
|
||||||
|
|
||||||
this.togglePrettyPrint = this.togglePrettyPrint.bind(this);
|
this.togglePrettyPrint = this.togglePrettyPrint.bind(this);
|
||||||
|
this.toggleBlackBoxing = this.toggleBlackBoxing.bind(this);
|
||||||
|
this.toggleBreakpoints = this.toggleBreakpoints.bind(this);
|
||||||
|
|
||||||
this._onEditorLoad = this._onEditorLoad.bind(this);
|
this._onEditorLoad = this._onEditorLoad.bind(this);
|
||||||
this._onEditorUnload = this._onEditorUnload.bind(this);
|
this._onEditorUnload = this._onEditorUnload.bind(this);
|
||||||
this._onEditorCursorActivity = this._onEditorCursorActivity.bind(this);
|
this._onEditorCursorActivity = this._onEditorCursorActivity.bind(this);
|
||||||
this._onSourceSelect = this._onSourceSelect.bind(this);
|
this._onSourceSelect = this._onSourceSelect.bind(this);
|
||||||
this._onSourceClick = this._onSourceClick.bind(this);
|
this._onSourceClick = this._onSourceClick.bind(this);
|
||||||
this._onBreakpointRemoved = this._onBreakpointRemoved.bind(this);
|
|
||||||
this.toggleBlackBoxing = this.toggleBlackBoxing.bind(this);
|
|
||||||
this._onStopBlackBoxing = this._onStopBlackBoxing.bind(this);
|
this._onStopBlackBoxing = this._onStopBlackBoxing.bind(this);
|
||||||
|
this._onBreakpointRemoved = this._onBreakpointRemoved.bind(this);
|
||||||
this._onBreakpointClick = this._onBreakpointClick.bind(this);
|
this._onBreakpointClick = this._onBreakpointClick.bind(this);
|
||||||
this._onBreakpointCheckboxClick = this._onBreakpointCheckboxClick.bind(this);
|
this._onBreakpointCheckboxClick = this._onBreakpointCheckboxClick.bind(this);
|
||||||
this._onConditionalPopupShowing = this._onConditionalPopupShowing.bind(this);
|
this._onConditionalPopupShowing = this._onConditionalPopupShowing.bind(this);
|
||||||
|
@ -27,6 +29,7 @@ function SourcesView() {
|
||||||
this._onConditionalPopupHiding = this._onConditionalPopupHiding.bind(this);
|
this._onConditionalPopupHiding = this._onConditionalPopupHiding.bind(this);
|
||||||
this._onConditionalTextboxInput = this._onConditionalTextboxInput.bind(this);
|
this._onConditionalTextboxInput = this._onConditionalTextboxInput.bind(this);
|
||||||
this._onConditionalTextboxKeyPress = this._onConditionalTextboxKeyPress.bind(this);
|
this._onConditionalTextboxKeyPress = this._onConditionalTextboxKeyPress.bind(this);
|
||||||
|
|
||||||
this.updateToolbarButtonsState = this.updateToolbarButtonsState.bind(this);
|
this.updateToolbarButtonsState = this.updateToolbarButtonsState.bind(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,6 +55,7 @@ SourcesView.prototype = Heritage.extend(WidgetMethods, {
|
||||||
this._blackBoxButton = document.getElementById("black-box");
|
this._blackBoxButton = document.getElementById("black-box");
|
||||||
this._stopBlackBoxButton = document.getElementById("black-boxed-message-button");
|
this._stopBlackBoxButton = document.getElementById("black-boxed-message-button");
|
||||||
this._prettyPrintButton = document.getElementById("pretty-print");
|
this._prettyPrintButton = document.getElementById("pretty-print");
|
||||||
|
this._toggleBreakpointsButton = document.getElementById("toggle-breakpoints");
|
||||||
|
|
||||||
if (Prefs.prettyPrintEnabled) {
|
if (Prefs.prettyPrintEnabled) {
|
||||||
this._prettyPrintButton.removeAttribute("hidden");
|
this._prettyPrintButton.removeAttribute("hidden");
|
||||||
|
@ -220,6 +224,16 @@ SourcesView.prototype = Heritage.extend(WidgetMethods, {
|
||||||
aItem.attachment.line == aLocation.line);
|
aItem.attachment.line == aLocation.line);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns all breakpoints for all sources.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
* The breakpoints for all sources if any, an empty array otherwise.
|
||||||
|
*/
|
||||||
|
getAllBreakpoints: function(aStore = []) {
|
||||||
|
return this.getOtherBreakpoints(undefined, aStore);
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns all breakpoints which are not at the specified source url and line.
|
* Returns all breakpoints which are not at the specified source url and line.
|
||||||
*
|
*
|
||||||
|
@ -274,6 +288,9 @@ SourcesView.prototype = Heritage.extend(WidgetMethods, {
|
||||||
document.getElementById(enableSelfId).setAttribute("hidden", "true");
|
document.getElementById(enableSelfId).setAttribute("hidden", "true");
|
||||||
document.getElementById(disableSelfId).removeAttribute("hidden");
|
document.getElementById(disableSelfId).removeAttribute("hidden");
|
||||||
|
|
||||||
|
// Update the breakpoint toggle button checked state.
|
||||||
|
this._toggleBreakpointsButton.removeAttribute("checked");
|
||||||
|
|
||||||
// Update the checkbox state if necessary.
|
// Update the checkbox state if necessary.
|
||||||
if (!aOptions.silent) {
|
if (!aOptions.silent) {
|
||||||
attachment.view.checkbox.setAttribute("checked", "true");
|
attachment.view.checkbox.setAttribute("checked", "true");
|
||||||
|
@ -374,6 +391,29 @@ SourcesView.prototype = Heritage.extend(WidgetMethods, {
|
||||||
this._hideConditionalPopup();
|
this._hideConditionalPopup();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the checked/unchecked and enabled/disabled states of the buttons in
|
||||||
|
* the sources toolbar based on the currently selected source's state.
|
||||||
|
*/
|
||||||
|
updateToolbarButtonsState: function() {
|
||||||
|
const { source } = this.selectedItem.attachment;
|
||||||
|
const sourceClient = gThreadClient.source(source);
|
||||||
|
|
||||||
|
if (sourceClient.isBlackBoxed) {
|
||||||
|
this._prettyPrintButton.setAttribute("disabled", true);
|
||||||
|
this._blackBoxButton.setAttribute("checked", true);
|
||||||
|
} else {
|
||||||
|
this._prettyPrintButton.removeAttribute("disabled");
|
||||||
|
this._blackBoxButton.removeAttribute("checked");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sourceClient.isPrettyPrinted) {
|
||||||
|
this._prettyPrintButton.setAttribute("checked", true);
|
||||||
|
} else {
|
||||||
|
this._prettyPrintButton.removeAttribute("checked");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Toggle the pretty printing of the selected source.
|
* Toggle the pretty printing of the selected source.
|
||||||
*/
|
*/
|
||||||
|
@ -395,11 +435,13 @@ SourcesView.prototype = Heritage.extend(WidgetMethods, {
|
||||||
|
|
||||||
DebuggerView.showProgressBar();
|
DebuggerView.showProgressBar();
|
||||||
const { source } = this.selectedItem.attachment;
|
const { source } = this.selectedItem.attachment;
|
||||||
|
const sourceClient = gThreadClient.source(source);
|
||||||
|
const shouldPrettyPrint = !sourceClient.isPrettyPrinted;
|
||||||
|
|
||||||
if (gThreadClient.source(source).isPrettyPrinted) {
|
if (shouldPrettyPrint) {
|
||||||
this._prettyPrintButton.removeAttribute("checked");
|
|
||||||
} else {
|
|
||||||
this._prettyPrintButton.setAttribute("checked", true);
|
this._prettyPrintButton.setAttribute("checked", true);
|
||||||
|
} else {
|
||||||
|
this._prettyPrintButton.removeAttribute("checked");
|
||||||
}
|
}
|
||||||
|
|
||||||
DebuggerController.SourceScripts.togglePrettyPrint(source)
|
DebuggerController.SourceScripts.togglePrettyPrint(source)
|
||||||
|
@ -408,6 +450,50 @@ SourcesView.prototype = Heritage.extend(WidgetMethods, {
|
||||||
.then(this.updateToolbarButtonsState);
|
.then(this.updateToolbarButtonsState);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Toggle the black boxed state of the selected source.
|
||||||
|
*/
|
||||||
|
toggleBlackBoxing: function() {
|
||||||
|
const { source } = this.selectedItem.attachment;
|
||||||
|
const sourceClient = gThreadClient.source(source);
|
||||||
|
const shouldBlackBox = !sourceClient.isBlackBoxed;
|
||||||
|
|
||||||
|
// Be optimistic that the (un-)black boxing will succeed, so enable/disable
|
||||||
|
// the pretty print button and check/uncheck the black box button
|
||||||
|
// immediately. Then, once we actually get the results from the server, make
|
||||||
|
// sure that it is in the correct state again by calling
|
||||||
|
// `updateToolbarButtonsState`.
|
||||||
|
|
||||||
|
if (shouldBlackBox) {
|
||||||
|
this._prettyPrintButton.setAttribute("disabled", true);
|
||||||
|
this._blackBoxButton.setAttribute("checked", true);
|
||||||
|
} else {
|
||||||
|
this._prettyPrintButton.removeAttribute("disabled");
|
||||||
|
this._blackBoxButton.removeAttribute("checked");
|
||||||
|
}
|
||||||
|
|
||||||
|
DebuggerController.SourceScripts.setBlackBoxing(source, shouldBlackBox)
|
||||||
|
.then(this.updateToolbarButtonsState,
|
||||||
|
this.updateToolbarButtonsState);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Toggles all breakpoints enabled/disabled.
|
||||||
|
*/
|
||||||
|
toggleBreakpoints: function() {
|
||||||
|
let breakpoints = this.getAllBreakpoints();
|
||||||
|
let hasBreakpoints = breakpoints.length > 0;
|
||||||
|
let hasEnabledBreakpoints = breakpoints.some(e => !e.attachment.disabled);
|
||||||
|
|
||||||
|
if (hasBreakpoints && hasEnabledBreakpoints) {
|
||||||
|
this._toggleBreakpointsButton.setAttribute("checked", true);
|
||||||
|
this._onDisableAll();
|
||||||
|
} else {
|
||||||
|
this._toggleBreakpointsButton.removeAttribute("checked");
|
||||||
|
this._onEnableAll();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Marks a breakpoint as selected in this sources container.
|
* Marks a breakpoint as selected in this sources container.
|
||||||
*
|
*
|
||||||
|
@ -694,29 +780,6 @@ SourcesView.prototype = Heritage.extend(WidgetMethods, {
|
||||||
this.updateToolbarButtonsState();
|
this.updateToolbarButtonsState();
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the checked/unchecked and enabled/disabled states of the buttons in
|
|
||||||
* the sources toolbar based on the currently selected source's state.
|
|
||||||
*/
|
|
||||||
updateToolbarButtonsState: function() {
|
|
||||||
const { source } = this.selectedItem.attachment;
|
|
||||||
const sourceClient = gThreadClient.source(source);
|
|
||||||
|
|
||||||
if (sourceClient.isBlackBoxed) {
|
|
||||||
this._prettyPrintButton.setAttribute("disabled", true);
|
|
||||||
this._blackBoxButton.setAttribute("checked", true);
|
|
||||||
} else {
|
|
||||||
this._prettyPrintButton.removeAttribute("disabled");
|
|
||||||
this._blackBoxButton.removeAttribute("checked");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sourceClient.isPrettyPrinted) {
|
|
||||||
this._prettyPrintButton.setAttribute("checked", true);
|
|
||||||
} else {
|
|
||||||
this._prettyPrintButton.removeAttribute("checked");
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The click listener for the sources container.
|
* The click listener for the sources container.
|
||||||
*/
|
*/
|
||||||
|
@ -725,39 +788,13 @@ SourcesView.prototype = Heritage.extend(WidgetMethods, {
|
||||||
DebuggerView.Filtering.target = this;
|
DebuggerView.Filtering.target = this;
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
|
||||||
* Toggle the black boxed state of the selected source.
|
|
||||||
*/
|
|
||||||
toggleBlackBoxing: function() {
|
|
||||||
const { source } = this.selectedItem.attachment;
|
|
||||||
const sourceClient = gThreadClient.source(source);
|
|
||||||
const shouldBlackBox = !sourceClient.isBlackBoxed;
|
|
||||||
|
|
||||||
// Be optimistic that the (un-)black boxing will succeed, so enable/disable
|
|
||||||
// the pretty print button and check/uncheck the black box button
|
|
||||||
// immediately. Then, once we actually get the results from the server, make
|
|
||||||
// sure that it is in the correct state again by calling
|
|
||||||
// `updateToolbarButtonsState`.
|
|
||||||
|
|
||||||
if (shouldBlackBox) {
|
|
||||||
this._prettyPrintButton.setAttribute("disabled", true);
|
|
||||||
this._blackBoxButton.setAttribute("checked", true);
|
|
||||||
} else {
|
|
||||||
this._prettyPrintButton.removeAttribute("disabled");
|
|
||||||
this._blackBoxButton.removeAttribute("checked");
|
|
||||||
}
|
|
||||||
|
|
||||||
DebuggerController.SourceScripts.blackBox(source, shouldBlackBox)
|
|
||||||
.then(this.updateToolbarButtonsState,
|
|
||||||
this.updateToolbarButtonsState);
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The click listener for the "stop black boxing" button.
|
* The click listener for the "stop black boxing" button.
|
||||||
*/
|
*/
|
||||||
_onStopBlackBoxing: function() {
|
_onStopBlackBoxing: function() {
|
||||||
let sourceForm = this.selectedItem.attachment.source;
|
const { source } = this.selectedItem.attachment;
|
||||||
DebuggerController.SourceScripts.blackBox(sourceForm, false)
|
|
||||||
|
DebuggerController.SourceScripts.setBlackBoxing(source, false)
|
||||||
.then(this.updateToolbarButtonsState,
|
.then(this.updateToolbarButtonsState,
|
||||||
this.updateToolbarButtonsState);
|
this.updateToolbarButtonsState);
|
||||||
},
|
},
|
||||||
|
|
|
@ -32,12 +32,14 @@
|
||||||
<commandset id="editMenuCommands"/>
|
<commandset id="editMenuCommands"/>
|
||||||
|
|
||||||
<commandset id="debuggerCommands">
|
<commandset id="debuggerCommands">
|
||||||
<command id="prettyPrintCommand"
|
|
||||||
oncommand="DebuggerView.Sources.togglePrettyPrint()"/>
|
|
||||||
<command id="blackBoxCommand"
|
<command id="blackBoxCommand"
|
||||||
oncommand="DebuggerView.Sources.toggleBlackBoxing()"/>
|
oncommand="DebuggerView.Sources.toggleBlackBoxing()"/>
|
||||||
<command id="unBlackBoxButton"
|
<command id="unBlackBoxButton"
|
||||||
oncommand="DebuggerView.Sources._onStopBlackBoxing()"/>
|
oncommand="DebuggerView.Sources._onStopBlackBoxing()"/>
|
||||||
|
<command id="prettyPrintCommand"
|
||||||
|
oncommand="DebuggerView.Sources.togglePrettyPrint()"/>
|
||||||
|
<command id="toggleBreakpointsCommand"
|
||||||
|
oncommand="DebuggerView.Sources.toggleBreakpoints()"/>
|
||||||
<command id="nextSourceCommand"
|
<command id="nextSourceCommand"
|
||||||
oncommand="DebuggerView.Sources.selectNextItem()"/>
|
oncommand="DebuggerView.Sources.selectNextItem()"/>
|
||||||
<command id="prevSourceCommand"
|
<command id="prevSourceCommand"
|
||||||
|
@ -333,16 +335,20 @@
|
||||||
<toolbar id="sources-toolbar" class="devtools-toolbar">
|
<toolbar id="sources-toolbar" class="devtools-toolbar">
|
||||||
<hbox id="sources-controls">
|
<hbox id="sources-controls">
|
||||||
<toolbarbutton id="black-box"
|
<toolbarbutton id="black-box"
|
||||||
|
class="devtools-toolbarbutton"
|
||||||
tooltiptext="&debuggerUI.sources.blackBoxTooltip;"
|
tooltiptext="&debuggerUI.sources.blackBoxTooltip;"
|
||||||
command="blackBoxCommand"
|
command="blackBoxCommand"/>
|
||||||
class="devtools-toolbarbutton"/>
|
|
||||||
<toolbarbutton id="pretty-print"
|
<toolbarbutton id="pretty-print"
|
||||||
|
class="devtools-toolbarbutton devtools-monospace"
|
||||||
label="{}"
|
label="{}"
|
||||||
tooltiptext="&debuggerUI.sources.prettyPrint;"
|
tooltiptext="&debuggerUI.sources.prettyPrint;"
|
||||||
class="devtools-toolbarbutton devtools-monospace"
|
|
||||||
command="prettyPrintCommand"
|
command="prettyPrintCommand"
|
||||||
hidden="true"/>
|
hidden="true"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
|
<toolbarbutton id="toggle-breakpoints"
|
||||||
|
class="devtools-toolbarbutton"
|
||||||
|
tooltiptext="&debuggerUI.sources.toggleBreakpoints;"
|
||||||
|
command="toggleBreakpointsCommand"/>
|
||||||
</toolbar>
|
</toolbar>
|
||||||
</tabpanel>
|
</tabpanel>
|
||||||
<tabpanel id="callstack-tabpanel">
|
<tabpanel id="callstack-tabpanel">
|
||||||
|
@ -361,7 +367,7 @@
|
||||||
<button id="black-boxed-message-button"
|
<button id="black-boxed-message-button"
|
||||||
class="devtools-toolbarbutton"
|
class="devtools-toolbarbutton"
|
||||||
label="&debuggerUI.blackBoxMessage.unBlackBoxButton;"
|
label="&debuggerUI.blackBoxMessage.unBlackBoxButton;"
|
||||||
image="chrome://browser/skin/devtools/blackBoxMessageEye.png"
|
image="chrome://browser/skin/devtools/debugger-blackboxMessageEye.png"
|
||||||
command="unBlackBoxCommand"/>
|
command="unBlackBoxCommand"/>
|
||||||
</vbox>
|
</vbox>
|
||||||
<vbox id="source-progress-container" align="center" pack="center">
|
<vbox id="source-progress-container" align="center" pack="center">
|
||||||
|
|
|
@ -77,6 +77,8 @@ support-files =
|
||||||
[browser_dbg_break-on-dom-06.js]
|
[browser_dbg_break-on-dom-06.js]
|
||||||
[browser_dbg_break-on-dom-07.js]
|
[browser_dbg_break-on-dom-07.js]
|
||||||
[browser_dbg_breakpoints-actual-location.js]
|
[browser_dbg_breakpoints-actual-location.js]
|
||||||
|
[browser_dbg_breakpoints-button-01.js]
|
||||||
|
[browser_dbg_breakpoints-button-02.js]
|
||||||
[browser_dbg_breakpoints-contextmenu.js]
|
[browser_dbg_breakpoints-contextmenu.js]
|
||||||
[browser_dbg_breakpoints-disabled-reload.js]
|
[browser_dbg_breakpoints-disabled-reload.js]
|
||||||
[browser_dbg_breakpoints-editor.js]
|
[browser_dbg_breakpoints-editor.js]
|
||||||
|
|
|
@ -0,0 +1,61 @@
|
||||||
|
/* Any copyright is dedicated to the Public Domain.
|
||||||
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test if the breakpoints toggle button works as advertised.
|
||||||
|
*/
|
||||||
|
|
||||||
|
const TAB_URL = EXAMPLE_URL + "doc_script-switching-01.html";
|
||||||
|
|
||||||
|
function test() {
|
||||||
|
let gTab, gDebuggee, gPanel, gDebugger;
|
||||||
|
let gSources, gBreakpoints;
|
||||||
|
|
||||||
|
initDebugger(TAB_URL).then(([aTab, aDebuggee, aPanel]) => {
|
||||||
|
gTab = aTab;
|
||||||
|
gDebuggee = aDebuggee;
|
||||||
|
gPanel = aPanel;
|
||||||
|
gDebugger = gPanel.panelWin;
|
||||||
|
gSources = gDebugger.DebuggerView.Sources;
|
||||||
|
gBreakpoints = gDebugger.DebuggerController.Breakpoints;
|
||||||
|
|
||||||
|
waitForSourceShown(gPanel, "-01.js")
|
||||||
|
.then(addBreakpoints)
|
||||||
|
.then(testDisableBreakpoints)
|
||||||
|
.then(testEnableBreakpoints)
|
||||||
|
.then(() => ensureThreadClientState(gPanel, "resumed"))
|
||||||
|
.then(() => closeDebuggerAndFinish(gPanel))
|
||||||
|
.then(null, aError => {
|
||||||
|
ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function addBreakpoints() {
|
||||||
|
return promise.resolve(null)
|
||||||
|
.then(() => gPanel.addBreakpoint({ url: gSources.values[0], line: 5 }))
|
||||||
|
.then(() => gPanel.addBreakpoint({ url: gSources.values[1], line: 6 }))
|
||||||
|
.then(() => gPanel.addBreakpoint({ url: gSources.values[1], line: 7 }))
|
||||||
|
.then(() => ensureThreadClientState(gPanel, "resumed"));
|
||||||
|
}
|
||||||
|
|
||||||
|
function testDisableBreakpoints() {
|
||||||
|
let finished = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.BREAKPOINT_REMOVED, 3);
|
||||||
|
gSources.toggleBreakpoints();
|
||||||
|
return finished.then(() => checkBreakpointsDisabled(true));
|
||||||
|
}
|
||||||
|
|
||||||
|
function testEnableBreakpoints() {
|
||||||
|
let finished = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.BREAKPOINT_ADDED, 3);
|
||||||
|
gSources.toggleBreakpoints();
|
||||||
|
return finished.then(() => checkBreakpointsDisabled(false));
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkBreakpointsDisabled(aState, aTotal = 3) {
|
||||||
|
let breakpoints = gSources.getAllBreakpoints();
|
||||||
|
|
||||||
|
is(breakpoints.length, aTotal,
|
||||||
|
"Breakpoints should still be set.");
|
||||||
|
is(breakpoints.filter(e => e.attachment.disabled == aState).length, aTotal,
|
||||||
|
"Breakpoints should be " + (aState ? "disabled" : "enabled") + ".");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,70 @@
|
||||||
|
/* Any copyright is dedicated to the Public Domain.
|
||||||
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test if the breakpoints toggle button works as advertised when there are
|
||||||
|
* some breakpoints already disabled.
|
||||||
|
*/
|
||||||
|
|
||||||
|
const TAB_URL = EXAMPLE_URL + "doc_script-switching-01.html";
|
||||||
|
|
||||||
|
function test() {
|
||||||
|
let gTab, gDebuggee, gPanel, gDebugger;
|
||||||
|
let gSources, gBreakpoints;
|
||||||
|
|
||||||
|
initDebugger(TAB_URL).then(([aTab, aDebuggee, aPanel]) => {
|
||||||
|
gTab = aTab;
|
||||||
|
gDebuggee = aDebuggee;
|
||||||
|
gPanel = aPanel;
|
||||||
|
gDebugger = gPanel.panelWin;
|
||||||
|
gSources = gDebugger.DebuggerView.Sources;
|
||||||
|
gBreakpoints = gDebugger.DebuggerController.Breakpoints;
|
||||||
|
|
||||||
|
waitForSourceShown(gPanel, "-01.js")
|
||||||
|
.then(addBreakpoints)
|
||||||
|
.then(disableSomeBreakpoints)
|
||||||
|
.then(testToggleBreakpoints)
|
||||||
|
.then(testEnableBreakpoints)
|
||||||
|
.then(() => ensureThreadClientState(gPanel, "resumed"))
|
||||||
|
.then(() => closeDebuggerAndFinish(gPanel))
|
||||||
|
.then(null, aError => {
|
||||||
|
ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function addBreakpoints() {
|
||||||
|
return promise.resolve(null)
|
||||||
|
.then(() => gPanel.addBreakpoint({ url: gSources.values[0], line: 5 }))
|
||||||
|
.then(() => gPanel.addBreakpoint({ url: gSources.values[1], line: 6 }))
|
||||||
|
.then(() => gPanel.addBreakpoint({ url: gSources.values[1], line: 7 }))
|
||||||
|
.then(() => ensureThreadClientState(gPanel, "resumed"));
|
||||||
|
}
|
||||||
|
|
||||||
|
function disableSomeBreakpoints() {
|
||||||
|
return promise.all([
|
||||||
|
gSources.disableBreakpoint({ url: gSources.values[0], line: 5 }),
|
||||||
|
gSources.disableBreakpoint({ url: gSources.values[1], line: 6 })
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function testToggleBreakpoints() {
|
||||||
|
let finished = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.BREAKPOINT_REMOVED, 1);
|
||||||
|
gSources.toggleBreakpoints();
|
||||||
|
return finished.then(() => checkBreakpointsDisabled(true));
|
||||||
|
}
|
||||||
|
|
||||||
|
function testEnableBreakpoints() {
|
||||||
|
let finished = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.BREAKPOINT_ADDED, 3);
|
||||||
|
gSources.toggleBreakpoints();
|
||||||
|
return finished.then(() => checkBreakpointsDisabled(false));
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkBreakpointsDisabled(aState, aTotal = 3) {
|
||||||
|
let breakpoints = gSources.getAllBreakpoints();
|
||||||
|
|
||||||
|
is(breakpoints.length, aTotal,
|
||||||
|
"Breakpoints should still be set.");
|
||||||
|
is(breakpoints.filter(e => e.attachment.disabled == aState).length, aTotal,
|
||||||
|
"Breakpoints should be " + (aState ? "disabled" : "enabled") + ".");
|
||||||
|
}
|
||||||
|
}
|
|
@ -41,6 +41,10 @@
|
||||||
- button that pretty prints the selected source. -->
|
- button that pretty prints the selected source. -->
|
||||||
<!ENTITY debuggerUI.sources.prettyPrint "Prettify Source">
|
<!ENTITY debuggerUI.sources.prettyPrint "Prettify Source">
|
||||||
|
|
||||||
|
<!-- LOCALIZATION NOTE (debuggerUI.sources.toggleBreakpoints): This is the tooltip for the
|
||||||
|
- button that toggles all breakpoints for all sources. -->
|
||||||
|
<!ENTITY debuggerUI.sources.toggleBreakpoints "Enable/disable all breakpoints">
|
||||||
|
|
||||||
<!-- LOCALIZATION NOTE (debuggerUI.pauseExceptions): This is the label for the
|
<!-- LOCALIZATION NOTE (debuggerUI.pauseExceptions): This is the label for the
|
||||||
- checkbox that toggles pausing on exceptions. -->
|
- checkbox that toggles pausing on exceptions. -->
|
||||||
<!ENTITY debuggerUI.pauseExceptions "Pause on exceptions">
|
<!ENTITY debuggerUI.pauseExceptions "Pause on exceptions">
|
||||||
|
|
До Ширина: | Высота: | Размер: 836 B После Ширина: | Высота: | Размер: 836 B |
После Ширина: | Высота: | Размер: 886 B |
|
@ -24,20 +24,28 @@
|
||||||
-moz-border-end: 1px solid #222426; /* Match the sources list's dark margin. */
|
-moz-border-end: 1px solid #222426; /* Match the sources list's dark margin. */
|
||||||
}
|
}
|
||||||
|
|
||||||
#sources-toolbar > #sources-controls > .devtools-toolbarbutton {
|
#sources-toolbar > .devtools-toolbarbutton,
|
||||||
|
#sources-controls > .devtools-toolbarbutton {
|
||||||
min-width: 32px;
|
min-width: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#black-box {
|
||||||
|
list-style-image: url(debugger-blackbox.png);
|
||||||
|
}
|
||||||
|
|
||||||
#pretty-print {
|
#pretty-print {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
#black-box {
|
#toggle-breakpoints {
|
||||||
list-style-image: url(debugger-blackbox.png);
|
list-style-image: url(debugger-toggleBreakpoints.png);
|
||||||
|
}
|
||||||
|
|
||||||
|
#sources-toolbar .devtools-toolbarbutton:not([label]) {
|
||||||
-moz-image-region: rect(0px,16px,16px,0px);
|
-moz-image-region: rect(0px,16px,16px,0px);
|
||||||
}
|
}
|
||||||
|
|
||||||
#black-box[checked] {
|
#sources-toolbar .devtools-toolbarbutton:not([label])[checked] {
|
||||||
-moz-image-region: rect(0px,32px,16px,16px);
|
-moz-image-region: rect(0px,32px,16px,16px);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -202,7 +202,6 @@ browser.jar:
|
||||||
skin/classic/browser/devtools/magnifying-glass.png (devtools/magnifying-glass.png)
|
skin/classic/browser/devtools/magnifying-glass.png (devtools/magnifying-glass.png)
|
||||||
skin/classic/browser/devtools/option-icon.png (devtools/option-icon.png)
|
skin/classic/browser/devtools/option-icon.png (devtools/option-icon.png)
|
||||||
skin/classic/browser/devtools/itemToggle.png (devtools/itemToggle.png)
|
skin/classic/browser/devtools/itemToggle.png (devtools/itemToggle.png)
|
||||||
skin/classic/browser/devtools/blackBoxMessageEye.png (devtools/blackBoxMessageEye.png)
|
|
||||||
skin/classic/browser/devtools/itemArrow-rtl.png (devtools/itemArrow-rtl.png)
|
skin/classic/browser/devtools/itemArrow-rtl.png (devtools/itemArrow-rtl.png)
|
||||||
skin/classic/browser/devtools/itemArrow-ltr.png (devtools/itemArrow-ltr.png)
|
skin/classic/browser/devtools/itemArrow-ltr.png (devtools/itemArrow-ltr.png)
|
||||||
skin/classic/browser/devtools/background-noise-toolbar.png (devtools/background-noise-toolbar.png)
|
skin/classic/browser/devtools/background-noise-toolbar.png (devtools/background-noise-toolbar.png)
|
||||||
|
@ -219,6 +218,8 @@ browser.jar:
|
||||||
skin/classic/browser/devtools/debugger-step-out.png (devtools/debugger-step-out.png)
|
skin/classic/browser/devtools/debugger-step-out.png (devtools/debugger-step-out.png)
|
||||||
skin/classic/browser/devtools/debugger-step-over.png (devtools/debugger-step-over.png)
|
skin/classic/browser/devtools/debugger-step-over.png (devtools/debugger-step-over.png)
|
||||||
skin/classic/browser/devtools/debugger-blackbox.png (devtools/debugger-blackbox.png)
|
skin/classic/browser/devtools/debugger-blackbox.png (devtools/debugger-blackbox.png)
|
||||||
|
skin/classic/browser/devtools/debugger-blackboxMessageEye.png (devtools/debugger-blackboxMessageEye.png)
|
||||||
|
skin/classic/browser/devtools/debugger-toggleBreakpoints.png (devtools/debugger-toggleBreakpoints.png)
|
||||||
skin/classic/browser/devtools/responsive-se-resizer.png (devtools/responsive-se-resizer.png)
|
skin/classic/browser/devtools/responsive-se-resizer.png (devtools/responsive-se-resizer.png)
|
||||||
skin/classic/browser/devtools/responsive-vertical-resizer.png (devtools/responsive-vertical-resizer.png)
|
skin/classic/browser/devtools/responsive-vertical-resizer.png (devtools/responsive-vertical-resizer.png)
|
||||||
skin/classic/browser/devtools/responsive-horizontal-resizer.png (devtools/responsive-horizontal-resizer.png)
|
skin/classic/browser/devtools/responsive-horizontal-resizer.png (devtools/responsive-horizontal-resizer.png)
|
||||||
|
|
До Ширина: | Высота: | Размер: 836 B После Ширина: | Высота: | Размер: 836 B |
После Ширина: | Высота: | Размер: 886 B |
|
@ -26,20 +26,28 @@
|
||||||
-moz-border-end: 1px solid #222426; /* Match the sources list's dark margin. */
|
-moz-border-end: 1px solid #222426; /* Match the sources list's dark margin. */
|
||||||
}
|
}
|
||||||
|
|
||||||
#sources-toolbar > #sources-controls > .devtools-toolbarbutton {
|
#sources-toolbar > .devtools-toolbarbutton,
|
||||||
|
#sources-controls > .devtools-toolbarbutton {
|
||||||
min-width: 32px;
|
min-width: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#black-box {
|
||||||
|
list-style-image: url(debugger-blackbox.png);
|
||||||
|
}
|
||||||
|
|
||||||
#pretty-print {
|
#pretty-print {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
#black-box {
|
#toggle-breakpoints {
|
||||||
list-style-image: url(debugger-blackbox.png);
|
list-style-image: url(debugger-toggleBreakpoints.png);
|
||||||
|
}
|
||||||
|
|
||||||
|
#sources-toolbar .devtools-toolbarbutton:not([label]) {
|
||||||
-moz-image-region: rect(0px,16px,16px,0px);
|
-moz-image-region: rect(0px,16px,16px,0px);
|
||||||
}
|
}
|
||||||
|
|
||||||
#black-box[checked] {
|
#sources-toolbar .devtools-toolbarbutton:not([label])[checked] {
|
||||||
-moz-image-region: rect(0px,32px,16px,16px);
|
-moz-image-region: rect(0px,32px,16px,16px);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -304,7 +304,6 @@ browser.jar:
|
||||||
skin/classic/browser/devtools/magnifying-glass.png (devtools/magnifying-glass.png)
|
skin/classic/browser/devtools/magnifying-glass.png (devtools/magnifying-glass.png)
|
||||||
skin/classic/browser/devtools/option-icon.png (devtools/option-icon.png)
|
skin/classic/browser/devtools/option-icon.png (devtools/option-icon.png)
|
||||||
skin/classic/browser/devtools/itemToggle.png (devtools/itemToggle.png)
|
skin/classic/browser/devtools/itemToggle.png (devtools/itemToggle.png)
|
||||||
skin/classic/browser/devtools/blackBoxMessageEye.png (devtools/blackBoxMessageEye.png)
|
|
||||||
skin/classic/browser/devtools/itemArrow-rtl.png (devtools/itemArrow-rtl.png)
|
skin/classic/browser/devtools/itemArrow-rtl.png (devtools/itemArrow-rtl.png)
|
||||||
skin/classic/browser/devtools/itemArrow-ltr.png (devtools/itemArrow-ltr.png)
|
skin/classic/browser/devtools/itemArrow-ltr.png (devtools/itemArrow-ltr.png)
|
||||||
skin/classic/browser/devtools/background-noise-toolbar.png (devtools/background-noise-toolbar.png)
|
skin/classic/browser/devtools/background-noise-toolbar.png (devtools/background-noise-toolbar.png)
|
||||||
|
@ -321,6 +320,8 @@ browser.jar:
|
||||||
skin/classic/browser/devtools/debugger-step-out.png (devtools/debugger-step-out.png)
|
skin/classic/browser/devtools/debugger-step-out.png (devtools/debugger-step-out.png)
|
||||||
skin/classic/browser/devtools/debugger-step-over.png (devtools/debugger-step-over.png)
|
skin/classic/browser/devtools/debugger-step-over.png (devtools/debugger-step-over.png)
|
||||||
skin/classic/browser/devtools/debugger-blackbox.png (devtools/debugger-blackbox.png)
|
skin/classic/browser/devtools/debugger-blackbox.png (devtools/debugger-blackbox.png)
|
||||||
|
skin/classic/browser/devtools/debugger-blackboxMessageEye.png (devtools/debugger-blackboxMessageEye.png)
|
||||||
|
skin/classic/browser/devtools/debugger-toggleBreakpoints.png (devtools/debugger-toggleBreakpoints.png)
|
||||||
skin/classic/browser/devtools/floating-scrollbars.css (devtools/floating-scrollbars.css)
|
skin/classic/browser/devtools/floating-scrollbars.css (devtools/floating-scrollbars.css)
|
||||||
skin/classic/browser/devtools/floating-scrollbars-light.css (devtools/floating-scrollbars-light.css)
|
skin/classic/browser/devtools/floating-scrollbars-light.css (devtools/floating-scrollbars-light.css)
|
||||||
skin/classic/browser/devtools/responsive-se-resizer.png (devtools/responsive-se-resizer.png)
|
skin/classic/browser/devtools/responsive-se-resizer.png (devtools/responsive-se-resizer.png)
|
||||||
|
|
До Ширина: | Высота: | Размер: 836 B После Ширина: | Высота: | Размер: 836 B |
После Ширина: | Высота: | Размер: 886 B |
|
@ -24,20 +24,28 @@
|
||||||
-moz-border-end: 1px solid #222426; /* Match the sources list's dark margin. */
|
-moz-border-end: 1px solid #222426; /* Match the sources list's dark margin. */
|
||||||
}
|
}
|
||||||
|
|
||||||
#sources-toolbar > #sources-controls > .devtools-toolbarbutton {
|
#sources-toolbar > .devtools-toolbarbutton,
|
||||||
|
#sources-controls > .devtools-toolbarbutton {
|
||||||
min-width: 32px;
|
min-width: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#black-box {
|
||||||
|
list-style-image: url(debugger-blackbox.png);
|
||||||
|
}
|
||||||
|
|
||||||
#pretty-print {
|
#pretty-print {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
#black-box {
|
#toggle-breakpoints {
|
||||||
list-style-image: url(debugger-blackbox.png);
|
list-style-image: url(debugger-toggleBreakpoints.png);
|
||||||
|
}
|
||||||
|
|
||||||
|
#sources-toolbar .devtools-toolbarbutton:not([label]) {
|
||||||
-moz-image-region: rect(0px,16px,16px,0px);
|
-moz-image-region: rect(0px,16px,16px,0px);
|
||||||
}
|
}
|
||||||
|
|
||||||
#black-box[checked] {
|
#sources-toolbar .devtools-toolbarbutton:not([label])[checked] {
|
||||||
-moz-image-region: rect(0px,32px,16px,16px);
|
-moz-image-region: rect(0px,32px,16px,16px);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -229,7 +229,6 @@ browser.jar:
|
||||||
skin/classic/browser/devtools/magnifying-glass.png (devtools/magnifying-glass.png)
|
skin/classic/browser/devtools/magnifying-glass.png (devtools/magnifying-glass.png)
|
||||||
skin/classic/browser/devtools/option-icon.png (devtools/option-icon.png)
|
skin/classic/browser/devtools/option-icon.png (devtools/option-icon.png)
|
||||||
skin/classic/browser/devtools/itemToggle.png (devtools/itemToggle.png)
|
skin/classic/browser/devtools/itemToggle.png (devtools/itemToggle.png)
|
||||||
skin/classic/browser/devtools/blackBoxMessageEye.png (devtools/blackBoxMessageEye.png)
|
|
||||||
skin/classic/browser/devtools/itemArrow-rtl.png (devtools/itemArrow-rtl.png)
|
skin/classic/browser/devtools/itemArrow-rtl.png (devtools/itemArrow-rtl.png)
|
||||||
skin/classic/browser/devtools/itemArrow-ltr.png (devtools/itemArrow-ltr.png)
|
skin/classic/browser/devtools/itemArrow-ltr.png (devtools/itemArrow-ltr.png)
|
||||||
skin/classic/browser/devtools/background-noise-toolbar.png (devtools/background-noise-toolbar.png)
|
skin/classic/browser/devtools/background-noise-toolbar.png (devtools/background-noise-toolbar.png)
|
||||||
|
@ -246,6 +245,8 @@ browser.jar:
|
||||||
skin/classic/browser/devtools/debugger-step-out.png (devtools/debugger-step-out.png)
|
skin/classic/browser/devtools/debugger-step-out.png (devtools/debugger-step-out.png)
|
||||||
skin/classic/browser/devtools/debugger-step-over.png (devtools/debugger-step-over.png)
|
skin/classic/browser/devtools/debugger-step-over.png (devtools/debugger-step-over.png)
|
||||||
skin/classic/browser/devtools/debugger-blackbox.png (devtools/debugger-blackbox.png)
|
skin/classic/browser/devtools/debugger-blackbox.png (devtools/debugger-blackbox.png)
|
||||||
|
skin/classic/browser/devtools/debugger-blackboxMessageEye.png (devtools/debugger-blackboxMessageEye.png)
|
||||||
|
skin/classic/browser/devtools/debugger-toggleBreakpoints.png (devtools/debugger-toggleBreakpoints.png)
|
||||||
skin/classic/browser/devtools/responsive-se-resizer.png (devtools/responsive-se-resizer.png)
|
skin/classic/browser/devtools/responsive-se-resizer.png (devtools/responsive-se-resizer.png)
|
||||||
skin/classic/browser/devtools/responsive-vertical-resizer.png (devtools/responsive-vertical-resizer.png)
|
skin/classic/browser/devtools/responsive-vertical-resizer.png (devtools/responsive-vertical-resizer.png)
|
||||||
skin/classic/browser/devtools/responsive-horizontal-resizer.png (devtools/responsive-horizontal-resizer.png)
|
skin/classic/browser/devtools/responsive-horizontal-resizer.png (devtools/responsive-horizontal-resizer.png)
|
||||||
|
@ -534,7 +535,6 @@ browser.jar:
|
||||||
skin/classic/aero/browser/devtools/magnifying-glass.png (devtools/magnifying-glass.png)
|
skin/classic/aero/browser/devtools/magnifying-glass.png (devtools/magnifying-glass.png)
|
||||||
skin/classic/aero/browser/devtools/option-icon.png (devtools/option-icon.png)
|
skin/classic/aero/browser/devtools/option-icon.png (devtools/option-icon.png)
|
||||||
skin/classic/aero/browser/devtools/itemToggle.png (devtools/itemToggle.png)
|
skin/classic/aero/browser/devtools/itemToggle.png (devtools/itemToggle.png)
|
||||||
skin/classic/aero/browser/devtools/blackBoxMessageEye.png (devtools/blackBoxMessageEye.png)
|
|
||||||
skin/classic/aero/browser/devtools/itemArrow-rtl.png (devtools/itemArrow-rtl.png)
|
skin/classic/aero/browser/devtools/itemArrow-rtl.png (devtools/itemArrow-rtl.png)
|
||||||
skin/classic/aero/browser/devtools/background-noise-toolbar.png (devtools/background-noise-toolbar.png)
|
skin/classic/aero/browser/devtools/background-noise-toolbar.png (devtools/background-noise-toolbar.png)
|
||||||
skin/classic/aero/browser/devtools/noise.png (devtools/noise.png)
|
skin/classic/aero/browser/devtools/noise.png (devtools/noise.png)
|
||||||
|
@ -551,6 +551,8 @@ browser.jar:
|
||||||
skin/classic/aero/browser/devtools/debugger-step-out.png (devtools/debugger-step-out.png)
|
skin/classic/aero/browser/devtools/debugger-step-out.png (devtools/debugger-step-out.png)
|
||||||
skin/classic/aero/browser/devtools/debugger-step-over.png (devtools/debugger-step-over.png)
|
skin/classic/aero/browser/devtools/debugger-step-over.png (devtools/debugger-step-over.png)
|
||||||
skin/classic/aero/browser/devtools/debugger-blackbox.png (devtools/debugger-blackbox.png)
|
skin/classic/aero/browser/devtools/debugger-blackbox.png (devtools/debugger-blackbox.png)
|
||||||
|
skin/classic/aero/browser/devtools/debugger-blackboxMessageEye.png (devtools/debugger-blackboxMessageEye.png)
|
||||||
|
skin/classic/aero/browser/devtools/debugger-toggleBreakpoints.png (devtools/debugger-toggleBreakpoints.png)
|
||||||
skin/classic/aero/browser/devtools/responsive-se-resizer.png (devtools/responsive-se-resizer.png)
|
skin/classic/aero/browser/devtools/responsive-se-resizer.png (devtools/responsive-se-resizer.png)
|
||||||
skin/classic/aero/browser/devtools/responsive-vertical-resizer.png (devtools/responsive-vertical-resizer.png)
|
skin/classic/aero/browser/devtools/responsive-vertical-resizer.png (devtools/responsive-vertical-resizer.png)
|
||||||
skin/classic/aero/browser/devtools/responsive-horizontal-resizer.png (devtools/responsive-horizontal-resizer.png)
|
skin/classic/aero/browser/devtools/responsive-horizontal-resizer.png (devtools/responsive-horizontal-resizer.png)
|
||||||
|
|