Skip to content

Commit d0e6539

Browse files
yulunzOrKoN
andauthored
fix: disable NetworkManager in DevTools (#1834)
Co-authored-by: Alex Rudenko <alexrudenko@chromium.org>
1 parent c0104d2 commit d0e6539

2 files changed

Lines changed: 48 additions & 0 deletions

File tree

src/DevtoolsUtils.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,10 @@ const DEFAULT_FACTORY: TargetUniverseFactoryFn = async (page: Page) => {
144144

145145
const targetManager = universe.context.get(DevTools.TargetManager);
146146
targetManager.observeModels(DevTools.DebuggerModel, SKIP_ALL_PAUSES);
147+
targetManager.observeModels(
148+
DevTools.NetworkManager.NetworkManager,
149+
DISABLE_NETWORK,
150+
);
147151

148152
const target = targetManager.createTarget(
149153
'main',
@@ -172,6 +176,20 @@ const SKIP_ALL_PAUSES = {
172176
},
173177
};
174178

179+
// Not recording network requests in the DevTools universe.
180+
//
181+
// The network requests are collected through pptr and there isn't a use case for
182+
// enabling devtools SDK's network domain.
183+
const DISABLE_NETWORK = {
184+
modelAdded(model: DevTools.NetworkManager.NetworkManager): void {
185+
void model.target().networkAgent().invoke_disable();
186+
},
187+
188+
modelRemoved(): void {
189+
// Do nothing.
190+
},
191+
};
192+
175193
/**
176194
* Constructed from Runtime.ExceptionDetails of an uncaught error.
177195
*

tests/DevtoolsUtils.test.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,18 @@ 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';
1515

16+
import {serverHooks} from './server.js';
1617
import {
1718
getMockBrowser,
1819
getMockPage,
20+
html,
1921
mockListener,
2022
withBrowser,
2123
} from './utils.js';
2224

2325
describe('UniverseManager', () => {
26+
const server = serverHooks();
27+
2428
afterEach(() => {
2529
sinon.restore();
2630
});
@@ -86,4 +90,30 @@ describe('UniverseManager', () => {
8690
sinon.assert.notCalled(pausedSpy);
8791
});
8892
});
93+
94+
it('disables network domain', async () => {
95+
server.addHtmlRoute('/test', html`<div>Test</div>`);
96+
97+
await withBrowser(async (browser, page) => {
98+
const manager = new UniverseManager(browser);
99+
await manager.init([page]);
100+
const targetUniverse = manager.get(page);
101+
assert.ok(targetUniverse);
102+
103+
const networkManager = targetUniverse.target.model(
104+
DevTools.NetworkManager.NetworkManager,
105+
);
106+
assert.ok(networkManager);
107+
108+
const requestStartedSpy = sinon.stub();
109+
networkManager.addEventListener(
110+
DevTools.NetworkManager.Events.RequestStarted,
111+
requestStartedSpy,
112+
);
113+
114+
await page.goto(server.getRoute('/test'));
115+
116+
sinon.assert.notCalled(requestStartedSpy);
117+
});
118+
});
89119
});

0 commit comments

Comments
 (0)