Add filter UI for third-party requests
See https://imgur.com/a/7cXareV
Bug: 1057457
Change-Id: Iab186b9cf42cf4b488b6c6045cbcfdc0ac089a25
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3009815
Auto-Submit: Danil Somsikov <[email protected]>
Commit-Queue: Wolfgang Beyer <[email protected]>
Reviewed-by: Wolfgang Beyer <[email protected]>
diff --git a/front_end/panels/network/NetworkLogView.ts b/front_end/panels/network/NetworkLogView.ts
index 8a88f59..b446e75 100644
--- a/front_end/panels/network/NetworkLogView.ts
+++ b/front_end/panels/network/NetworkLogView.ts
@@ -91,6 +91,14 @@
*/
onlyShowBlockedRequests: 'Only show blocked requests',
/**
+ *@description Label for a filter in the Network panel
+ */
+ thirdParty: '3rd-party requests',
+ /**
+ *@description Tooltip for a filter in the Network panel
+ */
+ onlyShowThirdPartyRequests: 'Shows only requests with origin different from page origin',
+ /**
*@description Text that appears when user drag and drop something (for example, a file) in Network Log View of the Network panel
*/
dropHarFilesHere: 'Drop HAR files here',
@@ -334,6 +342,7 @@
_networkHideDataURLSetting: Common.Settings.Setting<boolean>;
_networkShowIssuesOnlySetting: Common.Settings.Setting<boolean>;
_networkOnlyBlockedRequestsSetting: Common.Settings.Setting<boolean>;
+ _networkOnlyThirdPartySetting: Common.Settings.Setting<boolean>;
// TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration)
// eslint-disable-next-line @typescript-eslint/no-explicit-any
_networkResourceTypeFiltersSetting: Common.Settings.Setting<any>;
@@ -368,6 +377,7 @@
_resourceCategoryFilterUI: UI.FilterBar.NamedBitSetFilterUI;
_onlyIssuesFilterUI: UI.FilterBar.CheckboxFilterUI;
_onlyBlockedRequestsUI: UI.FilterBar.CheckboxFilterUI;
+ _onlyThirdPartyFilterUI: UI.FilterBar.CheckboxFilterUI;
_filterParser: TextUtils.TextUtils.FilterParser;
_suggestionBuilder: UI.FilterSuggestionBuilder.FilterSuggestionBuilder;
_dataGrid: DataGrid.SortableDataGrid.SortableDataGrid<NetworkNode>;
@@ -390,6 +400,8 @@
Common.Settings.Settings.instance().createSetting('networkShowIssuesOnly', false);
this._networkOnlyBlockedRequestsSetting =
Common.Settings.Settings.instance().createSetting('networkOnlyBlockedRequests', false);
+ this._networkOnlyThirdPartySetting =
+ Common.Settings.Settings.instance().createSetting('networkOnlyThirdPartySetting', false);
this._networkResourceTypeFiltersSetting =
Common.Settings.Settings.instance().createSetting('networkResourceTypeFilters', {});
@@ -479,6 +491,14 @@
UI.Tooltip.Tooltip.install(this._onlyBlockedRequestsUI.element(), i18nString(UIStrings.onlyShowBlockedRequests));
filterBar.addFilter(this._onlyBlockedRequestsUI);
+ this._onlyThirdPartyFilterUI = new UI.FilterBar.CheckboxFilterUI(
+ 'only-show-third-party', i18nString(UIStrings.thirdParty), true, this._networkOnlyThirdPartySetting);
+ this._onlyThirdPartyFilterUI.addEventListener(
+ UI.FilterBar.FilterUI.Events.FilterChanged, this._filterChanged.bind(this), this);
+ UI.Tooltip.Tooltip.install(
+ this._onlyThirdPartyFilterUI.element(), i18nString(UIStrings.onlyShowThirdPartyRequests));
+ filterBar.addFilter(this._onlyThirdPartyFilterUI);
+
this._filterParser = new TextUtils.TextUtils.FilterParser(_searchKeys);
this._suggestionBuilder =
new UI.FilterSuggestionBuilder.FilterSuggestionBuilder(_searchKeys, NetworkLogView._sortSearchValues);
@@ -1663,6 +1683,9 @@
if (this._onlyBlockedRequestsUI.checked() && !request.wasBlocked() && !request.corsErrorStatus()) {
return false;
}
+ if (this._onlyThirdPartyFilterUI.checked() && request.isSameSite()) {
+ return false;
+ }
for (let i = 0; i < this._filters.length; ++i) {
if (!this._filters[i](request)) {
return false;