Comments (3)
I see what you mean, I hadn't considered closing a target before the rpcc.Conn
. I think we can detect this and close the conn without error. This means that rpcc.ErrConnClosing
would be returned (as when calling rpcc.Conn.Close
twice), would that be OK?
from cdp.
Hi Mathias, thanks for quick response!
It's great if rpcc.Conn.Close
returns no error as long as the connection is successfully closed. In particular, I want rpcc.Conn.Close
to ignore DetachFromTarget
failure if it is about the target already gone.
Since the websocket connection is bi-directional, it should be closed the both party (client and server). And there's no strict requirement on which party to initiate closing the connection. If the server (browser) gracefully closes the connection first, the client (cdp) has to close the connection as well, and I don't expect it to result in an error (of course, if there is in-flight method calls, they should fail with errors).
What do you think?
from cdp.
This is a naive attempt to ignore "No session with given id" error on DetachFromTarget call:
nya3jp@db30737
However it does not pass my new unit test with the following error:
=== RUN TestManager_CloseTarget
--- FAIL: TestManager_CloseTarget (0.19s)
session_test.go:222: rpcc: the connection is closing
IIUC it is because rpc.Conn.close
is automatically called when the websocket connection is closed.
from cdp.
Related Issues (20)
- session.Manager does not properly close if connection was closed with non-nil error HOT 3
- Defunct issue with R1Soft CDP HOT 1
- HTTP error / timeout when printing certain images in html HOT 1
- BrowserContextID is not accessible anymore HOT 2
- Is possible to wait for an Ajax request? HOT 2
- Lifecycle events not fire in order and this ones are fired twice HOT 2
- RequestIntercepted can't set respond HOT 2
- session.Manager.watch may not finish when unexpected error happens on websocket
- Non-wrapped error HOT 3
- How to optionally download files while also dealing with regular web pages HOT 6
- Connection for every thread HOT 2
- Default example not working dial tcp [::1]:9222: connectex HOT 1
- Rpc command not found HOT 4
- Attempted to use with node, too many chrome assumptions? HOT 4
- Problem interacting with the remote debugging host over HTTP HOT 5
- Breaking changes in node js debugging in v0.34.0 HOT 4
- Remote Pipe
- resolving URL from scriptID in pausedClient HOT 2
- Default example doesn't work - Page.Enable wasn't found HOT 3
- New browser tab event / notification
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cdp.