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

136 lines
5.9 KiB
Go

// Package domsnapshot provides the Chrome DevTools Protocol
// commands, types, and events for the DOMSnapshot domain.
//
// This domain facilitates obtaining document snapshots with DOM, layout, and
// style information.
//
// Generated by the cdproto-gen command.
package domsnapshot
// Code generated by cdproto-gen. DO NOT EDIT.
import (
"context"
"github.com/chromedp/cdproto/cdp"
)
// DisableParams disables DOM snapshot agent for the given page.
type DisableParams struct{}
// Disable disables DOM snapshot agent for the given page.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/DOMSnapshot#method-disable
func Disable() *DisableParams {
return &DisableParams{}
}
// Do executes DOMSnapshot.disable against the provided context.
func (p *DisableParams) Do(ctx context.Context) (err error) {
return cdp.Execute(ctx, CommandDisable, nil, nil)
}
// EnableParams enables DOM snapshot agent for the given page.
type EnableParams struct{}
// Enable enables DOM snapshot agent for the given page.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/DOMSnapshot#method-enable
func Enable() *EnableParams {
return &EnableParams{}
}
// Do executes DOMSnapshot.enable against the provided context.
func (p *EnableParams) Do(ctx context.Context) (err error) {
return cdp.Execute(ctx, CommandEnable, nil, nil)
}
// CaptureSnapshotParams returns a document snapshot, including the full DOM
// tree of the root node (including iframes, template contents, and imported
// documents) in a flattened array, as well as layout and white-listed computed
// style information for the nodes. Shadow DOM in the returned DOM tree is
// flattened.
type CaptureSnapshotParams struct {
ComputedStyles []string `json:"computedStyles"` // Whitelist of computed styles to return.
IncludePaintOrder bool `json:"includePaintOrder,omitempty"` // Whether to include layout object paint orders into the snapshot.
IncludeDOMRects bool `json:"includeDOMRects,omitempty"` // Whether to include DOM rectangles (offsetRects, clientRects, scrollRects) into the snapshot
IncludeBlendedBackgroundColors bool `json:"includeBlendedBackgroundColors,omitempty"` // Whether to include blended background colors in the snapshot (default: false). Blended background color is achieved by blending background colors of all elements that overlap with the current element.
IncludeTextColorOpacities bool `json:"includeTextColorOpacities,omitempty"` // Whether to include text color opacity in the snapshot (default: false). An element might have the opacity property set that affects the text color of the element. The final text color opacity is computed based on the opacity of all overlapping elements.
}
// CaptureSnapshot returns a document snapshot, including the full DOM tree
// of the root node (including iframes, template contents, and imported
// documents) in a flattened array, as well as layout and white-listed computed
// style information for the nodes. Shadow DOM in the returned DOM tree is
// flattened.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/DOMSnapshot#method-captureSnapshot
//
// parameters:
// computedStyles - Whitelist of computed styles to return.
func CaptureSnapshot(computedStyles []string) *CaptureSnapshotParams {
return &CaptureSnapshotParams{
ComputedStyles: computedStyles,
}
}
// WithIncludePaintOrder whether to include layout object paint orders into
// the snapshot.
func (p CaptureSnapshotParams) WithIncludePaintOrder(includePaintOrder bool) *CaptureSnapshotParams {
p.IncludePaintOrder = includePaintOrder
return &p
}
// WithIncludeDOMRects whether to include DOM rectangles (offsetRects,
// clientRects, scrollRects) into the snapshot.
func (p CaptureSnapshotParams) WithIncludeDOMRects(includeDOMRects bool) *CaptureSnapshotParams {
p.IncludeDOMRects = includeDOMRects
return &p
}
// WithIncludeBlendedBackgroundColors whether to include blended background
// colors in the snapshot (default: false). Blended background color is achieved
// by blending background colors of all elements that overlap with the current
// element.
func (p CaptureSnapshotParams) WithIncludeBlendedBackgroundColors(includeBlendedBackgroundColors bool) *CaptureSnapshotParams {
p.IncludeBlendedBackgroundColors = includeBlendedBackgroundColors
return &p
}
// WithIncludeTextColorOpacities whether to include text color opacity in the
// snapshot (default: false). An element might have the opacity property set
// that affects the text color of the element. The final text color opacity is
// computed based on the opacity of all overlapping elements.
func (p CaptureSnapshotParams) WithIncludeTextColorOpacities(includeTextColorOpacities bool) *CaptureSnapshotParams {
p.IncludeTextColorOpacities = includeTextColorOpacities
return &p
}
// CaptureSnapshotReturns return values.
type CaptureSnapshotReturns struct {
Documents []*DocumentSnapshot `json:"documents,omitempty"` // The nodes in the DOM tree. The DOMNode at index 0 corresponds to the root document.
Strings []string `json:"strings,omitempty"` // Shared string table that all string properties refer to with indexes.
}
// Do executes DOMSnapshot.captureSnapshot against the provided context.
//
// returns:
// documents - The nodes in the DOM tree. The DOMNode at index 0 corresponds to the root document.
// strings - Shared string table that all string properties refer to with indexes.
func (p *CaptureSnapshotParams) Do(ctx context.Context) (documents []*DocumentSnapshot, strings []string, err error) {
// execute
var res CaptureSnapshotReturns
err = cdp.Execute(ctx, CommandCaptureSnapshot, p, &res)
if err != nil {
return nil, nil, err
}
return res.Documents, res.Strings, nil
}
// Command names.
const (
CommandDisable = "DOMSnapshot.disable"
CommandEnable = "DOMSnapshot.enable"
CommandCaptureSnapshot = "DOMSnapshot.captureSnapshot"
)