stash/vendor/github.com/chromedp/cdproto/tracing/tracing.go

213 lines
7.8 KiB
Go

// Package tracing provides the Chrome DevTools Protocol
// commands, types, and events for the Tracing domain.
//
// Generated by the cdproto-gen command.
package tracing
// Code generated by cdproto-gen. DO NOT EDIT.
import (
"context"
"github.com/chromedp/cdproto/cdp"
)
// EndParams stop trace events collection.
type EndParams struct{}
// End stop trace events collection.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Tracing#method-end
func End() *EndParams {
return &EndParams{}
}
// Do executes Tracing.end against the provided context.
func (p *EndParams) Do(ctx context.Context) (err error) {
return cdp.Execute(ctx, CommandEnd, nil, nil)
}
// GetCategoriesParams gets supported tracing categories.
type GetCategoriesParams struct{}
// GetCategories gets supported tracing categories.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Tracing#method-getCategories
func GetCategories() *GetCategoriesParams {
return &GetCategoriesParams{}
}
// GetCategoriesReturns return values.
type GetCategoriesReturns struct {
Categories []string `json:"categories,omitempty"` // A list of supported tracing categories.
}
// Do executes Tracing.getCategories against the provided context.
//
// returns:
// categories - A list of supported tracing categories.
func (p *GetCategoriesParams) Do(ctx context.Context) (categories []string, err error) {
// execute
var res GetCategoriesReturns
err = cdp.Execute(ctx, CommandGetCategories, nil, &res)
if err != nil {
return nil, err
}
return res.Categories, nil
}
// RecordClockSyncMarkerParams record a clock sync marker in the trace.
type RecordClockSyncMarkerParams struct {
SyncID string `json:"syncId"` // The ID of this clock sync marker
}
// RecordClockSyncMarker record a clock sync marker in the trace.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Tracing#method-recordClockSyncMarker
//
// parameters:
// syncID - The ID of this clock sync marker
func RecordClockSyncMarker(syncID string) *RecordClockSyncMarkerParams {
return &RecordClockSyncMarkerParams{
SyncID: syncID,
}
}
// Do executes Tracing.recordClockSyncMarker against the provided context.
func (p *RecordClockSyncMarkerParams) Do(ctx context.Context) (err error) {
return cdp.Execute(ctx, CommandRecordClockSyncMarker, p, nil)
}
// RequestMemoryDumpParams request a global memory dump.
type RequestMemoryDumpParams struct {
Deterministic bool `json:"deterministic,omitempty"` // Enables more deterministic results by forcing garbage collection
LevelOfDetail MemoryDumpLevelOfDetail `json:"levelOfDetail,omitempty"` // Specifies level of details in memory dump. Defaults to "detailed".
}
// RequestMemoryDump request a global memory dump.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Tracing#method-requestMemoryDump
//
// parameters:
func RequestMemoryDump() *RequestMemoryDumpParams {
return &RequestMemoryDumpParams{}
}
// WithDeterministic enables more deterministic results by forcing garbage
// collection.
func (p RequestMemoryDumpParams) WithDeterministic(deterministic bool) *RequestMemoryDumpParams {
p.Deterministic = deterministic
return &p
}
// WithLevelOfDetail specifies level of details in memory dump. Defaults to
// "detailed".
func (p RequestMemoryDumpParams) WithLevelOfDetail(levelOfDetail MemoryDumpLevelOfDetail) *RequestMemoryDumpParams {
p.LevelOfDetail = levelOfDetail
return &p
}
// RequestMemoryDumpReturns return values.
type RequestMemoryDumpReturns struct {
DumpGUID string `json:"dumpGuid,omitempty"` // GUID of the resulting global memory dump.
Success bool `json:"success,omitempty"` // True iff the global memory dump succeeded.
}
// Do executes Tracing.requestMemoryDump against the provided context.
//
// returns:
// dumpGUID - GUID of the resulting global memory dump.
// success - True iff the global memory dump succeeded.
func (p *RequestMemoryDumpParams) Do(ctx context.Context) (dumpGUID string, success bool, err error) {
// execute
var res RequestMemoryDumpReturns
err = cdp.Execute(ctx, CommandRequestMemoryDump, p, &res)
if err != nil {
return "", false, err
}
return res.DumpGUID, res.Success, nil
}
// StartParams start trace events collection.
type StartParams struct {
BufferUsageReportingInterval float64 `json:"bufferUsageReportingInterval,omitempty"` // If set, the agent will issue bufferUsage events at this interval, specified in milliseconds
TransferMode TransferMode `json:"transferMode,omitempty"` // Whether to report trace events as series of dataCollected events or to save trace to a stream (defaults to ReportEvents).
StreamFormat StreamFormat `json:"streamFormat,omitempty"` // Trace data format to use. This only applies when using ReturnAsStream transfer mode (defaults to json).
StreamCompression StreamCompression `json:"streamCompression,omitempty"` // Compression format to use. This only applies when using ReturnAsStream transfer mode (defaults to none)
TraceConfig *TraceConfig `json:"traceConfig,omitempty"`
PerfettoConfig string `json:"perfettoConfig,omitempty"` // Base64-encoded serialized perfetto.protos.TraceConfig protobuf message When specified, the parameters categories, options, traceConfig are ignored.
TracingBackend Backend `json:"tracingBackend,omitempty"` // Backend type (defaults to auto)
}
// Start start trace events collection.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Tracing#method-start
//
// parameters:
func Start() *StartParams {
return &StartParams{}
}
// WithBufferUsageReportingInterval if set, the agent will issue bufferUsage
// events at this interval, specified in milliseconds.
func (p StartParams) WithBufferUsageReportingInterval(bufferUsageReportingInterval float64) *StartParams {
p.BufferUsageReportingInterval = bufferUsageReportingInterval
return &p
}
// WithTransferMode whether to report trace events as series of dataCollected
// events or to save trace to a stream (defaults to ReportEvents).
func (p StartParams) WithTransferMode(transferMode TransferMode) *StartParams {
p.TransferMode = transferMode
return &p
}
// WithStreamFormat trace data format to use. This only applies when using
// ReturnAsStream transfer mode (defaults to json).
func (p StartParams) WithStreamFormat(streamFormat StreamFormat) *StartParams {
p.StreamFormat = streamFormat
return &p
}
// WithStreamCompression compression format to use. This only applies when
// using ReturnAsStream transfer mode (defaults to none).
func (p StartParams) WithStreamCompression(streamCompression StreamCompression) *StartParams {
p.StreamCompression = streamCompression
return &p
}
// WithTraceConfig [no description].
func (p StartParams) WithTraceConfig(traceConfig *TraceConfig) *StartParams {
p.TraceConfig = traceConfig
return &p
}
// WithPerfettoConfig base64-encoded serialized perfetto.protos.TraceConfig
// protobuf message When specified, the parameters categories, options,
// traceConfig are ignored.
func (p StartParams) WithPerfettoConfig(perfettoConfig string) *StartParams {
p.PerfettoConfig = perfettoConfig
return &p
}
// WithTracingBackend backend type (defaults to auto).
func (p StartParams) WithTracingBackend(tracingBackend Backend) *StartParams {
p.TracingBackend = tracingBackend
return &p
}
// Do executes Tracing.start against the provided context.
func (p *StartParams) Do(ctx context.Context) (err error) {
return cdp.Execute(ctx, CommandStart, p, nil)
}
// Command names.
const (
CommandEnd = "Tracing.end"
CommandGetCategories = "Tracing.getCategories"
CommandRecordClockSyncMarker = "Tracing.recordClockSyncMarker"
CommandRequestMemoryDump = "Tracing.requestMemoryDump"
CommandStart = "Tracing.start"
)