豆豆友情提示:这是一个非官方 GitHub 代理镜像,主要用于网络测试或访问加速。请勿在此进行登录、注册或处理任何敏感信息。进行这些操作请务必访问官方网站 github.com。 Raw 内容也通过此代理提供。
Skip to content

Commit c2d1fc8

Browse files
jalonthomasDevtools-frontend LUCI CQ
authored andcommitted
Remove 'Privacy' section UI from front end
This change officially removes all ‘Privacy’ section UI code from the front end. More specifically, this change: * Removes CookieReportView and CookieControlsView along with their corresponding css, tree elements, tests, and references in the front end code * Removes all ‘Privacy’ display logic and tests from the ‘Security’ code * Removes infobar reload logic and tests from InspectorMain * Removes controls settings and tests from NetworkManager Extra data like CookieReportInfo will be removed in a follow-up. Bug:473796598 Change-Id: Iafcb08330ff01abab3d662e9d3b9b5885ee5fa99 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7545280 Commit-Queue: Jalon Thomas <jalonthomas@google.com> Reviewed-by: Philip Pfaffe <pfaffe@chromium.org> Reviewed-by: Eric Leese <leese@chromium.org>
1 parent 2b465ca commit c2d1fc8

25 files changed

+19
-2016
lines changed

config/gni/devtools_grd_files.gni

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1909,17 +1909,11 @@ grd_files_unbundled_sources = [
19091909
"front_end/panels/search/SearchView.js",
19101910
"front_end/panels/search/searchResultsPane.css.js",
19111911
"front_end/panels/search/searchView.css.js",
1912-
"front_end/panels/security/CookieControlsTreeElement.js",
1913-
"front_end/panels/security/CookieControlsView.js",
1914-
"front_end/panels/security/CookieReportTreeElement.js",
1915-
"front_end/panels/security/CookieReportView.js",
19161912
"front_end/panels/security/OriginTreeElement.js",
19171913
"front_end/panels/security/SecurityModel.js",
19181914
"front_end/panels/security/SecurityPanel.js",
19191915
"front_end/panels/security/SecurityPanelSidebar.js",
19201916
"front_end/panels/security/SecurityPanelSidebarTreeElement.js",
1921-
"front_end/panels/security/cookieControlsView.css.js",
1922-
"front_end/panels/security/cookieReportView.css.js",
19231917
"front_end/panels/security/lockIcon.css.js",
19241918
"front_end/panels/security/mainView.css.js",
19251919
"front_end/panels/security/originView.css.js",

front_end/core/root/Runtime.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -631,7 +631,6 @@ export type HostConfig = Platform.TypeScriptUtilities.RecursivePartial<{
631631
devToolsAiCodeGeneration: HostConfigAiCodeGeneration,
632632
devToolsVeLogging: HostConfigVeLogging,
633633
devToolsWellKnown: HostConfigWellKnown,
634-
devToolsPrivacyUI: HostConfigPrivacyUI,
635634
devToolsIndividualRequestThrottling: DevToolsIndividualRequestThrottling,
636635
/**
637636
* OffTheRecord here indicates that the user's profile is either incognito,

front_end/core/sdk/NetworkManager.test.ts

Lines changed: 0 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import {describeWithMockConnection, setMockConnectionResponseHandler} from '../.
1212
import {createWorkspaceProject} from '../../testing/OverridesHelpers.js';
1313
import * as Common from '../common/common.js';
1414
import * as Platform from '../platform/platform.js';
15-
import * as Root from '../root/root.js';
1615

1716
import * as SDK from './sdk.js';
1817

@@ -1114,56 +1113,6 @@ describeWithMockConnection('NetworkManager', () => {
11141113
});
11151114
});
11161115
});
1117-
1118-
it('setCookieControls is not invoked if the browsers enterprise setting blocks third party cookies', () => {
1119-
Object.assign(
1120-
Root.Runtime.hostConfig,
1121-
{thirdPartyCookieControls: {managedBlockThirdPartyCookies: true}, devToolsPrivacyUI: {enabled: true}});
1122-
1123-
const enableThirdPartyCookieRestrictionSetting =
1124-
Common.Settings.Settings.instance().createSetting('cookie-control-override-enabled', false);
1125-
const disableThirdPartyCookieMetadataSetting =
1126-
Common.Settings.Settings.instance().createSetting('grace-period-mitigation-disabled', true);
1127-
const disableThirdPartyCookieHeuristicsSetting =
1128-
Common.Settings.Settings.instance().createSetting('heuristic-mitigation-disabled', true);
1129-
assert.isFalse(enableThirdPartyCookieRestrictionSetting.get());
1130-
assert.isTrue(disableThirdPartyCookieMetadataSetting.get());
1131-
assert.isTrue(disableThirdPartyCookieHeuristicsSetting.get());
1132-
1133-
const target = createTarget();
1134-
const expectedCall = sinon.spy(target.networkAgent(), 'invoke_setCookieControls');
1135-
1136-
new SDK.NetworkManager.NetworkManager(target);
1137-
1138-
// function should not be called since there is a enterprise policy blocking third-party cookies
1139-
sinon.assert.notCalled(expectedCall);
1140-
});
1141-
1142-
it('setCookieControls gets invoked with expected values when network agent auto attach', () => {
1143-
updateHostConfig({devToolsPrivacyUI: {enabled: true}});
1144-
1145-
const enableThirdPartyCookieRestrictionSetting =
1146-
Common.Settings.Settings.instance().createSetting('cookie-control-override-enabled', false);
1147-
const disableThirdPartyCookieMetadataSetting =
1148-
Common.Settings.Settings.instance().createSetting('grace-period-mitigation-disabled', true);
1149-
const disableThirdPartyCookieHeuristicsSetting =
1150-
Common.Settings.Settings.instance().createSetting('heuristic-mitigation-disabled', true);
1151-
assert.isFalse(enableThirdPartyCookieRestrictionSetting.get());
1152-
assert.isTrue(disableThirdPartyCookieMetadataSetting.get());
1153-
assert.isTrue(disableThirdPartyCookieHeuristicsSetting.get());
1154-
1155-
const target = createTarget();
1156-
const expectedCall = sinon.spy(target.networkAgent(), 'invoke_setCookieControls');
1157-
1158-
new SDK.NetworkManager.NetworkManager(target);
1159-
1160-
// Metadata and heuristics should be disabled when cookie controls is disabled.
1161-
assert.isTrue(expectedCall.calledOnceWith({
1162-
enableThirdPartyCookieRestriction: false,
1163-
disableThirdPartyCookieMetadata: false,
1164-
disableThirdPartyCookieHeuristics: false
1165-
}));
1166-
});
11671116
});
11681117

11691118
describeWithMockConnection('MultitargetNetworkManager', () => {

front_end/core/sdk/NetworkManager.ts

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -158,14 +158,6 @@ export class NetworkManager extends SDKModel<EventTypes> {
158158
void this.#networkAgent.invoke_setCacheDisabled({cacheDisabled: true});
159159
}
160160

161-
if (Root.Runtime.hostConfig.devToolsPrivacyUI?.enabled &&
162-
Root.Runtime.hostConfig.thirdPartyCookieControls?.managedBlockThirdPartyCookies !== true &&
163-
(Common.Settings.Settings.instance().createSetting('cookie-control-override-enabled', undefined).get() ||
164-
Common.Settings.Settings.instance().createSetting('grace-period-mitigation-disabled', undefined).get() ||
165-
Common.Settings.Settings.instance().createSetting('heuristic-mitigation-disabled', undefined).get())) {
166-
this.cookieControlFlagsSettingChanged();
167-
}
168-
169161
void this.#networkAgent.invoke_enable({
170162
maxPostDataSize: MAX_EAGER_POST_REQUEST_BODY_LENGTH,
171163
enableDurableMessages: Root.Runtime.hostConfig.devToolsEnableDurableMessages?.enabled,
@@ -184,16 +176,6 @@ export class NetworkManager extends SDKModel<EventTypes> {
184176
Common.Settings.Settings.instance()
185177
.moduleSetting('cache-disabled')
186178
.addChangeListener(this.cacheDisabledSettingChanged, this);
187-
188-
Common.Settings.Settings.instance()
189-
.createSetting('cookie-control-override-enabled', undefined)
190-
.addChangeListener(this.cookieControlFlagsSettingChanged, this);
191-
Common.Settings.Settings.instance()
192-
.createSetting('grace-period-mitigation-disabled', undefined)
193-
.addChangeListener(this.cookieControlFlagsSettingChanged, this);
194-
Common.Settings.Settings.instance()
195-
.createSetting('heuristic-mitigation-disabled', undefined)
196-
.addChangeListener(this.cookieControlFlagsSettingChanged, this);
197179
}
198180

199181
static forRequest(request: NetworkRequest): NetworkManager|null {
@@ -346,23 +328,6 @@ export class NetworkManager extends SDKModel<EventTypes> {
346328
void this.#networkAgent.invoke_setCacheDisabled({cacheDisabled: enabled});
347329
}
348330

349-
private cookieControlFlagsSettingChanged(): void {
350-
const overridesEnabled =
351-
Boolean(Common.Settings.Settings.instance().createSetting('cookie-control-override-enabled', undefined).get());
352-
const gracePeriodEnabled = overridesEnabled ?
353-
Boolean(
354-
Common.Settings.Settings.instance().createSetting('grace-period-mitigation-disabled', undefined).get()) :
355-
false;
356-
const heuristicEnabled = overridesEnabled ?
357-
Boolean(Common.Settings.Settings.instance().createSetting('heuristic-mitigation-disabled', undefined).get()) :
358-
false;
359-
void this.#networkAgent.invoke_setCookieControls({
360-
enableThirdPartyCookieRestriction: overridesEnabled,
361-
disableThirdPartyCookieMetadata: gracePeriodEnabled,
362-
disableThirdPartyCookieHeuristics: heuristicEnabled,
363-
});
364-
}
365-
366331
override dispose(): void {
367332
Common.Settings.Settings.instance()
368333
.moduleSetting('cache-disabled')

front_end/entrypoints/inspector_main/BUILD.gn

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ devtools_module("inspector_main") {
3333
"../../generated:protocol",
3434
"../../models/bindings:bundle",
3535
"../../panels/mobile_throttling:bundle",
36-
"../../panels/security:bundle",
3736
"../../ui/legacy:bundle",
3837
"../../ui/legacy/components/settings_ui:bundle",
3938
"../../ui/legacy/components/utils:bundle",

front_end/entrypoints/inspector_main/InspectorMain.test.ts

Lines changed: 1 addition & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,20 @@
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 * as Common from '../../core/common/common.js';
65
import * as ProtocolClient from '../../core/protocol_client/protocol_client.js';
76
import * as Root from '../../core/root/root.js';
87
import * as SDK from '../../core/sdk/sdk.js';
98
import type * as Protocol from '../../generated/protocol.js';
109
import {
1110
createTarget,
1211
stubNoopSettings,
13-
updateHostConfig,
1412
} from '../../testing/EnvironmentHelpers.js';
1513
import {expectCall} from '../../testing/ExpectStubCall.js';
1614
import {
1715
describeWithMockConnection,
1816
setMockConnectionResponseHandler,
1917
} from '../../testing/MockConnection.js';
20-
import * as UI from '../../ui/legacy/legacy.js';
18+
import type * as UI from '../../ui/legacy/legacy.js';
2119

2220
import * as InspectorMain from './inspector_main.js';
2321

@@ -49,140 +47,9 @@ describeWithMockConnection('InspectorMainImpl', () => {
4947
sinon.stub(ProtocolClient.ConnectionTransport.ConnectionTransport, 'setFactory');
5048
});
5149

52-
describe('comparingBrowserSettingWithCookieControlSetting', () => {
53-
// Before the tests, we need to add these settings to allow the InspectorMain.run to work
54-
beforeEach(async () => {
55-
Common.Settings.registerSettingExtension({
56-
settingName: 'auto-attach-to-created-pages',
57-
settingType: Common.Settings.SettingType.BOOLEAN,
58-
defaultValue: false,
59-
});
60-
Common.Settings.registerSettingExtension({
61-
settingName: 'network.ad-blocking-enabled',
62-
settingType: Common.Settings.SettingType.BOOLEAN,
63-
defaultValue: false,
64-
});
65-
Common.Settings.registerSettingExtension({
66-
settingName: 'emulate-page-focus',
67-
settingType: Common.Settings.SettingType.BOOLEAN,
68-
defaultValue: false,
69-
});
70-
71-
const storage = Common.Settings.Settings.instance().localStorage;
72-
Common.Settings.Settings.instance({
73-
forceNew: true,
74-
syncedStorage: storage,
75-
globalStorage: storage,
76-
localStorage: storage,
77-
settingRegistrations: Common.SettingRegistration.getRegisteredSettings()
78-
});
79-
});
80-
81-
function setBrowserConfig(
82-
thirdPartyCookieRestrictionEnabled?: boolean, thirdPartyCookieMetadataEnabled?: boolean,
83-
thirdPartyCookieHeuristicsEnabled?: boolean, managedBlockThirdPartyCookies?: boolean|string) {
84-
updateHostConfig({
85-
thirdPartyCookieControls: {
86-
thirdPartyCookieRestrictionEnabled,
87-
thirdPartyCookieHeuristicsEnabled,
88-
thirdPartyCookieMetadataEnabled,
89-
managedBlockThirdPartyCookies,
90-
},
91-
devToolsPrivacyUI: {enabled: true}
92-
});
93-
}
94-
95-
function setDevtoolsCookieControls(
96-
cookieControlOverrideEnabled?: boolean, gracePeriodMitigationEnabled?: boolean,
97-
heuristicMitigationEnabled?: boolean) {
98-
Common.Settings.Settings.instance().createSetting(
99-
'cookie-control-override-enabled', cookieControlOverrideEnabled);
100-
Common.Settings.Settings.instance().createSetting(
101-
'grace-period-mitigation-disabled', !gracePeriodMitigationEnabled);
102-
Common.Settings.Settings.instance().createSetting('heuristic-mitigation-disabled', !heuristicMitigationEnabled);
103-
}
104-
105-
it('does not show infobar when enterpirse is blocking third-party cookies', async () => {
106-
const restrictThirdPartyCookies = true;
107-
const gracePeriodEnabled = true;
108-
const heuristicsEnabled = true;
109-
const enterpriseBlocksThirdPartyCookies = true;
110-
setBrowserConfig(
111-
restrictThirdPartyCookies, gracePeriodEnabled, heuristicsEnabled, enterpriseBlocksThirdPartyCookies);
112-
setDevtoolsCookieControls(restrictThirdPartyCookies, gracePeriodEnabled, heuristicsEnabled);
113-
114-
const reloadRequiredInfobarSpy =
115-
sinon.spy(UI.InspectorView.InspectorView.instance(), 'displayDebuggedTabReloadRequiredWarning');
116-
const inspectorMain = new InspectorMain.InspectorMain.InspectorMainImpl();
117-
await inspectorMain.run();
118-
119-
sinon.assert.notCalled(reloadRequiredInfobarSpy);
120-
});
121-
122-
it('does not show infobar when control setting is undefined', async () => {
123-
const restrictThirdPartyCookies = true;
124-
const gracePeriodEnabled = true;
125-
const heuristicsEnabled = true;
126-
setBrowserConfig(restrictThirdPartyCookies, gracePeriodEnabled, heuristicsEnabled);
127-
128-
const reloadRequiredInfobarSpy =
129-
sinon.spy(UI.InspectorView.InspectorView.instance(), 'displayDebuggedTabReloadRequiredWarning');
130-
const inspectorMain = new InspectorMain.InspectorMain.InspectorMainImpl();
131-
await inspectorMain.run();
132-
133-
sinon.assert.notCalled(reloadRequiredInfobarSpy);
134-
});
135-
136-
it('does not show infobar when control settings match browser settings', async () => {
137-
const restrictThirdPartyCookies = true;
138-
const gracePeriodEnabled = true;
139-
const heuristicsEnabled = true;
140-
setBrowserConfig(restrictThirdPartyCookies, gracePeriodEnabled, heuristicsEnabled);
141-
setDevtoolsCookieControls(restrictThirdPartyCookies, gracePeriodEnabled, heuristicsEnabled);
142-
143-
const reloadRequiredInfobarSpy =
144-
sinon.spy(UI.InspectorView.InspectorView.instance(), 'displayDebuggedTabReloadRequiredWarning');
145-
const inspectorMain = new InspectorMain.InspectorMain.InspectorMainImpl();
146-
await inspectorMain.run();
147-
148-
sinon.assert.notCalled(reloadRequiredInfobarSpy);
149-
});
150-
151-
it('shows infobar when cookie control override differs from browser setting', async () => {
152-
const restrictThirdPartyCookies = true;
153-
const gracePeriodEnabled = true;
154-
const heuristicsEnabled = true;
155-
setBrowserConfig(restrictThirdPartyCookies, gracePeriodEnabled, heuristicsEnabled);
156-
setDevtoolsCookieControls(!restrictThirdPartyCookies, gracePeriodEnabled, heuristicsEnabled);
157-
158-
const reloadRequiredInfobarSpy =
159-
sinon.spy(UI.InspectorView.InspectorView.instance(), 'displayDebuggedTabReloadRequiredWarning');
160-
const inspectorMain = new InspectorMain.InspectorMain.InspectorMainImpl();
161-
await inspectorMain.run();
162-
163-
sinon.assert.calledOnce(reloadRequiredInfobarSpy);
164-
});
165-
166-
it('shows infobar when a mitigation override differs from browser setting', async () => {
167-
const restrictThirdPartyCookies = true;
168-
const gracePeriodEnabled = true;
169-
const heuristicsEnabled = true;
170-
setBrowserConfig(restrictThirdPartyCookies, gracePeriodEnabled, heuristicsEnabled);
171-
setDevtoolsCookieControls(restrictThirdPartyCookies, !gracePeriodEnabled, heuristicsEnabled);
172-
173-
const reloadRequiredInfobarSpy =
174-
sinon.spy(UI.InspectorView.InspectorView.instance(), 'displayDebuggedTabReloadRequiredWarning');
175-
const inspectorMain = new InspectorMain.InspectorMain.InspectorMainImpl();
176-
await inspectorMain.run();
177-
178-
sinon.assert.calledOnce(reloadRequiredInfobarSpy);
179-
});
180-
});
181-
18250
describe('withNoopSettings', () => {
18351
beforeEach(() => {
18452
stubNoopSettings();
185-
updateHostConfig({devToolsPrivacyUI: {enabled: false}});
18653
});
18754

18855
it('continues only after primary page target is available', async () => {

front_end/entrypoints/inspector_main/InspectorMain.ts

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import * as Root from '../../core/root/root.js';
99
import * as SDK from '../../core/sdk/sdk.js';
1010
import type * as Protocol from '../../generated/protocol.js';
1111
import * as MobileThrottling from '../../panels/mobile_throttling/mobile_throttling.js';
12-
import * as Security from '../../panels/security/security.js';
1312
import * as Components from '../../ui/legacy/components/utils/utils.js';
1413
import * as UI from '../../ui/legacy/legacy.js';
1514
import * as Lit from '../../ui/lit/lit.js';
@@ -110,43 +109,6 @@ export class InspectorMainImpl implements Common.Runnable.Runnable {
110109
Host.InspectorFrontendHostAPI.Events.ReloadInspectedPage, ({data: hard}) => {
111110
SDK.ResourceTreeModel.ResourceTreeModel.reloadAllPages(hard);
112111
});
113-
114-
// Skip possibly showing the cookie control reload banner if devtools UI is not enabled or if there is an enterprise policy blocking third party cookies
115-
if (!Root.Runtime.hostConfig.devToolsPrivacyUI?.enabled ||
116-
Root.Runtime.hostConfig.thirdPartyCookieControls?.managedBlockThirdPartyCookies === true) {
117-
return;
118-
}
119-
120-
// Third party cookie control settings according to the browser
121-
const browserCookieControls = Root.Runtime.hostConfig.thirdPartyCookieControls;
122-
123-
// Devtools cookie controls settings
124-
const cookieControlOverrideSetting =
125-
Common.Settings.Settings.instance().createSetting('cookie-control-override-enabled', undefined);
126-
const gracePeriodMitigationDisabledSetting =
127-
Common.Settings.Settings.instance().createSetting('grace-period-mitigation-disabled', undefined);
128-
const heuristicMitigationDisabledSetting =
129-
Common.Settings.Settings.instance().createSetting('heuristic-mitigation-disabled', undefined);
130-
131-
// If there are saved cookie control settings, check to see if they differ from the browser config. If they do, prompt a page reload so the user will see the cookie controls behavior.
132-
if (cookieControlOverrideSetting.get() !== undefined) {
133-
if (browserCookieControls?.thirdPartyCookieRestrictionEnabled !== cookieControlOverrideSetting.get()) {
134-
Security.CookieControlsView.showInfobar();
135-
return;
136-
}
137-
138-
// If the devtools third-party cookie control is active, we also need to check if there's a discrepancy in the mitigation behavior.
139-
if (cookieControlOverrideSetting.get()) {
140-
if (browserCookieControls?.thirdPartyCookieMetadataEnabled === gracePeriodMitigationDisabledSetting.get()) {
141-
Security.CookieControlsView.showInfobar();
142-
return;
143-
}
144-
if (browserCookieControls?.thirdPartyCookieHeuristicsEnabled === heuristicMitigationDisabledSetting.get()) {
145-
Security.CookieControlsView.showInfobar();
146-
return;
147-
}
148-
}
149-
}
150112
}
151113
}
152114

0 commit comments

Comments
 (0)