Skip to content

Commit 31f399b

Browse files
shuranhuangDevtools-frontend LUCI CQ
authored andcommitted
Invoke setCookieControls CDP before iframe network agent auto attach
This makes sure the iframe network handler has the correct cookie controls settings after reloading the page. Bug: 375352611 Change-Id: Ia39df476823ed78d14db9e5493b3250474a19912 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6175282 Reviewed-by: Danil Somsikov <[email protected]> Commit-Queue: Shuran Huang <[email protected]>
1 parent de07efa commit 31f399b

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

front_end/core/sdk/NetworkManager.test.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,31 @@ const {urlString} = Platform.DevToolsPath;
1919
const LONG_URL_PART =
2020
'LoremIpsumDolorSitAmetConsecteturAdipiscingElitPhasellusVitaeOrciInAugueCondimentumTinciduntUtEgetDolorQuisqueEfficiturUltricesTinciduntVivamusVelitPurusCommodoQuisErosSitAmetTemporMalesuadaNislNullamTtempusVulputateAugueEgetScelerisqueLacusVestibulumNon/index.html';
2121

22+
describeWithMockConnection('NetworkManager', () => {
23+
it('setCookieControls gets invoked when network agent auto attach', () => {
24+
const enableThirdPartyCookieRestrictionSetting =
25+
Common.Settings.Settings.instance().createSetting('cookie-control-override-enabled', true);
26+
const disableThirdPartyCookieMetadataSetting =
27+
Common.Settings.Settings.instance().createSetting('grace-period-mitigation-disabled', false);
28+
const disableThirdPartyCookieHeuristicsSetting =
29+
Common.Settings.Settings.instance().createSetting('heuristic-mitigation-disabled', false);
30+
assert.isTrue(enableThirdPartyCookieRestrictionSetting.get());
31+
assert.isFalse(disableThirdPartyCookieMetadataSetting.get());
32+
assert.isFalse(disableThirdPartyCookieHeuristicsSetting.get());
33+
34+
const target = createTarget();
35+
const expectedCall = sinon.spy(target.networkAgent(), 'invoke_setCookieControls');
36+
37+
new SDK.NetworkManager.NetworkManager(target);
38+
39+
assert.isTrue(expectedCall.calledOnceWith({
40+
enableThirdPartyCookieRestriction: true,
41+
disableThirdPartyCookieMetadata: false,
42+
disableThirdPartyCookieHeuristics: false
43+
}));
44+
});
45+
});
46+
2247
describeWithMockConnection('MultitargetNetworkManager', () => {
2348
describe('Trust Token done event', () => {
2449
it('is not lost when arriving before the corresponding requestWillBeSent event', () => {

front_end/core/sdk/NetworkManager.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,11 @@ export class NetworkManager extends SDKModel<EventTypes> {
147147
if (Common.Settings.Settings.instance().moduleSetting('cache-disabled').get()) {
148148
void this.#networkAgent.invoke_setCacheDisabled({cacheDisabled: true});
149149
}
150+
if (Common.Settings.Settings.instance().createSetting('cookie-control-override-enabled', undefined).get() ||
151+
Common.Settings.Settings.instance().createSetting('grace-period-mitigation-disabled', undefined).get() ||
152+
Common.Settings.Settings.instance().createSetting('heuristic-mitigation-disabled', undefined).get()) {
153+
this.cookieControlFlagsSettingChanged();
154+
}
150155

151156
void this.#networkAgent.invoke_enable({maxPostDataSize: MAX_EAGER_POST_REQUEST_BODY_LENGTH});
152157
void this.#networkAgent.invoke_setAttachDebugStack({enabled: true});

0 commit comments

Comments
 (0)