886 lines
19 KiB
Go
886 lines
19 KiB
Go
|
// Package target provides the Chrome Debugging Protocol
|
||
|
// commands, types, and events for the Chrome Target domain.
|
||
|
//
|
||
|
// Supports additional targets discovery and allows to attach to them.
|
||
|
//
|
||
|
// Generated by the chromedp-gen command.
|
||
|
package target
|
||
|
|
||
|
// AUTOGENERATED. DO NOT EDIT.
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
|
||
|
. "github.com/knq/chromedp/cdp"
|
||
|
"github.com/mailru/easyjson"
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
_ BackendNode
|
||
|
_ BackendNodeID
|
||
|
_ ComputedProperty
|
||
|
_ ErrorType
|
||
|
_ Frame
|
||
|
_ FrameID
|
||
|
_ LoaderID
|
||
|
_ Message
|
||
|
_ MessageError
|
||
|
_ MethodType
|
||
|
_ Node
|
||
|
_ NodeID
|
||
|
_ NodeType
|
||
|
_ PseudoType
|
||
|
_ RGBA
|
||
|
_ ShadowRootType
|
||
|
_ Timestamp
|
||
|
)
|
||
|
|
||
|
// SetDiscoverTargetsParams controls whether to discover available targets
|
||
|
// and notify via targetCreated/targetDestroyed events.
|
||
|
type SetDiscoverTargetsParams struct {
|
||
|
Discover bool `json:"discover"` // Whether to discover available targets.
|
||
|
}
|
||
|
|
||
|
// SetDiscoverTargets controls whether to discover available targets and
|
||
|
// notify via targetCreated/targetDestroyed events.
|
||
|
//
|
||
|
// parameters:
|
||
|
// discover - Whether to discover available targets.
|
||
|
func SetDiscoverTargets(discover bool) *SetDiscoverTargetsParams {
|
||
|
return &SetDiscoverTargetsParams{
|
||
|
Discover: discover,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Do executes Target.setDiscoverTargets.
|
||
|
func (p *SetDiscoverTargetsParams) Do(ctxt context.Context, h FrameHandler) (err error) {
|
||
|
if ctxt == nil {
|
||
|
ctxt = context.Background()
|
||
|
}
|
||
|
|
||
|
// marshal
|
||
|
buf, err := easyjson.Marshal(p)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// execute
|
||
|
ch := h.Execute(ctxt, CommandTargetSetDiscoverTargets, easyjson.RawMessage(buf))
|
||
|
|
||
|
// read response
|
||
|
select {
|
||
|
case res := <-ch:
|
||
|
if res == nil {
|
||
|
return ErrChannelClosed
|
||
|
}
|
||
|
|
||
|
switch v := res.(type) {
|
||
|
case easyjson.RawMessage:
|
||
|
return nil
|
||
|
|
||
|
case error:
|
||
|
return v
|
||
|
}
|
||
|
|
||
|
case <-ctxt.Done():
|
||
|
return ErrContextDone
|
||
|
}
|
||
|
|
||
|
return ErrUnknownResult
|
||
|
}
|
||
|
|
||
|
// SetAutoAttachParams controls whether to automatically attach to new
|
||
|
// targets which are considered to be related to this one. When turned on,
|
||
|
// attaches to all existing related targets as well. When turned off,
|
||
|
// automatically detaches from all currently attached targets.
|
||
|
type SetAutoAttachParams struct {
|
||
|
AutoAttach bool `json:"autoAttach"` // Whether to auto-attach to related targets.
|
||
|
WaitForDebuggerOnStart bool `json:"waitForDebuggerOnStart"` // Whether to pause new targets when attaching to them. Use Runtime.runIfWaitingForDebugger to run paused targets.
|
||
|
}
|
||
|
|
||
|
// SetAutoAttach controls whether to automatically attach to new targets
|
||
|
// which are considered to be related to this one. When turned on, attaches to
|
||
|
// all existing related targets as well. When turned off, automatically detaches
|
||
|
// from all currently attached targets.
|
||
|
//
|
||
|
// parameters:
|
||
|
// autoAttach - Whether to auto-attach to related targets.
|
||
|
// waitForDebuggerOnStart - Whether to pause new targets when attaching to them. Use Runtime.runIfWaitingForDebugger to run paused targets.
|
||
|
func SetAutoAttach(autoAttach bool, waitForDebuggerOnStart bool) *SetAutoAttachParams {
|
||
|
return &SetAutoAttachParams{
|
||
|
AutoAttach: autoAttach,
|
||
|
WaitForDebuggerOnStart: waitForDebuggerOnStart,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Do executes Target.setAutoAttach.
|
||
|
func (p *SetAutoAttachParams) Do(ctxt context.Context, h FrameHandler) (err error) {
|
||
|
if ctxt == nil {
|
||
|
ctxt = context.Background()
|
||
|
}
|
||
|
|
||
|
// marshal
|
||
|
buf, err := easyjson.Marshal(p)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// execute
|
||
|
ch := h.Execute(ctxt, CommandTargetSetAutoAttach, easyjson.RawMessage(buf))
|
||
|
|
||
|
// read response
|
||
|
select {
|
||
|
case res := <-ch:
|
||
|
if res == nil {
|
||
|
return ErrChannelClosed
|
||
|
}
|
||
|
|
||
|
switch v := res.(type) {
|
||
|
case easyjson.RawMessage:
|
||
|
return nil
|
||
|
|
||
|
case error:
|
||
|
return v
|
||
|
}
|
||
|
|
||
|
case <-ctxt.Done():
|
||
|
return ErrContextDone
|
||
|
}
|
||
|
|
||
|
return ErrUnknownResult
|
||
|
}
|
||
|
|
||
|
type SetAttachToFramesParams struct {
|
||
|
Value bool `json:"value"` // Whether to attach to frames.
|
||
|
}
|
||
|
|
||
|
// parameters:
|
||
|
// value - Whether to attach to frames.
|
||
|
func SetAttachToFrames(value bool) *SetAttachToFramesParams {
|
||
|
return &SetAttachToFramesParams{
|
||
|
Value: value,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Do executes Target.setAttachToFrames.
|
||
|
func (p *SetAttachToFramesParams) Do(ctxt context.Context, h FrameHandler) (err error) {
|
||
|
if ctxt == nil {
|
||
|
ctxt = context.Background()
|
||
|
}
|
||
|
|
||
|
// marshal
|
||
|
buf, err := easyjson.Marshal(p)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// execute
|
||
|
ch := h.Execute(ctxt, CommandTargetSetAttachToFrames, easyjson.RawMessage(buf))
|
||
|
|
||
|
// read response
|
||
|
select {
|
||
|
case res := <-ch:
|
||
|
if res == nil {
|
||
|
return ErrChannelClosed
|
||
|
}
|
||
|
|
||
|
switch v := res.(type) {
|
||
|
case easyjson.RawMessage:
|
||
|
return nil
|
||
|
|
||
|
case error:
|
||
|
return v
|
||
|
}
|
||
|
|
||
|
case <-ctxt.Done():
|
||
|
return ErrContextDone
|
||
|
}
|
||
|
|
||
|
return ErrUnknownResult
|
||
|
}
|
||
|
|
||
|
// SetRemoteLocationsParams enables target discovery for the specified
|
||
|
// locations, when setDiscoverTargets was set to true.
|
||
|
type SetRemoteLocationsParams struct {
|
||
|
Locations []*RemoteLocation `json:"locations"` // List of remote locations.
|
||
|
}
|
||
|
|
||
|
// SetRemoteLocations enables target discovery for the specified locations,
|
||
|
// when setDiscoverTargets was set to true.
|
||
|
//
|
||
|
// parameters:
|
||
|
// locations - List of remote locations.
|
||
|
func SetRemoteLocations(locations []*RemoteLocation) *SetRemoteLocationsParams {
|
||
|
return &SetRemoteLocationsParams{
|
||
|
Locations: locations,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Do executes Target.setRemoteLocations.
|
||
|
func (p *SetRemoteLocationsParams) Do(ctxt context.Context, h FrameHandler) (err error) {
|
||
|
if ctxt == nil {
|
||
|
ctxt = context.Background()
|
||
|
}
|
||
|
|
||
|
// marshal
|
||
|
buf, err := easyjson.Marshal(p)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// execute
|
||
|
ch := h.Execute(ctxt, CommandTargetSetRemoteLocations, easyjson.RawMessage(buf))
|
||
|
|
||
|
// read response
|
||
|
select {
|
||
|
case res := <-ch:
|
||
|
if res == nil {
|
||
|
return ErrChannelClosed
|
||
|
}
|
||
|
|
||
|
switch v := res.(type) {
|
||
|
case easyjson.RawMessage:
|
||
|
return nil
|
||
|
|
||
|
case error:
|
||
|
return v
|
||
|
}
|
||
|
|
||
|
case <-ctxt.Done():
|
||
|
return ErrContextDone
|
||
|
}
|
||
|
|
||
|
return ErrUnknownResult
|
||
|
}
|
||
|
|
||
|
// SendMessageToTargetParams sends protocol message to the target with given
|
||
|
// id.
|
||
|
type SendMessageToTargetParams struct {
|
||
|
TargetID string `json:"targetId"`
|
||
|
Message string `json:"message"`
|
||
|
}
|
||
|
|
||
|
// SendMessageToTarget sends protocol message to the target with given id.
|
||
|
//
|
||
|
// parameters:
|
||
|
// targetId
|
||
|
// message
|
||
|
func SendMessageToTarget(targetId string, message string) *SendMessageToTargetParams {
|
||
|
return &SendMessageToTargetParams{
|
||
|
TargetID: targetId,
|
||
|
Message: message,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Do executes Target.sendMessageToTarget.
|
||
|
func (p *SendMessageToTargetParams) Do(ctxt context.Context, h FrameHandler) (err error) {
|
||
|
if ctxt == nil {
|
||
|
ctxt = context.Background()
|
||
|
}
|
||
|
|
||
|
// marshal
|
||
|
buf, err := easyjson.Marshal(p)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// execute
|
||
|
ch := h.Execute(ctxt, CommandTargetSendMessageToTarget, easyjson.RawMessage(buf))
|
||
|
|
||
|
// read response
|
||
|
select {
|
||
|
case res := <-ch:
|
||
|
if res == nil {
|
||
|
return ErrChannelClosed
|
||
|
}
|
||
|
|
||
|
switch v := res.(type) {
|
||
|
case easyjson.RawMessage:
|
||
|
return nil
|
||
|
|
||
|
case error:
|
||
|
return v
|
||
|
}
|
||
|
|
||
|
case <-ctxt.Done():
|
||
|
return ErrContextDone
|
||
|
}
|
||
|
|
||
|
return ErrUnknownResult
|
||
|
}
|
||
|
|
||
|
// GetTargetInfoParams returns information about a target.
|
||
|
type GetTargetInfoParams struct {
|
||
|
TargetID TargetID `json:"targetId"`
|
||
|
}
|
||
|
|
||
|
// GetTargetInfo returns information about a target.
|
||
|
//
|
||
|
// parameters:
|
||
|
// targetId
|
||
|
func GetTargetInfo(targetId TargetID) *GetTargetInfoParams {
|
||
|
return &GetTargetInfoParams{
|
||
|
TargetID: targetId,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// GetTargetInfoReturns return values.
|
||
|
type GetTargetInfoReturns struct {
|
||
|
TargetInfo *TargetInfo `json:"targetInfo,omitempty"`
|
||
|
}
|
||
|
|
||
|
// Do executes Target.getTargetInfo.
|
||
|
//
|
||
|
// returns:
|
||
|
// targetInfo
|
||
|
func (p *GetTargetInfoParams) Do(ctxt context.Context, h FrameHandler) (targetInfo *TargetInfo, err error) {
|
||
|
if ctxt == nil {
|
||
|
ctxt = context.Background()
|
||
|
}
|
||
|
|
||
|
// marshal
|
||
|
buf, err := easyjson.Marshal(p)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
// execute
|
||
|
ch := h.Execute(ctxt, CommandTargetGetTargetInfo, easyjson.RawMessage(buf))
|
||
|
|
||
|
// read response
|
||
|
select {
|
||
|
case res := <-ch:
|
||
|
if res == nil {
|
||
|
return nil, ErrChannelClosed
|
||
|
}
|
||
|
|
||
|
switch v := res.(type) {
|
||
|
case easyjson.RawMessage:
|
||
|
// unmarshal
|
||
|
var r GetTargetInfoReturns
|
||
|
err = easyjson.Unmarshal(v, &r)
|
||
|
if err != nil {
|
||
|
return nil, ErrInvalidResult
|
||
|
}
|
||
|
|
||
|
return r.TargetInfo, nil
|
||
|
|
||
|
case error:
|
||
|
return nil, v
|
||
|
}
|
||
|
|
||
|
case <-ctxt.Done():
|
||
|
return nil, ErrContextDone
|
||
|
}
|
||
|
|
||
|
return nil, ErrUnknownResult
|
||
|
}
|
||
|
|
||
|
// ActivateTargetParams activates (focuses) the target.
|
||
|
type ActivateTargetParams struct {
|
||
|
TargetID TargetID `json:"targetId"`
|
||
|
}
|
||
|
|
||
|
// ActivateTarget activates (focuses) the target.
|
||
|
//
|
||
|
// parameters:
|
||
|
// targetId
|
||
|
func ActivateTarget(targetId TargetID) *ActivateTargetParams {
|
||
|
return &ActivateTargetParams{
|
||
|
TargetID: targetId,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Do executes Target.activateTarget.
|
||
|
func (p *ActivateTargetParams) Do(ctxt context.Context, h FrameHandler) (err error) {
|
||
|
if ctxt == nil {
|
||
|
ctxt = context.Background()
|
||
|
}
|
||
|
|
||
|
// marshal
|
||
|
buf, err := easyjson.Marshal(p)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// execute
|
||
|
ch := h.Execute(ctxt, CommandTargetActivateTarget, easyjson.RawMessage(buf))
|
||
|
|
||
|
// read response
|
||
|
select {
|
||
|
case res := <-ch:
|
||
|
if res == nil {
|
||
|
return ErrChannelClosed
|
||
|
}
|
||
|
|
||
|
switch v := res.(type) {
|
||
|
case easyjson.RawMessage:
|
||
|
return nil
|
||
|
|
||
|
case error:
|
||
|
return v
|
||
|
}
|
||
|
|
||
|
case <-ctxt.Done():
|
||
|
return ErrContextDone
|
||
|
}
|
||
|
|
||
|
return ErrUnknownResult
|
||
|
}
|
||
|
|
||
|
// CloseTargetParams closes the target. If the target is a page that gets
|
||
|
// closed too.
|
||
|
type CloseTargetParams struct {
|
||
|
TargetID TargetID `json:"targetId"`
|
||
|
}
|
||
|
|
||
|
// CloseTarget closes the target. If the target is a page that gets closed
|
||
|
// too.
|
||
|
//
|
||
|
// parameters:
|
||
|
// targetId
|
||
|
func CloseTarget(targetId TargetID) *CloseTargetParams {
|
||
|
return &CloseTargetParams{
|
||
|
TargetID: targetId,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// CloseTargetReturns return values.
|
||
|
type CloseTargetReturns struct {
|
||
|
Success bool `json:"success,omitempty"`
|
||
|
}
|
||
|
|
||
|
// Do executes Target.closeTarget.
|
||
|
//
|
||
|
// returns:
|
||
|
// success
|
||
|
func (p *CloseTargetParams) Do(ctxt context.Context, h FrameHandler) (success bool, err error) {
|
||
|
if ctxt == nil {
|
||
|
ctxt = context.Background()
|
||
|
}
|
||
|
|
||
|
// marshal
|
||
|
buf, err := easyjson.Marshal(p)
|
||
|
if err != nil {
|
||
|
return false, err
|
||
|
}
|
||
|
|
||
|
// execute
|
||
|
ch := h.Execute(ctxt, CommandTargetCloseTarget, easyjson.RawMessage(buf))
|
||
|
|
||
|
// read response
|
||
|
select {
|
||
|
case res := <-ch:
|
||
|
if res == nil {
|
||
|
return false, ErrChannelClosed
|
||
|
}
|
||
|
|
||
|
switch v := res.(type) {
|
||
|
case easyjson.RawMessage:
|
||
|
// unmarshal
|
||
|
var r CloseTargetReturns
|
||
|
err = easyjson.Unmarshal(v, &r)
|
||
|
if err != nil {
|
||
|
return false, ErrInvalidResult
|
||
|
}
|
||
|
|
||
|
return r.Success, nil
|
||
|
|
||
|
case error:
|
||
|
return false, v
|
||
|
}
|
||
|
|
||
|
case <-ctxt.Done():
|
||
|
return false, ErrContextDone
|
||
|
}
|
||
|
|
||
|
return false, ErrUnknownResult
|
||
|
}
|
||
|
|
||
|
// AttachToTargetParams attaches to the target with given id.
|
||
|
type AttachToTargetParams struct {
|
||
|
TargetID TargetID `json:"targetId"`
|
||
|
}
|
||
|
|
||
|
// AttachToTarget attaches to the target with given id.
|
||
|
//
|
||
|
// parameters:
|
||
|
// targetId
|
||
|
func AttachToTarget(targetId TargetID) *AttachToTargetParams {
|
||
|
return &AttachToTargetParams{
|
||
|
TargetID: targetId,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// AttachToTargetReturns return values.
|
||
|
type AttachToTargetReturns struct {
|
||
|
Success bool `json:"success,omitempty"` // Whether attach succeeded.
|
||
|
}
|
||
|
|
||
|
// Do executes Target.attachToTarget.
|
||
|
//
|
||
|
// returns:
|
||
|
// success - Whether attach succeeded.
|
||
|
func (p *AttachToTargetParams) Do(ctxt context.Context, h FrameHandler) (success bool, err error) {
|
||
|
if ctxt == nil {
|
||
|
ctxt = context.Background()
|
||
|
}
|
||
|
|
||
|
// marshal
|
||
|
buf, err := easyjson.Marshal(p)
|
||
|
if err != nil {
|
||
|
return false, err
|
||
|
}
|
||
|
|
||
|
// execute
|
||
|
ch := h.Execute(ctxt, CommandTargetAttachToTarget, easyjson.RawMessage(buf))
|
||
|
|
||
|
// read response
|
||
|
select {
|
||
|
case res := <-ch:
|
||
|
if res == nil {
|
||
|
return false, ErrChannelClosed
|
||
|
}
|
||
|
|
||
|
switch v := res.(type) {
|
||
|
case easyjson.RawMessage:
|
||
|
// unmarshal
|
||
|
var r AttachToTargetReturns
|
||
|
err = easyjson.Unmarshal(v, &r)
|
||
|
if err != nil {
|
||
|
return false, ErrInvalidResult
|
||
|
}
|
||
|
|
||
|
return r.Success, nil
|
||
|
|
||
|
case error:
|
||
|
return false, v
|
||
|
}
|
||
|
|
||
|
case <-ctxt.Done():
|
||
|
return false, ErrContextDone
|
||
|
}
|
||
|
|
||
|
return false, ErrUnknownResult
|
||
|
}
|
||
|
|
||
|
// DetachFromTargetParams detaches from the target with given id.
|
||
|
type DetachFromTargetParams struct {
|
||
|
TargetID TargetID `json:"targetId"`
|
||
|
}
|
||
|
|
||
|
// DetachFromTarget detaches from the target with given id.
|
||
|
//
|
||
|
// parameters:
|
||
|
// targetId
|
||
|
func DetachFromTarget(targetId TargetID) *DetachFromTargetParams {
|
||
|
return &DetachFromTargetParams{
|
||
|
TargetID: targetId,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Do executes Target.detachFromTarget.
|
||
|
func (p *DetachFromTargetParams) Do(ctxt context.Context, h FrameHandler) (err error) {
|
||
|
if ctxt == nil {
|
||
|
ctxt = context.Background()
|
||
|
}
|
||
|
|
||
|
// marshal
|
||
|
buf, err := easyjson.Marshal(p)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// execute
|
||
|
ch := h.Execute(ctxt, CommandTargetDetachFromTarget, easyjson.RawMessage(buf))
|
||
|
|
||
|
// read response
|
||
|
select {
|
||
|
case res := <-ch:
|
||
|
if res == nil {
|
||
|
return ErrChannelClosed
|
||
|
}
|
||
|
|
||
|
switch v := res.(type) {
|
||
|
case easyjson.RawMessage:
|
||
|
return nil
|
||
|
|
||
|
case error:
|
||
|
return v
|
||
|
}
|
||
|
|
||
|
case <-ctxt.Done():
|
||
|
return ErrContextDone
|
||
|
}
|
||
|
|
||
|
return ErrUnknownResult
|
||
|
}
|
||
|
|
||
|
// CreateBrowserContextParams creates a new empty BrowserContext. Similar to
|
||
|
// an incognito profile but you can have more than one.
|
||
|
type CreateBrowserContextParams struct{}
|
||
|
|
||
|
// CreateBrowserContext creates a new empty BrowserContext. Similar to an
|
||
|
// incognito profile but you can have more than one.
|
||
|
func CreateBrowserContext() *CreateBrowserContextParams {
|
||
|
return &CreateBrowserContextParams{}
|
||
|
}
|
||
|
|
||
|
// CreateBrowserContextReturns return values.
|
||
|
type CreateBrowserContextReturns struct {
|
||
|
BrowserContextID BrowserContextID `json:"browserContextId,omitempty"` // The id of the context created.
|
||
|
}
|
||
|
|
||
|
// Do executes Target.createBrowserContext.
|
||
|
//
|
||
|
// returns:
|
||
|
// browserContextId - The id of the context created.
|
||
|
func (p *CreateBrowserContextParams) Do(ctxt context.Context, h FrameHandler) (browserContextId BrowserContextID, err error) {
|
||
|
if ctxt == nil {
|
||
|
ctxt = context.Background()
|
||
|
}
|
||
|
|
||
|
// execute
|
||
|
ch := h.Execute(ctxt, CommandTargetCreateBrowserContext, Empty)
|
||
|
|
||
|
// read response
|
||
|
select {
|
||
|
case res := <-ch:
|
||
|
if res == nil {
|
||
|
return "", ErrChannelClosed
|
||
|
}
|
||
|
|
||
|
switch v := res.(type) {
|
||
|
case easyjson.RawMessage:
|
||
|
// unmarshal
|
||
|
var r CreateBrowserContextReturns
|
||
|
err = easyjson.Unmarshal(v, &r)
|
||
|
if err != nil {
|
||
|
return "", ErrInvalidResult
|
||
|
}
|
||
|
|
||
|
return r.BrowserContextID, nil
|
||
|
|
||
|
case error:
|
||
|
return "", v
|
||
|
}
|
||
|
|
||
|
case <-ctxt.Done():
|
||
|
return "", ErrContextDone
|
||
|
}
|
||
|
|
||
|
return "", ErrUnknownResult
|
||
|
}
|
||
|
|
||
|
// DisposeBrowserContextParams deletes a BrowserContext, will fail of any
|
||
|
// open page uses it.
|
||
|
type DisposeBrowserContextParams struct {
|
||
|
BrowserContextID BrowserContextID `json:"browserContextId"`
|
||
|
}
|
||
|
|
||
|
// DisposeBrowserContext deletes a BrowserContext, will fail of any open page
|
||
|
// uses it.
|
||
|
//
|
||
|
// parameters:
|
||
|
// browserContextId
|
||
|
func DisposeBrowserContext(browserContextId BrowserContextID) *DisposeBrowserContextParams {
|
||
|
return &DisposeBrowserContextParams{
|
||
|
BrowserContextID: browserContextId,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// DisposeBrowserContextReturns return values.
|
||
|
type DisposeBrowserContextReturns struct {
|
||
|
Success bool `json:"success,omitempty"`
|
||
|
}
|
||
|
|
||
|
// Do executes Target.disposeBrowserContext.
|
||
|
//
|
||
|
// returns:
|
||
|
// success
|
||
|
func (p *DisposeBrowserContextParams) Do(ctxt context.Context, h FrameHandler) (success bool, err error) {
|
||
|
if ctxt == nil {
|
||
|
ctxt = context.Background()
|
||
|
}
|
||
|
|
||
|
// marshal
|
||
|
buf, err := easyjson.Marshal(p)
|
||
|
if err != nil {
|
||
|
return false, err
|
||
|
}
|
||
|
|
||
|
// execute
|
||
|
ch := h.Execute(ctxt, CommandTargetDisposeBrowserContext, easyjson.RawMessage(buf))
|
||
|
|
||
|
// read response
|
||
|
select {
|
||
|
case res := <-ch:
|
||
|
if res == nil {
|
||
|
return false, ErrChannelClosed
|
||
|
}
|
||
|
|
||
|
switch v := res.(type) {
|
||
|
case easyjson.RawMessage:
|
||
|
// unmarshal
|
||
|
var r DisposeBrowserContextReturns
|
||
|
err = easyjson.Unmarshal(v, &r)
|
||
|
if err != nil {
|
||
|
return false, ErrInvalidResult
|
||
|
}
|
||
|
|
||
|
return r.Success, nil
|
||
|
|
||
|
case error:
|
||
|
return false, v
|
||
|
}
|
||
|
|
||
|
case <-ctxt.Done():
|
||
|
return false, ErrContextDone
|
||
|
}
|
||
|
|
||
|
return false, ErrUnknownResult
|
||
|
}
|
||
|
|
||
|
// CreateTargetParams creates a new page.
|
||
|
type CreateTargetParams struct {
|
||
|
URL string `json:"url"` // The initial URL the page will be navigated to.
|
||
|
Width int64 `json:"width,omitempty"` // Frame width in DIP (headless chrome only).
|
||
|
Height int64 `json:"height,omitempty"` // Frame height in DIP (headless chrome only).
|
||
|
BrowserContextID BrowserContextID `json:"browserContextId,omitempty"` // The browser context to create the page in (headless chrome only).
|
||
|
}
|
||
|
|
||
|
// CreateTarget creates a new page.
|
||
|
//
|
||
|
// parameters:
|
||
|
// url - The initial URL the page will be navigated to.
|
||
|
func CreateTarget(url string) *CreateTargetParams {
|
||
|
return &CreateTargetParams{
|
||
|
URL: url,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// WithWidth frame width in DIP (headless chrome only).
|
||
|
func (p CreateTargetParams) WithWidth(width int64) *CreateTargetParams {
|
||
|
p.Width = width
|
||
|
return &p
|
||
|
}
|
||
|
|
||
|
// WithHeight frame height in DIP (headless chrome only).
|
||
|
func (p CreateTargetParams) WithHeight(height int64) *CreateTargetParams {
|
||
|
p.Height = height
|
||
|
return &p
|
||
|
}
|
||
|
|
||
|
// WithBrowserContextID the browser context to create the page in (headless
|
||
|
// chrome only).
|
||
|
func (p CreateTargetParams) WithBrowserContextID(browserContextId BrowserContextID) *CreateTargetParams {
|
||
|
p.BrowserContextID = browserContextId
|
||
|
return &p
|
||
|
}
|
||
|
|
||
|
// CreateTargetReturns return values.
|
||
|
type CreateTargetReturns struct {
|
||
|
TargetID TargetID `json:"targetId,omitempty"` // The id of the page opened.
|
||
|
}
|
||
|
|
||
|
// Do executes Target.createTarget.
|
||
|
//
|
||
|
// returns:
|
||
|
// targetId - The id of the page opened.
|
||
|
func (p *CreateTargetParams) Do(ctxt context.Context, h FrameHandler) (targetId TargetID, err error) {
|
||
|
if ctxt == nil {
|
||
|
ctxt = context.Background()
|
||
|
}
|
||
|
|
||
|
// marshal
|
||
|
buf, err := easyjson.Marshal(p)
|
||
|
if err != nil {
|
||
|
return "", err
|
||
|
}
|
||
|
|
||
|
// execute
|
||
|
ch := h.Execute(ctxt, CommandTargetCreateTarget, easyjson.RawMessage(buf))
|
||
|
|
||
|
// read response
|
||
|
select {
|
||
|
case res := <-ch:
|
||
|
if res == nil {
|
||
|
return "", ErrChannelClosed
|
||
|
}
|
||
|
|
||
|
switch v := res.(type) {
|
||
|
case easyjson.RawMessage:
|
||
|
// unmarshal
|
||
|
var r CreateTargetReturns
|
||
|
err = easyjson.Unmarshal(v, &r)
|
||
|
if err != nil {
|
||
|
return "", ErrInvalidResult
|
||
|
}
|
||
|
|
||
|
return r.TargetID, nil
|
||
|
|
||
|
case error:
|
||
|
return "", v
|
||
|
}
|
||
|
|
||
|
case <-ctxt.Done():
|
||
|
return "", ErrContextDone
|
||
|
}
|
||
|
|
||
|
return "", ErrUnknownResult
|
||
|
}
|
||
|
|
||
|
// GetTargetsParams retrieves a list of available targets.
|
||
|
type GetTargetsParams struct{}
|
||
|
|
||
|
// GetTargets retrieves a list of available targets.
|
||
|
func GetTargets() *GetTargetsParams {
|
||
|
return &GetTargetsParams{}
|
||
|
}
|
||
|
|
||
|
// GetTargetsReturns return values.
|
||
|
type GetTargetsReturns struct {
|
||
|
TargetInfos []*TargetInfo `json:"targetInfos,omitempty"` // The list of targets.
|
||
|
}
|
||
|
|
||
|
// Do executes Target.getTargets.
|
||
|
//
|
||
|
// returns:
|
||
|
// targetInfos - The list of targets.
|
||
|
func (p *GetTargetsParams) Do(ctxt context.Context, h FrameHandler) (targetInfos []*TargetInfo, err error) {
|
||
|
if ctxt == nil {
|
||
|
ctxt = context.Background()
|
||
|
}
|
||
|
|
||
|
// execute
|
||
|
ch := h.Execute(ctxt, CommandTargetGetTargets, Empty)
|
||
|
|
||
|
// read response
|
||
|
select {
|
||
|
case res := <-ch:
|
||
|
if res == nil {
|
||
|
return nil, ErrChannelClosed
|
||
|
}
|
||
|
|
||
|
switch v := res.(type) {
|
||
|
case easyjson.RawMessage:
|
||
|
// unmarshal
|
||
|
var r GetTargetsReturns
|
||
|
err = easyjson.Unmarshal(v, &r)
|
||
|
if err != nil {
|
||
|
return nil, ErrInvalidResult
|
||
|
}
|
||
|
|
||
|
return r.TargetInfos, nil
|
||
|
|
||
|
case error:
|
||
|
return nil, v
|
||
|
}
|
||
|
|
||
|
case <-ctxt.Done():
|
||
|
return nil, ErrContextDone
|
||
|
}
|
||
|
|
||
|
return nil, ErrUnknownResult
|
||
|
}
|