mirror of
https://github.com/ChromeDevTools/chrome-devtools-mcp.git
synced 2026-09-14 19:45:30 +08:00
fix: disable NetworkManager in DevTools (#1834)
Co-authored-by: Alex Rudenko <alexrudenko@chromium.org>
This commit is contained in:
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user