chrome-devtools-frontend 1.0.1679704 → 1.0.1681498
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AUTHORS +1 -0
- package/front_end/core/platform/TypescriptUtilities.ts +0 -9
- package/front_end/core/platform/platform.ts +1 -1
- package/front_end/core/sdk/ConsoleModel.ts +6 -3
- package/front_end/core/sdk/DOMModel.ts +110 -0
- package/front_end/core/sdk/EmulationModel.ts +4 -2
- package/front_end/core/sdk/NetworkManager.ts +15 -9
- package/front_end/core/sdk/OverlayModel.ts +3 -2
- package/front_end/core/sdk/PageResourceLoader.ts +4 -3
- package/front_end/core/sdk/RuntimeModel.ts +5 -3
- package/front_end/core/sdk/SDKSettings.ts +66 -0
- package/front_end/entrypoints/inspector_main/RenderingOptions.ts +4 -2
- package/front_end/entrypoints/inspector_main/inspector_main-meta.ts +32 -0
- package/front_end/entrypoints/main/MainImpl.ts +1 -1
- package/front_end/entrypoints/main/main-meta.ts +82 -0
- package/front_end/entrypoints/shell/shell.ts +0 -3
- package/front_end/entrypoints/trace_app/trace_app.ts +0 -3
- package/front_end/generated/InspectorBackendCommands.ts +3 -1
- package/front_end/generated/SupportedCSSProperties.ts +20 -0
- package/front_end/generated/protocol-mapping.d.ts +7 -0
- package/front_end/generated/protocol-proxy-api.d.ts +5 -0
- package/front_end/generated/protocol.ts +15 -3
- package/front_end/models/ai_code_completion/debug.ts +6 -3
- package/front_end/models/ai_code_generation/debug.ts +6 -3
- package/front_end/models/badges/UserBadges.ts +9 -2
- package/front_end/models/emulation/DeviceModeModel.ts +16 -27
- package/front_end/models/emulation/EmulatedDevices.ts +30 -125
- package/front_end/models/extensions/ExtensionAPI.ts +34 -23
- package/front_end/models/logs/NetworkLog.ts +3 -3
- package/front_end/models/logs/logs-meta.ts +0 -60
- package/front_end/models/persistence/NetworkPersistenceManager.ts +7 -1
- package/front_end/panels/application/ServiceWorkersView.ts +1 -1
- package/front_end/panels/application/StorageView.ts +2 -0
- package/front_end/panels/common/BadgeNotification.ts +1 -1
- package/front_end/panels/common/ExtensionPanel.ts +12 -7
- package/front_end/panels/common/ExtensionServer.ts +76 -16
- package/front_end/panels/common/GdpSignUpDialog.ts +1 -1
- package/front_end/panels/console/ConsoleView.ts +4 -2
- package/front_end/panels/console/ConsoleViewMessage.ts +3 -2
- package/front_end/panels/console/console-meta.ts +19 -5
- package/front_end/panels/elements/CSSRuleValidator.ts +12 -12
- package/front_end/panels/elements/CSSSpecificityBreakdown.ts +1 -1
- package/front_end/panels/elements/ClassesPaneWidget.ts +6 -6
- package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +1 -1
- package/front_end/panels/elements/ComputedStyleWidget.ts +4 -5
- package/front_end/panels/elements/DOMTreeContextMenu.ts +538 -0
- package/front_end/panels/elements/ElementIssueUtils.ts +20 -20
- package/front_end/panels/elements/ElementStatePaneWidget.ts +6 -6
- package/front_end/panels/elements/ElementsPanel.ts +10 -10
- package/front_end/panels/elements/ElementsTreeElement.ts +47 -514
- package/front_end/panels/elements/ElementsTreeOutline.ts +168 -297
- package/front_end/panels/elements/EventListenersWidget.ts +8 -8
- package/front_end/panels/elements/LayersWidget.ts +4 -4
- package/front_end/panels/elements/LayoutPane.ts +11 -11
- package/front_end/panels/elements/MarkerDecorator.ts +3 -3
- package/front_end/panels/elements/PlatformFontsWidget.ts +8 -8
- package/front_end/panels/elements/PropertiesWidget.ts +4 -4
- package/front_end/panels/elements/PropertyRenderer.ts +2 -2
- package/front_end/panels/elements/ShortcutTreeElement.ts +1 -1
- package/front_end/panels/elements/StylePropertiesSection.ts +14 -14
- package/front_end/panels/elements/StylePropertyTreeElement.ts +21 -21
- package/front_end/panels/elements/StylesSidebarPane.ts +14 -14
- package/front_end/panels/elements/components/AccessibilityTreeNode.ts +1 -1
- package/front_end/panels/elements/components/CSSHintDetailsView.ts +1 -1
- package/front_end/panels/elements/components/CSSVariableValueView.ts +3 -3
- package/front_end/panels/elements/components/ElementsBreadcrumbsUtils.ts +2 -2
- package/front_end/panels/elements/components/ElementsTreeExpandButton.ts +1 -1
- package/front_end/panels/elements/elements-meta.ts +13 -13
- package/front_end/panels/elements/elements.ts +3 -0
- package/front_end/panels/issues/AffectedCookiesView.ts +2 -0
- package/front_end/panels/issues/AffectedElementsView.ts +5 -0
- package/front_end/panels/issues/CorsIssueDetailsView.ts +13 -9
- package/front_end/panels/issues/IssueView.ts +7 -2
- package/front_end/panels/layer_viewer/LayerDetailsView.ts +11 -7
- package/front_end/panels/layer_viewer/LayerTreeOutline.ts +2 -0
- package/front_end/panels/mobile_throttling/NetworkPanelIndicator.ts +3 -1
- package/front_end/panels/network/NetworkConfigView.ts +2 -1
- package/front_end/panels/network/NetworkLogView.ts +5 -2
- package/front_end/panels/network/NetworkOverview.ts +11 -5
- package/front_end/panels/network/NetworkPanel.ts +3 -2
- package/front_end/panels/network/NetworkWaterfallColumn.ts +16 -3
- package/front_end/panels/network/RequestHeadersView.ts +4 -4
- package/front_end/panels/network/components/ResponseHeaderSection.ts +6 -2
- package/front_end/panels/network/network-meta.ts +117 -0
- package/front_end/panels/profiler/HeapDetachedElementsDataGrid.ts +2 -1
- package/front_end/panels/profiler/ProfileLauncherView.ts +19 -16
- package/front_end/panels/profiler/ProfileSidebarTreeElement.ts +1 -1
- package/front_end/panels/security/security.ts +6 -0
- package/front_end/panels/settings/components/SyncSection.ts +1 -1
- package/front_end/panels/settings/emulation/DevicesSettingsTab.ts +0 -3
- package/front_end/panels/sources/NavigatorView.ts +6 -2
- package/front_end/panels/sources/SourcesNavigator.ts +8 -4
- package/front_end/panels/sources/SourcesPanel.ts +4 -2
- package/front_end/panels/sources/SourcesSearchScope.ts +3 -1
- package/front_end/panels/sources/SourcesView.ts +8 -107
- package/front_end/panels/sources/TabbedEditorContainer.ts +110 -7
- package/front_end/panels/sources/UISourceCodeFrame.ts +2 -2
- package/front_end/panels/sources/sources-meta.ts +16 -0
- package/front_end/panels/timeline/TimelineLoader.ts +1 -1
- package/front_end/panels/timeline/TimelineUIUtils.ts +6 -0
- package/front_end/panels/timeline/components/LayoutShiftDetails.ts +4 -3
- package/front_end/panels/timeline/components/LiveMetricsView.ts +1 -1
- package/front_end/panels/timeline/components/MetricCard.ts +4 -3
- package/front_end/panels/timeline/components/NetworkRequestDetails.ts +5 -2
- package/front_end/panels/timeline/components/TimelineRangeSummaryView.ts +1 -1
- package/front_end/panels/timeline/components/TimelineSummary.ts +8 -5
- package/front_end/panels/web_audio/WebAudioView.ts +8 -0
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/web-vitals/rebuild.sh +1 -1
- package/front_end/ui/legacy/TabbedPane.ts +34 -2
- package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +11 -11
- package/front_end/ui/legacy/components/color_picker/FormatPickerContextMenu.ts +1 -1
- package/front_end/ui/legacy/components/color_picker/Spectrum.ts +19 -20
- package/front_end/ui/legacy/components/object_ui/ObjectPopoverHelper.ts +2 -2
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +164 -325
- package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +5 -5
- package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +7 -7
- package/front_end/ui/legacy/components/quick_open/QuickOpen.ts +1 -1
- package/front_end/ui/legacy/components/quick_open/quick_open-meta.ts +2 -2
- package/front_end/ui/visual_logging/KnownContextValues.ts +40 -0
- package/mcp/mcp.ts +0 -3
- package/package.json +1 -1
- package/front_end/core/sdk/sdk-meta.ts +0 -178
- package/front_end/models/badges/badges-meta.ts +0 -27
- package/front_end/models/persistence/persistence-meta.ts +0 -69
package/AUTHORS
CHANGED
|
@@ -24,6 +24,7 @@ Anna Agoha <annaagoha@gmail.com>
|
|
|
24
24
|
Anthony Xie <anthonyxie64@gmail.com>
|
|
25
25
|
Axel Chong <haxatron1@gmail.com>
|
|
26
26
|
Anton Bershanskyi <bershanskyi@gmail.com>
|
|
27
|
+
Ashish Shrees <flowoker1@gmail.com>
|
|
27
28
|
Aviv Keller <me@aviv.sh>
|
|
28
29
|
Biboswan Roy <biboswan98@gmail.com>
|
|
29
30
|
Boris Verkhovskiy <boris.verk@gmail.com>
|
|
@@ -17,15 +17,6 @@ export function assertNever(_type: never, message: string): never {
|
|
|
17
17
|
throw new Error(message);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
/**
|
|
21
|
-
* This is useful to check on the type-level that the unhandled cases of
|
|
22
|
-
* a switch are exactly `T` (where T is usually a union type of enum values).
|
|
23
|
-
* @param caseVariable
|
|
24
|
-
*/
|
|
25
|
-
export function assertUnhandled<T>(_caseVariable: T): T {
|
|
26
|
-
return _caseVariable;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
20
|
export type FieldsThatExtend<Type, Selector> = {
|
|
30
21
|
[Key in keyof Type]: Type[Key] extends Selector ? Key : never;
|
|
31
22
|
}[keyof Type];
|
|
@@ -24,7 +24,7 @@ import * as UserVisibleError from './UserVisibleError.js';
|
|
|
24
24
|
* `Platform.TypeScriptUtilities.assertNotNullOrUndefined` causes a compile
|
|
25
25
|
* error).
|
|
26
26
|
*/
|
|
27
|
-
export {assertNever, assertNotNullOrUndefined
|
|
27
|
+
export {assertNever, assertNotNullOrUndefined} from './TypescriptUtilities.js';
|
|
28
28
|
export {
|
|
29
29
|
ArrayUtilities,
|
|
30
30
|
Brand,
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
RuntimeModel,
|
|
35
35
|
} from './RuntimeModel.js';
|
|
36
36
|
import {SDKModel} from './SDKModel.js';
|
|
37
|
-
import {preserveConsoleLogSettingDescriptor} from './SDKSettings.js';
|
|
37
|
+
import {consoleUserActivationEvalSettingDescriptor, preserveConsoleLogSettingDescriptor} from './SDKSettings.js';
|
|
38
38
|
import {Capability, type Target, Type} from './Target.js';
|
|
39
39
|
import type {TargetManager} from './TargetManager.js';
|
|
40
40
|
|
|
@@ -156,13 +156,16 @@ export class ConsoleModel extends SDKModel<EventTypes> {
|
|
|
156
156
|
replMode: true,
|
|
157
157
|
allowUnsafeEvalBlockedByCSP: false,
|
|
158
158
|
},
|
|
159
|
-
this.target().targetManager().settings.
|
|
159
|
+
this.target().targetManager().settings.resolve(consoleUserActivationEvalSettingDescriptor).get(),
|
|
160
160
|
/* awaitPromise */ false);
|
|
161
161
|
Host.userMetrics.actionTaken(Host.UserMetrics.Action.ConsoleEvaluated);
|
|
162
162
|
if ('error' in result) {
|
|
163
163
|
return;
|
|
164
164
|
}
|
|
165
|
-
|
|
165
|
+
try {
|
|
166
|
+
await this.#console.showPromise();
|
|
167
|
+
} catch {
|
|
168
|
+
}
|
|
166
169
|
this.dispatchEventToListeners(
|
|
167
170
|
Events.CommandEvaluated,
|
|
168
171
|
{result: result.object, commandMessage: originatingMessage, exceptionDetails: result.exceptionDetails});
|
|
@@ -40,6 +40,7 @@ import * as Common from '../common/common.js';
|
|
|
40
40
|
import * as Platform from '../platform/platform.js';
|
|
41
41
|
import * as Root from '../root/root.js';
|
|
42
42
|
|
|
43
|
+
import {ConsoleModel} from './ConsoleModel.js';
|
|
43
44
|
import {CSSModel} from './CSSModel.js';
|
|
44
45
|
import type {FrameManager} from './FrameManager.js';
|
|
45
46
|
import {OverlayModel} from './OverlayModel.js';
|
|
@@ -1066,6 +1067,102 @@ export class DOMNode extends Common.ObjectWrapper.ObjectWrapper<DOMNodeEventType
|
|
|
1066
1067
|
});
|
|
1067
1068
|
}
|
|
1068
1069
|
|
|
1070
|
+
duplicate(): void {
|
|
1071
|
+
if (this.isInShadowTree()) {
|
|
1072
|
+
return;
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
const parentNode = this.parentNode ? this.parentNode : this;
|
|
1076
|
+
if (parentNode.nodeName() === '#document') {
|
|
1077
|
+
return;
|
|
1078
|
+
}
|
|
1079
|
+
|
|
1080
|
+
this.copyTo(parentNode, this.nextSibling);
|
|
1081
|
+
}
|
|
1082
|
+
|
|
1083
|
+
/**
|
|
1084
|
+
* Runs a script on the node's remote object that toggles a class name on
|
|
1085
|
+
* the node and injects a stylesheet into the head of the node's document
|
|
1086
|
+
* containing a rule to set "visibility: hidden" on the class and all it's
|
|
1087
|
+
* ancestors.
|
|
1088
|
+
*/
|
|
1089
|
+
async toggleHideElement(): Promise<void> {
|
|
1090
|
+
let pseudoElementName = this.pseudoType() ? this.nodeName() : null;
|
|
1091
|
+
if (pseudoElementName && this.pseudoIdentifier()) {
|
|
1092
|
+
pseudoElementName += `(${this.pseudoIdentifier()})`;
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1095
|
+
let effectiveNode: DOMNode|null = this;
|
|
1096
|
+
while (effectiveNode?.pseudoType()) {
|
|
1097
|
+
if (effectiveNode !== this && effectiveNode.pseudoType() === 'column') {
|
|
1098
|
+
// Ideally we would select the specific column pseudo element, but
|
|
1099
|
+
// we don't have a way to do that at the moment.
|
|
1100
|
+
pseudoElementName = '::column' + pseudoElementName;
|
|
1101
|
+
}
|
|
1102
|
+
effectiveNode = effectiveNode.parentNode;
|
|
1103
|
+
}
|
|
1104
|
+
if (!effectiveNode) {
|
|
1105
|
+
return;
|
|
1106
|
+
}
|
|
1107
|
+
|
|
1108
|
+
const hidden = this.marker('hidden-marker');
|
|
1109
|
+
const object = await effectiveNode.resolveToObject('');
|
|
1110
|
+
|
|
1111
|
+
if (!object) {
|
|
1112
|
+
return;
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
await object.callFunction((toggleClassAndInjectStyleRule as (this: Object, ...arg1: unknown[]) => void),
|
|
1116
|
+
[{value: pseudoElementName}, {value: !hidden}]);
|
|
1117
|
+
object.release();
|
|
1118
|
+
this.setMarker('hidden-marker', hidden ? null : true);
|
|
1119
|
+
|
|
1120
|
+
function toggleClassAndInjectStyleRule(this: Element, pseudoElementName: string|null, hidden: boolean): void {
|
|
1121
|
+
const classNamePrefix = '__web-inspector-hide';
|
|
1122
|
+
const classNameSuffix = '-shortcut__';
|
|
1123
|
+
const styleTagId = '__web-inspector-hide-shortcut-style__';
|
|
1124
|
+
const pseudoElementNameEscaped = pseudoElementName ? pseudoElementName.replace(/[\(\)\:]/g, '_') : '';
|
|
1125
|
+
const className = classNamePrefix + pseudoElementNameEscaped + classNameSuffix;
|
|
1126
|
+
this.classList.toggle(className, hidden);
|
|
1127
|
+
|
|
1128
|
+
let localRoot: Element|HTMLHeadElement = this;
|
|
1129
|
+
while (localRoot.parentNode) {
|
|
1130
|
+
localRoot = (localRoot.parentNode as Element);
|
|
1131
|
+
}
|
|
1132
|
+
if (localRoot.nodeType === Node.DOCUMENT_NODE) {
|
|
1133
|
+
localRoot = document.head;
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1136
|
+
let style = localRoot.querySelector('style#' + styleTagId);
|
|
1137
|
+
if (!style) {
|
|
1138
|
+
const selectors = [];
|
|
1139
|
+
selectors.push('.__web-inspector-hide-shortcut__');
|
|
1140
|
+
selectors.push('.__web-inspector-hide-shortcut__ *');
|
|
1141
|
+
const selector = selectors.join(', ');
|
|
1142
|
+
const ruleBody = ' visibility: hidden !important;';
|
|
1143
|
+
const rule = '\n' + selector + '\n{\n' + ruleBody + '\n}\n';
|
|
1144
|
+
|
|
1145
|
+
style = document.createElement('style');
|
|
1146
|
+
style.id = styleTagId;
|
|
1147
|
+
style.textContent = rule;
|
|
1148
|
+
|
|
1149
|
+
localRoot.appendChild(style);
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
// In addition to putting them on the element we want to hide, we will
|
|
1153
|
+
// also add pseudo element classes to the style element to keep track of
|
|
1154
|
+
// which pseudo elements we have style rules for.
|
|
1155
|
+
if (pseudoElementName && !style.classList.contains(className)) {
|
|
1156
|
+
style.classList.add(className);
|
|
1157
|
+
style.textContent = `.${className}${pseudoElementName}, ${style.textContent}`;
|
|
1158
|
+
}
|
|
1159
|
+
}
|
|
1160
|
+
}
|
|
1161
|
+
|
|
1162
|
+
isToggledToHidden(): boolean {
|
|
1163
|
+
return Boolean(this.marker('hidden-marker'));
|
|
1164
|
+
}
|
|
1165
|
+
|
|
1069
1166
|
isXMLNode(): boolean {
|
|
1070
1167
|
return Boolean(this.#xmlVersion);
|
|
1071
1168
|
}
|
|
@@ -1238,6 +1335,13 @@ export class DOMNode extends Common.ObjectWrapper.ObjectWrapper<DOMNodeEventType
|
|
|
1238
1335
|
};
|
|
1239
1336
|
}
|
|
1240
1337
|
|
|
1338
|
+
async saveNodeToTempVariable(): Promise<void> {
|
|
1339
|
+
const remoteObjectForConsole = await this.resolveToObject();
|
|
1340
|
+
const consoleModel = this.#domModel.target().model(ConsoleModel);
|
|
1341
|
+
await consoleModel?.saveToTempVariable(remoteObjectForConsole?.runtimeModel().defaultExecutionContext() ?? null,
|
|
1342
|
+
remoteObjectForConsole);
|
|
1343
|
+
}
|
|
1344
|
+
|
|
1241
1345
|
async scrollIntoView(): Promise<void> {
|
|
1242
1346
|
const node = this.enclosingElementOrSelf();
|
|
1243
1347
|
if (!node) {
|
|
@@ -2425,6 +2529,9 @@ export class DOMNodeSnapshot extends DOMNode {
|
|
|
2425
2529
|
_callback?: ((arg0: string|null, arg1: DOMNode|null) => void)|undefined): void {
|
|
2426
2530
|
}
|
|
2427
2531
|
|
|
2532
|
+
override duplicate(): void {
|
|
2533
|
+
}
|
|
2534
|
+
|
|
2428
2535
|
override canInspectNode(): boolean {
|
|
2429
2536
|
return false;
|
|
2430
2537
|
}
|
|
@@ -2474,6 +2581,9 @@ export class DOMDocumentSnapshot extends DOMDocument {
|
|
|
2474
2581
|
_callback?: ((arg0: string|null, arg1: DOMNode|null) => void)|undefined): void {
|
|
2475
2582
|
}
|
|
2476
2583
|
|
|
2584
|
+
override duplicate(): void {
|
|
2585
|
+
}
|
|
2586
|
+
|
|
2477
2587
|
override canInspectNode(): boolean {
|
|
2478
2588
|
return false;
|
|
2479
2589
|
}
|
|
@@ -12,6 +12,7 @@ import {SDKModel} from './SDKModel.js';
|
|
|
12
12
|
import {
|
|
13
13
|
avifFormatDisabledSettingDescriptor,
|
|
14
14
|
cpuPressureSettingDescriptor,
|
|
15
|
+
emulateAutoDarkModeSettingDescriptor,
|
|
15
16
|
emulatedCSSMediaFeatureColorGamutSettingDescriptor,
|
|
16
17
|
emulatedCSSMediaFeatureForcedColorsSettingDescriptor,
|
|
17
18
|
emulatedCSSMediaFeaturePrefersColorSchemeSettingDescriptor,
|
|
@@ -27,6 +28,7 @@ import {
|
|
|
27
28
|
jpegXlFormatDisabledSettingDescriptor,
|
|
28
29
|
localFontsDisabledSettingDescriptor,
|
|
29
30
|
touchSettingDescriptor,
|
|
31
|
+
webpFormatDisabledSettingDescriptor,
|
|
30
32
|
} from './SDKSettings.js';
|
|
31
33
|
import {Capability, type Target} from './Target.js';
|
|
32
34
|
|
|
@@ -180,7 +182,7 @@ export class EmulationModel extends SDKModel<EmulationModelEventTypes> implement
|
|
|
180
182
|
});
|
|
181
183
|
void this.updateCssMedia();
|
|
182
184
|
|
|
183
|
-
const autoDarkModeSetting = settings.
|
|
185
|
+
const autoDarkModeSetting = settings.resolve(emulateAutoDarkModeSettingDescriptor);
|
|
184
186
|
autoDarkModeSetting.addChangeListener(() => {
|
|
185
187
|
const enabled = autoDarkModeSetting.get();
|
|
186
188
|
mediaFeaturePrefersColorSchemeSetting.set(enabled ? 'dark' : '');
|
|
@@ -213,7 +215,7 @@ export class EmulationModel extends SDKModel<EmulationModelEventTypes> implement
|
|
|
213
215
|
|
|
214
216
|
const avifFormatDisabledSetting = settings.resolve(avifFormatDisabledSettingDescriptor);
|
|
215
217
|
const jpegXlFormatDisabledSetting = settings.resolve(jpegXlFormatDisabledSettingDescriptor);
|
|
216
|
-
const webpFormatDisabledSetting = settings.
|
|
218
|
+
const webpFormatDisabledSetting = settings.resolve(webpFormatDisabledSettingDescriptor);
|
|
217
219
|
|
|
218
220
|
const updateDisabledImageFormats = (): void => {
|
|
219
221
|
const types = [];
|
|
@@ -26,6 +26,12 @@ import {
|
|
|
26
26
|
} from './NetworkRequest.js';
|
|
27
27
|
import {type ExecutionContext, RuntimeModel} from './RuntimeModel.js';
|
|
28
28
|
import {SDKModel} from './SDKModel.js';
|
|
29
|
+
import {
|
|
30
|
+
cacheDisabledSettingDescriptor,
|
|
31
|
+
monitoringXHREnabledSettingDescriptor,
|
|
32
|
+
preserveNetworkLogSettingDescriptor,
|
|
33
|
+
requestBlockingEnabledSettingDescriptor,
|
|
34
|
+
} from './SDKSettings.js';
|
|
29
35
|
import {Capability, type Target} from './Target.js';
|
|
30
36
|
import {type SDKModelObserver, TargetManager} from './TargetManager.js';
|
|
31
37
|
|
|
@@ -187,7 +193,7 @@ export class NetworkManager extends SDKModel<EventTypes> {
|
|
|
187
193
|
const settings = this.target().targetManager().settings;
|
|
188
194
|
this.activeNetworkThrottlingKey = activeNetworkThrottlingKeySetting(settings);
|
|
189
195
|
|
|
190
|
-
if (settings.
|
|
196
|
+
if (settings.resolve(cacheDisabledSettingDescriptor).get()) {
|
|
191
197
|
void this.#networkAgent.invoke_setCacheDisabled({cacheDisabled: true});
|
|
192
198
|
}
|
|
193
199
|
|
|
@@ -198,7 +204,7 @@ export class NetworkManager extends SDKModel<EventTypes> {
|
|
|
198
204
|
});
|
|
199
205
|
|
|
200
206
|
if (Root.Runtime.hostConfig.devToolsEnableDurableMessages?.enabled) {
|
|
201
|
-
const preserveLogSetting = settings.
|
|
207
|
+
const preserveLogSetting = settings.resolve(preserveNetworkLogSettingDescriptor);
|
|
202
208
|
this.#updateDurableMessages(preserveLogSetting.get());
|
|
203
209
|
preserveLogSetting.addChangeListener(this.preserveLogChanged, this);
|
|
204
210
|
}
|
|
@@ -211,7 +217,7 @@ export class NetworkManager extends SDKModel<EventTypes> {
|
|
|
211
217
|
}
|
|
212
218
|
this.#bypassServiceWorkerSetting.addChangeListener(this.bypassServiceWorkerChanged, this);
|
|
213
219
|
|
|
214
|
-
settings.
|
|
220
|
+
settings.resolve(cacheDisabledSettingDescriptor).addChangeListener(this.cacheDisabledSettingChanged, this);
|
|
215
221
|
}
|
|
216
222
|
|
|
217
223
|
static forRequest(request: NetworkRequest): NetworkManager|null {
|
|
@@ -555,8 +561,8 @@ export class NetworkManager extends SDKModel<EventTypes> {
|
|
|
555
561
|
|
|
556
562
|
override dispose(): void {
|
|
557
563
|
const settings = this.target().targetManager().settings;
|
|
558
|
-
settings.
|
|
559
|
-
settings.
|
|
564
|
+
settings.resolve(cacheDisabledSettingDescriptor).removeChangeListener(this.cacheDisabledSettingChanged, this);
|
|
565
|
+
settings.resolve(preserveNetworkLogSettingDescriptor).removeChangeListener(this.preserveLogChanged, this);
|
|
560
566
|
}
|
|
561
567
|
|
|
562
568
|
private bypassServiceWorkerChanged(): void {
|
|
@@ -1404,7 +1410,7 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
|
|
|
1404
1410
|
this.#multitargetNetworkManager.inflightMainResourceRequests.delete(networkRequest.requestId());
|
|
1405
1411
|
|
|
1406
1412
|
const settings = this.#manager.target().targetManager().settings;
|
|
1407
|
-
if (settings.
|
|
1413
|
+
if (settings.resolve(monitoringXHREnabledSettingDescriptor).get() &&
|
|
1408
1414
|
networkRequest.resourceType().category() === Common.ResourceType.resourceCategories.XHR) {
|
|
1409
1415
|
let message;
|
|
1410
1416
|
const failedToLoad = networkRequest.failed || networkRequest.hasErrorStatusCode();
|
|
@@ -1992,7 +1998,7 @@ export class RequestConditions extends Common.ObjectWrapper.ObjectWrapper<Reques
|
|
|
1992
1998
|
constructor(settings: Common.Settings.Settings) {
|
|
1993
1999
|
super();
|
|
1994
2000
|
this.#setting = settings.createSetting<RequestConditionsSetting[]>('network-blocked-patterns', []);
|
|
1995
|
-
this.#conditionsEnabledSetting = settings.
|
|
2001
|
+
this.#conditionsEnabledSetting = settings.resolve(requestBlockingEnabledSettingDescriptor);
|
|
1996
2002
|
for (const condition of this.#setting.get()) {
|
|
1997
2003
|
try {
|
|
1998
2004
|
this.#conditions.push(RequestCondition.createFromSetting(condition, settings));
|
|
@@ -2433,8 +2439,8 @@ export class MultitargetNetworkManager extends Common.ObjectWrapper.ObjectWrappe
|
|
|
2433
2439
|
|
|
2434
2440
|
private async updateInterceptionPatterns(): Promise<void> {
|
|
2435
2441
|
const settings = this.#targetManager.settings;
|
|
2436
|
-
if (!settings.
|
|
2437
|
-
settings.
|
|
2442
|
+
if (!settings.resolve(cacheDisabledSettingDescriptor).get()) {
|
|
2443
|
+
settings.resolve(cacheDisabledSettingDescriptor).set(true);
|
|
2438
2444
|
}
|
|
2439
2445
|
this.#updatingInterceptionPatternsPromise = null;
|
|
2440
2446
|
const promises = ([] as Array<Promise<unknown>>);
|
|
@@ -16,6 +16,7 @@ import type {RemoteObject} from './RemoteObject.js';
|
|
|
16
16
|
import {SDKModel} from './SDKModel.js';
|
|
17
17
|
import {
|
|
18
18
|
apcaSettingDescriptor,
|
|
19
|
+
disablePausedStateOverlaySettingDescriptor,
|
|
19
20
|
showAdHighlightsSettingDescriptor,
|
|
20
21
|
showDebugBordersSettingDescriptor,
|
|
21
22
|
showFPSCounterSettingDescriptor,
|
|
@@ -122,7 +123,7 @@ export class OverlayModel extends SDKModel<EventTypes> implements ProtocolProxyA
|
|
|
122
123
|
const settings = this.target().targetManager().settings;
|
|
123
124
|
this.#debuggerModel = target.model(DebuggerModel);
|
|
124
125
|
if (this.#debuggerModel) {
|
|
125
|
-
settings.
|
|
126
|
+
settings.resolve(disablePausedStateOverlaySettingDescriptor)
|
|
126
127
|
.addChangeListener(this.updatePausedInDebuggerMessage, this);
|
|
127
128
|
this.#debuggerModel.addEventListener(
|
|
128
129
|
DebuggerModelEvents.DebuggerPaused, this.updatePausedInDebuggerMessage, this);
|
|
@@ -313,7 +314,7 @@ export class OverlayModel extends SDKModel<EventTypes> implements ProtocolProxyA
|
|
|
313
314
|
}
|
|
314
315
|
const settings = this.target().targetManager().settings;
|
|
315
316
|
const message = this.#debuggerModel && this.#debuggerModel.isPaused() &&
|
|
316
|
-
!settings.
|
|
317
|
+
!settings.resolve(disablePausedStateOverlaySettingDescriptor).get() ?
|
|
317
318
|
i18nString(UIStrings.pausedInDebugger) :
|
|
318
319
|
undefined;
|
|
319
320
|
void this.overlayAgent.invoke_setPausedInDebuggerMessage({message});
|
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
type ResourceTreeFrame,
|
|
18
18
|
ResourceTreeModel,
|
|
19
19
|
} from './ResourceTreeModel.js';
|
|
20
|
+
import {cacheDisabledSettingDescriptor, enableRemoteFileLoadingSettingDescriptor} from './SDKSettings.js';
|
|
20
21
|
import type {Target} from './Target.js';
|
|
21
22
|
import {TargetManager} from './TargetManager.js';
|
|
22
23
|
|
|
@@ -433,7 +434,7 @@ export class PageResourceLoader extends Common.ObjectWrapper.ObjectWrapper<Event
|
|
|
433
434
|
}> {
|
|
434
435
|
const networkManager = (target.model(NetworkManager) as NetworkManager);
|
|
435
436
|
const ioModel = (target.model(IOModel) as IOModel);
|
|
436
|
-
const disableCache = this.#settings.
|
|
437
|
+
const disableCache = this.#settings.resolve(cacheDisabledSettingDescriptor).get();
|
|
437
438
|
const resource = await networkManager.loadNetworkResource(frameId, url, {disableCache, includeCredentials: true});
|
|
438
439
|
try {
|
|
439
440
|
const content = resource.stream ?
|
|
@@ -470,11 +471,11 @@ export class PageResourceLoader extends Common.ObjectWrapper.ObjectWrapper<Event
|
|
|
470
471
|
headers['User-Agent'] = currentUserAgent;
|
|
471
472
|
}
|
|
472
473
|
|
|
473
|
-
if (this.#settings.
|
|
474
|
+
if (this.#settings.resolve(cacheDisabledSettingDescriptor).get()) {
|
|
474
475
|
headers['Cache-Control'] = 'no-cache';
|
|
475
476
|
}
|
|
476
477
|
|
|
477
|
-
const allowRemoteFilePaths = this.#settings.
|
|
478
|
+
const allowRemoteFilePaths = this.#settings.resolve(enableRemoteFileLoadingSettingDescriptor).get();
|
|
478
479
|
|
|
479
480
|
return await new Promise(
|
|
480
481
|
resolve => Host.ResourceLoader.load(url, headers, (success, _responseHeaders, content, errorDescription) => {
|
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
ScopeRemoteObject,
|
|
20
20
|
} from './RemoteObject.js';
|
|
21
21
|
import {SDKModel} from './SDKModel.js';
|
|
22
|
+
import {customFormattersSettingDescriptor} from './SDKSettings.js';
|
|
22
23
|
import {Capability, type Target, Type} from './Target.js';
|
|
23
24
|
|
|
24
25
|
export class RuntimeModel extends SDKModel<EventTypes> {
|
|
@@ -32,12 +33,13 @@ export class RuntimeModel extends SDKModel<EventTypes> {
|
|
|
32
33
|
this.target().registerRuntimeDispatcher(new RuntimeDispatcher(this));
|
|
33
34
|
void this.agent.invoke_enable();
|
|
34
35
|
|
|
35
|
-
const
|
|
36
|
-
|
|
36
|
+
const customFormattersSetting =
|
|
37
|
+
this.target().targetManager().context.get(Common.Settings.Settings).resolve(customFormattersSettingDescriptor);
|
|
38
|
+
if (customFormattersSetting.get()) {
|
|
37
39
|
void this.agent.invoke_setCustomObjectFormatterEnabled({enabled: true});
|
|
38
40
|
}
|
|
39
41
|
|
|
40
|
-
|
|
42
|
+
customFormattersSetting.addChangeListener(this.customFormattersStateChanged.bind(this));
|
|
41
43
|
}
|
|
42
44
|
|
|
43
45
|
static isSideEffectFailure(response: Protocol.Runtime.EvaluateResponse|EvaluationResult): boolean {
|
|
@@ -265,3 +265,69 @@ export const jpegXlFormatDisabledSettingDescriptor: Common.Settings.SettingDescr
|
|
|
265
265
|
defaultValue: false,
|
|
266
266
|
storageType: Common.Settings.SettingStorageType.SESSION,
|
|
267
267
|
};
|
|
268
|
+
|
|
269
|
+
export const webpFormatDisabledSettingDescriptor: Common.Settings.SettingDescriptor<boolean> = {
|
|
270
|
+
name: 'webp-format-disabled',
|
|
271
|
+
type: Common.Settings.SettingType.BOOLEAN,
|
|
272
|
+
defaultValue: false,
|
|
273
|
+
storageType: Common.Settings.SettingStorageType.SESSION,
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
export const customFormattersSettingDescriptor: Common.Settings.SettingDescriptor<boolean> = {
|
|
277
|
+
name: 'custom-formatters',
|
|
278
|
+
type: Common.Settings.SettingType.BOOLEAN,
|
|
279
|
+
defaultValue: false,
|
|
280
|
+
};
|
|
281
|
+
|
|
282
|
+
export const requestBlockingEnabledSettingDescriptor: Common.Settings.SettingDescriptor<boolean> = {
|
|
283
|
+
name: 'request-blocking-enabled',
|
|
284
|
+
type: Common.Settings.SettingType.BOOLEAN,
|
|
285
|
+
defaultValue: false,
|
|
286
|
+
storageType: Common.Settings.SettingStorageType.LOCAL,
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
export const cacheDisabledSettingDescriptor: Common.Settings.SettingDescriptor<boolean> = {
|
|
290
|
+
name: 'cache-disabled',
|
|
291
|
+
type: Common.Settings.SettingType.BOOLEAN,
|
|
292
|
+
defaultValue: false,
|
|
293
|
+
};
|
|
294
|
+
|
|
295
|
+
export const emulateAutoDarkModeSettingDescriptor: Common.Settings.SettingDescriptor<boolean> = {
|
|
296
|
+
name: 'emulate-auto-dark-mode',
|
|
297
|
+
type: Common.Settings.SettingType.BOOLEAN,
|
|
298
|
+
defaultValue: false,
|
|
299
|
+
storageType: Common.Settings.SettingStorageType.SESSION,
|
|
300
|
+
};
|
|
301
|
+
|
|
302
|
+
export const enableRemoteFileLoadingSettingDescriptor: Common.Settings.SettingDescriptor<boolean> = {
|
|
303
|
+
name: 'network.enable-remote-file-loading',
|
|
304
|
+
type: Common.Settings.SettingType.BOOLEAN,
|
|
305
|
+
defaultValue: false,
|
|
306
|
+
storageType: Common.Settings.SettingStorageType.SYNCED,
|
|
307
|
+
};
|
|
308
|
+
|
|
309
|
+
export const consoleUserActivationEvalSettingDescriptor: Common.Settings.SettingDescriptor<boolean> = {
|
|
310
|
+
name: 'console-user-activation-eval',
|
|
311
|
+
type: Common.Settings.SettingType.BOOLEAN,
|
|
312
|
+
defaultValue: true,
|
|
313
|
+
storageType: Common.Settings.SettingStorageType.SYNCED,
|
|
314
|
+
};
|
|
315
|
+
export const monitoringXHREnabledSettingDescriptor: Common.Settings.SettingDescriptor<boolean> = {
|
|
316
|
+
name: 'monitoring-xhr-enabled',
|
|
317
|
+
type: Common.Settings.SettingType.BOOLEAN,
|
|
318
|
+
defaultValue: false,
|
|
319
|
+
storageType: Common.Settings.SettingStorageType.SYNCED,
|
|
320
|
+
};
|
|
321
|
+
|
|
322
|
+
export const disablePausedStateOverlaySettingDescriptor: Common.Settings.SettingDescriptor<boolean> = {
|
|
323
|
+
name: 'disable-paused-state-overlay',
|
|
324
|
+
type: Common.Settings.SettingType.BOOLEAN,
|
|
325
|
+
defaultValue: false,
|
|
326
|
+
storageType: Common.Settings.SettingStorageType.SYNCED,
|
|
327
|
+
};
|
|
328
|
+
|
|
329
|
+
export const preserveNetworkLogSettingDescriptor: Common.Settings.SettingDescriptor<boolean> = {
|
|
330
|
+
name: 'network-log.preserve-log',
|
|
331
|
+
type: Common.Settings.SettingType.BOOLEAN,
|
|
332
|
+
defaultValue: false,
|
|
333
|
+
};
|
|
@@ -230,7 +230,8 @@ export class RenderingOptionsView extends UI.Widget.VBox {
|
|
|
230
230
|
this.#appendCheckbox(i18nString(UIStrings.emulateAFocusedPage), i18nString(UIStrings.emulatesAFocusedPage),
|
|
231
231
|
Common.Settings.Settings.instance().resolve(SDK.SDKSettings.emulatePageFocusSettingDescriptor),
|
|
232
232
|
{toggle: Host.UserMetrics.Action.ToggleEmulateFocusedPageFromRenderingTab});
|
|
233
|
-
const autoDarkModeSetting =
|
|
233
|
+
const autoDarkModeSetting =
|
|
234
|
+
Common.Settings.Settings.instance().resolve(SDK.SDKSettings.emulateAutoDarkModeSettingDescriptor);
|
|
234
235
|
this.#appendCheckbox(i18nString(UIStrings.emulateAutoDarkMode), i18nString(UIStrings.emulatesAutoDarkMode),
|
|
235
236
|
autoDarkModeSetting);
|
|
236
237
|
|
|
@@ -284,7 +285,8 @@ export class RenderingOptionsView extends UI.Widget.VBox {
|
|
|
284
285
|
Common.Settings.Settings.instance().resolve(SDK.SDKSettings.avifFormatDisabledSettingDescriptor);
|
|
285
286
|
const jpegXlFormatDisabledSetting =
|
|
286
287
|
Common.Settings.Settings.instance().resolve(SDK.SDKSettings.jpegXlFormatDisabledSettingDescriptor);
|
|
287
|
-
const webpFormatDisabledSetting =
|
|
288
|
+
const webpFormatDisabledSetting =
|
|
289
|
+
Common.Settings.Settings.instance().resolve(SDK.SDKSettings.webpFormatDisabledSettingDescriptor);
|
|
288
290
|
|
|
289
291
|
this.#appendCheckbox(
|
|
290
292
|
i18nString(UIStrings.disableAvifImageFormat), i18nString(UIStrings.requiresAPageReloadToApplyAnd),
|
|
@@ -11,6 +11,11 @@ import * as SettingsUI from '../../ui/settings/settings.js';
|
|
|
11
11
|
import type * as InspectorMain from './inspector_main.js';
|
|
12
12
|
|
|
13
13
|
const UIStrings = {
|
|
14
|
+
/**
|
|
15
|
+
* @description The name of a checkbox setting in the Rendering tool. This setting
|
|
16
|
+
* emulates that the webpage is in auto dark mode.
|
|
17
|
+
*/
|
|
18
|
+
emulateAutoDarkMode: 'Emulate auto dark mode',
|
|
14
19
|
/**
|
|
15
20
|
* @description Title of an option under the Rendering category that can be invoked through the Command Menu.
|
|
16
21
|
*/
|
|
@@ -296,6 +301,14 @@ const UIStrings = {
|
|
|
296
301
|
* @description Title of a setting that enables JPEG XL format.
|
|
297
302
|
*/
|
|
298
303
|
enableJpegXlFormat: 'Enable `JPEG XL` format',
|
|
304
|
+
/**
|
|
305
|
+
* @description Title of a setting that disables WebP format.
|
|
306
|
+
*/
|
|
307
|
+
disableWebpFormat: 'Disable `WebP` format',
|
|
308
|
+
/**
|
|
309
|
+
* @description Title of a setting that enables WebP format.
|
|
310
|
+
*/
|
|
311
|
+
enableWebpFormat: 'Enable `WebP` format',
|
|
299
312
|
/**
|
|
300
313
|
* @description Title of an action that reloads the inspected page.
|
|
301
314
|
*/
|
|
@@ -938,3 +951,22 @@ SettingsUI.SettingUIRegistration.register(SDK.SDKSettings.jpegXlFormatDisabledSe
|
|
|
938
951
|
},
|
|
939
952
|
],
|
|
940
953
|
});
|
|
954
|
+
|
|
955
|
+
SettingsUI.SettingUIRegistration.register(SDK.SDKSettings.webpFormatDisabledSettingDescriptor, {
|
|
956
|
+
category: Common.Settings.SettingCategory.RENDERING,
|
|
957
|
+
options: [
|
|
958
|
+
{
|
|
959
|
+
value: true,
|
|
960
|
+
title: i18nLazyString(UIStrings.disableWebpFormat),
|
|
961
|
+
},
|
|
962
|
+
{
|
|
963
|
+
value: false,
|
|
964
|
+
title: i18nLazyString(UIStrings.enableWebpFormat),
|
|
965
|
+
},
|
|
966
|
+
],
|
|
967
|
+
});
|
|
968
|
+
|
|
969
|
+
SettingsUI.SettingUIRegistration.register(SDK.SDKSettings.emulateAutoDarkModeSettingDescriptor, {
|
|
970
|
+
category: Common.Settings.SettingCategory.RENDERING,
|
|
971
|
+
title: i18nLazyString(UIStrings.emulateAutoDarkMode),
|
|
972
|
+
});
|
|
@@ -216,7 +216,7 @@ export class MainImpl {
|
|
|
216
216
|
|
|
217
217
|
// Mark 'cache-disabled' as requiring user interaction when multiple CDP clients are attached.
|
|
218
218
|
if (Root.Runtime.Runtime.queryParam('hasOtherClients')) {
|
|
219
|
-
this.#universe.settings.
|
|
219
|
+
this.#universe.settings.resolve(SDK.SDKSettings.cacheDisabledSettingDescriptor).setRequiresUserAction(true);
|
|
220
220
|
}
|
|
221
221
|
|
|
222
222
|
Root.Runtime.experiments.removeAllExperimentsFromLocalStorage();
|
|
@@ -8,14 +8,62 @@ import * as i18n from '../../core/i18n/i18n.js';
|
|
|
8
8
|
import type * as Platform from '../../core/platform/platform.js';
|
|
9
9
|
import * as Root from '../../core/root/root.js';
|
|
10
10
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
11
|
+
import * as Badges from '../../models/badges/badges.js';
|
|
12
|
+
import * as Persistence from '../../models/persistence/persistence.js';
|
|
11
13
|
import * as Workspace from '../../models/workspace/workspace.js';
|
|
12
14
|
import * as Components from '../../ui/legacy/components/utils/utils.js';
|
|
13
15
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
16
|
+
import * as SettingsUI from '../../ui/settings/settings.js';
|
|
14
17
|
import type * as InspectorMain from '../inspector_main/inspector_main.js';
|
|
15
18
|
|
|
16
19
|
import type * as Main from './main.js';
|
|
17
20
|
|
|
18
21
|
const UIStrings = {
|
|
22
|
+
/**
|
|
23
|
+
* @description Title of a setting under the Persistence category in Settings.
|
|
24
|
+
*/
|
|
25
|
+
localOverrides: 'Local overrides',
|
|
26
|
+
/**
|
|
27
|
+
* @description A tag of enable local overrides setting that can be searched in the command menu.
|
|
28
|
+
*/
|
|
29
|
+
interception: 'interception',
|
|
30
|
+
/**
|
|
31
|
+
* @description A tag of enable local overrides setting that can be searched in the command menu.
|
|
32
|
+
*/
|
|
33
|
+
override: 'override',
|
|
34
|
+
/**
|
|
35
|
+
* @description A tag of group network by frame setting that can be searched in the command menu.
|
|
36
|
+
*/
|
|
37
|
+
network: 'network',
|
|
38
|
+
/**
|
|
39
|
+
* @description A tag of enable local overrides setting that can be searched in the command menu.
|
|
40
|
+
*/
|
|
41
|
+
rewrite: 'rewrite',
|
|
42
|
+
/**
|
|
43
|
+
* @description A tag of enable local overrides setting that can be searched in the command menu.
|
|
44
|
+
* Noun for network request.
|
|
45
|
+
*/
|
|
46
|
+
request: 'request',
|
|
47
|
+
/**
|
|
48
|
+
* @description Title of an option under the Persistence category that can be invoked through the command menu.
|
|
49
|
+
*/
|
|
50
|
+
enableOverrideNetworkRequests: 'Enable override network requests',
|
|
51
|
+
/**
|
|
52
|
+
* @description Title of an option under the Persistence category that can be invoked through the command menu.
|
|
53
|
+
*/
|
|
54
|
+
disableOverrideNetworkRequests: 'Disable override network requests',
|
|
55
|
+
/**
|
|
56
|
+
* @description Label for a checkbox in the settings UI. Allows developers to opt-in/opt-out
|
|
57
|
+
* of receiving Google Developer Program (GDP) badges based on their activity in Chrome DevTools.
|
|
58
|
+
*/
|
|
59
|
+
earnBadges: 'Earn badges',
|
|
60
|
+
/**
|
|
61
|
+
* @description Title of a setting under the Appearance category in Settings. When the webpage is
|
|
62
|
+
* paused by devtools, an overlay is shown on top of the page to indicate that it is paused. The
|
|
63
|
+
* overlay is a pause/unpause button and some text, which appears on top of the paused page. This
|
|
64
|
+
* setting turns off this overlay.
|
|
65
|
+
*/
|
|
66
|
+
disablePaused: 'Disable paused state overlay',
|
|
19
67
|
/**
|
|
20
68
|
* @description Action title to focus the page being debugged.
|
|
21
69
|
*/
|
|
@@ -719,6 +767,11 @@ Common.Settings.registerSettingExtension({
|
|
|
719
767
|
defaultValue: false,
|
|
720
768
|
});
|
|
721
769
|
|
|
770
|
+
SettingsUI.SettingUIRegistration.register(SDK.SDKSettings.disablePausedStateOverlaySettingDescriptor, {
|
|
771
|
+
category: Common.Settings.SettingCategory.APPEARANCE,
|
|
772
|
+
title: i18nLazyString(UIStrings.disablePaused),
|
|
773
|
+
});
|
|
774
|
+
|
|
722
775
|
Common.Settings.registerSettingExtension({
|
|
723
776
|
category: Common.Settings.SettingCategory.GLOBAL,
|
|
724
777
|
settingName: 'currentDockState',
|
|
@@ -790,6 +843,35 @@ Common.Settings.registerSettingExtension({
|
|
|
790
843
|
reloadRequired: true,
|
|
791
844
|
});
|
|
792
845
|
|
|
846
|
+
SettingsUI.SettingUIRegistration.register(Badges.receiveGdpBadgesSettingDescriptor, {
|
|
847
|
+
category: Common.Settings.SettingCategory.ACCOUNT,
|
|
848
|
+
title: i18nLazyString(UIStrings.earnBadges),
|
|
849
|
+
reloadRequired: true,
|
|
850
|
+
});
|
|
851
|
+
|
|
852
|
+
SettingsUI.SettingUIRegistration.register(
|
|
853
|
+
Persistence.NetworkPersistenceManager.persistenceNetworkOverridesEnabledSettingDescriptor, {
|
|
854
|
+
category: Common.Settings.SettingCategory.PERSISTENCE,
|
|
855
|
+
title: i18nLazyString(UIStrings.localOverrides),
|
|
856
|
+
tags: [
|
|
857
|
+
i18nLazyString(UIStrings.interception),
|
|
858
|
+
i18nLazyString(UIStrings.override),
|
|
859
|
+
i18nLazyString(UIStrings.network),
|
|
860
|
+
i18nLazyString(UIStrings.rewrite),
|
|
861
|
+
i18nLazyString(UIStrings.request),
|
|
862
|
+
],
|
|
863
|
+
options: [
|
|
864
|
+
{
|
|
865
|
+
value: true,
|
|
866
|
+
title: i18nLazyString(UIStrings.enableOverrideNetworkRequests),
|
|
867
|
+
},
|
|
868
|
+
{
|
|
869
|
+
value: false,
|
|
870
|
+
title: i18nLazyString(UIStrings.disableOverrideNetworkRequests),
|
|
871
|
+
},
|
|
872
|
+
],
|
|
873
|
+
});
|
|
874
|
+
|
|
793
875
|
Common.Settings.registerSettingExtension({
|
|
794
876
|
storageType: Common.Settings.SettingStorageType.SYNCED,
|
|
795
877
|
settingName: 'user-shortcuts',
|