chrome-devtools-frontend 1.0.938678 → 1.0.939473

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 (135) hide show
  1. package/.stylelintrc.json +8 -10
  2. package/config/gni/all_devtools_files.gni +0 -1
  3. package/config/gni/devtools_grd_files.gni +2 -0
  4. package/docs/triage_guidelines.md +13 -11
  5. package/front_end/Tests.js +63 -29
  6. package/front_end/core/host/InspectorFrontendHost.ts +16 -30
  7. package/front_end/core/host/UserMetrics.ts +1 -0
  8. package/front_end/core/i18n/locales/en-US.json +19 -1
  9. package/front_end/core/i18n/locales/en-XL.json +19 -1
  10. package/front_end/core/protocol_client/InspectorBackend.ts +4 -0
  11. package/front_end/core/root/Runtime.ts +4 -0
  12. package/front_end/core/sdk/CSSModel.ts +64 -50
  13. package/front_end/core/sdk/CategorizedBreakpoint.ts +35 -0
  14. package/front_end/core/sdk/DOMDebuggerModel.ts +10 -41
  15. package/front_end/core/sdk/EmulationModel.ts +11 -0
  16. package/front_end/core/sdk/EventBreakpointsModel.ts +178 -0
  17. package/front_end/core/sdk/Target.ts +2 -1
  18. package/front_end/core/sdk/sdk-meta.ts +30 -1
  19. package/front_end/core/sdk/sdk.ts +4 -0
  20. package/front_end/entrypoints/inspector_main/RenderingOptions.ts +9 -2
  21. package/front_end/entrypoints/inspector_main/renderingOptions.css +2 -2
  22. package/front_end/entrypoints/main/main-meta.ts +0 -4
  23. package/front_end/entrypoints/node_main/nodeConnectionsPanel.css +2 -2
  24. package/front_end/entrypoints/shell/shell.js +1 -0
  25. package/front_end/entrypoints/shell/shell.json +0 -1
  26. package/front_end/models/persistence/editFileSystemView.css +1 -1
  27. package/front_end/models/persistence/workspaceSettingsTab.css +1 -1
  28. package/front_end/panels/accessibility/accessibilityNode.css +2 -2
  29. package/front_end/panels/accessibility/axBreadcrumbs.css +1 -1
  30. package/front_end/panels/animation/animationTimeline.css +5 -5
  31. package/front_end/panels/application/components/frameDetailsReportView.css +1 -1
  32. package/front_end/panels/application/resourcesPanel.css +1 -1
  33. package/front_end/panels/application/resourcesSidebar.css +1 -1
  34. package/front_end/panels/browser_debugger/CSPViolationBreakpointsSidebarPane.ts +2 -2
  35. package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +7 -7
  36. package/front_end/panels/browser_debugger/EventListenerBreakpointsSidebarPane.ts +14 -6
  37. package/front_end/panels/browser_debugger/xhrBreakpointsSidebarPane.css +2 -5
  38. package/front_end/panels/changes/changesSidebar.css +1 -1
  39. package/front_end/panels/changes/changesView.css +2 -2
  40. package/front_end/panels/console/consolePrompt.css +1 -1
  41. package/front_end/panels/console/consoleSidebar.css +4 -4
  42. package/front_end/panels/console/consoleView.css +2 -2
  43. package/front_end/panels/css_overview/components/cssOverviewStartView.css +1 -1
  44. package/front_end/panels/css_overview/cssOverviewCompletedView.css +8 -8
  45. package/front_end/panels/elements/classesPaneWidget.css +1 -1
  46. package/front_end/panels/elements/components/adornerSettingsPane.css +1 -1
  47. package/front_end/panels/elements/computedStyleWidgetTree.css +1 -1
  48. package/front_end/panels/elements/elementsPanel.css +1 -1
  49. package/front_end/panels/elements/elementsTreeOutline.css +1 -1
  50. package/front_end/panels/elements/layoutPane.css +1 -1
  51. package/front_end/panels/elements/platformFontsWidget.css +1 -1
  52. package/front_end/panels/elements/stylesSectionTree.css +1 -1
  53. package/front_end/panels/event_listeners/EventListenersView.ts +5 -4
  54. package/front_end/panels/event_listeners/eventListenersView.css +3 -2
  55. package/front_end/panels/issues/IssueKindView.ts +0 -6
  56. package/front_end/panels/issues/IssueView.ts +19 -27
  57. package/front_end/panels/issues/components/HideIssuesMenu.ts +7 -11
  58. package/front_end/panels/issues/components/hideIssuesMenu.css +8 -0
  59. package/front_end/panels/issues/issuesTree.css +17 -5
  60. package/front_end/panels/lighthouse/lighthouseStartView.css +2 -2
  61. package/front_end/panels/media/playerListView.css +1 -1
  62. package/front_end/panels/mobile_throttling/throttlingSettingsTab.css +1 -1
  63. package/front_end/panels/network/NetworkLogView.ts +13 -0
  64. package/front_end/panels/network/NetworkSearchScope.ts +3 -1
  65. package/front_end/panels/network/RequestPayloadView.ts +2 -0
  66. package/front_end/panels/network/blockedURLsPane.css +1 -1
  67. package/front_end/panels/network/networkConfigView.css +1 -1
  68. package/front_end/panels/network/networkLogView.css +3 -3
  69. package/front_end/panels/network/requestPayloadTree.css +5 -0
  70. package/front_end/panels/profiler/profileLauncherView.css +3 -3
  71. package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +1 -0
  72. package/front_end/panels/security/mainView.css +2 -2
  73. package/front_end/panels/security/originView.css +1 -1
  74. package/front_end/panels/sensors/sensors.css +2 -2
  75. package/front_end/panels/settings/emulation/components/userAgentClientHintsForm.css +1 -1
  76. package/front_end/panels/settings/emulation/devicesSettingsTab.css +4 -4
  77. package/front_end/panels/settings/frameworkIgnoreListSettingsTab.css +1 -1
  78. package/front_end/panels/settings/settingsScreen.css +2 -2
  79. package/front_end/panels/sources/CoveragePlugin.ts +7 -2
  80. package/front_end/panels/sources/DebuggerPausedMessage.ts +14 -7
  81. package/front_end/panels/sources/callStackSidebarPane.css +1 -1
  82. package/front_end/panels/sources/dialog.css +1 -1
  83. package/front_end/panels/sources/javaScriptBreakpointsSidebarPane.css +1 -1
  84. package/front_end/panels/sources/navigatorTree.css +4 -4
  85. package/front_end/panels/sources/sourcesPanel.css +2 -2
  86. package/front_end/panels/sources/threadsSidebarPane.css +1 -1
  87. package/front_end/panels/timeline/components/WebVitalsTooltip.css +1 -1
  88. package/front_end/panels/timeline/historyToolbarButton.css +1 -1
  89. package/front_end/panels/timeline/timelineStatusDialog.css +1 -1
  90. package/front_end/panels/webauthn/webauthnPane.css +2 -2
  91. package/front_end/ui/components/adorners/adorner.css +1 -1
  92. package/front_end/ui/components/expandable_list/expandableList.css +1 -1
  93. package/front_end/ui/components/linear_memory_inspector/valueInterpreterDisplay.css +1 -2
  94. package/front_end/ui/components/linear_memory_inspector/valueInterpreterSettings.css +1 -1
  95. package/front_end/ui/components/report_view/reportKey.css +1 -1
  96. package/front_end/ui/components/report_view/reportValue.css +1 -1
  97. package/front_end/ui/legacy/ContextMenu.ts +5 -1
  98. package/front_end/ui/legacy/SoftContextMenu.ts +5 -1
  99. package/front_end/ui/legacy/checkboxTextLabel.css +1 -1
  100. package/front_end/ui/legacy/components/color_picker/spectrum.css +9 -9
  101. package/front_end/ui/legacy/components/data_grid/dataGrid.css +2 -2
  102. package/front_end/ui/legacy/components/inline_editor/cssAngleEditor.css +3 -3
  103. package/front_end/ui/legacy/components/inline_editor/cssLength.css +1 -1
  104. package/front_end/ui/legacy/components/inline_editor/cssShadowEditor.css +1 -1
  105. package/front_end/ui/legacy/components/inline_editor/fontEditor.css +1 -1
  106. package/front_end/ui/legacy/components/object_ui/objectPropertiesSection.css +2 -2
  107. package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +13 -7
  108. package/front_end/ui/legacy/components/quick_open/filteredListWidget.css +2 -2
  109. package/front_end/ui/legacy/components/source_frame/imageView.css +1 -1
  110. package/front_end/ui/legacy/components/text_editor/cmdevtools.css +6 -14
  111. package/front_end/ui/legacy/emptyWidget.css +1 -1
  112. package/front_end/ui/legacy/filter.css +1 -1
  113. package/front_end/ui/legacy/infobar.css +2 -2
  114. package/front_end/ui/legacy/inspectorCommon.css +45 -45
  115. package/front_end/ui/legacy/inspectorSyntaxHighlight.css +3 -3
  116. package/front_end/ui/legacy/inspectorViewTabbedPane.css +1 -1
  117. package/front_end/ui/legacy/searchableView.css +1 -1
  118. package/front_end/ui/legacy/softContextMenu.css +1 -1
  119. package/front_end/ui/legacy/textPrompt.css +1 -1
  120. package/front_end/ui/legacy/toolbar.css +8 -8
  121. package/front_end/ui/legacy/treeoutline.css +4 -4
  122. package/inspector_overlay/common.css +2 -2
  123. package/inspector_overlay/tool_highlight.css +1 -1
  124. package/inspector_overlay/tool_paused.css +2 -2
  125. package/package.json +1 -1
  126. package/scripts/eslint_rules/lib/check_component_naming.js +1 -1
  127. package/scripts/eslint_rules/lib/enforce_custom_event_names.js +1 -1
  128. package/scripts/eslint_rules/lib/es_modules_import.js +21 -20
  129. package/scripts/eslint_rules/lib/l10n_filename_matches.js +4 -3
  130. package/scripts/eslint_rules/lib/l10n_no_i18nString_calls_module_instantiation.js +1 -1
  131. package/scripts/eslint_rules/lib/migrate_create_shadow_root_with_styles.js +2 -2
  132. package/scripts/eslint_rules/lib/migrate_register_required_css.js +1 -1
  133. package/scripts/eslint_rules/lib/no_underscored_properties.js +1 -1
  134. package/scripts/eslint_rules/tests/es_modules_import_test.js +3 -2
  135. package/front_end/entrypoints/main/module.json +0 -5
@@ -85,7 +85,7 @@ body {
85
85
  overflow: hidden;
86
86
  margin: 0;
87
87
  cursor: default;
88
- font-family: '.SFNSDisplay-Regular', 'Helvetica Neue', 'Lucida Grande', sans-serif;
88
+ font-family: ".SFNSDisplay-Regular", "Helvetica Neue", "Lucida Grande", sans-serif;
89
89
  font-size: 12px;
90
90
  tab-size: 4;
91
91
  user-select: none;
@@ -99,7 +99,7 @@ body {
99
99
  }
100
100
 
101
101
  .platform-mac {
102
- font-family: '.SFNSDisplay-Regular', 'Helvetica Neue', 'Lucida Grande', sans-serif;
102
+ font-family: ".SFNSDisplay-Regular", "Helvetica Neue", "Lucida Grande", sans-serif;
103
103
  }
104
104
 
105
105
  .platform-mac,
@@ -110,7 +110,7 @@ body {
110
110
  }
111
111
 
112
112
  .platform-windows {
113
- font-family: 'Segoe UI', Tahoma, sans-serif;
113
+ font-family: "Segoe UI", Tahoma, sans-serif;
114
114
  }
115
115
 
116
116
  :focus {
@@ -292,8 +292,8 @@ input::placeholder {
292
292
  }
293
293
 
294
294
  .harmony-input:not([type]),
295
- .harmony-input[type=number],
296
- .harmony-input[type=text] {
295
+ .harmony-input[type="number"],
296
+ .harmony-input[type="text"] {
297
297
  padding: 3px 6px;
298
298
  height: 24px;
299
299
  border: none;
@@ -301,23 +301,23 @@ input::placeholder {
301
301
  }
302
302
 
303
303
  .harmony-input:not([type]).error-input,
304
- .harmony-input[type=number].error-input,
305
- .harmony-input[type=text].error-input,
304
+ .harmony-input[type="number"].error-input,
305
+ .harmony-input[type="text"].error-input,
306
306
  .harmony-input:not([type]):invalid,
307
- .harmony-input[type=number]:invalid,
308
- .harmony-input[type=text]:invalid {
307
+ .harmony-input[type="number"]:invalid,
308
+ .harmony-input[type="text"]:invalid {
309
309
  box-shadow: 0 0 0 1px var(--color-red);
310
310
  }
311
311
 
312
312
  .harmony-input:not([type]):not(.error-input):not(:invalid):hover,
313
- .harmony-input[type=number]:not(.error-input):not(:invalid):hover,
314
- .harmony-input[type=text]:not(.error-input):not(:invalid):hover {
313
+ .harmony-input[type="number"]:not(.error-input):not(:invalid):hover,
314
+ .harmony-input[type="text"]:not(.error-input):not(:invalid):hover {
315
315
  box-shadow: var(--legacy-focus-ring-inactive-shadow);
316
316
  }
317
317
 
318
318
  .harmony-input:not([type]):not(.error-input):not(:invalid):focus,
319
- .harmony-input[type=number]:not(.error-input):not(:invalid):focus,
320
- .harmony-input[type=text]:not(.error-input):not(:invalid):focus {
319
+ .harmony-input[type="number"]:not(.error-input):not(:invalid):focus,
320
+ .harmony-input[type="text"]:not(.error-input):not(:invalid):focus {
321
321
  box-shadow: var(--legacy-focus-ring-active-shadow);
322
322
  }
323
323
 
@@ -426,7 +426,7 @@ input::placeholder {
426
426
  /* This class is used outside of the settings screen in the "Renderer" and
427
427
  "Sensors" panel. As such we need to override their style globally */
428
428
  .settings-select {
429
- margin: 0 0;
429
+ margin: 0;
430
430
  }
431
431
 
432
432
  .chrome-select optgroup,
@@ -443,7 +443,7 @@ input::placeholder {
443
443
  white-space: nowrap;
444
444
  }
445
445
 
446
- span[is=dt-icon-label] {
446
+ span[is="dt-icon-label"] {
447
447
  flex: none;
448
448
  }
449
449
 
@@ -469,29 +469,29 @@ span[is=dt-icon-label] {
469
469
  z-index: 500;
470
470
  }
471
471
 
472
- [is=ui-icon] {
472
+ [is="ui-icon"] {
473
473
  display: inline-block;
474
474
  flex-shrink: 0;
475
475
  }
476
476
 
477
- .-theme-with-dark-background [is=ui-icon].icon-invert,
478
- :host-context(.-theme-with-dark-background) [is=ui-icon].icon-invert {
477
+ .-theme-with-dark-background [is="ui-icon"].icon-invert,
478
+ :host-context(.-theme-with-dark-background) [is="ui-icon"].icon-invert {
479
479
  filter: invert(80%) hue-rotate(180deg);
480
480
  }
481
481
 
482
- [is=ui-icon].icon-mask {
482
+ [is="ui-icon"].icon-mask {
483
483
  --override-icon-mask-background-color: rgb(110 110 110);
484
484
 
485
485
  background-color: var(--override-icon-mask-background-color);
486
486
  -webkit-mask-position: var(--spritesheet-position);
487
487
  }
488
488
 
489
- .-theme-with-dark-background [is=ui-icon].icon-mask,
490
- :host-context(.-theme-with-dark-background) [is=ui-icon].icon-mask {
489
+ .-theme-with-dark-background [is="ui-icon"].icon-mask,
490
+ :host-context(.-theme-with-dark-background) [is="ui-icon"].icon-mask {
491
491
  --override-icon-mask-background-color: rgb(145 145 145);
492
492
  }
493
493
 
494
- [is=ui-icon]:not(.icon-mask) {
494
+ [is="ui-icon"]:not(.icon-mask) {
495
495
  background-position: var(--spritesheet-position);
496
496
  }
497
497
 
@@ -523,27 +523,27 @@ span[is=dt-icon-label] {
523
523
  background-image: var(--image-file-popoverArrows);
524
524
  }
525
525
 
526
- .force-white-icons [is=ui-icon].spritesheet-smallicons,
527
- :host-context(.force-white-icons) [is=ui-icon].spritesheet-smallicons,
528
- [is=ui-icon].force-white-icons.spritesheet-smallicons,
526
+ .force-white-icons [is="ui-icon"].spritesheet-smallicons,
527
+ :host-context(.force-white-icons) [is="ui-icon"].spritesheet-smallicons,
528
+ [is="ui-icon"].force-white-icons.spritesheet-smallicons,
529
529
  .-theme-preserve {
530
530
  -webkit-mask-image: var(--image-file-smallIcons);
531
531
  -webkit-mask-position: var(--spritesheet-position);
532
532
  background: var(--override-force-white-icons-background) !important; /* stylelint-disable-line declaration-no-important */
533
533
  }
534
534
 
535
- .force-white-icons [is=ui-icon].spritesheet-largeicons,
536
- :host-context(.force-white-icons) [is=ui-icon].spritesheet-largeicons,
537
- [is=ui-icon].force-white-icons.spritesheet-largeicons,
535
+ .force-white-icons [is="ui-icon"].spritesheet-largeicons,
536
+ :host-context(.force-white-icons) [is="ui-icon"].spritesheet-largeicons,
537
+ [is="ui-icon"].force-white-icons.spritesheet-largeicons,
538
538
  .-theme-preserve {
539
539
  -webkit-mask-image: var(--image-file-largeIcons);
540
540
  -webkit-mask-position: var(--spritesheet-position);
541
541
  background: var(--override-force-white-icons-background) !important; /* stylelint-disable-line declaration-no-important */
542
542
  }
543
543
 
544
- .force-white-icons [is=ui-icon].spritesheet-mediumicons,
545
- :host-context(.force-white-icons) [is=ui-icon].spritesheet-mediumicons,
546
- [is=ui-icon].force-white-icons.spritesheet-mediumicons,
544
+ .force-white-icons [is="ui-icon"].spritesheet-mediumicons,
545
+ :host-context(.force-white-icons) [is="ui-icon"].spritesheet-mediumicons,
546
+ [is="ui-icon"].force-white-icons.spritesheet-mediumicons,
547
547
  .-theme-preserve {
548
548
  -webkit-mask-image: var(--image-file-mediumIcons);
549
549
  -webkit-mask-position: var(--spritesheet-position);
@@ -635,30 +635,30 @@ button.link:focus-visible {
635
635
  opacity: 100%;
636
636
  }
637
637
 
638
- [is=ui-icon].icon-mask,
639
- .force-white-icons [is=ui-icon].spritesheet-smallicons,
640
- :host-context(.force-white-icons) [is=ui-icon].spritesheet-smallicons,
641
- [is=ui-icon].force-white-icons.spritesheet-smallicons,
642
- .force-white-icons [is=ui-icon].spritesheet-largeicons,
643
- :host-context(.force-white-icons) [is=ui-icon].spritesheet-largeicons,
644
- [is=ui-icon].force-white-icons.spritesheet-largeicons,
645
- .force-white-icons [is=ui-icon].spritesheet-mediumicons,
646
- :host-context(.force-white-icons) [is=ui-icon].spritesheet-mediumicons,
647
- [is=ui-icon].force-white-icons.spritesheet-mediumicons,
638
+ [is="ui-icon"].icon-mask,
639
+ .force-white-icons [is="ui-icon"].spritesheet-smallicons,
640
+ :host-context(.force-white-icons) [is="ui-icon"].spritesheet-smallicons,
641
+ [is="ui-icon"].force-white-icons.spritesheet-smallicons,
642
+ .force-white-icons [is="ui-icon"].spritesheet-largeicons,
643
+ :host-context(.force-white-icons) [is="ui-icon"].spritesheet-largeicons,
644
+ [is="ui-icon"].force-white-icons.spritesheet-largeicons,
645
+ .force-white-icons [is="ui-icon"].spritesheet-mediumicons,
646
+ :host-context(.force-white-icons) [is="ui-icon"].spritesheet-mediumicons,
647
+ [is="ui-icon"].force-white-icons.spritesheet-mediumicons,
648
648
  .-theme-preserve {
649
649
  forced-color-adjust: none;
650
650
  background-color: ButtonText;
651
651
  }
652
652
 
653
653
  .harmony-input:not([type]),
654
- .harmony-input[type=number],
655
- .harmony-input[type=text] {
654
+ .harmony-input[type="number"],
655
+ .harmony-input[type="text"] {
656
656
  border: 1px solid ButtonText;
657
657
  }
658
658
 
659
659
  .harmony-input:not([type]):focus,
660
- .harmony-input[type=number]:focus,
661
- .harmony-input[type=text]:focus {
660
+ .harmony-input[type="number"]:focus,
661
+ .harmony-input[type="text"]:focus {
662
662
  border: 1px solid Highlight;
663
663
  }
664
664
  }
@@ -209,15 +209,15 @@
209
209
  color: var(--color-link);
210
210
  }
211
211
 
212
- .devtools-link [is=ui-icon] {
212
+ .devtools-link [is="ui-icon"] {
213
213
  vertical-align: middle;
214
214
  }
215
215
 
216
- .devtools-link [is=ui-icon].icon-mask {
216
+ .devtools-link [is="ui-icon"].icon-mask {
217
217
  background-color: var(--color-link);
218
218
  }
219
219
 
220
- :focus .selected .devtools-link [is=ui-icon].icon-mask {
220
+ :focus .selected .devtools-link [is="ui-icon"].icon-mask {
221
221
  background-color: var(--legacy-item-selection-bg-color);
222
222
  }
223
223
 
@@ -14,7 +14,7 @@
14
14
  }
15
15
 
16
16
  .tabbed-pane-header-tab.selected {
17
- border-width: 0 2px 0 2px;
17
+ border-width: 0 2px;
18
18
  }
19
19
 
20
20
  .tabbed-pane-header-contents {
@@ -35,7 +35,7 @@
35
35
  }
36
36
 
37
37
  .toolbar-search > div {
38
- margin: 2px 2px;
38
+ margin: 2px;
39
39
  flex-shrink: 0;
40
40
  }
41
41
 
@@ -11,7 +11,7 @@
11
11
  overflow-y: auto;
12
12
  min-width: 160px !important; /* stylelint-disable-line declaration-no-important */
13
13
  /* NOTE: Keep padding in sync with padding adjustment in SoftContextMenu.js */
14
- padding: 4px 0 4px 0;
14
+ padding: 4px 0;
15
15
  border: 1px solid var(--color-details-hairline);
16
16
  background-color: var(--color-background);
17
17
  box-shadow: var(--drop-shadow);
@@ -47,7 +47,7 @@
47
47
  }
48
48
 
49
49
  .text-prompt:not([data-placeholder]):empty::after {
50
- content: '\00A0';
50
+ content: "\00A0";
51
51
  width: 0;
52
52
  display: block;
53
53
  }
@@ -307,7 +307,7 @@ select.toolbar-item:focus-visible > * {
307
307
  .toolbar-input {
308
308
  width: 120px;
309
309
  height: 19px;
310
- padding: 4px 3px 3px 3px;
310
+ padding: 4px 3px 3px;
311
311
  margin: 1px 3px;
312
312
  background-color: var(--color-background);
313
313
  border: 1px solid transparent;
@@ -389,18 +389,18 @@ select.toolbar-item:focus-visible > * {
389
389
  left: -2px;
390
390
  }
391
391
 
392
- input[is=history-input] {
392
+ input[is="history-input"] {
393
393
  border: 1px solid transparent;
394
394
  line-height: 16px;
395
395
  padding: 1px;
396
396
  }
397
397
 
398
- input[is=history-input]:hover {
398
+ input[is="history-input"]:hover {
399
399
  box-shadow: var(--legacy-focus-ring-inactive-shadow);
400
400
  }
401
401
 
402
- input[is=history-input]:focus,
403
- input[is=history-input]:not(:placeholder-shown) {
402
+ input[is="history-input"]:focus,
403
+ input[is="history-input"]:not(:placeholder-shown) {
404
404
  box-shadow: var(--legacy-focus-ring-active-shadow);
405
405
  }
406
406
 
@@ -470,7 +470,7 @@ devtools-icon.leading-issue-icon {
470
470
  color: HighlightText;
471
471
  }
472
472
 
473
- .toolbar-button:disabled [is=ui-icon].icon-mask {
473
+ .toolbar-button:disabled [is="ui-icon"].icon-mask {
474
474
  background-color: GrayText;
475
475
  color: GrayText;
476
476
  }
@@ -505,8 +505,8 @@ devtools-icon.leading-issue-icon {
505
505
  :not(.toolbar-render-as-links) .toolbar-button:enabled:hover .toolbar-glyph,
506
506
  :not(.toolbar-render-as-links) .toolbar-button:enabled:focus .toolbar-glyph,
507
507
  :not(.toolbar-render-as-links) .toolbar-button:enabled:hover:not(:active) .toolbar-glyph,
508
- .toolbar-button:enabled:hover [is=ui-icon].icon-mask,
509
- .toolbar-button:enabled:focus [is=ui-icon].icon-mask {
508
+ .toolbar-button:enabled:hover [is="ui-icon"].icon-mask,
509
+ .toolbar-button:enabled:focus [is="ui-icon"].icon-mask {
510
510
  background-color: HighlightText;
511
511
  }
512
512
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  :host {
8
8
  flex: 1 1 auto;
9
- padding: 2px 0 0 0;
9
+ padding: 2px 0 0;
10
10
  }
11
11
 
12
12
  .tree-outline-disclosure:not(.tree-outline-disclosure-hide-overflow) {
@@ -166,7 +166,7 @@ ol.tree-outline:not(.hide-selection-when-blurred) li.selected:focus * {
166
166
  @media (forced-colors: active) {
167
167
  .tree-outline-disclosure li.parent::before,
168
168
  .tree-outline:not(.hide-selection-when-blurred) li.parent:not(.selected)::before,
169
- .tree-outline li [is=ui-icon].icon-mask {
169
+ .tree-outline li [is="ui-icon"].icon-mask {
170
170
  forced-color-adjust: none;
171
171
  background-color: ButtonText;
172
172
  }
@@ -200,8 +200,8 @@ ol.tree-outline:not(.hide-selection-when-blurred) li.selected:focus * {
200
200
  background-color: transparent;
201
201
  }
202
202
 
203
- .tree-outline li.selected [is=ui-icon].icon-mask,
204
- .tree-outline li.selected:focus [is=ui-icon]:not(.icon-mask) {
203
+ .tree-outline li.selected [is="ui-icon"].icon-mask,
204
+ .tree-outline li.selected:focus [is="ui-icon"]:not(.icon-mask) {
205
205
  background-color: HighlightText !important; /* stylelint-disable-line declaration-no-important */
206
206
  }
207
207
 
@@ -17,11 +17,11 @@ body.platform-linux {
17
17
 
18
18
  body.platform-mac {
19
19
  color: rgb(48 57 66);
20
- font-family: '.SFNSDisplay-Regular', 'Helvetica Neue', 'Lucida Grande', sans-serif;
20
+ font-family: ".SFNSDisplay-Regular", "Helvetica Neue", "Lucida Grande", sans-serif;
21
21
  }
22
22
 
23
23
  body.platform-windows {
24
- font-family: 'Segoe UI', Tahoma, sans-serif;
24
+ font-family: "Segoe UI", Tahoma, sans-serif;
25
25
  }
26
26
 
27
27
  .fill {
@@ -157,7 +157,7 @@ body {
157
157
  margin-right: 2px;
158
158
  width: 10px;
159
159
  height: 10px;
160
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);
160
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==");
161
161
  line-height: 10px;
162
162
  }
163
163
 
@@ -61,12 +61,12 @@ body {
61
61
  }
62
62
 
63
63
  #resume-button .glyph {
64
- -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAKCAYAAABv7tTEAAAAAXNSR0IArs4c6QAAAFJJREFUKM+10bEJgGAMBeEPbR3BLRzEVdzEVRzELRzBVohVwEJ+iODBlQfhBeJhsmHU4C0KnFjQV6J0x1SNAhdWDJUoPTB3PvLLeaUhypM3n3sD/qc7lDrdpIEAAAAASUVORK5CYII=);
64
+ -webkit-mask-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAKCAYAAABv7tTEAAAAAXNSR0IArs4c6QAAAFJJREFUKM+10bEJgGAMBeEPbR3BLRzEVdzEVRzELRzBVohVwEJ+iODBlQfhBeJhsmHU4C0KnFjQV6J0x1SNAhdWDJUoPTB3PvLLeaUhypM3n3sD/qc7lDrdpIEAAAAASUVORK5CYII=");
65
65
  -webkit-mask-size: 13px 10px;
66
66
  background-color: rgb(66 129 235);
67
67
  }
68
68
 
69
69
  #step-over-button .glyph {
70
- -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAKCAYAAAC5Sw6hAAAAAXNSR0IArs4c6QAAAOFJREFUKM+N0j8rhXEUB/DPcxW35CqhvIBrtqibkklhV8qkTHe4ZbdblcXgPVhuMdqUTUl5A2KRRCF5LGc4PT1P7qnfcr5/zu/8KdTHLFaxjHnc4RZXKI0QYxjgLQTVd42l/0wmg5iFX3iq5H6w22RS4DyRH7CB8cAXcBTGJT6xUmd0mEwuMdFQcA3fwXvGTAan8BrgPabTL9fRRyfx91PRMwyjGwcJ2EyCfsrfpPw2Pipz24NT/MZciiQYVshzOKnZ5Hturxt3k2MnCpS4SPkeHpPR8Sh3tYgttBoW9II2/AHiaEqvD2Fc0wAAAABJRU5ErkJggg==);
70
+ -webkit-mask-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAKCAYAAAC5Sw6hAAAAAXNSR0IArs4c6QAAAOFJREFUKM+N0j8rhXEUB/DPcxW35CqhvIBrtqibkklhV8qkTHe4ZbdblcXgPVhuMdqUTUl5A2KRRCF5LGc4PT1P7qnfcr5/zu/8KdTHLFaxjHnc4RZXKI0QYxjgLQTVd42l/0wmg5iFX3iq5H6w22RS4DyRH7CB8cAXcBTGJT6xUmd0mEwuMdFQcA3fwXvGTAan8BrgPabTL9fRRyfx91PRMwyjGwcJ2EyCfsrfpPw2Pipz24NT/MZciiQYVshzOKnZ5Hturxt3k2MnCpS4SPkeHpPR8Sh3tYgttBoW9II2/AHiaEqvD2Fc0wAAAABJRU5ErkJggg==");
71
71
  -webkit-mask-size: 18px 10px;
72
72
  }
package/package.json CHANGED
@@ -55,5 +55,5 @@
55
55
  "unittest": "scripts/test/run_unittests.py --no-text-coverage",
56
56
  "watch": "third_party/node/node.py --output scripts/watch_build.js"
57
57
  },
58
- "version": "1.0.938678"
58
+ "version": "1.0.939473"
59
59
  }
@@ -44,7 +44,7 @@ module.exports = {
44
44
 
45
45
  function findComponentTagNameFromStaticProperty(classBodyNode) {
46
46
  return classBodyNode.body.find(node => {
47
- return node.type === 'ClassProperty' && node.key.name === 'litTagName';
47
+ return node.type === 'PropertyDefinition' && node.key.name === 'litTagName';
48
48
  });
49
49
  }
50
50
 
@@ -73,7 +73,7 @@ module.exports = {
73
73
 
74
74
  // If the reference is right, let's find the value of the static eventName property and make sure it is valid.
75
75
  const eventNameProperty = node.body.body.find(classBodyPart => {
76
- return classBodyPart.type === 'ClassProperty' && classBodyPart.key.name === 'eventName';
76
+ return classBodyPart.type === 'PropertyDefinition' && classBodyPart.key.name === 'eventName';
77
77
  });
78
78
 
79
79
  // This should always exist because we checked for its existence
@@ -16,7 +16,7 @@ const INSPECTOR_OVERLAY_DIRECTORY = path.join(__dirname, '..', '..', '..', 'fron
16
16
  const COMPONENT_DOCS_DIRECTORY = path.join(FRONT_END_DIRECTORY, 'ui', 'components', 'docs');
17
17
 
18
18
  const CROSS_NAMESPACE_MESSAGE =
19
- 'Incorrect cross-namespace import: "{{importPath}}". Use "import * as Namespace from \'../namespace/namespace.js\';" instead.';
19
+ 'Incorrect cross-namespace import: "{{importPathForErrorMessage}}". Use "import * as Namespace from \'../namespace/namespace.js\';" instead.';
20
20
 
21
21
  // ------------------------------------------------------------------------------
22
22
  // Rule Definition
@@ -42,7 +42,7 @@ function computeTopLevelFolder(fileName) {
42
42
  return namespaceName.substring(0, namespaceName.indexOf(path.sep));
43
43
  }
44
44
 
45
- function checkImportExtension(importPath, context, node) {
45
+ function checkImportExtension(importPath, importPathForErrorMessage, context, node) {
46
46
  // import * as fs from 'fs';
47
47
  if (!importPath.startsWith('.')) {
48
48
  return;
@@ -51,12 +51,12 @@ function checkImportExtension(importPath, context, node) {
51
51
  if (!importPath.endsWith('.js') && !importPath.endsWith('.mjs')) {
52
52
  context.report({
53
53
  node,
54
- message: 'Missing file extension for import "{{importPath}}"',
54
+ message: 'Missing file extension for import "{{importPathForErrorMessage}}"',
55
55
  data: {
56
- importPath,
56
+ importPathForErrorMessage,
57
57
  },
58
58
  fix(fixer) {
59
- return fixer.replaceText(node.source, `'${importPath}.js'`);
59
+ return fixer.replaceText(node.source, `'${importPathForErrorMessage}.js'`);
60
60
  }
61
61
  });
62
62
  }
@@ -67,7 +67,7 @@ function nodeSpecifiersSpecialImportsOnly(specifiers) {
67
67
  ['ls', 'assertNotNullOrUndefined'].includes(specifiers[0].imported.name);
68
68
  }
69
69
 
70
- function checkStarImport(context, node, importPath, importingFileName, exportingFileName) {
70
+ function checkStarImport(context, node, importPath, importPathForErrorMessage, importingFileName, exportingFileName) {
71
71
  if (isModuleEntrypoint(importingFileName)) {
72
72
  return;
73
73
  }
@@ -93,9 +93,9 @@ function checkStarImport(context, node, importPath, importingFileName, exporting
93
93
  context.report({
94
94
  node,
95
95
  message:
96
- 'Incorrect same-namespace import: "{{importPath}}". Use "import { Symbol } from \'./relative-file.js\';" instead.',
96
+ 'Incorrect same-namespace import: "{{importPathForErrorMessage}}". Use "import { Symbol } from \'./relative-file.js\';" instead.',
97
97
  data: {
98
- importPath,
98
+ importPathForErrorMessage,
99
99
  },
100
100
  });
101
101
  }
@@ -104,9 +104,7 @@ function checkStarImport(context, node, importPath, importingFileName, exporting
104
104
  context.report({
105
105
  node,
106
106
  message: CROSS_NAMESPACE_MESSAGE,
107
- data: {
108
- importPath,
109
- },
107
+ data: {importPathForErrorMessage},
110
108
  });
111
109
  }
112
110
  }
@@ -135,12 +133,14 @@ module.exports = {
135
133
  }
136
134
  const importPath = path.normalize(node.source.value);
137
135
 
138
- checkImportExtension(importPath, context, node);
136
+ const importPathForErrorMessage = node.source.value.replace(/\\/g, '/');
137
+ checkImportExtension(importPath, importPathForErrorMessage, context, node);
139
138
  },
140
139
  ImportDeclaration(node) {
141
- checkImportExtension(node.source.value, context, node);
142
-
143
140
  const importPath = path.normalize(node.source.value);
141
+ const importPathForErrorMessage = node.source.value.replace(/\\/g, '/');
142
+
143
+ checkImportExtension(node.source.value, importPathForErrorMessage, context, node);
144
144
 
145
145
  // Accidental relative URL:
146
146
  // import * as Root from 'front_end/root/root.js';
@@ -173,7 +173,8 @@ module.exports = {
173
173
 
174
174
  const exportingFileName = path.resolve(path.dirname(importingFileName), importPath);
175
175
 
176
- if (importPath.includes('/front_end/') && !importingFileIsUnitTestFile && !importingFileIsComponentDocsFile) {
176
+ if (importPath.replace(/\\/g, '/').includes('/front_end/') && !importingFileIsUnitTestFile &&
177
+ !importingFileIsComponentDocsFile) {
177
178
  context.report({
178
179
  node,
179
180
  message:
@@ -181,14 +182,14 @@ module.exports = {
181
182
  });
182
183
  }
183
184
 
184
- if (importPath.endsWith(path.join('platform', 'platform.js')) &&
185
+ if (importPathForErrorMessage.endsWith('platform/platform.js') &&
185
186
  nodeSpecifiersSpecialImportsOnly(node.specifiers)) {
186
187
  /* We allow direct importing of the ls and assertNotNull utility as it's so frequently used. */
187
188
  return;
188
189
  }
189
190
 
190
191
  if (isStarAsImportSpecifier(node.specifiers)) {
191
- checkStarImport(context, node, importPath, importingFileName, exportingFileName);
192
+ checkStarImport(context, node, importPath, importPathForErrorMessage, importingFileName, exportingFileName);
192
193
  } else {
193
194
  if (computeTopLevelFolder(importingFileName) !== computeTopLevelFolder(exportingFileName)) {
194
195
  let message = CROSS_NAMESPACE_MESSAGE;
@@ -206,7 +207,7 @@ module.exports = {
206
207
  node,
207
208
  message,
208
209
  data: {
209
- importPath,
210
+ importPathForErrorMessage,
210
211
  },
211
212
  });
212
213
  } else if (isModuleEntrypoint(importingFileName)) {
@@ -222,9 +223,9 @@ module.exports = {
222
223
  context.report({
223
224
  node,
224
225
  message:
225
- 'Incorrect same-namespace import: "{{importPath}}". Use "import * as File from \'./File.js\';" instead.',
226
+ 'Incorrect same-namespace import: "{{importPathForErrorMessage}}". Use "import * as File from \'./File.js\';" instead.',
226
227
  data: {
227
- importPath,
228
+ importPathForErrorMessage,
228
229
  }
229
230
  });
230
231
  }
@@ -64,12 +64,13 @@ module.exports = {
64
64
  const previousFileLocationArgument = callExpression.arguments[0];
65
65
  const actualPath = path.join(FRONT_END_DIRECTORY, previousFileLocationArgument.value);
66
66
  if (!allowedPathArguments.includes(actualPath)) {
67
+ const newFileName = currentFileRelativeToFrontEnd.replace(/\\/g, '/');
67
68
  context.report({
68
69
  node: callExpression,
69
- message: `First argument to 'registerUIStrings' call must be '${
70
- currentFileRelativeToFrontEnd}' or the ModuleUIStrings.(js|ts)`,
70
+ message:
71
+ `First argument to 'registerUIStrings' call must be '${newFileName}' or the ModuleUIStrings.(js|ts)`,
71
72
  fix(fixer) {
72
- return fixer.replaceText(previousFileLocationArgument, `'${currentFileRelativeToFrontEnd}'`);
73
+ return fixer.replaceText(previousFileLocationArgument, `'${newFileName}'`);
73
74
  }
74
75
  });
75
76
  }
@@ -7,7 +7,7 @@
7
7
  // One of these AST nodes must be an ancestor of an i18nString call.
8
8
  const REQUIRED_ANCESTOR = new Set([
9
9
  'ArrowFunctionExpression',
10
- 'ClassProperty',
10
+ 'PropertyDefinition',
11
11
  'FunctionDeclaration',
12
12
  'FunctionExpression',
13
13
  'MethodDefinition',
@@ -57,13 +57,13 @@ module.exports = {
57
57
  const propertyNode = lookForCSSFileProperty(options.properties);
58
58
 
59
59
  if (propertyNode && propertyNode.value.type === 'Literal') {
60
- const filenameWithExtension = propertyNode.value.value;
60
+ const filenameWithExtension = propertyNode.value.value.replace(/\\/g, '/');
61
61
  const filename = path.basename(filenameWithExtension, '.css');
62
62
  const newFileName = filename + 'Styles';
63
63
 
64
64
  const importDir = 'front_end/' + path.dirname(filenameWithExtension);
65
65
  const fileDir = path.dirname(context.getFilename());
66
- const relativeImport = path.relative(fileDir, importDir);
66
+ const relativeImport = path.relative(fileDir, importDir).replace(/\\/g, '/');
67
67
  const importStatement = relativeImport === '' ?
68
68
  `import ${newFileName} from \'./${filename}.css.js\';\n` :
69
69
  `import ${newFileName} from \'${relativeImport}/${filename}.css.js\';\n`;
@@ -106,7 +106,7 @@ module.exports = {
106
106
 
107
107
  const importDir = 'front_end/' + path.dirname(filenameWithExtension);
108
108
  const fileDir = path.dirname(context.getFilename());
109
- const relativeImport = path.relative(fileDir, importDir);
109
+ const relativeImport = path.relative(fileDir, importDir).replace(/\\/g, '/');
110
110
  const importStatement = relativeImport === '' ?
111
111
  `import ${newFileName} from \'./${filename}.css.js\';\n` :
112
112
  `import ${newFileName} from \'${relativeImport}/${filename}.css.js\';\n`;
@@ -49,7 +49,7 @@ module.exports = {
49
49
  },
50
50
  create: function(context) {
51
51
  return {
52
- ClassProperty(node) {
52
+ PropertyDefinition(node) {
53
53
  checkNodeForUnderscoredProperties(context, node, 'property');
54
54
  },
55
55
  MethodDefinition(node) {
@@ -155,7 +155,8 @@ ruleTester.run('es_modules_import', rule, {
155
155
  code: 'import { Exporting } from \'./Exporting.js\';',
156
156
  filename: 'front_end/common/common.js',
157
157
  errors: [{
158
- message: 'Incorrect same-namespace import: "Exporting.js". Use "import * as File from \'./File.js\';" instead.'
158
+ message:
159
+ 'Incorrect same-namespace import: "./Exporting.js". Use "import * as File from \'./File.js\';" instead.'
159
160
  }],
160
161
  },
161
162
  {
@@ -220,7 +221,7 @@ ruleTester.run('es_modules_import', rule, {
220
221
  filename: 'front_end/some_folder/nested_entrypoint/nested_entrypoint.js',
221
222
  errors: [{
222
223
  message:
223
- 'Incorrect same-namespace import: "append-style.js". Use "import * as File from \'./File.js\';" instead.'
224
+ 'Incorrect same-namespace import: "./append-style.js". Use "import * as File from \'./File.js\';" instead.'
224
225
  }]
225
226
  },
226
227
  {
@@ -1,5 +0,0 @@
1
- {
2
- "dependencies": [
3
- "ui/legacy"
4
- ]
5
- }