Skip to content

Commit 2eaa929

Browse files
committed
chore: disable NetworkManager.
1 parent 7ff7c76 commit 2eaa929

2 files changed

Lines changed: 45 additions & 0 deletions

File tree

src/DevtoolsUtils.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import {PuppeteerDevToolsConnection} from './DevToolsConnectionAdapter.js';
88
import {Mutex} from './Mutex.js';
99
import {DevTools} from './third_party/index.js';
10+
import {NetworkManager} from '../node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkManager.js';
1011
import type {
1112
Browser,
1213
ConsoleMessage,
@@ -144,6 +145,7 @@ const DEFAULT_FACTORY: TargetUniverseFactoryFn = async (page: Page) => {
144145

145146
const targetManager = universe.context.get(DevTools.TargetManager);
146147
targetManager.observeModels(DevTools.DebuggerModel, SKIP_ALL_PAUSES);
148+
targetManager.observeModels(NetworkManager, DISABLE_NETWORK);
147149

148150
const target = targetManager.createTarget(
149151
'main',
@@ -172,6 +174,23 @@ const SKIP_ALL_PAUSES = {
172174
},
173175
};
174176

177+
// Not recording network requests in the DevTools universe.
178+
//
179+
// The network requests are collected through pptr and there isn't a use case for
180+
// enabling devtools SDK's network domain.
181+
//
182+
// If enabled, the NetworkManager collects NetworkRequests that are not properly
183+
// deleted when the page navigates away. See http://b/493046293 for context (internal).
184+
const DISABLE_NETWORK = {
185+
modelAdded(model: NetworkManager): void {
186+
void model.target().networkAgent().invoke_disable();
187+
},
188+
189+
modelRemoved(): void {
190+
// Do nothing.
191+
},
192+
};
193+
175194
/**
176195
* Constructed from Runtime.ExceptionDetails of an uncaught error.
177196
*

tests/DevtoolsUtils.test.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,20 @@ import sinon from 'sinon';
1212
import {UniverseManager} from '../src/DevtoolsUtils.js';
1313
import {DevTools} from '../src/third_party/index.js';
1414
import type {Browser, Target} from '../src/third_party/index.js';
15+
import {Events as NetworkManagerEvents, NetworkManager} from '../node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkManager.js';
1516

17+
import {serverHooks} from './server.js';
1618
import {
1719
getMockBrowser,
1820
getMockPage,
21+
html,
1922
mockListener,
2023
withBrowser,
2124
} from './utils.js';
2225

2326
describe('UniverseManager', () => {
27+
const server = serverHooks();
28+
2429
afterEach(() => {
2530
sinon.restore();
2631
});
@@ -86,4 +91,25 @@ describe('UniverseManager', () => {
8691
sinon.assert.notCalled(pausedSpy);
8792
});
8893
});
94+
95+
it('disables network domain', async () => {
96+
server.addHtmlRoute('/test', html`<div>Test</div>`);
97+
98+
await withBrowser(async (browser, page) => {
99+
const manager = new UniverseManager(browser);
100+
await manager.init([page]);
101+
const targetUniverse = manager.get(page);
102+
assert.ok(targetUniverse);
103+
104+
const networkManager = targetUniverse.target.model(NetworkManager);
105+
assert.ok(networkManager);
106+
107+
const requestStartedSpy = sinon.stub();
108+
networkManager.addEventListener(NetworkManagerEvents.RequestStarted as any, requestStartedSpy);
109+
110+
await page.goto(server.getRoute('/test'));
111+
112+
sinon.assert.notCalled(requestStartedSpy);
113+
});
114+
});
89115
});

0 commit comments

Comments
 (0)