From 889a902d215c57fe2032181370a9a2c30c531c99 Mon Sep 17 00:00:00 2001 From: Michael Pratt Date: Wed, 12 Jan 2022 18:27:28 -0500 Subject: [PATCH] cmd/trace: embed static content cmd/trace is currently somewhat painful to use in odd environments since it depends on the presence of $GOROOT/misc/trace to serve the static trace viewer content. Use //go:embed to embed this content directly into cmd/trace for easier use. Change-Id: I83b7d97dbecc9773f3b5a6b3bc4a6597473bc01a Reviewed-on: https://go-review.googlesource.com/c/go/+/378194 Run-TryBot: Michael Pratt Auto-Submit: Michael Pratt Reviewed-by: Michael Knyszek TryBot-Result: Gopher Robot --- src/bootstrap.bash | 2 +- .../trace => src/cmd/trace/static}/README.md | 4 +-- .../cmd/trace/static}/trace_viewer_full.html | 0 .../cmd/trace/static}/webcomponents.min.js | 0 src/cmd/trace/trace.go | 26 +++++++------------ 5 files changed, 12 insertions(+), 20 deletions(-) rename {misc/trace => src/cmd/trace/static}/README.md (97%) rename {misc/trace => src/cmd/trace/static}/trace_viewer_full.html (100%) rename {misc/trace => src/cmd/trace/static}/webcomponents.min.js (100%) diff --git a/src/bootstrap.bash b/src/bootstrap.bash index 88c080a948..4038eaf942 100755 --- a/src/bootstrap.bash +++ b/src/bootstrap.bash @@ -96,7 +96,7 @@ if [ "$BOOTSTRAP_FORMAT" = "mintgz" ]; then echo "Preparing to generate build system's ${OUTGZ}; cleaning ..." rm -rf bin/gofmt rm -rf src/runtime/race/race_*.syso - rm -rf api test doc misc/cgo/test misc/trace + rm -rf api test doc misc/cgo/test rm -rf pkg/tool/*_*/{addr2line,api,cgo,cover,doc,fix,nm,objdump,pack,pprof,test2json,trace,vet} rm -rf pkg/*_*/{image,database,cmd} rm -rf $(find . -type d -name testdata) diff --git a/misc/trace/README.md b/src/cmd/trace/static/README.md similarity index 97% rename from misc/trace/README.md rename to src/cmd/trace/static/README.md index 218d728546..f81c59eae5 100644 --- a/misc/trace/README.md +++ b/src/cmd/trace/static/README.md @@ -17,7 +17,7 @@ The file was generated by catapult's `vulcanize_trace_viewer` command. $ 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 +$ cp tracing/bin/trace_viewer_full.html $GOROOT/src/cmd/trace/static/trace_viewer_full.html ``` We are supposed to use --config=lean (produces smaller html), @@ -31,7 +31,7 @@ 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 +$ cp third_party/polymer/components/webcomponentsjs/webcomponents.min.js $GOROOT/src/cmd/trace/static/webcomponents.min.js ``` ## Licenses diff --git a/misc/trace/trace_viewer_full.html b/src/cmd/trace/static/trace_viewer_full.html similarity index 100% rename from misc/trace/trace_viewer_full.html rename to src/cmd/trace/static/trace_viewer_full.html diff --git a/misc/trace/webcomponents.min.js b/src/cmd/trace/static/webcomponents.min.js similarity index 100% rename from misc/trace/webcomponents.min.js rename to src/cmd/trace/static/webcomponents.min.js diff --git a/src/cmd/trace/trace.go b/src/cmd/trace/trace.go index 0139639dae..a0d742ac54 100644 --- a/src/cmd/trace/trace.go +++ b/src/cmd/trace/trace.go @@ -6,6 +6,7 @@ package main import ( "cmd/internal/traceviewer" + "embed" "encoding/json" "fmt" "internal/trace" @@ -13,8 +14,6 @@ import ( "log" "math" "net/http" - "path/filepath" - "runtime" "runtime/debug" "sort" "strconv" @@ -22,13 +21,16 @@ import ( "time" ) +//go:embed static/trace_viewer_full.html static/webcomponents.min.js +var staticContent embed.FS + func init() { http.HandleFunc("/trace", httpTrace) http.HandleFunc("/jsontrace", httpJsonTrace) - http.HandleFunc("/trace_viewer_html", httpTraceViewerHTML) - http.HandleFunc("/webcomponents.min.js", webcomponentsJS) + http.Handle("/static/", http.FileServer(http.FS(staticContent))) } + // httpTrace serves either whole trace (goid==0) or trace for goid goroutine. func httpTrace(w http.ResponseWriter, r *http.Request) { _, err := parseTrace() @@ -50,19 +52,19 @@ func httpTrace(w http.ResponseWriter, r *http.Request) { var templTrace = ` - + -