pub struct JsRuntimeInspector { /* private fields */ }
Expand description

This structure is used responsible for providing inspector interface to the JsRuntime.

It stores an instance of v8::inspector::V8Inspector and additionally implements v8::inspector::V8InspectorClientImpl.

After creating this structure it’s possible to connect multiple sessions to the inspector, in case of Deno it’s either: a “websocket session” that provides integration with Chrome Devtools, or an “in-memory session” that is used for REPL or converage collection.

Implementations§

source§

impl JsRuntimeInspector

source

pub fn new(
    isolate: &mut OwnedIsolate,
    context: Global<Context>,
    is_main: bool
) -> Rc<RefCell<Self>>

source

pub fn context_destroyed(
    &mut self,
    scope: &mut HandleScope<'_>,
    context: Global<Context>
)

source

pub fn has_active_sessions(&self) -> bool

source

pub fn has_blocking_sessions(&self) -> bool

source

pub fn wait_for_session(&mut self)

This function blocks the thread until at least one inspector client has established a websocket connection.

source

pub fn wait_for_session_and_break_on_next_statement(&mut self)

This function blocks the thread until at least one inspector client has established a websocket connection.

After that, it instructs V8 to pause at the next statement. Frontend must send “Runtime.runIfWaitingForDebugger” message to resume execution.

source

pub fn get_session_sender(&self) -> UnboundedSender<InspectorSessionProxy>

Obtain a sender for proxy channels.

source

pub fn add_deregister_handler(&mut self) -> Receiver<()>

Create a channel that notifies the frontend when inspector is dropped.

NOTE: Only a single handler is currently available.

source

pub fn create_local_session(&self) -> LocalInspectorSession

Create a local inspector session that can be used on the same thread as the isolate.

Trait Implementations§

source§

impl Drop for JsRuntimeInspector

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl Future for JsRuntimeInspector

Polling JsRuntimeInspector allows inspector to accept new incoming connections and “pump” messages in different sessions.

It should be polled on tick of event loop, ie. in JsRuntime::poll_event_loop function.

§

type Output = ()

The type of value produced on completion.
source§

fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<()>

Attempt to resolve the future to a final value, registering the current task for wakeup if the value is not yet available. Read more
source§

impl V8InspectorClientImpl for JsRuntimeInspector

source§

fn base(&self) -> &V8InspectorClientBase

source§

fn base_mut(&mut self) -> &mut V8InspectorClientBase

source§

fn run_message_loop_on_pause(&mut self, context_group_id: i32)

source§

fn quit_message_loop_on_pause(&mut self)

source§

fn run_if_waiting_for_debugger(&mut self, context_group_id: i32)

source§

fn generate_unique_id(&mut self) -> i64

source§

fn console_api_message(
    &mut self,
    context_group_id: i32,
    level: i32,
    message: &StringView<'_>,
    url: &StringView<'_>,
    line_number: u32,
    column_number: u32,
    stack_trace: &mut V8StackTrace
)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere
    T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> AsV8InspectorClient for Twhere
    T: V8InspectorClientImpl,

source§

impl<T> Borrow<T> for Twhere
    T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere
    T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FutureExt for Twhere
    T: Future + ?Sized,

§

fn map<U, F>(self, f: F) -> Map<Self, F>where
    F: FnOnce(Self::Output) -> U,
    Self: Sized,

Map this future’s output to a different type, returning a new future of the resulting type. Read more
§

fn map_into<U>(self) -> MapInto<Self, U>where
    Self::Output: Into<U>,
    Self: Sized,

Map this future’s output to a different type, returning a new future of the resulting type. Read more
§

fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F>where
    F: FnOnce(Self::Output) -> Fut,
    Fut: Future,
    Self: Sized,

Chain on a computation for when a future finished, passing the result of the future to the provided closure f. Read more
§

fn left_future<B>(self) -> Either<Self, B>where
    B: Future<Output = Self::Output>,
    Self: Sized,

Wrap this future in an Either future, making it the left-hand variant of that Either. Read more
§

fn right_future<A>(self) -> Either<A, Self>where
    A: Future<Output = Self::Output>,
    Self: Sized,

Wrap this future in an Either future, making it the right-hand variant of that Either. Read more
§

fn into_stream(self) -> IntoStream<Self>where
    Self: Sized,

Convert this future into a single element stream. Read more
§

fn flatten(self) -> Flatten<Self>where
    Self::Output: Future,
    Self: Sized,

Flatten the execution of this future when the output of this future is itself another future. Read more
§

fn flatten_stream(self) -> FlattenStream<Self>where
    Self::Output: Stream,
    Self: Sized,

Flatten the execution of this future when the successful result of this future is a stream. Read more
§

fn fuse(self) -> Fuse<Self>where
    Self: Sized,

Fuse a future such that poll will never again be called once it has completed. This method can be used to turn any Future into a FusedFuture. Read more
§

fn inspect<F>(self, f: F) -> Inspect<Self, F>where
    F: FnOnce(&Self::Output),
    Self: Sized,

Do something with the output of a future before passing it on. Read more
§

fn catch_unwind(self) -> CatchUnwind<Self>where
    Self: Sized + UnwindSafe,

Catches unwinding panics while polling the future. Read more
§

fn shared(self) -> Shared<Self>where
    Self: Sized,
    Self::Output: Clone,

Create a cloneable handle to this future where all handles will resolve to the same result. Read more
§

fn remote_handle(self) -> (Remote<Self>, RemoteHandle<Self::Output>)where
    Self: Sized,

Turn this future into a future that yields () on completion and sends its output to another future on a separate task. Read more
§

fn boxed<'a>(
    self
) -> Pin<Box<dyn Future<Output = Self::Output> + Send + 'a, Global>>where
    Self: Sized + Send + 'a,

Wrap the future in a Box, pinning it. Read more
§

fn boxed_local<'a>(
    self
) -> Pin<Box<dyn Future<Output = Self::Output> + 'a, Global>>where
    Self: Sized + 'a,

Wrap the future in a Box, pinning it. Read more
§

fn unit_error(self) -> UnitError<Self>where
    Self: Sized,

§

fn never_error(self) -> NeverError<Self>where
    Self: Sized,

§

fn poll_unpin(&mut self, cx: &mut Context<'_>) -> Poll<Self::Output>where
    Self: Unpin,

A convenience for calling Future::poll on Unpin future types.
§

fn now_or_never(self) -> Option<Self::Output>where
    Self: Sized,

Evaluates and consumes the future, returning the resulting output if the future is ready after the first call to Future::poll. Read more
source§

impl<T, U> Into<U> for Twhere
    U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<F> IntoFuture for Fwhere
    F: Future,

§

type Output = <F as Future>::Output

The output that the future will produce on completion.
§

type IntoFuture = F

Which kind of future are we turning this into?
source§

fn into_future(self) -> <F as IntoFuture>::IntoFuture

Creates a future from a value. Read more
source§

impl<T, U> TryFrom<U> for Twhere
    U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere
    U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.