fix: disable NetworkManager in DevTools (#1834)

Co-authored-by: Alex Rudenko <alexrudenko@chromium.org>
This commit is contained in:
yulunz
2026-05-18 05:31:52 -07:00
committed by GitHub
parent c0104d2142
commit d0e6539ef4
2 changed files with 48 additions and 0 deletions
+18
View File
@@ -144,6 +144,10 @@ const DEFAULT_FACTORY: TargetUniverseFactoryFn = async (page: Page) => {
const targetManager = universe.context.get(DevTools.TargetManager);
targetManager.observeModels(DevTools.DebuggerModel, SKIP_ALL_PAUSES);
targetManager.observeModels(
DevTools.NetworkManager.NetworkManager,
DISABLE_NETWORK,
);
const target = targetManager.createTarget(
'main',
@@ -172,6 +176,20 @@ const SKIP_ALL_PAUSES = {
},
};
// Not recording network requests in the DevTools universe.
//
// The network requests are collected through pptr and there isn't a use case for
// enabling devtools SDK's network domain.
const DISABLE_NETWORK = {
modelAdded(model: DevTools.NetworkManager.NetworkManager): void {
void model.target().networkAgent().invoke_disable();
},
modelRemoved(): void {
// Do nothing.
},
};
/**
* Constructed from Runtime.ExceptionDetails of an uncaught error.
*
+30
View File
@@ -13,14 +13,18 @@ import {UniverseManager} from '../src/DevtoolsUtils.js';
import {DevTools} from '../src/third_party/index.js';
import type {Browser, Target} from '../src/third_party/index.js';
import {serverHooks} from './server.js';
import {
getMockBrowser,
getMockPage,
html,
mockListener,
withBrowser,
} from './utils.js';
describe('UniverseManager', () => {
const server = serverHooks();
afterEach(() => {
sinon.restore();
});
@@ -86,4 +90,30 @@ describe('UniverseManager', () => {
sinon.assert.notCalled(pausedSpy);
});
});
it('disables network domain', async () => {
server.addHtmlRoute('/test', html`<div>Test</div>`);
await withBrowser(async (browser, page) => {
const manager = new UniverseManager(browser);
await manager.init([page]);
const targetUniverse = manager.get(page);
assert.ok(targetUniverse);
const networkManager = targetUniverse.target.model(
DevTools.NetworkManager.NetworkManager,
);
assert.ok(networkManager);
const requestStartedSpy = sinon.stub();
networkManager.addEventListener(
DevTools.NetworkManager.Events.RequestStarted,
requestStartedSpy,
);
await page.goto(server.getRoute('/test'));
sinon.assert.notCalled(requestStartedSpy);
});
});
});