gecko-dev/browser/devtools/performance/performance.xul

379 строки
18 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- 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/. -->
<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://browser/content/devtools/widgets.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/skin/devtools/common.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/skin/devtools/widgets.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/skin/devtools/performance.css" type="text/css"?>
<!DOCTYPE window [
<!ENTITY % performanceDTD SYSTEM "chrome://browser/locale/devtools/performance.dtd">
%performanceDTD;
]>
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script src="chrome://browser/content/devtools/theme-switching.js"/>
<script type="application/javascript" src="performance/performance-controller.js"/>
<script type="application/javascript" src="performance/performance-view.js"/>
<script type="application/javascript" src="performance/views/overview.js"/>
<script type="application/javascript" src="performance/views/toolbar.js"/>
<script type="application/javascript" src="performance/views/details-subview.js"/>
<script type="application/javascript" src="performance/views/details-waterfall.js"/>
<script type="application/javascript" src="performance/views/details-js-call-tree.js"/>
<script type="application/javascript" src="performance/views/details-js-flamegraph.js"/>
<script type="application/javascript" src="performance/views/details-memory-call-tree.js"/>
<script type="application/javascript" src="performance/views/details-memory-flamegraph.js"/>
<script type="application/javascript" src="performance/views/details-optimizations.js"/>
<script type="application/javascript" src="performance/views/details.js"/>
<script type="application/javascript" src="performance/views/recordings.js"/>
<script type="application/javascript" src="performance/views/optimizations-list.js"/>
<script type="application/javascript" src="performance/views/frames-list.js"/>
<popupset id="performance-options-popupset">
<menupopup id="performance-filter-menupopup"/>
<menupopup id="performance-options-menupopup" position="before_end">
<menuitem id="option-show-platform-data"
type="checkbox"
data-pref="show-platform-data"
label="&performanceUI.showPlatformData;"
tooltiptext="&performanceUI.showPlatformData.tooltiptext;"/>
<menuitem id="option-enable-memory"
class="experimental-option"
type="checkbox"
data-pref="enable-memory"
label="&performanceUI.enableMemory;"
tooltiptext="&performanceUI.enableMemory.tooltiptext;"/>
<menuitem id="option-enable-allocations"
type="checkbox"
data-pref="enable-allocations"
label="&performanceUI.enableAllocations;"
tooltiptext="&performanceUI.enableAllocations.tooltiptext;"/>
<menuitem id="option-enable-framerate"
type="checkbox"
data-pref="enable-framerate"
label="&performanceUI.enableFramerate;"
tooltiptext="&performanceUI.enableFramerate.tooltiptext;"/>
<menuitem id="option-invert-call-tree"
type="checkbox"
data-pref="invert-call-tree"
label="&performanceUI.invertTree;"
tooltiptext="&performanceUI.invertTree.tooltiptext;"/>
<menuitem id="option-invert-flame-graph"
type="checkbox"
data-pref="invert-flame-graph"
label="&performanceUI.invertFlameGraph;"
tooltiptext="&performanceUI.invertFlameGraph.tooltiptext;"/>
<menuitem id="option-flatten-tree-recursion"
type="checkbox"
data-pref="flatten-tree-recursion"
label="&performanceUI.flattenTreeRecursion;"
tooltiptext="&performanceUI.flattenTreeRecursion.tooltiptext;"/>
<menuitem id="option-enable-jit-optimizations"
class="experimental-option"
type="checkbox"
data-pref="enable-jit-optimizations"
label="&performanceUI.enableJITOptimizations;"
tooltiptext="&performanceUI.enableJITOptimizations.tooltiptext;"/>
</menupopup>
</popupset>
<hbox class="theme-body" flex="1">
<!-- Sidebar: controls and recording list -->
<vbox id="recordings-pane">
<toolbar id="recordings-toolbar"
class="devtools-toolbar">
<hbox id="recordings-controls"
class="devtools-toolbarbutton-group">
<toolbarbutton id="main-record-button"
class="devtools-toolbarbutton record-button"
tooltiptext="&performanceUI.recordButton.tooltip;"/>
<toolbarbutton id="import-button"
class="devtools-toolbarbutton"
label="&performanceUI.importButton;"/>
<toolbarbutton id="clear-button"
class="devtools-toolbarbutton"
label="&performanceUI.clearButton;"/>
</hbox>
</toolbar>
<vbox id="recordings-list" flex="1"/>
</vbox>
<!-- Main panel content -->
<vbox id="performance-pane" flex="1">
<!-- Top toolbar controls -->
<toolbar id="performance-toolbar"
class="devtools-toolbar">
<hbox id="performance-toolbar-controls-other"
class="devtools-toolbarbutton-group">
<toolbarbutton id="filter-button"
class="devtools-toolbarbutton"
popup="performance-filter-menupopup"
tooltiptext="&performanceUI.options.filter.tooltiptext;"/>
</hbox>
<hbox id="performance-toolbar-controls-detail-views"
class="devtools-toolbarbutton-group">
<toolbarbutton id="select-waterfall-view"
class="devtools-toolbarbutton devtools-button"
label="&performanceUI.toolbar.waterfall;"
hidden="true"
data-view="waterfall"
tooltiptext="&performanceUI.toolbar.waterfall.tooltiptext;" />
<toolbarbutton id="select-js-calltree-view"
class="devtools-toolbarbutton devtools-button"
label="&performanceUI.toolbar.js-calltree;"
hidden="true"
data-view="js-calltree"
tooltiptext="&performanceUI.toolbar.js-calltree.tooltiptext;" />
<toolbarbutton id="select-js-flamegraph-view"
class="devtools-toolbarbutton devtools-button"
label="&performanceUI.toolbar.js-flamegraph;"
hidden="true"
data-view="js-flamegraph"
tooltiptext="&performanceUI.toolbar.js-flamegraph.tooltiptext;" />
<toolbarbutton id="select-memory-calltree-view"
class="devtools-toolbarbutton devtools-button"
label="&performanceUI.toolbar.memory-calltree;"
hidden="true"
data-view="memory-calltree"
tooltiptext="&performanceUI.toolbar.allocations.tooltiptext;" />
<toolbarbutton id="select-memory-flamegraph-view"
class="devtools-toolbarbutton devtools-button"
label="&performanceUI.toolbar.memory-flamegraph;"
hidden="true"
data-view="memory-flamegraph" />
<toolbarbutton id="select-optimizations-view"
class="devtools-toolbarbutton devtools-button"
label="Optimizations"
hidden="true"
data-view="optimizations" />
</hbox>
<spacer flex="1"></spacer>
<hbox id="performance-toolbar-controls-options"
class="devtools-toolbarbutton-group">
<toolbarbutton id="performance-options-button"
class="devtools-toolbarbutton devtools-option-toolbarbutton"
popup="performance-options-menupopup"
tooltiptext="&performanceUI.options.gear.tooltiptext;"/>
</hbox>
</toolbar>
<!-- Recording contents and general notice messages -->
<deck id="performance-view" flex="1">
<!-- "Empty" notice, shown when there's no recordings available -->
<hbox id="empty-notice"
class="notice-container"
align="center"
pack="center"
flex="1">
<hbox class="devtools-toolbarbutton-group"
pack="center">
<toolbarbutton class="devtools-toolbarbutton record-button"
label="&performanceUI.startRecording;"
standalone="true"/>
</hbox>
</hbox>
<!-- Recording contents -->
<vbox id="performance-view-content" flex="1">
<!-- Overview graphs -->
<vbox id="overview-pane">
<hbox id="markers-overview"/>
<hbox id="memory-overview"/>
<hbox id="time-framerate"/>
</vbox>
<!-- Detail views and specific notice messages -->
<deck id="details-pane-container" flex="1">
<!-- "Loading" notice, shown when a recording is being loaded -->
<hbox id="loading-notice"
class="notice-container devtools-throbber"
align="center"
pack="center"
flex="1">
<label value="&performanceUI.loadingNotice;"/>
</hbox>
<!-- "Recording" notice, shown when a recording is in progress -->
<vbox id="recording-notice"
class="notice-container"
align="center"
pack="center"
flex="1">
<hbox class="devtools-toolbarbutton-group"
pack="center">
<toolbarbutton class="devtools-toolbarbutton record-button"
label="&performanceUI.stopRecording;"
standalone="true"/>
</hbox>
<label class="realtime-disabled-message"
value="&performanceUI.disabledRealTime.nonE10SBuild;"/>
<label class="realtime-disabled-on-e10s-message"
value="&performanceUI.disabledRealTime.disabledE10S;"/>
<label class="buffer-status-message"
tooltiptext="&performanceUI.bufferStatusTooltip;"/>
<label class="buffer-status-message-full"
value="&performanceUI.bufferStatusFull;"/>
</vbox>
<!-- "Console" notice, shown when a console recording is in progress -->
<vbox id="console-recording-notice"
class="notice-container"
align="center"
pack="center"
flex="1">
<hbox class="console-profile-recording-notice">
<label value="&performanceUI.console.recordingNoticeStart;" />
<label class="console-profile-command" />
<label value="&performanceUI.console.recordingNoticeEnd;" />
</hbox>
<hbox class="console-profile-stop-notice">
<label value="&performanceUI.console.stopCommandStart;" />
<label class="console-profile-command" />
<label value="&performanceUI.console.stopCommandEnd;" />
</hbox>
<label class="realtime-disabled-message"
value="&performanceUI.disabledRealTime.nonE10SBuild;"/>
<label class="realtime-disabled-on-e10s-message"
value="&performanceUI.disabledRealTime.disabledE10S;"/>
<label class="buffer-status-message"
tooltiptext="&performanceUI.bufferStatusTooltip;"/>
<label class="buffer-status-message-full"
value="&performanceUI.bufferStatusFull;"/>
</vbox>
<!-- Detail views -->
<deck id="details-pane" flex="1">
<!-- Waterfall -->
<hbox id="waterfall-view" flex="1">
<vbox flex="1">
<hbox id="waterfall-header" />
<vbox id="waterfall-breakdown" flex="1" />
</vbox>
<splitter class="devtools-side-splitter"/>
<vbox id="waterfall-details"
class="theme-sidebar"/>
</hbox>
<!-- JS Tree and JIT view -->
<hbox id="js-profile-view" flex="1">
<vbox id="js-calltree-view" flex="1">
<hbox class="call-tree-headers-container">
<label class="plain call-tree-header"
type="duration"
crop="end"
value="&performanceUI.table.totalDuration;"
tooltiptext="&performanceUI.table.totalDuration.tooltip;"/>
<label class="plain call-tree-header"
type="percentage"
crop="end"
value="&performanceUI.table.totalPercentage;"
tooltiptext="&performanceUI.table.totalPercentage.tooltip;"/>
<label class="plain call-tree-header"
type="self-duration"
crop="end"
value="&performanceUI.table.selfDuration;"
tooltiptext="&performanceUI.table.selfDuration.tooltip;"/>
<label class="plain call-tree-header"
type="self-percentage"
crop="end"
value="&performanceUI.table.selfPercentage;"
tooltiptext="&performanceUI.table.selfPercentage.tooltip;"/>
<label class="plain call-tree-header"
type="samples"
crop="end"
value="&performanceUI.table.samples;"
tooltiptext="&performanceUI.table.samples.tooltip;"/>
<label class="plain call-tree-header"
type="function"
crop="end"
value="&performanceUI.table.function;"
tooltiptext="&performanceUI.table.function.tooltip;"/>
</hbox>
<vbox class="call-tree-cells-container" flex="1"/>
</vbox>
</hbox>
<!-- JS FlameChart -->
<hbox id="js-flamegraph-view" flex="1">
</hbox>
<!-- Memory Tree -->
<vbox id="memory-calltree-view" flex="1">
<hbox class="call-tree-headers-container">
<label class="plain call-tree-header"
type="count"
crop="end"
value="&performanceUI.table.totalAlloc;"
tooltiptext="&performanceUI.table.totalAlloc.tooltip;"/>
<label class="plain call-tree-header"
type="self-count"
crop="end"
value="&performanceUI.table.selfAlloc;"
tooltiptext="&performanceUI.table.selfAlloc.tooltip;"/>
<label class="plain call-tree-header"
type="function"
crop="end"
value="&performanceUI.table.function;"/>
</hbox>
<vbox class="call-tree-cells-container" flex="1"/>
</vbox>
<!-- Memory FlameChart -->
<hbox id="memory-flamegraph-view" flex="1">
</hbox>
<!-- JIT View -->
<hbox id="optimizations-view" flex="1">
<hbox id="graph-placeholder" flex="1">
</hbox>
<splitter id="optimizations-splitter" class="devtools-side-splitter"/>
<tabbox id="optimizations-tabs"
class="devtools-sidebar-tabs"
handleCtrlTab="false">
<tabs>
<tab id="optimizations-optimizations-tab"
label="Optimizations" />
<tab id="optimizations-frames-tab"
label="Frames" />
</tabs>
<tabpanels flex="1">
<!-- Optimizations Panel -->
<tabpanel id="optimizations-tabpanel"
class="tabpanel-content">
<vbox id="jit-optimizations-view">
<toolbar id="jit-optimizations-toolbar" class="devtools-toolbar">
<hbox id="jit-optimizations-header">
<span class="jit-optimizations-title">&performanceUI.JITOptimizationsTitle;</span>
<span class="header-function-name" />
<span class="header-file opt-url debugger-link" />
<span class="header-line opt-line" />
</hbox>
</toolbar>
<vbox id="jit-optimizations-raw-view"></vbox>
</vbox>
</tabpanel>
<!-- Frames Panel -->
<tabpanel id="frames-tabpanel"
class="tabpanel-content">
</tabpanel>
</tabpanels>
</tabbox>
</hbox>
<!-- /JIT View -->
</deck>
</deck>
</vbox>
</deck>
</vbox>
</hbox>
</window>