| |
| |
| |
| |
| |
| |
| package engine |
|
|
| import "context" |
|
|
| |
| type Capability string |
|
|
| const ( |
| CapNavigate Capability = "navigate" |
| CapSnapshot Capability = "snapshot" |
| CapText Capability = "text" |
| CapClick Capability = "click" |
| CapType Capability = "type" |
| CapScreenshot Capability = "screenshot" |
| CapPDF Capability = "pdf" |
| CapEvaluate Capability = "evaluate" |
| CapCookies Capability = "cookies" |
| ) |
|
|
| |
| type Mode string |
|
|
| const ( |
| ModeChrome Mode = "chrome" |
| ModeLite Mode = "lite" |
| ModeAuto Mode = "auto" |
| ) |
|
|
| |
| type Decision int |
|
|
| const ( |
| Undecided Decision = iota |
| UseLite |
| UseChrome |
| ) |
|
|
| |
| type NavigateResult struct { |
| TabID string `json:"tabId"` |
| URL string `json:"url"` |
| Title string `json:"title"` |
| } |
|
|
| |
| type SnapshotNode struct { |
| Ref string `json:"ref"` |
| Role string `json:"role"` |
| Name string `json:"name"` |
| Tag string `json:"tag,omitempty"` |
| Value string `json:"value,omitempty"` |
| Depth int `json:"depth"` |
| Interactive bool `json:"interactive,omitempty"` |
| } |
|
|
| |
| type Engine interface { |
| Name() string |
| Navigate(ctx context.Context, url string) (*NavigateResult, error) |
| Snapshot(ctx context.Context, tabID, filter string) ([]SnapshotNode, error) |
| Text(ctx context.Context, tabID string) (string, error) |
| Click(ctx context.Context, tabID, ref string) error |
| Type(ctx context.Context, tabID, ref, text string) error |
| Capabilities() []Capability |
| Close() error |
| } |
|
|