chrome-devtools-frontend 1.0.1029795 → 1.0.1030946

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 (66) hide show
  1. package/config/gni/devtools_grd_files.gni +3 -0
  2. package/config/gni/devtools_image_files.gni +2 -0
  3. package/docs/workflows.md +1 -1
  4. package/front_end/Images/src/file-sync_icon.svg +62 -0
  5. package/front_end/Images/src/file_icon.svg +52 -0
  6. package/front_end/Tests.js +0 -28
  7. package/front_end/core/host/UserMetrics.ts +2 -1
  8. package/front_end/core/i18n/locales/en-US.json +16 -7
  9. package/front_end/core/i18n/locales/en-XL.json +16 -7
  10. package/front_end/core/root/Runtime.ts +1 -0
  11. package/front_end/core/sdk/CSSStyleSheetHeader.ts +0 -4
  12. package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +0 -4
  13. package/front_end/core/sdk/NetworkRequest.ts +0 -4
  14. package/front_end/core/sdk/Resource.ts +0 -5
  15. package/front_end/core/sdk/Script.ts +71 -76
  16. package/front_end/entrypoints/main/MainImpl.ts +4 -0
  17. package/front_end/generated/InspectorBackendCommands.js +10 -8
  18. package/front_end/generated/protocol-mapping.d.ts +16 -2
  19. package/front_end/generated/protocol-proxy-api.d.ts +11 -1
  20. package/front_end/generated/protocol.ts +75 -1
  21. package/front_end/models/bindings/CompilerScriptMapping.ts +6 -3
  22. package/front_end/models/bindings/ContentProviderBasedProject.ts +2 -3
  23. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +1 -4
  24. package/front_end/models/bindings/IgnoreListManager.ts +10 -8
  25. package/front_end/models/bindings/ResourceMapping.ts +0 -4
  26. package/front_end/models/bindings/StylesSourceMapping.ts +0 -5
  27. package/front_end/models/extensions/ExtensionServer.ts +2 -3
  28. package/front_end/models/issues_manager/AttributionReportingIssue.ts +8 -0
  29. package/front_end/models/issues_manager/DeprecationIssue.ts +5 -1
  30. package/front_end/models/issues_manager/descriptions/arTooManyConcurrentRequests.md +5 -0
  31. package/front_end/models/javascript_metadata/NativeFunctions.js +6 -2
  32. package/front_end/models/persistence/NetworkPersistenceManager.ts +4 -6
  33. package/front_end/models/persistence/PersistenceActions.ts +5 -4
  34. package/front_end/models/text_utils/CodeMirrorUtils.ts +17 -4
  35. package/front_end/models/text_utils/ContentProvider.ts +0 -1
  36. package/front_end/models/text_utils/StaticContentProvider.ts +0 -4
  37. package/front_end/models/workspace/UISourceCode.ts +10 -5
  38. package/front_end/panels/elements/CSSRuleValidator.ts +382 -63
  39. package/front_end/panels/elements/CSSRuleValidatorHelper.ts +34 -0
  40. package/front_end/panels/elements/StylePropertyTreeElement.ts +1 -1
  41. package/front_end/panels/elements/components/CSSHintDetailsView.ts +23 -20
  42. package/front_end/panels/elements/components/cssHintDetailsView.css +2 -0
  43. package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +12 -0
  44. package/front_end/panels/network/components/RequestHeadersView.css +41 -8
  45. package/front_end/panels/network/components/RequestHeadersView.ts +102 -12
  46. package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +1 -0
  47. package/front_end/panels/sources/NavigatorView.ts +22 -0
  48. package/front_end/third_party/codemirror.next/bundle.ts +1 -1
  49. package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
  50. package/front_end/third_party/codemirror.next/chunk/cpp.js +1 -2
  51. package/front_end/third_party/codemirror.next/chunk/java.js +1 -2
  52. package/front_end/third_party/codemirror.next/chunk/json.js +1 -2
  53. package/front_end/third_party/codemirror.next/chunk/markdown.js +1 -2
  54. package/front_end/third_party/codemirror.next/chunk/php.js +1 -2
  55. package/front_end/third_party/codemirror.next/chunk/python.js +1 -2
  56. package/front_end/third_party/codemirror.next/chunk/wast.js +1 -2
  57. package/front_end/third_party/codemirror.next/chunk/xml.js +1 -2
  58. package/front_end/third_party/codemirror.next/codemirror.next.d.ts +1247 -116
  59. package/front_end/third_party/codemirror.next/codemirror.next.js +1 -2
  60. package/front_end/ui/components/data_grid/DataGrid.ts +15 -10
  61. package/front_end/ui/components/data_grid/DataGridController.ts +7 -0
  62. package/front_end/ui/components/docs/building-ui-documentation/StylingComponents.md +64 -0
  63. package/front_end/ui/legacy/components/source_frame/ImageView.ts +10 -11
  64. package/front_end/ui/legacy/components/source_frame/PreviewFactory.ts +1 -1
  65. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +49 -0
  66. package/package.json +6 -5
@@ -23,7 +23,7 @@ interface Hint {
23
23
  getHintPrefix(): string;
24
24
  getHintMessage(): string;
25
25
  getPossibleFixMessage(): string|null;
26
- getLearnMoreLink(): string|null;
26
+ getLearnMoreLink(): string|undefined;
27
27
  }
28
28
 
29
29
  export class CSSHintDetailsView extends HTMLElement {
@@ -39,25 +39,28 @@ export class CSSHintDetailsView extends HTMLElement {
39
39
  }
40
40
 
41
41
  #render(): void {
42
- render(html`
43
- <div class="hint-popup-wrapper">
44
- <div class="hint-popup-reason">
45
- <strong>${this.#authoringHint.getHintPrefix()}:</strong> ${Directives.unsafeHTML(this.#authoringHint.getHintMessage())}
46
- </div>
47
- ${this.#authoringHint.getPossibleFixMessage() ? html`
48
- <div class="hint-popup-possible-fix">
49
- ${Directives.unsafeHTML(this.#authoringHint.getPossibleFixMessage())}
50
- ${this.#authoringHint.getLearnMoreLink() ? html`
51
- <x-link id='learn-more' href='${this.#authoringHint.getLearnMoreLink()}' class='clickable underlined unbreakable-text'}>
52
- ${i18nString(UIStrings.learnMore)}
53
- </x-link>
54
- `: ''}
55
- </div>
56
- ` : ''}
57
- </div>
58
- `, this.#shadow, {
59
- host: this,
60
- });
42
+ const link = this.#authoringHint.getLearnMoreLink();
43
+ // clang-format off
44
+ render(html`
45
+ <div class="hint-popup-wrapper">
46
+ <div class="hint-popup-reason">
47
+ <strong>${this.#authoringHint.getHintPrefix()}:</strong> ${Directives.unsafeHTML(this.#authoringHint.getHintMessage())}
48
+ </div>
49
+ ${this.#authoringHint.getPossibleFixMessage() ? html`
50
+ <div class="hint-popup-possible-fix">
51
+ ${Directives.unsafeHTML(this.#authoringHint.getPossibleFixMessage())}
52
+ ${link ? html`
53
+ <x-link id="learn-more" href=${link} class="clickable underlined unbreakable-text"}>
54
+ ${i18nString(UIStrings.learnMore)}
55
+ </x-link>
56
+ `: ''}
57
+ </div>
58
+ ` : ''}
59
+ </div>
60
+ `, this.#shadow, {
61
+ host: this,
62
+ });
63
+ // clang-format on
61
64
  }
62
65
  }
63
66
 
@@ -13,6 +13,8 @@
13
13
  code {
14
14
  background-color: var(--color-background-elevation-1);
15
15
  padding: 0 2px;
16
+ font-size: var(--source-code-font-size);
17
+ font-family: var(--source-code-font-family);
16
18
  }
17
19
 
18
20
  .property {
@@ -22,6 +22,10 @@ const UIStrings = {
22
22
  * @description Noun, label for the column showing the invalid header value in the issue details table.
23
23
  */
24
24
  invalidHeaderValue: 'Invalid Header Value',
25
+ /**
26
+ * @description Noun, label for the column showing the maximum concurrent registrations header value in the issue details table.
27
+ */
28
+ maximumConcurrentRegistrations: 'Maximum Concurrent Registrations',
25
29
  /**
26
30
  * @description Noun, label for the column showing the associated network request in the issue details table.
27
31
  */
@@ -71,6 +75,10 @@ export class AttributionReportingIssueDetailsView extends AffectedResourcesView
71
75
  this.appendColumnTitle(header, i18nString(UIStrings.element));
72
76
  this.appendColumnTitle(header, i18nString(UIStrings.request));
73
77
  break;
78
+ case IssuesManager.AttributionReportingIssue.IssueCode.TooManyConcurrentRequests:
79
+ this.appendColumnTitle(header, i18nString(UIStrings.element));
80
+ this.appendColumnTitle(header, i18nString(UIStrings.maximumConcurrentRegistrations));
81
+ break;
74
82
  }
75
83
 
76
84
  this.affectedResources.appendChild(header);
@@ -107,6 +115,10 @@ export class AttributionReportingIssueDetailsView extends AffectedResourcesView
107
115
  await this.#appendElementOrEmptyCell(element, issue);
108
116
  this.#appendRequestOrEmptyCell(element, details.request);
109
117
  break;
118
+ case IssuesManager.AttributionReportingIssue.IssueCode.TooManyConcurrentRequests:
119
+ await this.#appendElementOrEmptyCell(element, issue);
120
+ this.appendIssueDetailCell(element, details.invalidParameter || '');
121
+ break;
110
122
  }
111
123
 
112
124
  this.affectedResources.appendChild(element);
@@ -27,17 +27,12 @@ details[open] .header-count {
27
27
  display: none;
28
28
  }
29
29
 
30
- details summary label {
30
+ details .hide-when-closed {
31
31
  display: none;
32
32
  }
33
33
 
34
- details[open] summary label {
35
- display: inline-flex;
36
- gap: 2px;
37
- }
38
-
39
- .raw-checkbox-container {
40
- float: right;
34
+ details[open] .hide-when-closed {
35
+ display: block;
41
36
  }
42
37
 
43
38
  details summary input {
@@ -69,6 +64,7 @@ div.raw-headers-row {
69
64
  font-weight: 500;
70
65
  width: 160px;
71
66
  flex-shrink: 0;
67
+ text-transform: capitalize;
72
68
  }
73
69
 
74
70
  .header-value {
@@ -175,3 +171,40 @@ div.raw-headers-row {
175
171
  font-size: 90%;
176
172
  color: var(--color-text-secondary);
177
173
  }
174
+
175
+ .header-grid-container {
176
+ display: inline-grid;
177
+ grid-template-columns: 156px 50px 1fr;
178
+ grid-gap: 4px;
179
+ /* Make this fit into the same line as the summary marker */
180
+ width: calc(100% - 15px);
181
+ }
182
+
183
+ .header-grid-container div:last-child {
184
+ text-align: right;
185
+ }
186
+
187
+ .header .devtools-link {
188
+ color: var(--color-text-primary);
189
+ }
190
+
191
+ x-link .inline-icon { /* stylelint-disable-line selector-type-no-unknown */
192
+ padding-right: 3px;
193
+ }
194
+
195
+ .purple-dot {
196
+ filter: hue-rotate(160deg);
197
+ }
198
+
199
+ .-theme-with-dark-background .purple-dot,
200
+ :host-context(.-theme-with-dark-background) .purple-dot {
201
+ filter: invert(80%) hue-rotate(350deg);
202
+ }
203
+
204
+ summary label {
205
+ color: var(--color-text-secondary);
206
+ }
207
+
208
+ summary label:hover {
209
+ color: var(--color-text-primary);
210
+ }
@@ -6,9 +6,12 @@ import * as Common from '../../../core/common/common.js';
6
6
  import * as Host from '../../../core/host/host.js';
7
7
  import * as i18n from '../../../core/i18n/i18n.js';
8
8
  import * as Platform from '../../../core/platform/platform.js';
9
+ import * as Root from '../../../core/root/root.js';
9
10
  import * as SDK from '../../../core/sdk/sdk.js';
10
11
  import * as Protocol from '../../../generated/protocol.js';
11
12
  import * as IssuesManager from '../../../models/issues_manager/issues_manager.js';
13
+ import * as Persistence from '../../../models/persistence/persistence.js';
14
+ import * as Workspace from '../../../models/workspace/workspace.js';
12
15
  import * as ClientVariations from '../../../third_party/chromium/client-variations/client-variations.js';
13
16
  import * as Buttons from '../../../ui/components/buttons/buttons.js';
14
17
  import * as ComponentHelpers from '../../../ui/components/helpers/helpers.js';
@@ -16,6 +19,7 @@ import * as IconButton from '../../../ui/components/icon_button/icon_button.js';
16
19
  import * as Input from '../../../ui/components/input/input.js';
17
20
  import * as UI from '../../../ui/legacy/legacy.js';
18
21
  import * as LitHtml from '../../../ui/lit-html/lit-html.js';
22
+ import * as Sources from '../../sources/sources.js';
19
23
 
20
24
  import requestHeadersViewStyles from './RequestHeadersView.css.js';
21
25
 
@@ -69,6 +73,11 @@ const UIStrings = {
69
73
  */
70
74
  general: 'General',
71
75
  /**
76
+ *@description Label for a link from the network panel's headers view to the file in which
77
+ * header overrides are defined in the sources panel.
78
+ */
79
+ headerOverrides: 'Header overrides',
80
+ /**
72
81
  *@description Text that is usually a hyperlink to more documentation
73
82
  */
74
83
  learnMore: 'Learn more',
@@ -204,6 +213,7 @@ export class RequestHeadersComponent extends HTMLElement {
204
213
  #showRequestHeadersText = false;
205
214
  #showResponseHeadersTextFull = false;
206
215
  #showRequestHeadersTextFull = false;
216
+ readonly #workspace = Workspace.Workspace.WorkspaceImpl.instance();
207
217
 
208
218
  set data(data: RequestHeadersComponentData) {
209
219
  this.#request = data.request;
@@ -212,6 +222,23 @@ export class RequestHeadersComponent extends HTMLElement {
212
222
 
213
223
  connectedCallback(): void {
214
224
  this.#shadow.adoptedStyleSheets = [requestHeadersViewStyles];
225
+ this.#workspace.addEventListener(
226
+ Workspace.Workspace.Events.UISourceCodeAdded, this.#uiSourceCodeAddedOrRemoved, this);
227
+ this.#workspace.addEventListener(
228
+ Workspace.Workspace.Events.UISourceCodeRemoved, this.#uiSourceCodeAddedOrRemoved, this);
229
+ }
230
+
231
+ disconnectedCallback(): void {
232
+ this.#workspace.removeEventListener(
233
+ Workspace.Workspace.Events.UISourceCodeAdded, this.#uiSourceCodeAddedOrRemoved, this);
234
+ this.#workspace.removeEventListener(
235
+ Workspace.Workspace.Events.UISourceCodeRemoved, this.#uiSourceCodeAddedOrRemoved, this);
236
+ }
237
+
238
+ #uiSourceCodeAddedOrRemoved(event: Common.EventTarget.EventTargetEvent<Workspace.UISourceCode.UISourceCode>): void {
239
+ if (this.#getHeaderOverridesFileUrl() === event.data.url()) {
240
+ this.#render();
241
+ }
215
242
  }
216
243
 
217
244
  #render(): void {
@@ -284,6 +311,10 @@ export class RequestHeadersComponent extends HTMLElement {
284
311
  this.#render();
285
312
  };
286
313
 
314
+ if (!mergedHeaders.length) {
315
+ return LitHtml.nothing;
316
+ }
317
+
287
318
  // Disabled until https://crbug.com/1079231 is fixed.
288
319
  // clang-format off
289
320
  return html`
@@ -294,6 +325,7 @@ export class RequestHeadersComponent extends HTMLElement {
294
325
  title: i18nString(UIStrings.responseHeaders),
295
326
  headerCount: this.#request.sortedResponseHeaders.length,
296
327
  checked: this.#request.responseHeadersText ? this.#showResponseHeadersText : undefined,
328
+ additionalContent: this.#renderHeaderOverridesLink(),
297
329
  } as CategoryData}
298
330
  aria-label=${i18nString(UIStrings.responseHeaders)}
299
331
  >
@@ -306,6 +338,57 @@ export class RequestHeadersComponent extends HTMLElement {
306
338
  // clang-format on
307
339
  }
308
340
 
341
+ #renderHeaderOverridesLink(): LitHtml.LitTemplate {
342
+ const overrideable = Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.HEADER_OVERRIDES);
343
+ if (!overrideable || !this.#workspace.uiSourceCodeForURL(this.#getHeaderOverridesFileUrl())) {
344
+ return LitHtml.nothing;
345
+ }
346
+
347
+ const overridesSetting: Common.Settings.Setting<boolean> =
348
+ Common.Settings.Settings.instance().moduleSetting('persistenceNetworkOverridesEnabled');
349
+ // Disabled until https://crbug.com/1079231 is fixed.
350
+ // clang-format off
351
+ const fileIcon = overridesSetting.get() ? html`
352
+ <${IconButton.Icon.Icon.litTagName} class="inline-icon purple-dot" .data=${{
353
+ iconName: 'file-sync_icon',
354
+ width: '11px',
355
+ height: '13px',
356
+ } as IconButton.Icon.IconData}>
357
+ </${IconButton.Icon.Icon.litTagName}>` : html`
358
+ <${IconButton.Icon.Icon.litTagName} class="inline-icon" .data=${{
359
+ iconName: 'file_icon',
360
+ color: 'var(--color-text-primary)',
361
+ width: '12px',
362
+ height: '12px',
363
+ } as IconButton.Icon.IconData}>
364
+ </${IconButton.Icon.Icon.litTagName}>`;
365
+ // clang-format on
366
+
367
+ const revealHeadersFile = (event: Event): void => {
368
+ event.preventDefault();
369
+ const uiSourceCode = this.#workspace.uiSourceCodeForURL(this.#getHeaderOverridesFileUrl());
370
+ if (uiSourceCode) {
371
+ Sources.SourcesPanel.SourcesPanel.instance().showUISourceCode(uiSourceCode);
372
+ }
373
+ };
374
+
375
+ return html`
376
+ <x-link @click=${revealHeadersFile} class="link devtools-link">
377
+ ${fileIcon}${i18nString(UIStrings.headerOverrides)}
378
+ </x-link>
379
+ `;
380
+ }
381
+
382
+ #getHeaderOverridesFileUrl(): Platform.DevToolsPath.UrlString {
383
+ if (!this.#request) {
384
+ return Platform.DevToolsPath.EmptyUrlString;
385
+ }
386
+ const fileUrl = Persistence.NetworkPersistenceManager.NetworkPersistenceManager.instance().fileUrlFromNetworkUrl(
387
+ this.#request.url(), /* ignoreInactive */ true);
388
+ return fileUrl.substring(0, fileUrl.lastIndexOf('/')) + '/' +
389
+ Persistence.NetworkPersistenceManager.HEADERS_FILENAME as Platform.DevToolsPath.UrlString;
390
+ }
391
+
309
392
  #renderRequestHeaders(): LitHtml.LitTemplate {
310
393
  if (!this.#request) {
311
394
  return LitHtml.nothing;
@@ -316,6 +399,9 @@ export class RequestHeadersComponent extends HTMLElement {
316
399
  return Platform.StringUtilities.compare(a.name.toLowerCase(), b.name.toLowerCase());
317
400
  });
318
401
  const requestHeadersText = this.#request.requestHeadersText();
402
+ if (!headers.length && requestHeadersText !== undefined) {
403
+ return LitHtml.nothing;
404
+ }
319
405
 
320
406
  const toggleShowRaw = (): void => {
321
407
  this.#showRequestHeadersText = !this.#showRequestHeadersText;
@@ -647,6 +733,7 @@ export interface CategoryData {
647
733
  title: Common.UIString.LocalizedString;
648
734
  headerCount?: number;
649
735
  checked?: boolean;
736
+ additionalContent?: LitHtml.LitTemplate;
650
737
  }
651
738
 
652
739
  export class Category extends HTMLElement {
@@ -656,6 +743,7 @@ export class Category extends HTMLElement {
656
743
  #title: Common.UIString.LocalizedString = Common.UIString.LocalizedEmptyString;
657
744
  #headerCount?: number = undefined;
658
745
  #checked: boolean|undefined = undefined;
746
+ #additionalContent: LitHtml.LitTemplate|undefined = undefined;
659
747
 
660
748
  connectedCallback(): void {
661
749
  this.#shadow.adoptedStyleSheets = [requestHeadersViewStyles, Input.checkboxStyles];
@@ -667,6 +755,7 @@ export class Category extends HTMLElement {
667
755
  Common.Settings.Settings.instance().createSetting('request-info-' + data.name + '-category-expanded', true);
668
756
  this.#headerCount = data.headerCount;
669
757
  this.#checked = data.checked;
758
+ this.#additionalContent = data.additionalContent;
670
759
  this.#render();
671
760
  }
672
761
 
@@ -681,18 +770,19 @@ export class Category extends HTMLElement {
681
770
  render(html`
682
771
  <details ?open=${isOpen} @toggle=${this.#onToggle}>
683
772
  <summary class="header" @keydown=${this.#onSummaryKeyDown}>
684
- ${this.#title}${this.#headerCount ?
685
- html`<span class="header-count"> (${this.#headerCount})</span>` :
686
- LitHtml.nothing
687
- }
688
- ${this.#checked !== undefined ? html`
689
- <span class="raw-checkbox-container">
690
- <label>
691
- <input type="checkbox" .checked=${this.#checked} @change=${this.#onCheckboxToggle} />
692
- ${i18nString(UIStrings.raw)}
693
- </label>
694
- </span>
695
- ` : LitHtml.nothing}
773
+ <div class="header-grid-container">
774
+ <div>
775
+ ${this.#title}${this.#headerCount ?
776
+ html`<span class="header-count"> (${this.#headerCount})</span>` :
777
+ LitHtml.nothing
778
+ }
779
+ </div>
780
+ <div class="hide-when-closed">
781
+ ${this.#checked !== undefined ? html`
782
+ <label><input type="checkbox" .checked=${this.#checked} @change=${this.#onCheckboxToggle} />${i18nString(UIStrings.raw)}</label>
783
+ ` : LitHtml.nothing}
784
+ </div>
785
+ <div class="hide-when-closed">${this.#additionalContent}</div>
696
786
  </summary>
697
787
  <slot></slot>
698
788
  </details>
@@ -164,6 +164,7 @@ export class ProtocolMonitorImpl extends UI.Widget.VBox {
164
164
  this.infoWidget = new InfoWidget();
165
165
 
166
166
  const dataGridInitialData: DataGrid.DataGridController.DataGridControllerData = {
167
+ paddingRowsCount: 100,
167
168
  columns: [
168
169
  {
169
170
  id: 'type',
@@ -211,6 +211,16 @@ export class NavigatorView extends UI.Widget.VBox implements SDK.TargetManager.O
211
211
  this.navigatorGroupByAuthoredExperiment = Root.Runtime.ExperimentName.AUTHORED_DEPLOYED_GROUPING;
212
212
  }
213
213
 
214
+ Common.Settings.Settings.instance()
215
+ .moduleSetting('skipStackFramesPattern')
216
+ .addChangeListener(this.ignoreListChanged.bind(this));
217
+ Common.Settings.Settings.instance()
218
+ .moduleSetting('skipContentScripts')
219
+ .addChangeListener(this.ignoreListChanged.bind(this));
220
+ Common.Settings.Settings.instance()
221
+ .moduleSetting('automaticallyIgnoreListKnownThirdPartyScripts')
222
+ .addChangeListener(this.ignoreListChanged.bind(this));
223
+
214
224
  this.initGrouping();
215
225
 
216
226
  Persistence.Persistence.PersistenceImpl.instance().addEventListener(
@@ -443,6 +453,12 @@ export class NavigatorView extends UI.Widget.VBox implements SDK.TargetManager.O
443
453
  }
444
454
 
445
455
  private addUISourceCode(uiSourceCode: Workspace.UISourceCode.UISourceCode): void {
456
+ if (Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.JUST_MY_CODE) &&
457
+ Bindings.IgnoreListManager.IgnoreListManager.instance().isUserOrSourceMapIgnoreListedUISourceCode(
458
+ uiSourceCode)) {
459
+ return;
460
+ }
461
+
446
462
  if (!this.acceptsUISourceCode(uiSourceCode)) {
447
463
  return;
448
464
  }
@@ -1033,6 +1049,12 @@ export class NavigatorView extends UI.Widget.VBox implements SDK.TargetManager.O
1033
1049
  this.workspaceInternal.uiSourceCodes().forEach(this.addUISourceCode.bind(this));
1034
1050
  }
1035
1051
 
1052
+ private ignoreListChanged(): void {
1053
+ if (Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.JUST_MY_CODE)) {
1054
+ this.groupingChanged();
1055
+ }
1056
+ }
1057
+
1036
1058
  private initGrouping(): void {
1037
1059
  this.groupByFrame = true;
1038
1060
  this.groupByDomain = this.navigatorGroupByFolderSetting.get();
@@ -78,7 +78,7 @@ export async function shell() {
78
78
  return StreamLanguage.define((await import('@codemirror/legacy-modes/mode/shell')).shell);
79
79
  }
80
80
  export async function cssStreamParser() {
81
- return (await import('@codemirror/legacy-modes/mode/css') as any).sCSS;
81
+ return (await import('@codemirror/legacy-modes/mode/css') as any).css;
82
82
  }
83
83
  export function wast() {
84
84
  return import('@codemirror/lang-wast');