Skip to content

Commit

Permalink
inspector: remove redundant NodeNetwork domain, consolidate with `N…
Browse files Browse the repository at this point in the history
…etwork` domain
  • Loading branch information
cola119 committed Jul 18, 2024
1 parent 1796860 commit 1c6fc6c
Show file tree
Hide file tree
Showing 11 changed files with 32 additions and 275 deletions.
26 changes: 13 additions & 13 deletions doc/api/inspector.md
Original file line number Diff line number Diff line change
Expand Up @@ -488,17 +488,17 @@ Blocks until a client (existing or connected later) has sent

An exception will be thrown if there is no active inspector.

## Node.js-specific protocol events
## Integration with DevTools

Node.js extends the Chrome DevTools protocol with Node.js-specific protocol events. DevTools
frontends connected to a running Node.js instance can capture these events and display them
accordingly to facilitate debugging.
The following methods broadcast a Node.js-specific protocol event to all connected frontends.
The `node:inspector` module provides an API for integrating with devtools that support Chrome DevTools Protocol.
DevTools frontends connected to a running Node.js instance can capture protocol events emitted from the instance
and display them accordingly to facilitate debugging.
The following methods broadcast a protocol event to all connected frontends.
The `params` passed to the methods can be optional, depending on the protocol.

```js
// The `NodeNetwork.requestWillBeSent` event will be fired.
inspector.NodeNetwork.requestWillBeSent({
// The `Network.requestWillBeSent` event will be fired.
inspector.Network.requestWillBeSent({
requestId: 'request-id-1',
timestamp: Date.now() / 1000,
wallTime: Date.now(),
Expand All @@ -509,7 +509,7 @@ inspector.NodeNetwork.requestWillBeSent({
});
```

### `inspector.NodeNetwork.requestWillBeSent([params])`
### `inspector.Network.requestWillBeSent([params])`

<!-- YAML
added:
Expand All @@ -522,10 +522,10 @@ added:

This feature is only available with the `--experimental-network-inspection` flag enabled.

Broadcasts the `NodeNetwork.requestWillBeSent` event to connected frontends. This event indicates that
Broadcasts the `Network.requestWillBeSent` event to connected frontends. This event indicates that
the application is about to send an HTTP request.

### `inspector.NodeNetwork.responseReceived([params])`
### `inspector.Network.responseReceived([params])`

<!-- YAML
added:
Expand All @@ -538,10 +538,10 @@ added:

This feature is only available with the `--experimental-network-inspection` flag enabled.

Broadcasts the `NodeNetwork.responseReceived` event to connected frontends. This event indicates that
Broadcasts the `Network.responseReceived` event to connected frontends. This event indicates that
HTTP response is available.

### `inspector.NodeNetwork.loadingFinished([params])`
### `inspector.Network.loadingFinished([params])`

<!-- YAML
added:
Expand All @@ -554,7 +554,7 @@ added:

This feature is only available with the `--experimental-network-inspection` flag enabled.

Broadcasts the `NodeNetwork.loadingFinished` event to connected frontends. This event indicates that
Broadcasts the `Network.loadingFinished` event to connected frontends. This event indicates that
HTTP request has finished loading.

## Support of breakpoints
Expand Down
10 changes: 5 additions & 5 deletions lib/inspector.js
Original file line number Diff line number Diff line change
Expand Up @@ -197,10 +197,10 @@ function broadcastToFrontend(eventName, params) {
emitProtocolEvent(eventName, JSONStringify(params ?? {}));
}

const NodeNetwork = {
requestWillBeSent: (params) => broadcastToFrontend('NodeNetwork.requestWillBeSent', params),
responseReceived: (params) => broadcastToFrontend('NodeNetwork.responseReceived', params),
loadingFinished: (params) => broadcastToFrontend('NodeNetwork.loadingFinished', params),
const Network = {
requestWillBeSent: (params) => broadcastToFrontend('Network.requestWillBeSent', params),
responseReceived: (params) => broadcastToFrontend('Network.responseReceived', params),
loadingFinished: (params) => broadcastToFrontend('Network.loadingFinished', params),
};

module.exports = {
Expand All @@ -210,5 +210,5 @@ module.exports = {
waitForDebugger: inspectorWaitForDebugger,
console,
Session,
NodeNetwork,
Network,
};
12 changes: 6 additions & 6 deletions lib/internal/inspector_network_tracking.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ const {
} = primordials;

let dc;
let NodeNetwork;
let Network;

let requestId = 0;
const getNextRequestId = () => `node-network-event-${++requestId}`;
Expand All @@ -15,7 +15,7 @@ function onClientRequestStart({ request }) {
const wallTime = DateNow();
const timestamp = wallTime / 1000;
request._inspectorRequestId = getNextRequestId();
NodeNetwork.requestWillBeSent({
Network.requestWillBeSent({
requestId: request._inspectorRequestId,
timestamp,
wallTime,
Expand All @@ -31,11 +31,11 @@ function onClientResponseFinish({ request }) {
return;
}
const timestamp = DateNow() / 1000;
NodeNetwork.responseReceived({
Network.responseReceived({
requestId: request._inspectorRequestId,
timestamp,
});
NodeNetwork.loadingFinished({
Network.loadingFinished({
requestId: request._inspectorRequestId,
timestamp,
});
Expand All @@ -45,8 +45,8 @@ function enable() {
if (!dc) {
dc = require('diagnostics_channel');
}
if (!NodeNetwork) {
NodeNetwork = require('inspector').NodeNetwork;
if (!Network) {
Network = require('inspector').Network;
}
dc.subscribe('http.client.request.start', onClientRequestStart);
dc.subscribe('http.client.response.finish', onClientResponseFinish);
Expand Down
7 changes: 1 addition & 6 deletions src/inspector/network_inspector.cc
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,17 @@ namespace inspector {
NetworkInspector::NetworkInspector(Environment* env)
: enabled_(false), env_(env) {
network_agent_ = std::make_unique<protocol::NetworkAgent>(this);
node_network_agent_ = std::make_unique<protocol::NodeNetworkAgent>(this);
}
NetworkInspector::~NetworkInspector() {
network_agent_.reset();
node_network_agent_.reset();
}

void NetworkInspector::Wire(protocol::UberDispatcher* dispatcher) {
network_agent_->Wire(dispatcher);
node_network_agent_->Wire(dispatcher);
}

bool NetworkInspector::canEmit(const std::string& domain) {
return domain == "Network" || domain == "NodeNetwork";
return domain == "Network";
}

void NetworkInspector::emitNotification(
Expand All @@ -28,8 +25,6 @@ void NetworkInspector::emitNotification(
std::unique_ptr<protocol::DictionaryValue> params) {
if (domain == "Network") {
network_agent_->emitNotification(method, std::move(params));
} else if (domain == "NodeNetwork") {
node_network_agent_->emitNotification(method, std::move(params));
} else {
UNREACHABLE("Unknown domain");
}
Expand Down
5 changes: 0 additions & 5 deletions src/inspector/network_inspector.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,6 @@

#include "env.h"
#include "network_agent.h"
#include "node_network_agent.h"
#include "v8.h"

#include <unordered_map>

namespace node {
class Environment;
Expand Down Expand Up @@ -34,7 +30,6 @@ class NetworkInspector {
bool enabled_;
Environment* env_;
std::unique_ptr<protocol::NetworkAgent> network_agent_;
std::unique_ptr<protocol::NodeNetworkAgent> node_network_agent_;
};

} // namespace inspector
Expand Down
4 changes: 0 additions & 4 deletions src/inspector/node_inspector.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,6 @@
'src/inspector/network_inspector.h',
'src/inspector/network_agent.cc',
'src/inspector/network_agent.h',
'src/inspector/node_network_agent.cc',
'src/inspector/node_network_agent.h',
'src/inspector/worker_inspector.cc',
'src/inspector/worker_inspector.h',
],
Expand All @@ -44,8 +42,6 @@
'<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/NodeRuntime.h',
'<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/Network.cpp',
'<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/Network.h',
'<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/NodeNetwork.cpp',
'<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/NodeNetwork.h',
],
'node_protocol_files': [
'<(protocol_tool_path)/lib/Allocator_h.template',
Expand Down
89 changes: 0 additions & 89 deletions src/inspector/node_network_agent.cc

This file was deleted.

46 changes: 0 additions & 46 deletions src/inspector/node_network_agent.h

This file was deleted.

36 changes: 0 additions & 36 deletions src/inspector/node_protocol.pdl
Original file line number Diff line number Diff line change
Expand Up @@ -98,42 +98,6 @@ experimental domain NodeWorker
SessionID sessionId
string message

experimental domain NodeNetwork
depends on Network

# Disables network tracking, prevents network events from being sent to the client.
command disable

# Enables network tracking, network events will now be delivered to the client.
command enable

# Fired when page is about to send HTTP request.
event requestWillBeSent
parameters
# Request identifier.
Network.RequestId requestId
# Request data.
Network.Request request
# Timestamp.
Network.MonotonicTime timestamp
# Timestamp.
Network.TimeSinceEpoch wallTime

# Fired when HTTP response is available.
event responseReceived
parameters
# Request identifier.
Network.RequestId requestId
# Timestamp.
Network.MonotonicTime timestamp

event loadingFinished
parameters
# Request identifier.
Network.RequestId requestId
# Timestamp.
Network.MonotonicTime timestamp

# Partial support for Network domain of ChromeDevTools Protocol.
# https://chromedevtools.github.io/devtools-protocol/tot/Network
experimental domain Network
Expand Down
Loading

0 comments on commit 1c6fc6c

Please sign in to comment.