summaryrefslogtreecommitdiff
path: root/core/inspector.rs
AgeCommit message (Collapse)Author
2023-02-07chore: upgrade rusty_v8 to 0.62.2 (#17604)Bartek Iwańczuk
Co-authored-by: Bert Belder <bertbelder@gmail.com>
2023-01-25Revert "chore: upgrade rusty_v8 to 0.62.0 (#17200)" (#17523)Bartek Iwańczuk
This reverts commit e2d75491d5fc6fbac67da89c7350c4c9ca99d8e9.
2023-01-25chore: upgrade rusty_v8 to 0.62.0 (#17200)Bartek Iwańczuk
2023-01-02chore: update copyright year to 2023 (#17247)David Sherret
Yearly tradition of creating extra noise in git.
2022-12-16refactor(core): allow to listen for notifications in LocalInspectorSession ↵Bartek Iwańczuk
(#17040)
2022-12-12feat: add `--inspect-wait` flag (#17001)Bartek Iwańczuk
This commit adds new "--inspect-wait" flag which works similarly to "--inspect-brk" in that it waits for inspector session to be established before running code. However it doesn't break on the first statement of user code, but instead runs it as soon as a session is established.
2022-12-04revert: Inspector changes (#16939)Bartek Iwańczuk
Reverts 66dc54a7f and e2a0c3f0 Closes https://github.com/denoland/deno/issues/16926
2022-12-03fix(inspector): even if already woken, always schedule an interrupt (#16910)Bert Belder
2022-12-02fix(inspector): allow to poll session with reentry (#16863)Bartek Iwańczuk
This commit completely rewrites inspector session polling. Until now, there was a single function responsible for polling inspector sessions which could have been called when polling the "JsRuntime" as well as from internal inspector functions. There are some cases where it's required to have reentrant polling of sessions (eg. when "debugger" statement is run) which should be blocking until inspector sends appropriate message to continue execution. This was not possible before, because polling of sessions didn't have reentry ability. As a consequence, session polling was split into two separate functions: a) one to be used when polling from async context (on each tick of event loop in "JsRuntime") b) one to be used when polling synchronously and potentially blocking (used by various inspector methods). There are further cleanups and simplifications to be made in inspector code, but this rewrite solves the problem at hand (being able to evaluate "debugger" JS statement and continue inspector functionality). Co-authored-by: Bert Belder <bertbelder@gmail.com>
2022-11-27feat(core): send "executionContextDestroyed" notification on program end ↵Bartek Iwańczuk
(#16831) This commit changes "JsRuntime" to send "executionContextDestroyed" notification when the program finishes and shows a prompt informing that runtime is waiting for inspector to disconnect.
2022-11-26fix(inspector): send "isDefault" in aux data (#16836)Bartek Iwańczuk
With trial and error I found that most debuggers expect "isDefault" to be sent in "auxData" field of "executionContextCreated" notification. This stems from the fact that Node.js sends this data and eg. VSCode requires it to close connection to the debugger when the program finishes execution.
2022-11-26chore: update rusty_v8 to 0.56.1 (#16835)Bartek Iwańczuk
2022-09-02fix(repl): don't terminate on unhandled error events (#15548)Nayeem Rahman
2022-08-21chore: use Rust 1.63.0 (#15464)Mathias Lafeldt
2022-06-26build: require safety comments on unsafe code (#13870)Luca Casonato
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com> Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2022-05-26chore: upgrade rusty_v8 to 0.43.1 (#14713)Bartek Iwańczuk
2022-02-07refactor: factor out CDP message types (#13551)Leo Kettmeir
2022-01-31Revert "refactor: factor out CDP message types (#13501)" (#13540)Bartek Iwańczuk
This reverts commit 382a978859a7a7a4351542be818bb2e59523429c.
2022-01-27refactor: factor out CDP message types (#13501)Leo Kettmeir
2022-01-07chore: update copyright to 2022 (#13306)Ryan Dahl
Co-authored-by: Erfan Safari <erfanshield@outlook.com>
2022-01-04refactor(core): InspectorSession implements Stream (#13270)Bartek Iwańczuk
This commit rewrites "InspectorSession" to no longer implement "Future" trait but instead implement "Stream" trait. "Stream" trait is implemented by yielding a raw pointer to the "v8::inspector::V8InspectorSession" and received message. In effect received messages are no longer dispatched from within the future, but are explicitly dispatched by the caller. This change should allow us to dispatch a message to the session when another message is being dispatched, ie. "V8InspectorSesssion::dispatch_protocol_message" is already on the call stack.
2021-12-30fix(core): inspector works if no "Runtime.runIfWaitingForDebugger" message ↵Bartek Iwańczuk
is sent (#13191) This commit changes flow in inspector code to no longer require "Runtime.runIfWaitingForDebugger" message to complete a handshake. Even though clients like Chrome DevTools always send this message on startup, it is against the protocol to require this message to start an inspector session. Instead "Runtime.runIfWaitingForDebugger" is required only when running with "--inspect-brk" flag, which matches behavior of Node.js.
2021-12-28refactor(core): cleanup Inspector implementation (#12962)Bartek Iwańczuk
2021-11-16refactor: re-export anyhow from deno_core (#12777)Ryan Dahl
2021-10-27chore: update to rusty_v8 0.33.0 (#12564)Luca Casonato
2021-09-25refactor: Remove unused code (#12210)Ryan Dahl
2021-09-05fix(doc): fix rustdoc bare_urls warning (#11921)Feng Yu
2021-08-25refactor: cleanup Inspector and InspectorServer implementations (#11837)Bartek Iwańczuk
2021-07-06chore: use parking_lot for synchronization primitives to align with tokio ↵David Sherret
(#11289) parking_lot is already transitively used in tokio via the "full" cargo feature
2021-05-26refactor: move JsRuntimeInspector to deno_core (#10763)Bartek Iwańczuk
This commit moves implementation of "JsRuntimeInspector" to "deno_core" crate. To achieve that following changes were made: * "Worker" and "WebWorker" no longer own instance of "JsRuntimeInspector", instead it is now owned by "deno_core::JsRuntime". * Consequently polling of inspector is no longer done in "Worker"/"WebWorker", instead it's done in "deno_core::JsRuntime::poll_event_loop". * "deno_core::JsRuntime::poll_event_loop" and "deno_core::JsRuntime::run_event_loop", now accept "wait_for_inspector" boolean that tells if event loop should still be "pending" if there are active inspector sessions - this change fixes the problem that inspector disconnects from the frontend and process exits once the code has stopped executing.