diff options
author | Michael Pratt <mpratt@google.com> | 2022-01-12 18:27:28 -0500 |
---|---|---|
committer | Gopher Robot <gobot@golang.org> | 2022-04-21 21:18:18 +0000 |
commit | 889a902d215c57fe2032181370a9a2c30c531c99 (patch) | |
tree | ea702a856b71096fa73a2c3b9aa22c9b72811d13 | |
parent | 430ae97a2599e840bdeb934d5be171efb4a41272 (diff) | |
download | go-889a902d215c57fe2032181370a9a2c30c531c99.tar.gz go-889a902d215c57fe2032181370a9a2c30c531c99.zip |
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 <mpratt@google.com>
Auto-Submit: Michael Pratt <mpratt@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
-rwxr-xr-x | src/bootstrap.bash | 2 | ||||
-rw-r--r-- | src/cmd/trace/static/README.md (renamed from misc/trace/README.md) | 4 | ||||
-rw-r--r-- | src/cmd/trace/static/trace_viewer_full.html (renamed from misc/trace/trace_viewer_full.html) | 0 | ||||
-rw-r--r-- | src/cmd/trace/static/webcomponents.min.js (renamed from misc/trace/webcomponents.min.js) | 0 | ||||
-rw-r--r-- | src/cmd/trace/trace.go | 26 |
5 files changed, 12 insertions, 20 deletions
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 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 index ae6e35fca2..ae6e35fca2 100644 --- a/misc/trace/trace_viewer_full.html +++ b/src/cmd/trace/static/trace_viewer_full.html diff --git a/misc/trace/webcomponents.min.js b/src/cmd/trace/static/webcomponents.min.js index ad8196bc30..ad8196bc30 100644 --- a/misc/trace/webcomponents.min.js +++ b/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 = ` <html> <head> -<script src="/webcomponents.min.js"></script> +<script src="/static/webcomponents.min.js"></script> <script> 'use strict'; function onTraceViewerImportFail() { document.addEventListener('DOMContentLoaded', function() { document.body.textContent = - '/trace_viewer_full.html is missing. File a bug in https://golang.org/issue'; + '/static/trace_viewer_full.html is missing. File a bug in https://golang.org/issue'; }); } </script> -<link rel="import" href="/trace_viewer_html" +<link rel="import" href="/static/trace_viewer_full.html" onerror="onTraceViewerImportFail(event)"> <style type="text/css"> @@ -173,16 +175,6 @@ function onTraceViewerImportFail() { </html> ` -// httpTraceViewerHTML serves static part of trace-viewer. -// This URL is queried from templTrace HTML. -func httpTraceViewerHTML(w http.ResponseWriter, r *http.Request) { - http.ServeFile(w, r, filepath.Join(runtime.GOROOT(), "misc", "trace", "trace_viewer_full.html")) -} - -func webcomponentsJS(w http.ResponseWriter, r *http.Request) { - http.ServeFile(w, r, filepath.Join(runtime.GOROOT(), "misc", "trace", "webcomponents.min.js")) -} - // httpJsonTrace serves json trace, requested from within templTrace HTML. func httpJsonTrace(w http.ResponseWriter, r *http.Request) { defer debug.FreeOSMemory() |