Skip to content

Commit 0799cf0

Browse files
masnobleDevtools-frontend LUCI CQ
authored andcommitted
Clear report onPrimaryPageChanged
When a user navigates from site a.com to b.com, they should not see the 3pc issues from a.com still. Bug: 365737493 Change-Id: Iba1eb0b929318550143a5c06412805bbd8d020d8 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6039196 Commit-Queue: Joshua Thomas <[email protected]> Reviewed-by: Kim-Anh Tran <[email protected]> Reviewed-by: Shuran Huang <[email protected]>
1 parent d0d41e8 commit 0799cf0

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

front_end/panels/security/CookieReportView.test.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5+
import type * as SDK from '../../core/sdk/sdk.js';
56
import * as Protocol from '../../generated/protocol.js';
67
import * as IssuesManager from '../../models/issues_manager/issues_manager.js';
78
import {createFakeSetting, createTarget} from '../../testing/EnvironmentHelpers.js';
89
import {describeWithMockConnection} from '../../testing/MockConnection.js';
10+
import {getMainFrame, navigate} from '../../testing/ResourceTreeHelpers.js';
911

1012
import * as Security from './security.js';
1113

@@ -37,10 +39,11 @@ function getTestCookieIssue(
3739

3840
describeWithMockConnection('CookieReportView', () => {
3941
let mockView: sinon.SinonStub;
42+
let target: SDK.Target.Target;
4043

4144
beforeEach(() => {
4245
mockView = sinon.stub();
43-
createTarget();
46+
target = createTarget();
4447
const showThirdPartyIssuesSetting = createFakeSetting('third party flag', true);
4548
IssuesManager.IssuesManager.IssuesManager.instance({
4649
forceNew: false,
@@ -136,4 +139,19 @@ describeWithMockConnection('CookieReportView', () => {
136139
await view.pendingUpdate();
137140
assert.strictEqual(view.gridData.length, 1);
138141
});
142+
143+
it('should have zero entries after the primary page was changed', async () => {
144+
const view = new Security.CookieReportView.CookieReportView(undefined, mockView);
145+
146+
// @ts-ignore
147+
globalThis.addIssueForTest(getTestCookieIssue(true));
148+
149+
await view.pendingUpdate();
150+
assert.strictEqual(view.gridData.length, 1);
151+
152+
navigate(getMainFrame(target));
153+
154+
await view.pendingUpdate();
155+
assert.strictEqual(view.gridData.length, 0);
156+
});
139157
});

front_end/panels/security/CookieReportView.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import type * as Common from '../../core/common/common.js';
66
import * as i18n from '../../core/i18n/i18n.js';
7+
import * as SDK from '../../core/sdk/sdk.js';
78
import * as IssuesManager from '../../models/issues_manager/issues_manager.js';
89
import * as DataGrid from '../../ui/legacy/components/data_grid/data_grid.js';
910
import * as UI from '../../ui/legacy/legacy.js';
@@ -173,6 +174,10 @@ export class CookieReportView extends UI.Widget.VBox {
173174
super(true, undefined, element);
174175
this.#view = view;
175176

177+
SDK.TargetManager.TargetManager.instance().addModelListener(
178+
SDK.ResourceTreeModel.ResourceTreeModel, SDK.ResourceTreeModel.Events.PrimaryPageChanged,
179+
this.#onPrimaryPageChanged, this);
180+
176181
this.#issuesManager = IssuesManager.IssuesManager.IssuesManager.instance();
177182
this.#issuesManager.addEventListener(
178183
IssuesManager.IssuesManager.Events.ISSUE_ADDED, this.#onIssueEventReceived, this);
@@ -198,6 +203,11 @@ export class CookieReportView extends UI.Widget.VBox {
198203
this.update();
199204
}
200205

206+
#onPrimaryPageChanged(): void {
207+
this.#cookieRows.clear();
208+
this.update();
209+
}
210+
201211
#onIssueEventReceived(event: Common.EventTarget.EventTargetEvent<IssuesManager.IssuesManager.IssueAddedEvent>): void {
202212
if (event.data.issue instanceof IssuesManager.CookieIssue.CookieIssue) {
203213
if (this.#cookieRows.has(event.data.issue.cookieId())) {

0 commit comments

Comments
 (0)