chrome-devtools-frontend 1.0.969882 → 1.0.971140

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.
Files changed (70) hide show
  1. package/config/gni/devtools_grd_files.gni +3 -0
  2. package/config/gni/devtools_image_files.gni +1 -0
  3. package/front_end/Images/src/ic_changes.svg +5 -0
  4. package/front_end/core/common/ParsedURL.ts +27 -4
  5. package/front_end/core/host/UserMetrics.ts +3 -1
  6. package/front_end/core/i18n/locales/en-US.json +21 -3
  7. package/front_end/core/i18n/locales/en-XL.json +21 -3
  8. package/front_end/core/platform/UserVisibleError.ts +28 -0
  9. package/front_end/core/platform/platform.ts +2 -0
  10. package/front_end/core/sdk/ChildTargetManager.ts +0 -1
  11. package/front_end/core/sdk/DebuggerModel.ts +4 -0
  12. package/front_end/core/sdk/NetworkManager.ts +15 -1
  13. package/front_end/core/sdk/NetworkRequest.ts +11 -0
  14. package/front_end/entrypoints/lighthouse_worker/LighthouseService.ts +15 -6
  15. package/front_end/entrypoints/main/MainImpl.ts +3 -0
  16. package/front_end/models/bindings/CSSWorkspaceBinding.ts +21 -0
  17. package/front_end/models/persistence/Automapping.ts +3 -33
  18. package/front_end/models/persistence/FileSystemWorkspaceBinding.ts +11 -9
  19. package/front_end/models/persistence/IsolatedFileSystem.ts +20 -14
  20. package/front_end/models/persistence/NetworkPersistenceManager.ts +8 -4
  21. package/front_end/models/persistence/PlatformFileSystem.ts +3 -2
  22. package/front_end/models/workspace/UISourceCode.ts +11 -14
  23. package/front_end/models/workspace/WorkspaceImpl.ts +5 -1
  24. package/front_end/panels/animation/animationTimeline.css +0 -3
  25. package/front_end/panels/application/components/trustTokensViewDeleteButton.css +0 -1
  26. package/front_end/panels/browser_debugger/categorizedBreakpointsSidebarPane.css +0 -1
  27. package/front_end/panels/console/consolePinPane.css +0 -17
  28. package/front_end/panels/css_overview/cssOverviewCompletedView.css +0 -1
  29. package/front_end/panels/elements/ElementsPanel.ts +25 -11
  30. package/front_end/panels/elements/StylesSidebarPane.ts +198 -23
  31. package/front_end/panels/elements/components/adornerSettingsPane.css +0 -1
  32. package/front_end/panels/elements/components/computedStyleTrace.css +1 -1
  33. package/front_end/panels/elements/components/elementsBreadcrumbs.css +0 -1
  34. package/front_end/panels/elements/computedStyleWidgetTree.css +2 -2
  35. package/front_end/panels/elements/elementsTreeOutline.css +0 -3
  36. package/front_end/panels/emulation/deviceModeView.css +0 -1
  37. package/front_end/panels/event_listeners/eventListenersView.css +0 -1
  38. package/front_end/panels/issues/components/hideIssuesMenu.css +0 -1
  39. package/front_end/panels/lighthouse/LighthouseController.ts +30 -0
  40. package/front_end/panels/lighthouse/LighthousePanel.ts +7 -1
  41. package/front_end/panels/lighthouse/LighthouseProtocolService.ts +6 -1
  42. package/front_end/panels/lighthouse/LighthouseStartView.ts +2 -2
  43. package/front_end/panels/lighthouse/LighthouseStartViewFR.ts +39 -0
  44. package/front_end/panels/media/playerListView.css +0 -1
  45. package/front_end/panels/network/networkLogView.css +0 -4
  46. package/front_end/panels/network/requestPayloadTree.css +0 -2
  47. package/front_end/panels/network/signedExchangeInfoTree.css +0 -1
  48. package/front_end/panels/sensors/sensors.css +0 -1
  49. package/front_end/panels/settings/emulation/components/userAgentClientHintsForm.css +0 -4
  50. package/front_end/panels/settings/emulation/devicesSettingsTab.css +0 -1
  51. package/front_end/panels/snippets/ScriptSnippetFileSystem.ts +4 -4
  52. package/front_end/panels/snippets/SnippetsQuickOpen.ts +1 -1
  53. package/front_end/panels/sources/NavigatorView.ts +9 -5
  54. package/front_end/panels/sources/TabbedEditorContainer.ts +9 -0
  55. package/front_end/panels/sources/sources-legacy.ts +0 -13
  56. package/front_end/panels/sources/sourcesView.css +0 -4
  57. package/front_end/panels/sources/watchExpressionsSidebarPane.css +0 -1
  58. package/front_end/panels/webauthn/webauthnPane.css +0 -12
  59. package/front_end/third_party/codemirror/package/addon/fold/foldgutter.css +1 -5
  60. package/front_end/ui/components/adorners/adorner.css +0 -4
  61. package/front_end/ui/components/buttons/button.css +0 -4
  62. package/front_end/ui/components/data_grid/dataGrid.css +0 -4
  63. package/front_end/ui/components/icon_button/iconButton.css +0 -1
  64. package/front_end/ui/legacy/TabbedPane.ts +1 -1
  65. package/front_end/ui/legacy/closeButton.css +0 -1
  66. package/front_end/ui/legacy/tabbedPane.css +0 -7
  67. package/front_end/ui/legacy/textButton.css +0 -1
  68. package/front_end/ui/legacy/toolbar.css +28 -4
  69. package/package.json +1 -1
  70. package/scripts/npm_test.js +1 -1
@@ -428,9 +428,12 @@ export class NavigatorView extends UI.Widget.VBox implements SDK.TargetManager.O
428
428
  const isFromSourceMap = uiSourceCode.contentType().isFromSourceMap();
429
429
  let path;
430
430
  if (uiSourceCode.project().type() === Workspace.Workspace.projectTypes.FileSystem) {
431
- path = Persistence.FileSystemWorkspaceBinding.FileSystemWorkspaceBinding.relativePath(uiSourceCode).slice(0, -1);
431
+ path =
432
+ Persistence.FileSystemWorkspaceBinding.FileSystemWorkspaceBinding.relativePath(uiSourceCode).slice(0, -1) as
433
+ Platform.DevToolsPath.EncodedPathString[];
432
434
  } else {
433
- path = Common.ParsedURL.ParsedURL.extractPath(uiSourceCode.url()).split('/').slice(1, -1);
435
+ path = Common.ParsedURL.ParsedURL.extractPath(uiSourceCode.url()).split('/').slice(1, -1) as
436
+ Platform.DevToolsPath.EncodedPathString[];
434
437
  }
435
438
 
436
439
  const project = uiSourceCode.project();
@@ -503,7 +506,8 @@ export class NavigatorView extends UI.Widget.VBox implements SDK.TargetManager.O
503
506
  const commonPrefix = reversedIndex.longestPrefix(reversedPath, false /* fullWordOnly */);
504
507
  reversedIndex.add(reversedPath);
505
508
  const prefixPath = reversedPath.substring(0, commonPrefix.length + 1);
506
- const path = encoder.decode(Platform.StringUtilities.reverse(prefixPath));
509
+ const path = Common.ParsedURL.ParsedURL.encodedPathToRawPathString(
510
+ encoder.decode(Platform.StringUtilities.reverse(prefixPath)) as Platform.DevToolsPath.EncodedPathString);
507
511
 
508
512
  const fileSystemNode = this.rootNode.child(project.id());
509
513
  if (fileSystemNode) {
@@ -539,7 +543,7 @@ export class NavigatorView extends UI.Widget.VBox implements SDK.TargetManager.O
539
543
  private folderNode(
540
544
  uiSourceCode: Workspace.UISourceCode.UISourceCode, project: Workspace.Workspace.Project,
541
545
  target: SDK.Target.Target|null, frame: SDK.ResourceTreeModel.ResourceTreeFrame|null, projectOrigin: string,
542
- path: string[], fromSourceMap: boolean): NavigatorTreeNode {
546
+ path: Platform.DevToolsPath.EncodedPathString[], fromSourceMap: boolean): NavigatorTreeNode {
543
547
  if (Snippets.ScriptSnippetFileSystem.isSnippetsUISourceCode(uiSourceCode)) {
544
548
  return this.rootNode;
545
549
  }
@@ -568,7 +572,7 @@ export class NavigatorView extends UI.Widget.VBox implements SDK.TargetManager.O
568
572
  if (project.type() === Workspace.Workspace.projectTypes.FileSystem) {
569
573
  type = Types.FileSystemFolder;
570
574
  }
571
- const name = path[path.length - 1];
575
+ const name = Common.ParsedURL.ParsedURL.encodedPathToRawPathString(path[path.length - 1]);
572
576
 
573
577
  folderNode = new NavigatorFolderTreeNode(this, project, folderId, type, folderPath, name);
574
578
  this.subfolderNodes.set(folderId, folderNode);
@@ -584,6 +584,15 @@ export class TabbedEditorContainer extends Common.ObjectWrapper.ObjectWrapper<Ev
584
584
  const uiSourceCode = event.data;
585
585
  this.updateFileTitle(uiSourceCode);
586
586
  this.updateHistory();
587
+
588
+ // Remove from map under old url if it has changed.
589
+ for (const [k, v] of this.uriToUISourceCode) {
590
+ if (v === uiSourceCode && k !== v.url()) {
591
+ this.uriToUISourceCode.delete(k);
592
+ }
593
+ }
594
+ // Ensure it is mapped under current url.
595
+ this.canonicalUISourceCode(uiSourceCode);
587
596
  }
588
597
 
589
598
  private uiSourceCodeWorkingCopyChanged(
@@ -139,26 +139,13 @@ Sources.SnippetsPlugin = SourcesModule.SnippetsPlugin.SnippetsPlugin;
139
139
 
140
140
  Sources.SourceMapNamesResolver = {};
141
141
 
142
- Sources.SourceMapNamesResolver.setScopeResolvedForTest = SourcesModule.SourceMapNamesResolver.setScopeResolvedForTest;
143
-
144
142
  // Tests can override this global symbol and therefore can't be exported
145
143
  Object.defineProperty(Sources.SourceMapNamesResolver, '_scopeResolvedForTest', {
146
144
  get: SourcesModule.SourceMapNamesResolver.getScopeResolvedForTest,
147
145
  set: SourcesModule.SourceMapNamesResolver.setScopeResolvedForTest,
148
146
  });
149
147
 
150
- Sources.SourceMapNamesResolver._scopeIdentifiers = SourcesModule.SourceMapNamesResolver.scopeIdentifiers;
151
- Sources.SourceMapNamesResolver._resolveScope = SourcesModule.SourceMapNamesResolver.resolveScope;
152
- Sources.SourceMapNamesResolver._allVariablesInCallFrame = SourcesModule.SourceMapNamesResolver.allVariablesInCallFrame;
153
148
  Sources.SourceMapNamesResolver.resolveExpression = SourcesModule.SourceMapNamesResolver.resolveExpression;
154
- Sources.SourceMapNamesResolver.resolveThisObject = SourcesModule.SourceMapNamesResolver.resolveThisObject;
155
- Sources.SourceMapNamesResolver.resolveScopeInObject = SourcesModule.SourceMapNamesResolver.resolveScopeInObject;
156
-
157
- /** @constructor */
158
- Sources.SourceMapNamesResolver.Identifier = SourcesModule.SourceMapNamesResolver.Identifier;
159
-
160
- /** @constructor */
161
- Sources.SourceMapNamesResolver.RemoteObject = SourcesModule.SourceMapNamesResolver.RemoteObject;
162
149
 
163
150
  /** @constructor */
164
151
  Sources.NetworkNavigatorView = SourcesModule.SourcesNavigator.NetworkNavigatorView;
@@ -45,10 +45,6 @@
45
45
  z-index: 0;
46
46
  }
47
47
 
48
- .sources-toolbar .toolbar {
49
- cursor: default;
50
- }
51
-
52
48
  .source-frame-debugger-script {
53
49
  --override-debugger-background-tint: rgb(255 255 194 / 50%);
54
50
 
@@ -7,7 +7,6 @@
7
7
  .watch-expression-delete-button {
8
8
  position: absolute;
9
9
  top: 5px;
10
- cursor: pointer;
11
10
  opacity: 0%;
12
11
  }
13
12
 
@@ -120,18 +120,6 @@
120
120
  padding: 5px 10px 0 0;
121
121
  }
122
122
 
123
- .text-button {
124
- float: right;
125
- white-space: nowrap;
126
- overflow: hidden;
127
- min-width: 28px;
128
- background: transparent;
129
- border: none;
130
- color: var(--color-link);
131
- text-decoration: underline;
132
- cursor: pointer;
133
- }
134
-
135
123
  td .text-button {
136
124
  min-width: 20px;
137
125
  margin: auto;
@@ -3,15 +3,11 @@
3
3
  text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px;
4
4
  font-family: arial;
5
5
  line-height: .3;
6
- cursor: pointer;
7
6
  }
8
7
  .CodeMirror-foldgutter {
9
8
  width: .7em;
10
9
  }
11
- .CodeMirror-foldgutter-open,
12
- .CodeMirror-foldgutter-folded {
13
- cursor: pointer;
14
- }
10
+
15
11
  .CodeMirror-foldgutter-open:after {
16
12
  content: "\25BE";
17
13
  }
@@ -12,10 +12,6 @@
12
12
  display: none;
13
13
  }
14
14
 
15
- :host(.clickable) {
16
- cursor: pointer;
17
- }
18
-
19
15
  slot {
20
16
  display: inline-flex;
21
17
  box-sizing: border-box;
@@ -49,10 +49,6 @@ button:focus-visible {
49
49
  box-shadow: 0 0 0 2px var(--color-button-outline-focus);
50
50
  }
51
51
 
52
- button:hover {
53
- cursor: pointer;
54
- }
55
-
56
52
  button.toolbar {
57
53
  background: transparent;
58
54
  border-radius: 2px;
@@ -115,10 +115,6 @@ th.firstVisibleColumn {
115
115
  padding: 1px;
116
116
  }
117
117
 
118
- [aria-sort]:hover {
119
- cursor: pointer;
120
- }
121
-
122
118
  [aria-sort="descending"]::after {
123
119
  content: "";
124
120
  width: 0;
@@ -21,7 +21,6 @@
21
21
  }
22
22
 
23
23
  .icon-button.with-click-handler {
24
- cursor: pointer;
25
24
  border: 1px solid var(--color-details-hairline);
26
25
  border-radius: 2px;
27
26
  }
@@ -1144,7 +1144,7 @@ export class TabbedPaneTab {
1144
1144
  if (this.tabbedPane.allowTabReorder) {
1145
1145
  installDragHandle(
1146
1146
  tabElement, this.startTabDragging.bind(this), this.tabDragging.bind(this), this.endTabDragging.bind(this),
1147
- '-webkit-grabbing', 'pointer', 200);
1147
+ null, null, 200);
1148
1148
  }
1149
1149
  }
1150
1150
 
@@ -7,7 +7,6 @@
7
7
  .close-button {
8
8
  width: 14px;
9
9
  height: 14px;
10
- cursor: default;
11
10
  display: flex;
12
11
  align-items: center;
13
12
  justify-content: center;
@@ -117,7 +117,6 @@
117
117
  height: 26px;
118
118
  line-height: 16px;
119
119
  white-space: nowrap;
120
- cursor: default;
121
120
  display: flex;
122
121
  align-items: center;
123
122
  color: var(--color-text-secondary);
@@ -194,7 +193,6 @@
194
193
  .tabbed-pane-header-tabs-drop-down-container {
195
194
  float: left;
196
195
  opacity: 80%;
197
- cursor: pointer;
198
196
  display: flex;
199
197
  align-items: center;
200
198
  height: 100%;
@@ -269,10 +267,6 @@
269
267
  align-items: center;
270
268
  }
271
269
 
272
- .tabbed-pane-shadow.vertical-tab-layout .tabbed-pane-header-tab:not(.selected) {
273
- cursor: pointer !important; /* stylelint-disable-line declaration-no-important */
274
- }
275
-
276
270
  /* stylelint-disable no-descending-specificity */
277
271
  .tabbed-pane-shadow.vertical-tab-layout .tabbed-pane-header-tab.selected {
278
272
  --override-vertical-tab-selected-border-color: #666;
@@ -351,7 +345,6 @@
351
345
 
352
346
  width: 14px;
353
347
  height: 14px;
354
- cursor: default;
355
348
  display: flex;
356
349
  align-items: center;
357
350
  justify-content: center;
@@ -27,7 +27,6 @@
27
27
  .text-button:not(:disabled):active {
28
28
  background-color: var(--color-background-elevation-1);
29
29
  box-shadow: 0 1px 2px var(--divider-line);
30
- cursor: pointer;
31
30
  }
32
31
 
33
32
  .text-button:not(:disabled):active {
@@ -7,12 +7,14 @@
7
7
  :host {
8
8
  flex: none;
9
9
  padding: 0 2px;
10
+
11
+ --toolbar-height: 26px;
10
12
  }
11
13
 
12
14
  .toolbar-shadow {
13
15
  position: relative;
14
16
  white-space: nowrap;
15
- height: 26px;
17
+ height: var(--toolbar-height);
16
18
  overflow: hidden;
17
19
  z-index: 12;
18
20
  display: flex;
@@ -43,7 +45,7 @@
43
45
  align-items: center;
44
46
  justify-content: center;
45
47
  padding: 0;
46
- height: 26px;
48
+ height: var(--toolbar-height);
47
49
  border: none;
48
50
  white-space: pre;
49
51
  }
@@ -55,7 +57,7 @@
55
57
 
56
58
  .toolbar-shadow.vertical .toolbar-item {
57
59
  height: auto;
58
- min-height: 26px;
60
+ min-height: var(--toolbar-height);
59
61
  white-space: normal;
60
62
  }
61
63
 
@@ -80,7 +82,6 @@ select.toolbar-item:disabled + .toolbar-dropdown-arrow {
80
82
  min-width: 28px;
81
83
  background: transparent;
82
84
  border-radius: 0;
83
- cursor: pointer;
84
85
  }
85
86
 
86
87
  .toolbar-text {
@@ -176,6 +177,29 @@ it. */
176
177
  margin-inline-end: 28px;
177
178
  }
178
179
 
180
+ .toolbar-button.copied-to-clipboard::after {
181
+ content: attr(data-content);
182
+ position: fixed;
183
+ top: var(--toolbar-height);
184
+ padding: 3px 5px;
185
+ color: var(--color-text-secondary);
186
+ background: var(--color-background-elevation-1);
187
+ animation: 2s fade-out;
188
+ font-weight: normal;
189
+ border: 1px solid var(--color-details-hairline);
190
+ border-radius: 3px;
191
+ }
192
+
193
+ @keyframes fade-out {
194
+ from {
195
+ opacity: 100%;
196
+ }
197
+
198
+ to {
199
+ opacity: 0%;
200
+ }
201
+ }
202
+
179
203
  .toolbar-button.toolbar-state-on .toolbar-glyph {
180
204
  background-color: var(--color-primary);
181
205
  }
package/package.json CHANGED
@@ -54,5 +54,5 @@
54
54
  "unittest": "scripts/test/run_unittests.py --no-text-coverage",
55
55
  "watch": "third_party/node/node.py --output scripts/watch_build.js"
56
56
  },
57
- "version": "1.0.969882"
57
+ "version": "1.0.971140"
58
58
  }
@@ -91,7 +91,7 @@ function runTests(buildDirectoryPath, useDebugDevtools) {
91
91
 
92
92
  if (IS_DEBUG_ENABLED) {
93
93
  testArgs.push('--additional-driver-flag=--remote-debugging-port=9222');
94
- testArgs.push('--time-out-ms=6000000');
94
+ testArgs.push('--timeout-ms=6000000');
95
95
  console.log('\n=============================================');
96
96
  const unitTest = testArgs.find(arg => arg.includes('http/tests/devtools/unit/'));
97
97
  if (unitTest) {