diff options
Diffstat (limited to 'vendor/github.com/playwright-community/playwright-go/cdp_session.go')
| -rw-r--r-- | vendor/github.com/playwright-community/playwright-go/cdp_session.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/vendor/github.com/playwright-community/playwright-go/cdp_session.go b/vendor/github.com/playwright-community/playwright-go/cdp_session.go new file mode 100644 index 0000000..e9bba82 --- /dev/null +++ b/vendor/github.com/playwright-community/playwright-go/cdp_session.go @@ -0,0 +1,38 @@ +package playwright + +type cdpSessionImpl struct { + channelOwner +} + +func (c *cdpSessionImpl) Detach() error { + _, err := c.channel.Send("detach") + return err +} + +func (c *cdpSessionImpl) Send(method string, params map[string]interface{}) (interface{}, error) { + result, err := c.channel.Send("send", map[string]interface{}{ + "method": method, + "params": params, + }) + if err != nil { + return nil, err + } + + return result, err +} + +func (c *cdpSessionImpl) onEvent(params map[string]interface{}) { + c.Emit(params["method"].(string), params["params"]) +} + +func newCDPSession(parent *channelOwner, objectType string, guid string, initializer map[string]interface{}) *cdpSessionImpl { + bt := &cdpSessionImpl{} + + bt.createChannelOwner(bt, parent, objectType, guid, initializer) + + bt.channel.On("event", func(params map[string]interface{}) { + bt.onEvent(params) + }) + + return bt +} |
