chrome-devtools-frontend 1.0.1035409 → 1.0.1036726
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/config/gni/devtools_grd_files.gni +2 -0
- package/docs/workflows.md +4 -5
- package/front_end/core/i18n/locales/en-US.json +21 -6
- package/front_end/core/i18n/locales/en-XL.json +21 -6
- package/front_end/core/root/Runtime.ts +8 -3
- package/front_end/core/sdk/CSSStyleDeclaration.ts +1 -1
- package/front_end/core/sdk/NetworkManager.ts +21 -5
- package/front_end/core/sdk/NetworkRequest.ts +10 -0
- package/front_end/entrypoints/main/MainImpl.ts +6 -5
- package/front_end/generated/InspectorBackendCommands.js +2 -2
- package/front_end/generated/SupportedCSSProperties.js +8 -4
- package/front_end/generated/protocol.ts +7 -1
- package/front_end/models/persistence/NetworkPersistenceManager.ts +25 -14
- package/front_end/panels/application/components/Prerender2.ts +5 -7
- package/front_end/panels/elements/CSSRuleValidator.ts +1 -1
- package/front_end/panels/elements/ElementsTreeOutline.ts +3 -3
- package/front_end/panels/elements/StylePropertiesSection.ts +12 -0
- package/front_end/panels/elements/StylePropertyTreeElement.ts +1 -1
- package/front_end/panels/elements/StylesSidebarPane.ts +1 -0
- package/front_end/panels/elements/TopLayerContainer.ts +14 -13
- package/front_end/panels/network/NetworkLogView.ts +13 -5
- package/front_end/panels/settings/SettingsScreen.ts +12 -0
- package/front_end/panels/settings/settingsScreen.css +6 -0
- package/front_end/panels/sources/NavigatorView.ts +8 -10
- package/front_end/panels/sources/ScopeChainSidebarPane.ts +4 -3
- package/front_end/panels/sources/SourcesNavigator.ts +0 -37
- package/front_end/panels/sources/SourcesPanel.ts +34 -22
- package/front_end/panels/sources/components/BreakpointsView.ts +206 -0
- package/front_end/panels/sources/components/HeadersView.ts +8 -41
- package/front_end/panels/sources/components/breakpointsView.css +95 -0
- package/front_end/panels/sources/components/components.ts +2 -0
- package/front_end/ui/components/linear_memory_inspector/LinearMemoryHighlightChipList.ts +11 -9
- package/front_end/ui/components/linear_memory_inspector/linearMemoryHighlightChipList.css +48 -30
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +2 -2
- package/package.json +1 -1
package/AUTHORS
CHANGED
@@ -17,6 +17,7 @@ Alexey Rodionov <fluorescent.hallucinogen@gmail.com>
|
|
17
17
|
Ankit Mishra <ankit.mishra131990@gmail.com>
|
18
18
|
Anna Agoha <annaagoha@gmail.com>
|
19
19
|
Anthony Xie <anthonyxie64@gmail.com>
|
20
|
+
Boris Verkhovskiy <boris.verk@gmail.com>
|
20
21
|
Carl Espe <carl@cpespe.com>
|
21
22
|
Conner Turner <cturner@zyme.xyz>
|
22
23
|
Daniel bellfield <dnlbellfield@gmail.com>
|
@@ -1265,8 +1265,10 @@ grd_files_debug_sources = [
|
|
1265
1265
|
"front_end/panels/sources/WatchExpressionsSidebarPane.js",
|
1266
1266
|
"front_end/panels/sources/breakpointEditDialog.css.js",
|
1267
1267
|
"front_end/panels/sources/callStackSidebarPane.css.js",
|
1268
|
+
"front_end/panels/sources/components/BreakpointsView.js",
|
1268
1269
|
"front_end/panels/sources/components/HeadersView.css.js",
|
1269
1270
|
"front_end/panels/sources/components/HeadersView.js",
|
1271
|
+
"front_end/panels/sources/components/breakpointsView.css.js",
|
1270
1272
|
"front_end/panels/sources/debuggerPausedMessage.css.js",
|
1271
1273
|
"front_end/panels/sources/dialog.css.js",
|
1272
1274
|
"front_end/panels/sources/javaScriptBreakpointsSidebarPane.css.js",
|
package/docs/workflows.md
CHANGED
@@ -44,8 +44,7 @@ gn gen out/fast-build --args='devtools_skip_typecheck=true'
|
|
44
44
|
To update to latest tip of tree version:
|
45
45
|
|
46
46
|
```bash
|
47
|
-
git fetch origin
|
48
|
-
git checkout origin/main
|
47
|
+
git fetch origin; git checkout origin/main # or, alternatively: git rebase-update
|
49
48
|
gclient sync
|
50
49
|
```
|
51
50
|
|
@@ -68,7 +67,7 @@ Open DevTools via F12 or Ctrl+Shift+J on Windows/Linux or Cmd+Option+I on Mac.
|
|
68
67
|
|
69
68
|
If you get errors along the line of `Uncaught TypeError: Cannot read property 'setInspectedTabId'` you probably specified an incorrect path - the path has to be absolute. On Mac and Linux, the file url will start with __three__ slashes: `file:///Users/...`.
|
70
69
|
|
71
|
-
Tip
|
70
|
+
**Tip**: You can inspect DevTools with DevTools by undocking DevTools and then opening a second instance of DevTools (see keyboard shortcut above).
|
72
71
|
|
73
72
|
##### Running from remote URL
|
74
73
|
|
@@ -82,7 +81,7 @@ Then point to that web server when starting Chromium, for example:
|
|
82
81
|
<path-to-devtools-frontend>/third_party/chrome/chrome-<platform>/chrome --custom-devtools-frontend=http://localhost:8000/
|
83
82
|
```
|
84
83
|
|
85
|
-
Open DevTools via F12 on Windows/Linux or Cmd+Option+I on Mac.
|
84
|
+
Open DevTools via F12 or Ctrl+Shift+J on Windows/Linux or Cmd+Option+I on Mac.
|
86
85
|
|
87
86
|
##### Running in hosted mode
|
88
87
|
|
@@ -117,7 +116,7 @@ gclient sync
|
|
117
116
|
Then, disable `gclient sync` for DevTools frontend inside of Chromium by editing `.gclient` config. From `chromium/src/`, run
|
118
117
|
|
119
118
|
```bash
|
120
|
-
vim $(gclient root)/.gclient
|
119
|
+
vim "$(gclient root)/.gclient"
|
121
120
|
```
|
122
121
|
|
123
122
|
In the `custom_deps` section, insert this line:
|
@@ -3272,6 +3272,9 @@
|
|
3272
3272
|
"panels/application/components/Prerender2.ts | CrossOriginRedirect": {
|
3273
3273
|
"message": "Attempted to prerender a URL which redirected to a cross-origin URL. Currently prerendering cross-origin pages is disallowed."
|
3274
3274
|
},
|
3275
|
+
"panels/application/components/Prerender2.ts | DataSaverEnabled": {
|
3276
|
+
"message": "Data saver enabled"
|
3277
|
+
},
|
3275
3278
|
"panels/application/components/Prerender2.ts | Destroyed": {
|
3276
3279
|
"message": "A prerendered page was abandoned for unknown reasons."
|
3277
3280
|
},
|
@@ -3284,9 +3287,6 @@
|
|
3284
3287
|
"panels/application/components/Prerender2.ts | EmbedderTriggeredAndCrossOriginRedirected": {
|
3285
3288
|
"message": "Prerendering triggered by Chrome internal (e.g., Omnibox prerendering) is is canceled because the navigation is redirected to another cross-origin page."
|
3286
3289
|
},
|
3287
|
-
"panels/application/components/Prerender2.ts | EmbedderTriggeredAndDestroyed": {
|
3288
|
-
"message": "Prerendering triggered by Chrome internal (e.g., Omnibox prerendering) is is destroyed in the destructor."
|
3289
|
-
},
|
3290
3290
|
"panels/application/components/Prerender2.ts | EmbedderTriggeredAndSameOriginRedirected": {
|
3291
3291
|
"message": "Prerendering triggered by Chrome internal (e.g., Omnibox prerendering) is canceled because the navigation is redirected to another same-origin page."
|
3292
3292
|
},
|
@@ -9725,6 +9725,9 @@
|
|
9725
9725
|
"panels/settings/SettingsScreen.ts | restoreDefaultsAndReload": {
|
9726
9726
|
"message": "Restore defaults and reload"
|
9727
9727
|
},
|
9728
|
+
"panels/settings/SettingsScreen.ts | sendFeedback": {
|
9729
|
+
"message": "Send feedback"
|
9730
|
+
},
|
9728
9731
|
"panels/settings/SettingsScreen.ts | settings": {
|
9729
9732
|
"message": "Settings"
|
9730
9733
|
},
|
@@ -9830,6 +9833,18 @@
|
|
9830
9833
|
"panels/sources/CallStackSidebarPane.ts | showMore": {
|
9831
9834
|
"message": "Show more"
|
9832
9835
|
},
|
9836
|
+
"panels/sources/components/BreakpointsView.ts | breakpointHit": {
|
9837
|
+
"message": "{PH1} breakpoint hit"
|
9838
|
+
},
|
9839
|
+
"panels/sources/components/BreakpointsView.ts | checked": {
|
9840
|
+
"message": "checked"
|
9841
|
+
},
|
9842
|
+
"panels/sources/components/BreakpointsView.ts | indeterminate": {
|
9843
|
+
"message": "mixed"
|
9844
|
+
},
|
9845
|
+
"panels/sources/components/BreakpointsView.ts | unchecked": {
|
9846
|
+
"message": "unchecked"
|
9847
|
+
},
|
9833
9848
|
"panels/sources/components/HeadersView.ts | addHeader": {
|
9834
9849
|
"message": "Add a header"
|
9835
9850
|
},
|
@@ -10460,9 +10475,6 @@
|
|
10460
10475
|
"panels/sources/sources-meta.ts | watch": {
|
10461
10476
|
"message": "Watch"
|
10462
10477
|
},
|
10463
|
-
"panels/sources/SourcesNavigator.ts | authoredDescription": {
|
10464
|
-
"message": "Group files by Authored/Deployed"
|
10465
|
-
},
|
10466
10478
|
"panels/sources/SourcesNavigator.ts | clearConfiguration": {
|
10467
10479
|
"message": "Clear configuration"
|
10468
10480
|
},
|
@@ -10541,6 +10553,9 @@
|
|
10541
10553
|
"panels/sources/SourcesPanel.ts | hideDebugger": {
|
10542
10554
|
"message": "Hide debugger"
|
10543
10555
|
},
|
10556
|
+
"panels/sources/SourcesPanel.ts | hideIgnoreListed": {
|
10557
|
+
"message": "Hide ignore-listed sources"
|
10558
|
+
},
|
10544
10559
|
"panels/sources/SourcesPanel.ts | hideNavigator": {
|
10545
10560
|
"message": "Hide navigator"
|
10546
10561
|
},
|
@@ -3272,6 +3272,9 @@
|
|
3272
3272
|
"panels/application/components/Prerender2.ts | CrossOriginRedirect": {
|
3273
3273
|
"message": "Ât́t̂ém̂ṕt̂éd̂ t́ô ṕr̂ér̂én̂d́êŕ â ÚR̂Ĺ ŵh́îćĥ ŕêd́îŕêćt̂éd̂ t́ô á ĉŕôśŝ-ór̂íĝín̂ ÚR̂Ĺ. Ĉúr̂ŕêńt̂ĺŷ ṕr̂ér̂én̂d́êŕîńĝ ćr̂óŝś-ôŕîǵîń p̂áĝéŝ íŝ d́îśâĺl̂óŵéd̂."
|
3274
3274
|
},
|
3275
|
+
"panels/application/components/Prerender2.ts | DataSaverEnabled": {
|
3276
|
+
"message": "D̂át̂á ŝáv̂ér̂ én̂áb̂ĺêd́"
|
3277
|
+
},
|
3275
3278
|
"panels/application/components/Prerender2.ts | Destroyed": {
|
3276
3279
|
"message": "Â ṕr̂ér̂én̂d́êŕêd́ p̂áĝé ŵáŝ áb̂án̂d́ôńêd́ f̂ór̂ ún̂ḱn̂óŵń r̂éâśôńŝ."
|
3277
3280
|
},
|
@@ -3284,9 +3287,6 @@
|
|
3284
3287
|
"panels/application/components/Prerender2.ts | EmbedderTriggeredAndCrossOriginRedirected": {
|
3285
3288
|
"message": "P̂ŕêŕêńd̂ér̂ín̂ǵ t̂ŕîǵĝér̂éd̂ b́ŷ Ćĥŕôḿê ín̂t́êŕn̂ál̂ (é.ĝ., Óm̂ńîb́ôx́ p̂ŕêŕêńd̂ér̂ín̂ǵ) îś îś ĉán̂ćêĺêd́ b̂éĉáûśê t́ĥé n̂áv̂íĝát̂íôń îś r̂éd̂ír̂éĉt́êd́ t̂ó âńôt́ĥér̂ ćr̂óŝś-ôŕîǵîń p̂áĝé."
|
3286
3289
|
},
|
3287
|
-
"panels/application/components/Prerender2.ts | EmbedderTriggeredAndDestroyed": {
|
3288
|
-
"message": "P̂ŕêŕêńd̂ér̂ín̂ǵ t̂ŕîǵĝér̂éd̂ b́ŷ Ćĥŕôḿê ín̂t́êŕn̂ál̂ (é.ĝ., Óm̂ńîb́ôx́ p̂ŕêŕêńd̂ér̂ín̂ǵ) îś îś d̂éŝt́r̂óŷéd̂ ín̂ t́ĥé d̂éŝt́r̂úĉt́ôŕ."
|
3289
|
-
},
|
3290
3290
|
"panels/application/components/Prerender2.ts | EmbedderTriggeredAndSameOriginRedirected": {
|
3291
3291
|
"message": "P̂ŕêŕêńd̂ér̂ín̂ǵ t̂ŕîǵĝér̂éd̂ b́ŷ Ćĥŕôḿê ín̂t́êŕn̂ál̂ (é.ĝ., Óm̂ńîb́ôx́ p̂ŕêŕêńd̂ér̂ín̂ǵ) îś ĉán̂ćêĺêd́ b̂éĉáûśê t́ĥé n̂áv̂íĝát̂íôń îś r̂éd̂ír̂éĉt́êd́ t̂ó âńôt́ĥér̂ śâḿê-ór̂íĝín̂ ṕâǵê."
|
3292
3292
|
},
|
@@ -9725,6 +9725,9 @@
|
|
9725
9725
|
"panels/settings/SettingsScreen.ts | restoreDefaultsAndReload": {
|
9726
9726
|
"message": "R̂éŝt́ôŕê d́êf́âúl̂t́ŝ án̂d́ r̂él̂óâd́"
|
9727
9727
|
},
|
9728
|
+
"panels/settings/SettingsScreen.ts | sendFeedback": {
|
9729
|
+
"message": "Ŝén̂d́ f̂éêd́b̂áĉḱ"
|
9730
|
+
},
|
9728
9731
|
"panels/settings/SettingsScreen.ts | settings": {
|
9729
9732
|
"message": "Ŝét̂t́îńĝś"
|
9730
9733
|
},
|
@@ -9830,6 +9833,18 @@
|
|
9830
9833
|
"panels/sources/CallStackSidebarPane.ts | showMore": {
|
9831
9834
|
"message": "Ŝh́ôẃ m̂ór̂é"
|
9832
9835
|
},
|
9836
|
+
"panels/sources/components/BreakpointsView.ts | breakpointHit": {
|
9837
|
+
"message": "{PH1} b̂ŕêák̂ṕôín̂t́ ĥít̂"
|
9838
|
+
},
|
9839
|
+
"panels/sources/components/BreakpointsView.ts | checked": {
|
9840
|
+
"message": "ĉh́êćk̂éd̂"
|
9841
|
+
},
|
9842
|
+
"panels/sources/components/BreakpointsView.ts | indeterminate": {
|
9843
|
+
"message": "m̂íx̂éd̂"
|
9844
|
+
},
|
9845
|
+
"panels/sources/components/BreakpointsView.ts | unchecked": {
|
9846
|
+
"message": "ûńĉh́êćk̂éd̂"
|
9847
|
+
},
|
9833
9848
|
"panels/sources/components/HeadersView.ts | addHeader": {
|
9834
9849
|
"message": "Âd́d̂ á ĥéâd́êŕ"
|
9835
9850
|
},
|
@@ -10460,9 +10475,6 @@
|
|
10460
10475
|
"panels/sources/sources-meta.ts | watch": {
|
10461
10476
|
"message": "Ŵát̂ćĥ"
|
10462
10477
|
},
|
10463
|
-
"panels/sources/SourcesNavigator.ts | authoredDescription": {
|
10464
|
-
"message": "Ĝŕôúp̂ f́îĺêś b̂ý Âút̂h́ôŕêd́/D̂ép̂ĺôýêd́"
|
10465
|
-
},
|
10466
10478
|
"panels/sources/SourcesNavigator.ts | clearConfiguration": {
|
10467
10479
|
"message": "Ĉĺêár̂ ćôńf̂íĝúr̂át̂íôń"
|
10468
10480
|
},
|
@@ -10541,6 +10553,9 @@
|
|
10541
10553
|
"panels/sources/SourcesPanel.ts | hideDebugger": {
|
10542
10554
|
"message": "Ĥíd̂é d̂éb̂úĝǵêŕ"
|
10543
10555
|
},
|
10556
|
+
"panels/sources/SourcesPanel.ts | hideIgnoreListed": {
|
10557
|
+
"message": "Ĥíd̂é îǵn̂ór̂é-l̂íŝt́êd́ ŝóûŕĉéŝ"
|
10558
|
+
},
|
10544
10559
|
"panels/sources/SourcesPanel.ts | hideNavigator": {
|
10545
10560
|
"message": "Ĥíd̂é n̂áv̂íĝát̂ór̂"
|
10546
10561
|
},
|
@@ -152,13 +152,16 @@ export class ExperimentsSupport {
|
|
152
152
|
self.localStorage['experiments'] = JSON.stringify(value);
|
153
153
|
}
|
154
154
|
|
155
|
-
register(
|
155
|
+
register(
|
156
|
+
experimentName: string, experimentTitle: string, unstable?: boolean, docLink?: string,
|
157
|
+
feedbackLink?: string): void {
|
156
158
|
Platform.DCHECK(
|
157
159
|
() => !this.#experimentNames.has(experimentName), 'Duplicate registration of experiment ' + experimentName);
|
158
160
|
this.#experimentNames.add(experimentName);
|
159
161
|
this.#experiments.push(new Experiment(
|
160
162
|
this, experimentName, experimentTitle, Boolean(unstable),
|
161
|
-
docLink as Platform.DevToolsPath.UrlString ?? Platform.DevToolsPath.EmptyUrlString
|
163
|
+
docLink as Platform.DevToolsPath.UrlString ?? Platform.DevToolsPath.EmptyUrlString,
|
164
|
+
feedbackLink as Platform.DevToolsPath.UrlString ?? Platform.DevToolsPath.EmptyUrlString));
|
162
165
|
}
|
163
166
|
|
164
167
|
isEnabled(experimentName: string): boolean {
|
@@ -257,14 +260,16 @@ export class Experiment {
|
|
257
260
|
title: string;
|
258
261
|
unstable: boolean;
|
259
262
|
docLink?: Platform.DevToolsPath.UrlString;
|
263
|
+
readonly feedbackLink?: Platform.DevToolsPath.UrlString;
|
260
264
|
readonly #experiments: ExperimentsSupport;
|
261
265
|
constructor(
|
262
266
|
experiments: ExperimentsSupport, name: string, title: string, unstable: boolean,
|
263
|
-
docLink: Platform.DevToolsPath.UrlString) {
|
267
|
+
docLink: Platform.DevToolsPath.UrlString, feedbackLink: Platform.DevToolsPath.UrlString) {
|
264
268
|
this.name = name;
|
265
269
|
this.title = title;
|
266
270
|
this.unstable = unstable;
|
267
271
|
this.docLink = docLink;
|
272
|
+
this.feedbackLink = feedbackLink;
|
268
273
|
this.#experiments = experiments;
|
269
274
|
}
|
270
275
|
|
@@ -184,7 +184,7 @@ export class CSSStyleDeclaration {
|
|
184
184
|
for (const shorthand of shorthands) {
|
185
185
|
if (propertiesSet.has(shorthand)) {
|
186
186
|
continue;
|
187
|
-
} // There already is a shorthand this #
|
187
|
+
} // There already is a shorthand this #longhand falls under.
|
188
188
|
const shorthandValue = this.#shorthandValues.get(shorthand);
|
189
189
|
if (!shorthandValue) {
|
190
190
|
continue;
|
@@ -141,7 +141,7 @@ export class NetworkManager extends SDKModel<EventTypes> {
|
|
141
141
|
constructor(target: Target) {
|
142
142
|
super(target);
|
143
143
|
this.dispatcher = new NetworkDispatcher(this);
|
144
|
-
this.fetchDispatcher = new FetchDispatcher(target.fetchAgent());
|
144
|
+
this.fetchDispatcher = new FetchDispatcher(target.fetchAgent(), this);
|
145
145
|
this.#networkAgent = target.networkAgent();
|
146
146
|
target.registerNetworkDispatcher(this.dispatcher);
|
147
147
|
target.registerFetchDispatcher(this.fetchDispatcher);
|
@@ -264,7 +264,7 @@ export class NetworkManager extends SDKModel<EventTypes> {
|
|
264
264
|
return this.dispatcher.requestForURL(url);
|
265
265
|
}
|
266
266
|
|
267
|
-
|
267
|
+
requestForId(id: string): NetworkRequest|null {
|
268
268
|
return this.dispatcher.requestForId(id);
|
269
269
|
}
|
270
270
|
|
@@ -392,15 +392,18 @@ const MAX_EAGER_POST_REQUEST_BODY_LENGTH = 64 * 1024; // bytes
|
|
392
392
|
|
393
393
|
export class FetchDispatcher implements ProtocolProxyApi.FetchDispatcher {
|
394
394
|
readonly #fetchAgent: ProtocolProxyApi.FetchApi;
|
395
|
+
readonly #manager: NetworkManager;
|
395
396
|
|
396
|
-
constructor(agent: ProtocolProxyApi.FetchApi) {
|
397
|
+
constructor(agent: ProtocolProxyApi.FetchApi, manager: NetworkManager) {
|
397
398
|
this.#fetchAgent = agent;
|
399
|
+
this.#manager = manager;
|
398
400
|
}
|
399
401
|
|
400
|
-
requestPaused({requestId, request, resourceType, responseStatusCode, responseHeaders}:
|
402
|
+
requestPaused({requestId, request, resourceType, responseStatusCode, responseHeaders, networkId}:
|
401
403
|
Protocol.Fetch.RequestPausedEvent): void {
|
404
|
+
const networkRequest = networkId ? this.#manager.requestForId(networkId) : null;
|
402
405
|
void MultitargetNetworkManager.instance().requestIntercepted(new InterceptedRequest(
|
403
|
-
this.#fetchAgent, request, resourceType, requestId, responseStatusCode, responseHeaders));
|
406
|
+
this.#fetchAgent, request, resourceType, requestId, networkRequest, responseStatusCode, responseHeaders));
|
404
407
|
}
|
405
408
|
|
406
409
|
authRequired({}: Protocol.Fetch.AuthRequiredEvent): void {
|
@@ -1549,12 +1552,14 @@ export class InterceptedRequest {
|
|
1549
1552
|
responseStatusCode: number|undefined;
|
1550
1553
|
responseHeaders: Protocol.Fetch.HeaderEntry[]|undefined;
|
1551
1554
|
requestId: Protocol.Fetch.RequestId;
|
1555
|
+
networkRequest: NetworkRequest|null;
|
1552
1556
|
|
1553
1557
|
constructor(
|
1554
1558
|
fetchAgent: ProtocolProxyApi.FetchApi,
|
1555
1559
|
request: Protocol.Network.Request,
|
1556
1560
|
resourceType: Protocol.Network.ResourceType,
|
1557
1561
|
requestId: Protocol.Fetch.RequestId,
|
1562
|
+
networkRequest: NetworkRequest|null,
|
1558
1563
|
responseStatusCode?: number,
|
1559
1564
|
responseHeaders?: Protocol.Fetch.HeaderEntry[],
|
1560
1565
|
) {
|
@@ -1565,6 +1570,17 @@ export class InterceptedRequest {
|
|
1565
1570
|
this.responseStatusCode = responseStatusCode;
|
1566
1571
|
this.responseHeaders = responseHeaders;
|
1567
1572
|
this.requestId = requestId;
|
1573
|
+
this.networkRequest = networkRequest;
|
1574
|
+
if (this.networkRequest && this.responseHeaders) {
|
1575
|
+
// This populates 'NetworkRequest.originalResponseHeaders' with the
|
1576
|
+
// response headers from CDP's 'Fetch.requestPaused'. Populating this
|
1577
|
+
// field together with 'NetworkRequest.responseHeaders' with the info
|
1578
|
+
// from 'Network.responseReceivedExtraInfo' would have been easier, but we
|
1579
|
+
// are not sure whether the response headers from the 2 CDP events are
|
1580
|
+
// always exactly the same.
|
1581
|
+
// Creates a deep copy.
|
1582
|
+
this.networkRequest.originalResponseHeaders = this.responseHeaders.map(headerEntry => ({...headerEntry}));
|
1583
|
+
}
|
1568
1584
|
}
|
1569
1585
|
|
1570
1586
|
hasResponded(): boolean {
|
@@ -236,6 +236,7 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
|
|
236
236
|
[x: string]: string|undefined,
|
237
237
|
};
|
238
238
|
#responseHeadersTextInternal: string;
|
239
|
+
#originalResponseHeaders: Protocol.Fetch.HeaderEntry[];
|
239
240
|
#requestHeadersInternal: NameValue[];
|
240
241
|
#requestHeaderValues: {
|
241
242
|
[x: string]: string|undefined,
|
@@ -336,6 +337,7 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
|
|
336
337
|
|
337
338
|
this.#responseHeaderValues = {};
|
338
339
|
this.#responseHeadersTextInternal = '';
|
340
|
+
this.#originalResponseHeaders = [];
|
339
341
|
|
340
342
|
this.#requestHeadersInternal = [];
|
341
343
|
this.#requestHeaderValues = {};
|
@@ -939,6 +941,14 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
|
|
939
941
|
this.dispatchEventToListeners(Events.ResponseHeadersChanged);
|
940
942
|
}
|
941
943
|
|
944
|
+
get originalResponseHeaders(): Protocol.Fetch.HeaderEntry[] {
|
945
|
+
return this.#originalResponseHeaders;
|
946
|
+
}
|
947
|
+
|
948
|
+
set originalResponseHeaders(headers: Protocol.Fetch.HeaderEntry[]) {
|
949
|
+
this.#originalResponseHeaders = headers;
|
950
|
+
}
|
951
|
+
|
942
952
|
get responseHeadersText(): string {
|
943
953
|
return this.#responseHeadersTextInternal;
|
944
954
|
}
|
@@ -341,7 +341,8 @@ export class MainImpl {
|
|
341
341
|
// Full Accessibility Tree
|
342
342
|
Root.Runtime.experiments.register(
|
343
343
|
'fullAccessibilityTree', 'Enable full accessibility tree view in the Elements panel', undefined,
|
344
|
-
'https://developer.chrome.com/blog/new-in-devtools-90/#accesibility-tree'
|
344
|
+
'https://developer.chrome.com/blog/new-in-devtools-90/#accesibility-tree',
|
345
|
+
'https://g.co/devtools/a11y-tree-feedback');
|
345
346
|
|
346
347
|
// Font Editor
|
347
348
|
Root.Runtime.experiments.register(
|
@@ -373,9 +374,8 @@ export class MainImpl {
|
|
373
374
|
|
374
375
|
// CSS <length> authoring tool.
|
375
376
|
Root.Runtime.experiments.register(
|
376
|
-
'cssTypeComponentLength',
|
377
|
-
'
|
378
|
-
'https://developer.chrome.com/blog/new-in-devtools-96/#length');
|
377
|
+
'cssTypeComponentLength', 'Enable CSS <length> authoring tool in the Styles pane', undefined,
|
378
|
+
'https://developer.chrome.com/blog/new-in-devtools-96/#length', 'https://g.co/devtools/length-feedback');
|
379
379
|
|
380
380
|
// Display precise changes in the Changes tab.
|
381
381
|
Root.Runtime.experiments.register(
|
@@ -407,7 +407,8 @@ export class MainImpl {
|
|
407
407
|
|
408
408
|
// Change grouping of sources panel to use Authored/Deployed trees
|
409
409
|
Root.Runtime.experiments.register(
|
410
|
-
Root.Runtime.ExperimentName.AUTHORED_DEPLOYED_GROUPING, 'Group sources into Authored and Deployed trees'
|
410
|
+
Root.Runtime.ExperimentName.AUTHORED_DEPLOYED_GROUPING, 'Group sources into Authored and Deployed trees',
|
411
|
+
undefined, 'https://goo.gle/authored-deployed', 'https://goo.gle/authored-deployed-feedback');
|
411
412
|
|
412
413
|
// Hide third party code (as determined by ignore lists or source maps)
|
413
414
|
Root.Runtime.experiments.register(
|
@@ -554,7 +554,7 @@ inspectorBackend.registerEnum("Page.AdFrameExplanation", {ParentIsAd: "ParentIsA
|
|
554
554
|
inspectorBackend.registerEnum("Page.SecureContextType", {Secure: "Secure", SecureLocalhost: "SecureLocalhost", InsecureScheme: "InsecureScheme", InsecureAncestor: "InsecureAncestor"});
|
555
555
|
inspectorBackend.registerEnum("Page.CrossOriginIsolatedContextType", {Isolated: "Isolated", NotIsolated: "NotIsolated", NotIsolatedFeatureDisabled: "NotIsolatedFeatureDisabled"});
|
556
556
|
inspectorBackend.registerEnum("Page.GatedAPIFeatures", {SharedArrayBuffers: "SharedArrayBuffers", SharedArrayBuffersTransferAllowed: "SharedArrayBuffersTransferAllowed", PerformanceMeasureMemory: "PerformanceMeasureMemory", PerformanceProfile: "PerformanceProfile"});
|
557
|
-
inspectorBackend.registerEnum("Page.PermissionsPolicyFeature", {Accelerometer: "accelerometer", AmbientLightSensor: "ambient-light-sensor", AttributionReporting: "attribution-reporting", Autoplay: "autoplay", Bluetooth: "bluetooth", BrowsingTopics: "browsing-topics", Camera: "camera", ChDpr: "ch-dpr", ChDeviceMemory: "ch-device-memory", ChDownlink: "ch-downlink", ChEct: "ch-ect", ChPrefersColorScheme: "ch-prefers-color-scheme", ChRtt: "ch-rtt", ChSaveData: "ch-save-data", ChUa: "ch-ua", ChUaArch: "ch-ua-arch", ChUaBitness: "ch-ua-bitness", ChUaPlatform: "ch-ua-platform", ChUaModel: "ch-ua-model", ChUaMobile: "ch-ua-mobile", ChUaFull: "ch-ua-full", ChUaFullVersion: "ch-ua-full-version", ChUaFullVersionList: "ch-ua-full-version-list", ChUaPlatformVersion: "ch-ua-platform-version", ChUaReduced: "ch-ua-reduced", ChUaWow64: "ch-ua-wow64", ChViewportHeight: "ch-viewport-height", ChViewportWidth: "ch-viewport-width", ChWidth: "ch-width", ClipboardRead: "clipboard-read", ClipboardWrite: "clipboard-write", CrossOriginIsolated: "cross-origin-isolated", DirectSockets: "direct-sockets", DisplayCapture: "display-capture", DocumentDomain: "document-domain", EncryptedMedia: "encrypted-media", ExecutionWhileOutOfViewport: "execution-while-out-of-viewport", ExecutionWhileNotRendered: "execution-while-not-rendered", FederatedCredentials: "federated-credentials", FocusWithoutUserActivation: "focus-without-user-activation", Fullscreen: "fullscreen", Frobulate: "frobulate", Gamepad: "gamepad", Geolocation: "geolocation", Gyroscope: "gyroscope", Hid: "hid", IdleDetection: "idle-detection", InterestCohort: "interest-cohort", JoinAdInterestGroup: "join-ad-interest-group", KeyboardMap: "keyboard-map", LocalFonts: "local-fonts", Magnetometer: "magnetometer", Microphone: "microphone", Midi: "midi", OtpCredentials: "otp-credentials", Payment: "payment", PictureInPicture: "picture-in-picture", PublickeyCredentialsGet: "publickey-credentials-get", RunAdAuction: "run-ad-auction", ScreenWakeLock: "screen-wake-lock", Serial: "serial", SharedAutofill: "shared-autofill", SharedStorage: "shared-storage", StorageAccessAPI: "storage-access-api", SyncXhr: "sync-xhr", TrustTokenRedemption: "trust-token-redemption", Usb: "usb", VerticalScroll: "vertical-scroll", WebShare: "web-share", WindowPlacement: "window-placement", XrSpatialTracking: "xr-spatial-tracking"});
|
557
|
+
inspectorBackend.registerEnum("Page.PermissionsPolicyFeature", {Accelerometer: "accelerometer", AmbientLightSensor: "ambient-light-sensor", AttributionReporting: "attribution-reporting", Autoplay: "autoplay", Bluetooth: "bluetooth", BrowsingTopics: "browsing-topics", Camera: "camera", ChDpr: "ch-dpr", ChDeviceMemory: "ch-device-memory", ChDownlink: "ch-downlink", ChEct: "ch-ect", ChPrefersColorScheme: "ch-prefers-color-scheme", ChRtt: "ch-rtt", ChSaveData: "ch-save-data", ChUa: "ch-ua", ChUaArch: "ch-ua-arch", ChUaBitness: "ch-ua-bitness", ChUaPlatform: "ch-ua-platform", ChUaModel: "ch-ua-model", ChUaMobile: "ch-ua-mobile", ChUaFull: "ch-ua-full", ChUaFullVersion: "ch-ua-full-version", ChUaFullVersionList: "ch-ua-full-version-list", ChUaPlatformVersion: "ch-ua-platform-version", ChUaReduced: "ch-ua-reduced", ChUaWow64: "ch-ua-wow64", ChViewportHeight: "ch-viewport-height", ChViewportWidth: "ch-viewport-width", ChWidth: "ch-width", ClipboardRead: "clipboard-read", ClipboardWrite: "clipboard-write", CrossOriginIsolated: "cross-origin-isolated", DirectSockets: "direct-sockets", DisplayCapture: "display-capture", DocumentDomain: "document-domain", EncryptedMedia: "encrypted-media", ExecutionWhileOutOfViewport: "execution-while-out-of-viewport", ExecutionWhileNotRendered: "execution-while-not-rendered", FederatedCredentials: "federated-credentials", FocusWithoutUserActivation: "focus-without-user-activation", Fullscreen: "fullscreen", Frobulate: "frobulate", Gamepad: "gamepad", Geolocation: "geolocation", Gyroscope: "gyroscope", Hid: "hid", IdleDetection: "idle-detection", InterestCohort: "interest-cohort", JoinAdInterestGroup: "join-ad-interest-group", KeyboardMap: "keyboard-map", LocalFonts: "local-fonts", Magnetometer: "magnetometer", Microphone: "microphone", Midi: "midi", OtpCredentials: "otp-credentials", Payment: "payment", PictureInPicture: "picture-in-picture", PublickeyCredentialsGet: "publickey-credentials-get", RunAdAuction: "run-ad-auction", ScreenWakeLock: "screen-wake-lock", Serial: "serial", SharedAutofill: "shared-autofill", SharedStorage: "shared-storage", StorageAccessAPI: "storage-access-api", SyncXhr: "sync-xhr", TrustTokenRedemption: "trust-token-redemption", Unload: "unload", Usb: "usb", VerticalScroll: "vertical-scroll", WebShare: "web-share", WindowPlacement: "window-placement", XrSpatialTracking: "xr-spatial-tracking"});
|
558
558
|
inspectorBackend.registerEnum("Page.PermissionsPolicyBlockReason", {Header: "Header", IframeAttribute: "IframeAttribute", InFencedFrameTree: "InFencedFrameTree", InIsolatedApp: "InIsolatedApp"});
|
559
559
|
inspectorBackend.registerEnum("Page.OriginTrialTokenStatus", {Success: "Success", NotSupported: "NotSupported", Insecure: "Insecure", Expired: "Expired", WrongOrigin: "WrongOrigin", InvalidSignature: "InvalidSignature", Malformed: "Malformed", WrongVersion: "WrongVersion", FeatureDisabled: "FeatureDisabled", TokenDisabled: "TokenDisabled", FeatureDisabledForUser: "FeatureDisabledForUser", UnknownTrial: "UnknownTrial"});
|
560
560
|
inspectorBackend.registerEnum("Page.OriginTrialStatus", {Enabled: "Enabled", ValidTokenNotProvided: "ValidTokenNotProvided", OSNotSupported: "OSNotSupported", TrialNotAllowed: "TrialNotAllowed"});
|
@@ -567,7 +567,7 @@ inspectorBackend.registerEnum("Page.ReferrerPolicy", {NoReferrer: "noReferrer",
|
|
567
567
|
inspectorBackend.registerEnum("Page.NavigationType", {Navigation: "Navigation", BackForwardCacheRestore: "BackForwardCacheRestore"});
|
568
568
|
inspectorBackend.registerEnum("Page.BackForwardCacheNotRestoredReason", {NotPrimaryMainFrame: "NotPrimaryMainFrame", BackForwardCacheDisabled: "BackForwardCacheDisabled", RelatedActiveContentsExist: "RelatedActiveContentsExist", HTTPStatusNotOK: "HTTPStatusNotOK", SchemeNotHTTPOrHTTPS: "SchemeNotHTTPOrHTTPS", Loading: "Loading", WasGrantedMediaAccess: "WasGrantedMediaAccess", DisableForRenderFrameHostCalled: "DisableForRenderFrameHostCalled", DomainNotAllowed: "DomainNotAllowed", HTTPMethodNotGET: "HTTPMethodNotGET", SubframeIsNavigating: "SubframeIsNavigating", Timeout: "Timeout", CacheLimit: "CacheLimit", JavaScriptExecution: "JavaScriptExecution", RendererProcessKilled: "RendererProcessKilled", RendererProcessCrashed: "RendererProcessCrashed", SchedulerTrackedFeatureUsed: "SchedulerTrackedFeatureUsed", ConflictingBrowsingInstance: "ConflictingBrowsingInstance", CacheFlushed: "CacheFlushed", ServiceWorkerVersionActivation: "ServiceWorkerVersionActivation", SessionRestored: "SessionRestored", ServiceWorkerPostMessage: "ServiceWorkerPostMessage", EnteredBackForwardCacheBeforeServiceWorkerHostAdded: "EnteredBackForwardCacheBeforeServiceWorkerHostAdded", RenderFrameHostReused_SameSite: "RenderFrameHostReused_SameSite", RenderFrameHostReused_CrossSite: "RenderFrameHostReused_CrossSite", ServiceWorkerClaim: "ServiceWorkerClaim", IgnoreEventAndEvict: "IgnoreEventAndEvict", HaveInnerContents: "HaveInnerContents", TimeoutPuttingInCache: "TimeoutPuttingInCache", BackForwardCacheDisabledByLowMemory: "BackForwardCacheDisabledByLowMemory", BackForwardCacheDisabledByCommandLine: "BackForwardCacheDisabledByCommandLine", NetworkRequestDatAPIpeDrainedAsBytesConsumer: "NetworkRequestDatapipeDrainedAsBytesConsumer", NetworkRequestRedirected: "NetworkRequestRedirected", NetworkRequestTimeout: "NetworkRequestTimeout", NetworkExceedsBufferLimit: "NetworkExceedsBufferLimit", NavigationCancelledWhileRestoring: "NavigationCancelledWhileRestoring", NotMostRecentNavigationEntry: "NotMostRecentNavigationEntry", BackForwardCacheDisabledForPrerender: "BackForwardCacheDisabledForPrerender", UserAgentOverrideDiffers: "UserAgentOverrideDiffers", ForegroundCacheLimit: "ForegroundCacheLimit", BrowsingInstanceNotSwapped: "BrowsingInstanceNotSwapped", BackForwardCacheDisabledForDelegate: "BackForwardCacheDisabledForDelegate", UnloadHandlerExistsInMainFrame: "UnloadHandlerExistsInMainFrame", UnloadHandlerExistsInSubFrame: "UnloadHandlerExistsInSubFrame", ServiceWorkerUnregistration: "ServiceWorkerUnregistration", CacheControlNoStore: "CacheControlNoStore", CacheControlNoStoreCookieModified: "CacheControlNoStoreCookieModified", CacheControlNoStoreHTTPOnlyCookieModified: "CacheControlNoStoreHTTPOnlyCookieModified", NoResponseHead: "NoResponseHead", Unknown: "Unknown", ActivationNavigationsDisallowedForBug1234857: "ActivationNavigationsDisallowedForBug1234857", ErrorDocument: "ErrorDocument", FencedFramesEmbedder: "FencedFramesEmbedder", WebSocket: "WebSocket", WebTransport: "WebTransport", WebRTC: "WebRTC", MainResourceHasCacheControlNoStore: "MainResourceHasCacheControlNoStore", MainResourceHasCacheControlNoCache: "MainResourceHasCacheControlNoCache", SubresourceHasCacheControlNoStore: "SubresourceHasCacheControlNoStore", SubresourceHasCacheControlNoCache: "SubresourceHasCacheControlNoCache", ContainsPlugins: "ContainsPlugins", DocumentLoaded: "DocumentLoaded", DedicatedWorkerOrWorklet: "DedicatedWorkerOrWorklet", OutstandingNetworkRequestOthers: "OutstandingNetworkRequestOthers", OutstandingIndexedDBTransaction: "OutstandingIndexedDBTransaction", RequestedNotificationsPermission: "RequestedNotificationsPermission", RequestedMIDIPermission: "RequestedMIDIPermission", RequestedAudioCapturePermission: "RequestedAudioCapturePermission", RequestedVideoCapturePermission: "RequestedVideoCapturePermission", RequestedBackForwardCacheBlockedSensors: "RequestedBackForwardCacheBlockedSensors", RequestedBackgroundWorkPermission: "RequestedBackgroundWorkPermission", BroadcastChannel: "BroadcastChannel", IndexedDBConnection: "IndexedDBConnection", WebXR: "WebXR", SharedWorker: "SharedWorker", WebLocks: "WebLocks", WebHID: "WebHID", WebShare: "WebShare", RequestedStorageAccessGrant: "RequestedStorageAccessGrant", WebNfc: "WebNfc", OutstandingNetworkRequestFetch: "OutstandingNetworkRequestFetch", OutstandingNetworkRequestXHR: "OutstandingNetworkRequestXHR", AppBanner: "AppBanner", Printing: "Printing", WebDatabase: "WebDatabase", PictureInPicture: "PictureInPicture", Portal: "Portal", SpeechRecognizer: "SpeechRecognizer", IdleManager: "IdleManager", PaymentManager: "PaymentManager", SpeechSynthesis: "SpeechSynthesis", KeyboardLock: "KeyboardLock", WebOTPService: "WebOTPService", OutstandingNetworkRequestDirectSocket: "OutstandingNetworkRequestDirectSocket", InjectedJavascript: "InjectedJavascript", InjectedStyleSheet: "InjectedStyleSheet", Dummy: "Dummy", ContentSecurityHandler: "ContentSecurityHandler", ContentWebAuthenticationAPI: "ContentWebAuthenticationAPI", ContentFileChooser: "ContentFileChooser", ContentSerial: "ContentSerial", ContentFileSystemAccess: "ContentFileSystemAccess", ContentMediaDevicesDispatcherHost: "ContentMediaDevicesDispatcherHost", ContentWebBluetooth: "ContentWebBluetooth", ContentWebUSB: "ContentWebUSB", ContentMediaSessionService: "ContentMediaSessionService", ContentScreenReader: "ContentScreenReader", EmbedderPopupBlockerTabHelper: "EmbedderPopupBlockerTabHelper", EmbedderSafeBrowsingTriggeredPopupBlocker: "EmbedderSafeBrowsingTriggeredPopupBlocker", EmbedderSafeBrowsingThreatDetails: "EmbedderSafeBrowsingThreatDetails", EmbedderAppBannerManager: "EmbedderAppBannerManager", EmbedderDomDistillerViewerSource: "EmbedderDomDistillerViewerSource", EmbedderDomDistillerSelfDeletingRequestDelegate: "EmbedderDomDistillerSelfDeletingRequestDelegate", EmbedderOomInterventionTabHelper: "EmbedderOomInterventionTabHelper", EmbedderOfflinePage: "EmbedderOfflinePage", EmbedderChromePasswordManagerClientBindCredentialManager: "EmbedderChromePasswordManagerClientBindCredentialManager", EmbedderPermissionRequestManager: "EmbedderPermissionRequestManager", EmbedderModalDialog: "EmbedderModalDialog", EmbedderExtensions: "EmbedderExtensions", EmbedderExtensionMessaging: "EmbedderExtensionMessaging", EmbedderExtensionMessagingForOpenPort: "EmbedderExtensionMessagingForOpenPort", EmbedderExtensionSentMessageToCachedFrame: "EmbedderExtensionSentMessageToCachedFrame"});
|
569
569
|
inspectorBackend.registerEnum("Page.BackForwardCacheNotRestoredReasonType", {SupportPending: "SupportPending", PageSupportNeeded: "PageSupportNeeded", Circumstantial: "Circumstantial"});
|
570
|
-
inspectorBackend.registerEnum("Page.PrerenderFinalStatus", {Activated: "Activated", Destroyed: "Destroyed", LowEndDevice: "LowEndDevice", CrossOriginRedirect: "CrossOriginRedirect", CrossOriginNavigation: "CrossOriginNavigation", InvalidSchemeRedirect: "InvalidSchemeRedirect", InvalidSchemeNavigation: "InvalidSchemeNavigation", InProgressNavigation: "InProgressNavigation", NavigationRequestBlockedByCsp: "NavigationRequestBlockedByCsp", MainFrameNavigation: "MainFrameNavigation", MojoBinderPolicy: "MojoBinderPolicy", RendererProcessCrashed: "RendererProcessCrashed", RendererProcessKilled: "RendererProcessKilled", Download: "Download", TriggerDestroyed: "TriggerDestroyed", NavigationNotCommitted: "NavigationNotCommitted", NavigationBadHttpStatus: "NavigationBadHttpStatus", ClientCertRequested: "ClientCertRequested", NavigationRequestNetworkError: "NavigationRequestNetworkError", MaxNumOfRunningPrerendersExceeded: "MaxNumOfRunningPrerendersExceeded", CancelAllHostsForTesting: "CancelAllHostsForTesting", DidFailLoad: "DidFailLoad", Stop: "Stop", SslCertificateError: "SslCertificateError", LoginAuthRequested: "LoginAuthRequested", UaChangeRequiresReload: "UaChangeRequiresReload", BlockedByClient: "BlockedByClient", AudioOutputDeviceRequested: "AudioOutputDeviceRequested", MixedContent: "MixedContent", TriggerBackgrounded: "TriggerBackgrounded", EmbedderTriggeredAndSameOriginRedirected: "EmbedderTriggeredAndSameOriginRedirected", EmbedderTriggeredAndCrossOriginRedirected: "EmbedderTriggeredAndCrossOriginRedirected",
|
570
|
+
inspectorBackend.registerEnum("Page.PrerenderFinalStatus", {Activated: "Activated", Destroyed: "Destroyed", LowEndDevice: "LowEndDevice", CrossOriginRedirect: "CrossOriginRedirect", CrossOriginNavigation: "CrossOriginNavigation", InvalidSchemeRedirect: "InvalidSchemeRedirect", InvalidSchemeNavigation: "InvalidSchemeNavigation", InProgressNavigation: "InProgressNavigation", NavigationRequestBlockedByCsp: "NavigationRequestBlockedByCsp", MainFrameNavigation: "MainFrameNavigation", MojoBinderPolicy: "MojoBinderPolicy", RendererProcessCrashed: "RendererProcessCrashed", RendererProcessKilled: "RendererProcessKilled", Download: "Download", TriggerDestroyed: "TriggerDestroyed", NavigationNotCommitted: "NavigationNotCommitted", NavigationBadHttpStatus: "NavigationBadHttpStatus", ClientCertRequested: "ClientCertRequested", NavigationRequestNetworkError: "NavigationRequestNetworkError", MaxNumOfRunningPrerendersExceeded: "MaxNumOfRunningPrerendersExceeded", CancelAllHostsForTesting: "CancelAllHostsForTesting", DidFailLoad: "DidFailLoad", Stop: "Stop", SslCertificateError: "SslCertificateError", LoginAuthRequested: "LoginAuthRequested", UaChangeRequiresReload: "UaChangeRequiresReload", BlockedByClient: "BlockedByClient", AudioOutputDeviceRequested: "AudioOutputDeviceRequested", MixedContent: "MixedContent", TriggerBackgrounded: "TriggerBackgrounded", EmbedderTriggeredAndSameOriginRedirected: "EmbedderTriggeredAndSameOriginRedirected", EmbedderTriggeredAndCrossOriginRedirected: "EmbedderTriggeredAndCrossOriginRedirected", MemoryLimitExceeded: "MemoryLimitExceeded", FailToGetMemoryUsage: "FailToGetMemoryUsage", DataSaverEnabled: "DataSaverEnabled"});
|
571
571
|
inspectorBackend.registerEvent("Page.domContentEventFired", ["timestamp"]);
|
572
572
|
inspectorBackend.registerEnum("Page.FileChooserOpenedEventMode", {SelectSingle: "selectSingle", SelectMultiple: "selectMultiple"});
|
573
573
|
inspectorBackend.registerEvent("Page.fileChooserOpened", ["frameId", "mode", "backendNodeId"]);
|
@@ -90,10 +90,6 @@ export const generatedProperties = [
|
|
90
90
|
"inherited": true,
|
91
91
|
"name": "-webkit-highlight"
|
92
92
|
},
|
93
|
-
{
|
94
|
-
"inherited": true,
|
95
|
-
"name": "-webkit-hyphenate-character"
|
96
|
-
},
|
97
93
|
{
|
98
94
|
"inherited": true,
|
99
95
|
"keywords": [
|
@@ -1912,6 +1908,10 @@ export const generatedProperties = [
|
|
1912
1908
|
],
|
1913
1909
|
"name": "height"
|
1914
1910
|
},
|
1911
|
+
{
|
1912
|
+
"inherited": true,
|
1913
|
+
"name": "hyphenate-character"
|
1914
|
+
},
|
1915
1915
|
{
|
1916
1916
|
"inherited": true,
|
1917
1917
|
"keywords": [
|
@@ -5591,6 +5591,10 @@ export const generatedAliasesFor = new Map([
|
|
5591
5591
|
"-webkit-font-feature-settings",
|
5592
5592
|
"font-feature-settings"
|
5593
5593
|
],
|
5594
|
+
[
|
5595
|
+
"-webkit-hyphenate-character",
|
5596
|
+
"hyphenate-character"
|
5597
|
+
],
|
5594
5598
|
[
|
5595
5599
|
"-webkit-justify-content",
|
5596
5600
|
"justify-content"
|
@@ -2135,6 +2135,11 @@ export namespace CSS {
|
|
2135
2135
|
* The entire property range in the enclosing style declaration (if available).
|
2136
2136
|
*/
|
2137
2137
|
range?: SourceRange;
|
2138
|
+
/**
|
2139
|
+
* Parsed longhand components of this property if it is a shorthand.
|
2140
|
+
* This field will be empty if the given property is not a shorthand.
|
2141
|
+
*/
|
2142
|
+
longhandProperties?: CSSProperty[];
|
2138
2143
|
}
|
2139
2144
|
|
2140
2145
|
export const enum CSSMediaSource {
|
@@ -10377,6 +10382,7 @@ export namespace Page {
|
|
10377
10382
|
StorageAccessAPI = 'storage-access-api',
|
10378
10383
|
SyncXhr = 'sync-xhr',
|
10379
10384
|
TrustTokenRedemption = 'trust-token-redemption',
|
10385
|
+
Unload = 'unload',
|
10380
10386
|
Usb = 'usb',
|
10381
10387
|
VerticalScroll = 'vertical-scroll',
|
10382
10388
|
WebShare = 'web-share',
|
@@ -11154,9 +11160,9 @@ export namespace Page {
|
|
11154
11160
|
TriggerBackgrounded = 'TriggerBackgrounded',
|
11155
11161
|
EmbedderTriggeredAndSameOriginRedirected = 'EmbedderTriggeredAndSameOriginRedirected',
|
11156
11162
|
EmbedderTriggeredAndCrossOriginRedirected = 'EmbedderTriggeredAndCrossOriginRedirected',
|
11157
|
-
EmbedderTriggeredAndDestroyed = 'EmbedderTriggeredAndDestroyed',
|
11158
11163
|
MemoryLimitExceeded = 'MemoryLimitExceeded',
|
11159
11164
|
FailToGetMemoryUsage = 'FailToGetMemoryUsage',
|
11165
|
+
DataSaverEnabled = 'DataSaverEnabled',
|
11160
11166
|
}
|
11161
11167
|
|
11162
11168
|
export interface AddScriptToEvaluateOnLoadRequest {
|
@@ -622,19 +622,27 @@ export class NetworkPersistenceManager extends Common.ObjectWrapper.ObjectWrappe
|
|
622
622
|
}
|
623
623
|
}
|
624
624
|
|
625
|
-
mergeHeaders(baseHeaders: Protocol.Fetch.HeaderEntry[], overrideHeaders: Protocol.
|
625
|
+
mergeHeaders(baseHeaders: Protocol.Fetch.HeaderEntry[], overrideHeaders: Protocol.Fetch.HeaderEntry[]):
|
626
626
|
Protocol.Fetch.HeaderEntry[] {
|
627
|
-
const
|
628
|
-
const
|
629
|
-
|
630
|
-
headerMap.set(header.name, header.value);
|
627
|
+
const headerMap = new Platform.MapUtilities.Multimap<string, string>();
|
628
|
+
for (const {name, value} of overrideHeaders) {
|
629
|
+
headerMap.set(name.toLowerCase(), value);
|
631
630
|
}
|
632
|
-
|
633
|
-
|
631
|
+
|
632
|
+
const overriddenHeaderNames = new Set(headerMap.keysArray());
|
633
|
+
for (const {name, value} of baseHeaders) {
|
634
|
+
const lowerCaseName = name.toLowerCase();
|
635
|
+
if (!overriddenHeaderNames.has(lowerCaseName)) {
|
636
|
+
headerMap.set(lowerCaseName, value);
|
637
|
+
}
|
638
|
+
}
|
639
|
+
|
640
|
+
const result: Protocol.Fetch.HeaderEntry[] = [];
|
641
|
+
for (const headerName of headerMap.keysArray()) {
|
642
|
+
for (const headerValue of headerMap.get(headerName)) {
|
643
|
+
result.push({name: headerName, value: headerValue});
|
644
|
+
}
|
634
645
|
}
|
635
|
-
headerMap.forEach((headerValue, headerName) => {
|
636
|
-
result.push({name: headerName, value: headerValue});
|
637
|
-
});
|
638
646
|
return result;
|
639
647
|
}
|
640
648
|
|
@@ -766,20 +774,23 @@ export type EventTypes = {
|
|
766
774
|
|
767
775
|
export interface HeaderOverride {
|
768
776
|
applyTo: string;
|
769
|
-
headers: Protocol.
|
777
|
+
headers: Protocol.Fetch.HeaderEntry[];
|
770
778
|
}
|
771
779
|
|
772
780
|
interface HeaderOverrideWithRegex {
|
773
781
|
applyToRegex: RegExp;
|
774
|
-
headers: Protocol.
|
782
|
+
headers: Protocol.Fetch.HeaderEntry[];
|
775
783
|
}
|
776
784
|
|
777
785
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
778
786
|
export function isHeaderOverride(arg: any): arg is HeaderOverride {
|
779
|
-
if (!(arg && arg.applyTo && typeof
|
787
|
+
if (!(arg && arg.applyTo && typeof arg.applyTo === 'string' && arg.headers && arg.headers.length &&
|
788
|
+
Array.isArray(arg.headers))) {
|
780
789
|
return false;
|
781
790
|
}
|
782
|
-
return
|
791
|
+
return arg.headers.every(
|
792
|
+
(header: Protocol.Fetch.HeaderEntry) =>
|
793
|
+
header.name && typeof header.name === 'string' && header.value && typeof header.value === 'string');
|
783
794
|
}
|
784
795
|
|
785
796
|
export function escapeRegex(pattern: string): string {
|
@@ -139,12 +139,6 @@ const UIStrings = {
|
|
139
139
|
*/
|
140
140
|
EmbedderTriggeredAndCrossOriginRedirected:
|
141
141
|
'Prerendering triggered by Chrome internal (e.g., Omnibox prerendering) is is canceled because the navigation is redirected to another cross-origin page.',
|
142
|
-
/**
|
143
|
-
*@description Description text for Prerender2 cancellation status EmbedderTriggeredAndDestroyed.
|
144
|
-
*/
|
145
|
-
EmbedderTriggeredAndDestroyed:
|
146
|
-
'Prerendering triggered by Chrome internal (e.g., Omnibox prerendering) is is destroyed in the destructor.',
|
147
|
-
|
148
142
|
/**
|
149
143
|
*@description Description text for Prerender2 cancellation status MemoryLimitExceeded.
|
150
144
|
*/
|
@@ -154,6 +148,10 @@ const UIStrings = {
|
|
154
148
|
*@description Description text for Prerender2 cancellation status FailToGetMemoryUsage.
|
155
149
|
*/
|
156
150
|
FailToGetMemoryUsage: 'Fail to get memory usage',
|
151
|
+
/**
|
152
|
+
*@description Description text for Prerender2 cancellation status DataSaverEnabled.
|
153
|
+
*/
|
154
|
+
DataSaverEnabled: 'Data saver enabled',
|
157
155
|
};
|
158
156
|
|
159
157
|
const str_ = i18n.i18n.registerUIStrings('panels/application/components/Prerender2.ts', UIStrings);
|
@@ -194,7 +192,7 @@ export const Prerender2ReasonDescription = {
|
|
194
192
|
{name: i18nLazyString(UIStrings.EmbedderTriggeredAndSameOriginRedirected)},
|
195
193
|
'EmbedderTriggeredAndCrossOriginRedirected':
|
196
194
|
{name: i18nLazyString(UIStrings.EmbedderTriggeredAndCrossOriginRedirected)},
|
197
|
-
'EmbedderTriggeredAndDestroyed': {name: i18nLazyString(UIStrings.EmbedderTriggeredAndDestroyed)},
|
198
195
|
'MemoryLimitExceeded': {name: i18nLazyString(UIStrings.MemoryLimitExceeded)},
|
199
196
|
'FailToGetMemoryUsage': {name: i18nLazyString(UIStrings.FailToGetMemoryUsage)},
|
197
|
+
'DataSaverEnabled': {name: i18nLazyString(UIStrings.DataSaverEnabled)},
|
200
198
|
};
|
@@ -142,7 +142,7 @@ export class AlignContentValidator extends CSSRuleValidator {
|
|
142
142
|
if (this.#isRuleValid(computedStyles)) {
|
143
143
|
return;
|
144
144
|
}
|
145
|
-
const reasonPropertyDeclaration =
|
145
|
+
const reasonPropertyDeclaration = buildPropertyDefinitionText('flex-wrap', 'nowrap');
|
146
146
|
const affectedPropertyDeclarationCode = buildPropertyText('align-content');
|
147
147
|
|
148
148
|
return new Hint(
|
@@ -1189,7 +1189,7 @@ export class ElementsTreeOutline extends
|
|
1189
1189
|
}
|
1190
1190
|
const container = new TopLayerContainer(parent.treeOutline, domModel);
|
1191
1191
|
await container.throttledUpdateTopLayerElements();
|
1192
|
-
if (container.
|
1192
|
+
if (container.currentTopLayerDOMNodes.size > 0) {
|
1193
1193
|
parent.appendChild(container);
|
1194
1194
|
}
|
1195
1195
|
this.#topLayerContainerByParent.set(parent, container);
|
@@ -1460,10 +1460,10 @@ export class ElementsTreeOutline extends
|
|
1460
1460
|
private async topLayerElementsChanged(): Promise<void> {
|
1461
1461
|
for (const [parent, container] of this.#topLayerContainerByParent) {
|
1462
1462
|
await container.throttledUpdateTopLayerElements();
|
1463
|
-
if (container.
|
1463
|
+
if (container.currentTopLayerDOMNodes.size > 0 && container.parent !== parent) {
|
1464
1464
|
parent.appendChild(container);
|
1465
1465
|
}
|
1466
|
-
container.hidden = container.
|
1466
|
+
container.hidden = container.currentTopLayerDOMNodes.size === 0;
|
1467
1467
|
}
|
1468
1468
|
}
|
1469
1469
|
|