mirror of
https://github.com/zebrajr/node.git
synced 2025-12-06 00:20:08 +01:00
inspector: improve batch diagnostic channel subscriptions
PR-URL: https://github.com/nodejs/node/pull/60009 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
This commit is contained in:
parent
23fa18444f
commit
d9b8a3558e
|
|
@ -1,13 +1,16 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const {
|
const {
|
||||||
|
ArrayPrototypeForEach,
|
||||||
NumberMAX_SAFE_INTEGER,
|
NumberMAX_SAFE_INTEGER,
|
||||||
StringPrototypeToLowerCase,
|
StringPrototypeToLowerCase,
|
||||||
Symbol,
|
Symbol,
|
||||||
} = primordials;
|
} = primordials;
|
||||||
|
|
||||||
|
const dc = require('diagnostics_channel');
|
||||||
const { now } = require('internal/perf/utils');
|
const { now } = require('internal/perf/utils');
|
||||||
const { MIMEType } = require('internal/mime');
|
const { MIMEType } = require('internal/mime');
|
||||||
|
|
||||||
const kInspectorRequestId = Symbol('kInspectorRequestId');
|
const kInspectorRequestId = Symbol('kInspectorRequestId');
|
||||||
|
|
||||||
// https://chromedevtools.github.io/devtools-protocol/1-3/Network/#type-ResourceType
|
// https://chromedevtools.github.io/devtools-protocol/1-3/Network/#type-ResourceType
|
||||||
|
|
@ -67,10 +70,30 @@ function sniffMimeType(contentType) {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function registerDiagnosticChannels(listenerPairs) {
|
||||||
|
function enable() {
|
||||||
|
ArrayPrototypeForEach(listenerPairs, ({ 0: channel, 1: listener }) => {
|
||||||
|
dc.subscribe(channel, listener);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function disable() {
|
||||||
|
ArrayPrototypeForEach(listenerPairs, ({ 0: channel, 1: listener }) => {
|
||||||
|
dc.unsubscribe(channel, listener);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
enable,
|
||||||
|
disable,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
kInspectorRequestId,
|
kInspectorRequestId,
|
||||||
kResourceType,
|
kResourceType,
|
||||||
getMonotonicTime,
|
getMonotonicTime,
|
||||||
getNextRequestId,
|
getNextRequestId,
|
||||||
|
registerDiagnosticChannels,
|
||||||
sniffMimeType,
|
sniffMimeType,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,9 @@ const {
|
||||||
kResourceType,
|
kResourceType,
|
||||||
getMonotonicTime,
|
getMonotonicTime,
|
||||||
getNextRequestId,
|
getNextRequestId,
|
||||||
|
registerDiagnosticChannels,
|
||||||
sniffMimeType,
|
sniffMimeType,
|
||||||
} = require('internal/inspector/network');
|
} = require('internal/inspector/network');
|
||||||
const dc = require('diagnostics_channel');
|
|
||||||
const { Network } = require('inspector');
|
const { Network } = require('inspector');
|
||||||
|
|
||||||
const kRequestUrl = Symbol('kRequestUrl');
|
const kRequestUrl = Symbol('kRequestUrl');
|
||||||
|
|
@ -129,19 +129,8 @@ function onClientResponseFinish({ request, response }) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function enable() {
|
module.exports = registerDiagnosticChannels([
|
||||||
dc.subscribe('http.client.request.created', onClientRequestCreated);
|
['http.client.request.created', onClientRequestCreated],
|
||||||
dc.subscribe('http.client.request.error', onClientRequestError);
|
['http.client.request.error', onClientRequestError],
|
||||||
dc.subscribe('http.client.response.finish', onClientResponseFinish);
|
['http.client.response.finish', onClientResponseFinish],
|
||||||
}
|
]);
|
||||||
|
|
||||||
function disable() {
|
|
||||||
dc.unsubscribe('http.client.request.created', onClientRequestCreated);
|
|
||||||
dc.unsubscribe('http.client.request.error', onClientRequestError);
|
|
||||||
dc.unsubscribe('http.client.response.finish', onClientResponseFinish);
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
enable,
|
|
||||||
disable,
|
|
||||||
};
|
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,9 @@ const {
|
||||||
kResourceType,
|
kResourceType,
|
||||||
getMonotonicTime,
|
getMonotonicTime,
|
||||||
getNextRequestId,
|
getNextRequestId,
|
||||||
|
registerDiagnosticChannels,
|
||||||
sniffMimeType,
|
sniffMimeType,
|
||||||
} = require('internal/inspector/network');
|
} = require('internal/inspector/network');
|
||||||
const dc = require('diagnostics_channel');
|
|
||||||
const { Network } = require('inspector');
|
const { Network } = require('inspector');
|
||||||
const {
|
const {
|
||||||
HTTP2_HEADER_AUTHORITY,
|
HTTP2_HEADER_AUTHORITY,
|
||||||
|
|
@ -170,21 +170,9 @@ function onClientStreamClose({ stream }) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function enable() {
|
module.exports = registerDiagnosticChannels([
|
||||||
dc.subscribe('http2.client.stream.created', onClientStreamCreated);
|
['http2.client.stream.created', onClientStreamCreated],
|
||||||
dc.subscribe('http2.client.stream.error', onClientStreamError);
|
['http2.client.stream.error', onClientStreamError],
|
||||||
dc.subscribe('http2.client.stream.finish', onClientStreamFinish);
|
['http2.client.stream.finish', onClientStreamFinish],
|
||||||
dc.subscribe('http2.client.stream.close', onClientStreamClose);
|
['http2.client.stream.close', onClientStreamClose],
|
||||||
}
|
]);
|
||||||
|
|
||||||
function disable() {
|
|
||||||
dc.unsubscribe('http2.client.stream.created', onClientStreamCreated);
|
|
||||||
dc.unsubscribe('http2.client.stream.error', onClientStreamError);
|
|
||||||
dc.unsubscribe('http2.client.stream.finish', onClientStreamFinish);
|
|
||||||
dc.unsubscribe('http2.client.stream.close', onClientStreamClose);
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
enable,
|
|
||||||
disable,
|
|
||||||
};
|
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,9 @@ const {
|
||||||
kResourceType,
|
kResourceType,
|
||||||
getMonotonicTime,
|
getMonotonicTime,
|
||||||
getNextRequestId,
|
getNextRequestId,
|
||||||
|
registerDiagnosticChannels,
|
||||||
sniffMimeType,
|
sniffMimeType,
|
||||||
} = require('internal/inspector/network');
|
} = require('internal/inspector/network');
|
||||||
const dc = require('diagnostics_channel');
|
|
||||||
const { Network } = require('inspector');
|
const { Network } = require('inspector');
|
||||||
const { Buffer } = require('buffer');
|
const { Buffer } = require('buffer');
|
||||||
|
|
||||||
|
|
@ -239,31 +239,14 @@ function onWebSocketClose({ websocket }) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function enable() {
|
module.exports = registerDiagnosticChannels([
|
||||||
dc.subscribe('undici:request:create', onClientRequestStart);
|
['undici:request:create', onClientRequestStart],
|
||||||
dc.subscribe('undici:request:error', onClientRequestError);
|
['undici:request:error', onClientRequestError],
|
||||||
dc.subscribe('undici:request:headers', onClientResponseHeaders);
|
['undici:request:headers', onClientResponseHeaders],
|
||||||
dc.subscribe('undici:request:trailers', onClientResponseFinish);
|
['undici:request:trailers', onClientResponseFinish],
|
||||||
dc.subscribe('undici:request:bodyChunkSent', onClientRequestBodyChunkSent);
|
['undici:request:bodyChunkSent', onClientRequestBodyChunkSent],
|
||||||
dc.subscribe('undici:request:bodySent', onClientRequestBodySent);
|
['undici:request:bodySent', onClientRequestBodySent],
|
||||||
dc.subscribe('undici:request:bodyChunkReceived', onClientRequestBodyChunkReceived);
|
['undici:request:bodyChunkReceived', onClientRequestBodyChunkReceived],
|
||||||
dc.subscribe('undici:websocket:open', onWebSocketOpen);
|
['undici:websocket:open', onWebSocketOpen],
|
||||||
dc.subscribe('undici:websocket:close', onWebSocketClose);
|
['undici:websocket:close', onWebSocketClose],
|
||||||
}
|
]);
|
||||||
|
|
||||||
function disable() {
|
|
||||||
dc.unsubscribe('undici:request:create', onClientRequestStart);
|
|
||||||
dc.unsubscribe('undici:request:error', onClientRequestError);
|
|
||||||
dc.unsubscribe('undici:request:headers', onClientResponseHeaders);
|
|
||||||
dc.unsubscribe('undici:request:trailers', onClientResponseFinish);
|
|
||||||
dc.unsubscribe('undici:request:bodyChunkSent', onClientRequestBodyChunkSent);
|
|
||||||
dc.unsubscribe('undici:request:bodySent', onClientRequestBodySent);
|
|
||||||
dc.unsubscribe('undici:request:bodyChunkReceived', onClientRequestBodyChunkReceived);
|
|
||||||
dc.unsubscribe('undici:websocket:open', onWebSocketOpen);
|
|
||||||
dc.unsubscribe('undici:websocket:close', onWebSocketClose);
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
enable,
|
|
||||||
disable,
|
|
||||||
};
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user