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.
- package/config/gni/devtools_grd_files.gni +3 -0
- package/config/gni/devtools_image_files.gni +1 -0
- package/front_end/Images/src/ic_changes.svg +5 -0
- package/front_end/core/common/ParsedURL.ts +27 -4
- package/front_end/core/host/UserMetrics.ts +3 -1
- package/front_end/core/i18n/locales/en-US.json +21 -3
- package/front_end/core/i18n/locales/en-XL.json +21 -3
- package/front_end/core/platform/UserVisibleError.ts +28 -0
- package/front_end/core/platform/platform.ts +2 -0
- package/front_end/core/sdk/ChildTargetManager.ts +0 -1
- package/front_end/core/sdk/DebuggerModel.ts +4 -0
- package/front_end/core/sdk/NetworkManager.ts +15 -1
- package/front_end/core/sdk/NetworkRequest.ts +11 -0
- package/front_end/entrypoints/lighthouse_worker/LighthouseService.ts +15 -6
- package/front_end/entrypoints/main/MainImpl.ts +3 -0
- package/front_end/models/bindings/CSSWorkspaceBinding.ts +21 -0
- package/front_end/models/persistence/Automapping.ts +3 -33
- package/front_end/models/persistence/FileSystemWorkspaceBinding.ts +11 -9
- package/front_end/models/persistence/IsolatedFileSystem.ts +20 -14
- package/front_end/models/persistence/NetworkPersistenceManager.ts +8 -4
- package/front_end/models/persistence/PlatformFileSystem.ts +3 -2
- package/front_end/models/workspace/UISourceCode.ts +11 -14
- package/front_end/models/workspace/WorkspaceImpl.ts +5 -1
- package/front_end/panels/animation/animationTimeline.css +0 -3
- package/front_end/panels/application/components/trustTokensViewDeleteButton.css +0 -1
- package/front_end/panels/browser_debugger/categorizedBreakpointsSidebarPane.css +0 -1
- package/front_end/panels/console/consolePinPane.css +0 -17
- package/front_end/panels/css_overview/cssOverviewCompletedView.css +0 -1
- package/front_end/panels/elements/ElementsPanel.ts +25 -11
- package/front_end/panels/elements/StylesSidebarPane.ts +198 -23
- package/front_end/panels/elements/components/adornerSettingsPane.css +0 -1
- package/front_end/panels/elements/components/computedStyleTrace.css +1 -1
- package/front_end/panels/elements/components/elementsBreadcrumbs.css +0 -1
- package/front_end/panels/elements/computedStyleWidgetTree.css +2 -2
- package/front_end/panels/elements/elementsTreeOutline.css +0 -3
- package/front_end/panels/emulation/deviceModeView.css +0 -1
- package/front_end/panels/event_listeners/eventListenersView.css +0 -1
- package/front_end/panels/issues/components/hideIssuesMenu.css +0 -1
- package/front_end/panels/lighthouse/LighthouseController.ts +30 -0
- package/front_end/panels/lighthouse/LighthousePanel.ts +7 -1
- package/front_end/panels/lighthouse/LighthouseProtocolService.ts +6 -1
- package/front_end/panels/lighthouse/LighthouseStartView.ts +2 -2
- package/front_end/panels/lighthouse/LighthouseStartViewFR.ts +39 -0
- package/front_end/panels/media/playerListView.css +0 -1
- package/front_end/panels/network/networkLogView.css +0 -4
- package/front_end/panels/network/requestPayloadTree.css +0 -2
- package/front_end/panels/network/signedExchangeInfoTree.css +0 -1
- package/front_end/panels/sensors/sensors.css +0 -1
- package/front_end/panels/settings/emulation/components/userAgentClientHintsForm.css +0 -4
- package/front_end/panels/settings/emulation/devicesSettingsTab.css +0 -1
- package/front_end/panels/snippets/ScriptSnippetFileSystem.ts +4 -4
- package/front_end/panels/snippets/SnippetsQuickOpen.ts +1 -1
- package/front_end/panels/sources/NavigatorView.ts +9 -5
- package/front_end/panels/sources/TabbedEditorContainer.ts +9 -0
- package/front_end/panels/sources/sources-legacy.ts +0 -13
- package/front_end/panels/sources/sourcesView.css +0 -4
- package/front_end/panels/sources/watchExpressionsSidebarPane.css +0 -1
- package/front_end/panels/webauthn/webauthnPane.css +0 -12
- package/front_end/third_party/codemirror/package/addon/fold/foldgutter.css +1 -5
- package/front_end/ui/components/adorners/adorner.css +0 -4
- package/front_end/ui/components/buttons/button.css +0 -4
- package/front_end/ui/components/data_grid/dataGrid.css +0 -4
- package/front_end/ui/components/icon_button/iconButton.css +0 -1
- package/front_end/ui/legacy/TabbedPane.ts +1 -1
- package/front_end/ui/legacy/closeButton.css +0 -1
- package/front_end/ui/legacy/tabbedPane.css +0 -7
- package/front_end/ui/legacy/textButton.css +0 -1
- package/front_end/ui/legacy/toolbar.css +28 -4
- package/package.json +1 -1
- 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 =
|
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 =
|
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:
|
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;
|
@@ -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
|
-
|
12
|
-
.CodeMirror-foldgutter-folded {
|
13
|
-
cursor: pointer;
|
14
|
-
}
|
10
|
+
|
15
11
|
.CodeMirror-foldgutter-open:after {
|
16
12
|
content: "\25BE";
|
17
13
|
}
|
@@ -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
|
-
|
1147
|
+
null, null, 200);
|
1148
1148
|
}
|
1149
1149
|
}
|
1150
1150
|
|
@@ -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;
|
@@ -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:
|
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:
|
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:
|
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
package/scripts/npm_test.js
CHANGED
@@ -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('--
|
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) {
|