misc/trace/README.md | 77 ++++++++++++++++++++++++++++++++++++++++++++++++----- misc/trace/trace_viewer_full.html | 1972 ++++++++++++++++++++++++++++++++++++++--------------- misc/trace/webcomponents.min.js | 14 ++++++++++++++ src/cmd/trace/trace.go | 39 ++++++++++++++++++++++++++++----------- diff --git a/misc/trace/README.md b/misc/trace/README.md index 2f8958df5beff5d6983a2e65757629b41e2a97ae..218d7285461df9baf8506c325930783d3a6e86f9 100644 --- a/misc/trace/README.md +++ b/misc/trace/README.md @@ -1,17 +1,41 @@ -This directory contains helper file for trace viewer (`go tool trace`). +## Resources for Go's trace viewer -`trace_viewer_full.html` was generated by following -[instructions](https://github.com/catapult-project/catapult/blob/master/tracing/docs/embedding-trace-viewer.md) -on revision `dc970d3e1f7b3da5a2849de70ff253acdb70148f` -of [catapult](https://github.com/catapult-project/catapult) using: +Go execution trace UI (`go tool trace`) embeds +Chrome's trace viewer (Catapult) following the +[instructions]( +https://chromium.googlesource.com/catapult/+/refs/heads/master/tracing/docs/embedding-trace-viewer.md). This directory contains +the helper files to embed Chrome's trace viewer. + +The current resources were generated/copied from +[`Catapult@9508452e18f130c98499cb4c4f1e1efaedee8962`]( +https://chromium.googlesource.com/catapult/+/9508452e18f130c98499cb4c4f1e1efaedee8962). + +### Updating `trace_viewer_full.html` + +The file was generated by catapult's `vulcanize_trace_viewer` command. ``` -catapult$ ./tracing/bin/vulcanize_trace_viewer --config=full -catapult$ cp tracing/bin/trace_viewer_full.html $GOROOT/misc/trace/trace_viewer_lean.html +$ git clone https://chromium.googlesource.com/catapult +$ cd catapult +$ ./tracing/bin/vulcanize_trace_viewer --config=full +$ cp tracing/bin/trace_viewer_full.html $GOROOT/misc/trace/trace_viewer_full.html ``` + We are supposed to use --config=lean (produces smaller html), but it is broken at the moment: https://github.com/catapult-project/catapult/issues/2247 +### Updating `webcomponents.min.js` + +`webcomponents.min.js` is necessary to let the trace viewer page +to import the `trace_viewer_full.html`. +This is copied from the catapult repo. + +``` +$ cp third_party/polymer/components/webcomponentsjs/webcomponents.min.js $GOROOT/misc/trace/webcomponents.min.js +``` + +## Licenses + The license for trace-viewer is as follows: // Copyright (c) 2012 The Chromium Authors. All rights reserved. // @@ -40,3 +64,42 @@ // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +The license for webcomponents.min.js is as follows: + +/** + * @license + * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. + * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt + * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt + * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt + * Code distributed by Google as part of the polymer project is also + * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt + */ +// Copyright (c) 2014 The Polymer Authors. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/misc/trace/trace_viewer_full.html b/misc/trace/trace_viewer_full.html index ba9dcc6652978561b5f68f08504c4ce632c8bfc5..ef2e0ea5733571a6fb021a6ccb6202eeeb24720a 100644 --- a/misc/trace/trace_viewer_full.html +++ b/misc/trace/trace_viewer_full.html @@ -2,6 +2,7 @@ + @@ -500,7 +501,7 @@ border-left: 1px solid white; border-right: 1px solid #A3A3A3; border-top: 1px solid white; display: flex; - height: 26px; + min-height: 26px; padding: 0 3px 0 3px; } @@ -657,7 +658,11 @@ - + + + + + @@ -769,7 +790,40 @@ }
-
+
- - + +
- - - - @@ -1804,6 +1849,7 @@ } #content { display: flex; flex: 1 1 auto; + min-width: 0; } #content > tr-ui-a-related-events { margin-left: 8px; @@ -1820,6 +1866,7 @@ display: flex; } #content { flex: 1 1 auto; + min-width: 0; } @@ -2028,7 +2075,7 @@ font-family: monospace; vertical-align: top; } - + @@ -2244,7 +2291,7 @@ align-self: center; }
- +
- +
@@ -2783,6 +2830,8 @@ align-items: center; padding-left: 8px; padding-right: 8px; flex: 1 1 auto; + overflow: hidden; + white-space: nowrap; } #control > #bar > #left_controls, @@ -2790,6 +2839,7 @@ #control > #bar > #right_controls { display: flex; flex-direction: row; align-items: stretch; + flex-shrink: 0; } #control > #bar > #left_controls > * { margin-right: 2px; } @@ -2817,7 +2867,7 @@ middle-container > x-timeline-view-side-panel-container { flex: 0 0 auto; } tr-ui-b-drag-handle { flex: 0 0 auto; } tr-ui-a-analysis-view { flex: 0 0 auto; } - #view_options_dropdown { + tr-ui-b-dropdown { --dropdown-button: { -webkit-appearance: none; align-items: normal; @@ -2838,6 +2888,8 @@
^_^
+ + M @@ -2854,9 +2906,11 @@
+ +
- + @@ -3064,6 +3118,10 @@ display: none; margin-right: 20px; } + #show_visualization { + margin-right: 20px; + } + #export { margin-right: 20px; } @@ -3108,6 +3166,8 @@ + + @@ -3334,6 +3394,221 @@ + + + + + +