Adding client API changes prior to package rewrite
This commit is contained in:
parent
d413f67302
commit
4ae10864e4
|
@ -4,7 +4,7 @@ import "fmt"
|
||||||
|
|
||||||
//go:generate easyjson -omit_empty -output_filename easyjson.go chrome.go
|
//go:generate easyjson -omit_empty -output_filename easyjson.go chrome.go
|
||||||
|
|
||||||
// Chrome holds connection information for a Chrome, Edge, or Safari target.
|
// Chrome holds connection information for a Chrome target.
|
||||||
//
|
//
|
||||||
//easyjson:json
|
//easyjson:json
|
||||||
type Chrome struct {
|
type Chrome struct {
|
||||||
|
@ -20,7 +20,7 @@ type Chrome struct {
|
||||||
|
|
||||||
// String satisfies the stringer interface.
|
// String satisfies the stringer interface.
|
||||||
func (c Chrome) String() string {
|
func (c Chrome) String() string {
|
||||||
return fmt.Sprintf("%s (`%s`)", c.ID, c.Title)
|
return fmt.Sprintf("[%s]: %q", c.ID, c.Title)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetID returns the target ID.
|
// GetID returns the target ID.
|
||||||
|
@ -33,6 +33,12 @@ func (c *Chrome) GetType() TargetType {
|
||||||
return c.Type
|
return c.Type
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetDevtoolsURL returns the devtools frontend target URL, satisfying the
|
||||||
|
// domains.Target interface.
|
||||||
|
func (c *Chrome) GetDevtoolsURL() string {
|
||||||
|
return c.DevtoolsURL
|
||||||
|
}
|
||||||
|
|
||||||
// GetWebsocketURL provides the websocket URL for the target, satisfying the
|
// GetWebsocketURL provides the websocket URL for the target, satisfying the
|
||||||
// domains.Target interface.
|
// domains.Target interface.
|
||||||
func (c *Chrome) GetWebsocketURL() string {
|
func (c *Chrome) GetWebsocketURL() string {
|
||||||
|
|
|
@ -50,6 +50,7 @@ type Target interface {
|
||||||
String() string
|
String() string
|
||||||
GetID() string
|
GetID() string
|
||||||
GetType() TargetType
|
GetType() TargetType
|
||||||
|
GetDevtoolsURL() string
|
||||||
GetWebsocketURL() string
|
GetWebsocketURL() string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ import (
|
||||||
"github.com/gorilla/websocket"
|
"github.com/gorilla/websocket"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
var (
|
||||||
// DefaultReadBufferSize is the default maximum read buffer size.
|
// DefaultReadBufferSize is the default maximum read buffer size.
|
||||||
DefaultReadBufferSize = 25 * 1024 * 1024
|
DefaultReadBufferSize = 25 * 1024 * 1024
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ const (
|
||||||
DefaultWriteBufferSize = 10 * 1024 * 1024
|
DefaultWriteBufferSize = 10 * 1024 * 1024
|
||||||
)
|
)
|
||||||
|
|
||||||
// Transport is the common interface to send/receive messages.
|
// Transport is the common interface to send/receive messages to a target.
|
||||||
type Transport interface {
|
type Transport interface {
|
||||||
Read() ([]byte, error)
|
Read() ([]byte, error)
|
||||||
Write([]byte) error
|
Write([]byte) error
|
||||||
|
@ -43,7 +43,7 @@ func (c *Conn) Write(buf []byte) error {
|
||||||
// Dial dials the specified target's websocket URL.
|
// Dial dials the specified target's websocket URL.
|
||||||
//
|
//
|
||||||
// Note: uses gorilla/websocket.
|
// Note: uses gorilla/websocket.
|
||||||
func Dial(t Target, opts ...DialOption) (Transport, error) {
|
func Dial(urlstr string, opts ...DialOption) (Transport, error) {
|
||||||
d := &websocket.Dialer{
|
d := &websocket.Dialer{
|
||||||
ReadBufferSize: DefaultReadBufferSize,
|
ReadBufferSize: DefaultReadBufferSize,
|
||||||
WriteBufferSize: DefaultWriteBufferSize,
|
WriteBufferSize: DefaultWriteBufferSize,
|
||||||
|
@ -55,7 +55,7 @@ func Dial(t Target, opts ...DialOption) (Transport, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// connect
|
// connect
|
||||||
conn, _, err := d.Dial(t.GetWebsocketURL(), nil)
|
conn, _, err := d.Dial(urlstr, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -65,5 +65,3 @@ func Dial(t Target, opts ...DialOption) (Transport, error) {
|
||||||
|
|
||||||
// DialOption is a dial option.
|
// DialOption is a dial option.
|
||||||
type DialOption func(*websocket.Dialer)
|
type DialOption func(*websocket.Dialer)
|
||||||
|
|
||||||
// TODO: add dial options ...
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ type TargetHandler struct {
|
||||||
|
|
||||||
// NewTargetHandler creates a new handler for the specified client target.
|
// NewTargetHandler creates a new handler for the specified client target.
|
||||||
func NewTargetHandler(t client.Target, logf, debugf, errf func(string, ...interface{})) (*TargetHandler, error) {
|
func NewTargetHandler(t client.Target, logf, debugf, errf func(string, ...interface{})) (*TargetHandler, error) {
|
||||||
conn, err := client.Dial(t)
|
conn, err := client.Dial(t.GetWebsocketURL())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user