chrome-devtools-frontend 1.0.939473 → 1.0.941208

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 (69) hide show
  1. package/config/gni/all_devtools_files.gni +0 -7
  2. package/config/gni/devtools_grd_files.gni +7 -1
  3. package/config/gni/devtools_image_files.gni +1 -0
  4. package/docs/triage_guidelines.md +3 -3
  5. package/front_end/.eslintrc.js +1 -0
  6. package/front_end/Images/src/feedback_button_icon.svg +3 -0
  7. package/front_end/Tests.js +14 -0
  8. package/front_end/core/host/InspectorFrontendHostAPI.ts +5 -0
  9. package/front_end/core/host/UserMetrics.ts +71 -0
  10. package/front_end/core/i18n/locales/en-US.json +30 -9
  11. package/front_end/core/i18n/locales/en-XL.json +30 -9
  12. package/front_end/core/sdk/DOMDebuggerModel.ts +18 -1
  13. package/front_end/devtools_compatibility.js +5 -0
  14. package/front_end/entrypoints/main/MainImpl.ts +6 -3
  15. package/front_end/entrypoints/main/main-meta.ts +1 -0
  16. package/front_end/entrypoints/shell/shell.json +0 -1
  17. package/front_end/global_typings/global_defs.d.ts +5 -0
  18. package/front_end/legacy_test_runner/console_test_runner/console_test_runner.js +14 -2
  19. package/front_end/legacy_test_runner/test_runner/TestRunner.js +9 -0
  20. package/front_end/models/logs/LogManager.ts +1 -0
  21. package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +1 -1
  22. package/front_end/panels/accessibility/AccessibilityNodeView.ts +1 -1
  23. package/front_end/panels/application/ApplicationPanelCacheSection.ts +1 -1
  24. package/front_end/panels/application/BackForwardCacheView.ts +24 -24
  25. package/front_end/panels/application/module.json +0 -1
  26. package/front_end/panels/css_overview/components/CSSOverviewStartView.ts +6 -8
  27. package/front_end/panels/css_overview/components/cssOverviewStartView.css +7 -1
  28. package/front_end/panels/elements/StylesSidebarPane.ts +2 -1
  29. package/front_end/panels/issues/IssueKindView.ts +22 -4
  30. package/front_end/panels/layer_viewer/module.json +1 -2
  31. package/front_end/panels/lighthouse/LighthouseController.ts +10 -33
  32. package/front_end/panels/lighthouse/LighthousePanel.ts +2 -1
  33. package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +2 -1
  34. package/front_end/panels/media/module.json +1 -2
  35. package/front_end/panels/network/NetworkLogView.ts +3 -0
  36. package/front_end/panels/network/module.json +0 -1
  37. package/front_end/panels/profiler/module.json +1 -2
  38. package/front_end/panels/settings/components/SyncSection.ts +25 -4
  39. package/front_end/panels/sources/SourcesPanel.ts +9 -5
  40. package/front_end/panels/timeline/module.json +0 -1
  41. package/front_end/third_party/codemirror.next/bundle-tsconfig.json +1 -1
  42. package/front_end/ui/components/buttons/Button.ts +11 -0
  43. package/front_end/ui/components/buttons/button.css +4 -0
  44. package/front_end/ui/components/docs/button/basic.ts +10 -0
  45. package/front_end/ui/components/docs/panel_feedback/basic.html +25 -0
  46. package/front_end/ui/components/docs/panel_feedback/basic.ts +20 -0
  47. package/front_end/ui/components/docs/panel_feedback/button.html +25 -0
  48. package/front_end/ui/components/docs/panel_feedback/button.ts +18 -0
  49. package/front_end/ui/components/helpers/get-stylesheet.ts +1 -0
  50. package/front_end/ui/components/panel_feedback/FeedbackButton.ts +67 -0
  51. package/front_end/ui/components/panel_feedback/PanelFeedback.ts +100 -0
  52. package/front_end/ui/components/panel_feedback/panelFeedback.css +76 -0
  53. package/front_end/ui/components/panel_feedback/panel_feedback.ts +6 -0
  54. package/front_end/ui/components/report_view/reportValue.css +1 -0
  55. package/front_end/ui/legacy/Widget.ts +1 -1
  56. package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +2 -1
  57. package/front_end/ui/legacy/components/perf_ui/FilmStripView.ts +3 -1
  58. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +2 -1
  59. package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +2 -1
  60. package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +3 -1
  61. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +2 -1
  62. package/front_end/ui/legacy/softContextMenu.css +1 -0
  63. package/front_end/ui/legacy/utils/append-style.ts +9 -4
  64. package/package.json +2 -2
  65. package/scripts/build/generate_css_js_files.js +23 -9
  66. package/scripts/build/ninja/generate_css.gni +10 -1
  67. package/scripts/eslint_rules/lib/check_css_import.js +2 -2
  68. package/scripts/eslint_rules/tests/check_css_import_test.js +12 -0
  69. package/front_end/ui/legacy/components/perf_ui/module.json +0 -13
@@ -63,13 +63,6 @@ all_devtools_files = [
63
63
  "front_end/legacy_test_runner/network_test_runner/network_test_runner.js",
64
64
  "front_end/panels/network/module.json",
65
65
  "front_end/entrypoints/node_main/nodeConnectionsPanel.css",
66
- "front_end/ui/legacy/components/perf_ui/chartViewport.css",
67
- "front_end/ui/legacy/components/perf_ui/filmStripView.css",
68
- "front_end/ui/legacy/components/perf_ui/flameChart.css",
69
- "front_end/ui/legacy/components/perf_ui/module.json",
70
- "front_end/ui/legacy/components/perf_ui/overviewGrid.css",
71
- "front_end/ui/legacy/components/perf_ui/timelineGrid.css",
72
- "front_end/ui/legacy/components/perf_ui/timelineOverviewInfo.css",
73
66
  "front_end/legacy_test_runner/performance_test_runner/performance_test_runner.js",
74
67
  "front_end/legacy_test_runner/performance_test_runner/TimelineDataTestRunner.js",
75
68
  "front_end/legacy_test_runner/performance_test_runner/TimelineTestRunner.js",
@@ -52,6 +52,7 @@ grd_files_release_sources = [
52
52
  "front_end/Images/elements_panel_icon.svg",
53
53
  "front_end/Images/errorWave.svg",
54
54
  "front_end/Images/error_icon.svg",
55
+ "front_end/Images/feedback_button_icon.svg",
55
56
  "front_end/Images/feedback_thin_16x16_icon.svg",
56
57
  "front_end/Images/flex-direction-icon.svg",
57
58
  "front_end/Images/flex-nowrap-icon.svg",
@@ -504,7 +505,6 @@ grd_files_release_sources = [
504
505
  "front_end/ui/legacy/components/perf_ui/perf_ui-legacy.js",
505
506
  "front_end/ui/legacy/components/perf_ui/perf_ui-meta.js",
506
507
  "front_end/ui/legacy/components/perf_ui/perf_ui.js",
507
- "front_end/ui/legacy/components/perf_ui/perf_ui_module.js",
508
508
  "front_end/ui/legacy/components/quick_open/quick_open-legacy.js",
509
509
  "front_end/ui/legacy/components/quick_open/quick_open-meta.js",
510
510
  "front_end/ui/legacy/components/quick_open/quick_open.js",
@@ -1537,7 +1537,13 @@ grd_files_debug_sources = [
1537
1537
  "front_end/ui/legacy/components/perf_ui/PieChart.js",
1538
1538
  "front_end/ui/legacy/components/perf_ui/TimelineGrid.js",
1539
1539
  "front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.js",
1540
+ "front_end/ui/legacy/components/perf_ui/chartViewport.css.legacy.js",
1541
+ "front_end/ui/legacy/components/perf_ui/filmStripView.css.legacy.js",
1542
+ "front_end/ui/legacy/components/perf_ui/flameChart.css.legacy.js",
1543
+ "front_end/ui/legacy/components/perf_ui/overviewGrid.css.legacy.js",
1540
1544
  "front_end/ui/legacy/components/perf_ui/pieChart.css.js",
1545
+ "front_end/ui/legacy/components/perf_ui/timelineGrid.css.legacy.js",
1546
+ "front_end/ui/legacy/components/perf_ui/timelineOverviewInfo.css.js",
1541
1547
  "front_end/ui/legacy/components/quick_open/CommandMenu.js",
1542
1548
  "front_end/ui/legacy/components/quick_open/FilteredListWidget.js",
1543
1549
  "front_end/ui/legacy/components/quick_open/HelpQuickOpen.js",
@@ -64,6 +64,7 @@ devtools_svg_sources = [
64
64
  "elements_panel_icon.svg",
65
65
  "errorWave.svg",
66
66
  "error_icon.svg",
67
+ "feedback_button_icon.svg",
67
68
  "feedback_thin_16x16_icon.svg",
68
69
  "flex-direction-icon.svg",
69
70
  "flex-nowrap-icon.svg",
@@ -47,15 +47,15 @@ Issues in the untriaged queue should receive a meaningful response within a busi
47
47
  - Close issues as `Archived` that are valid, but it seems unlikely that we will get there anytime soon.
48
48
  - Move issues out of `Platform>DevTools` if they are not DevTools issues (but just reported via the menu item in DevTools), put on the `Hotlist-DevTools-Triaged` and leave the `Untriaged` status as is.
49
49
  - Assign regression bugs with bisects to individuals directly and set the status to `Assigned`.
50
- - Put proper `Platform>DevTools>XXX` component(s) on the issue and do an initial check-in regarding the priority.
51
- - Put one of the following labels on it and set the status to "Available":
50
+ - Put proper `Platform>DevTools>XXX` component(s) on the issue and do an initial check-in regarding the priority.
51
+ - Put one of the following labels on it and set the status to `Available`:
52
52
  - `Hotlist-DevTools-ProductReview` if it's controversial or clear that consensus needs to be built first.
53
53
  - `Hotlist-DevTools-BrowserAutomation-Backlog` if it's an issue related to ChromeDriver or puppeteer.
54
54
  - `Hotlist-DevTools-Debugging-Backlog` if it's a debugging issue.
55
55
  - `Hotlist-DevTools-DesignAccessibility-Backlog` if it's a design or accessibility issue.
56
56
  - `Hotlist-DevTools-Performance-Backlog` if the issue is related to our performance tooling (i.e. Performance panel, Lighthouse).
57
57
  - `Hotlist-DevTools-Backlog` if it's a general DevTools issue that is not specific to one of the core areas.
58
- - Also remember to put the Needs-UX label on it, if help from a designer is likely to be required.
58
+ - Also remember to put the `Needs-UX` label on it, if help from a designer is likely to be required.
59
59
 
60
60
  ### Setting Assigned or Available
61
61
 
@@ -32,6 +32,7 @@ module.exports = {
32
32
  'rulesdir/ban_style_tags_in_lit_html': 2,
33
33
  'rulesdir/ban_a_tags_in_lit_html': 2,
34
34
  'rulesdir/check_component_naming': 2,
35
+ 'rulesdir/check_css_import': 2,
35
36
  'rulesdir/check_was_shown_methods': 2,
36
37
  'rulesdir/static_custom_event_names': 2,
37
38
  'rulesdir/lit_html_host_this': 2,
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M17.3335 5.83325H6.66683C5.9335 5.83325 5.34016 6.43325 5.34016 7.16659L5.3335 19.1666L8.00016 16.4999H17.3335C18.0668 16.4999 18.6668 15.8999 18.6668 15.1666V7.16659C18.6668 6.43325 18.0668 5.83325 17.3335 5.83325ZM17.3335 15.1666H7.44683L7.0535 15.5599L6.66683 15.9466V7.16659H17.3335V15.1666ZM11.3335 12.4999H12.6668V13.8333H11.3335V12.4999ZM11.3335 8.49992H12.6668V11.1666H11.3335V8.49992Z" fill="black"/>
3
+ </svg>
@@ -141,6 +141,20 @@
141
141
  this.domAutomationController_.send('[FAILED] ' + error);
142
142
  };
143
143
 
144
+ TestSuite.prototype.setupLegacyFilesForTest = async function() {
145
+ try {
146
+ await Promise.all([
147
+ self.runtime.loadLegacyModule('core/common/common-legacy.js'),
148
+ self.runtime.loadLegacyModule('core/sdk/sdk-legacy.js'),
149
+ self.runtime.loadLegacyModule('ui/legacy/legacy-legacy.js'),
150
+ self.runtime.loadLegacyModule('models/workspace/workspace-legacy.js'),
151
+ ]);
152
+ this.reportOk_();
153
+ } catch (e) {
154
+ this.reportFailure_(e);
155
+ }
156
+ };
157
+
144
158
  /**
145
159
  * Run specified test on a fresh instance of the test suite.
146
160
  * @param {Array<string>} args method name followed by its parameters.
@@ -369,4 +369,9 @@ export enum EnumeratedHistogram {
369
369
  Language = 'DevTools.Language',
370
370
  ConsoleShowsCorsErrors = 'DevTools.ConsoleShowsCorsErrors',
371
371
  SyncSetting = 'DevTools.SyncSetting',
372
+ RecordingEdited = 'DevTools.RecordingEdited',
373
+ RecordingExported = 'DevTools.RecordingExported',
374
+ RecordingReplayFinished = 'DevTools.RecordingReplayFinished',
375
+ RecordingReplayStarted = 'DevTools.RecordingReplayStarted',
376
+ RecordingToggled = 'DevTools.RecordingToggled',
372
377
  }
@@ -261,6 +261,31 @@ export class UserMetrics {
261
261
  InspectorFrontendHostInstance.recordEnumeratedHistogram(EnumeratedHistogram.SyncSetting, settingValue, size);
262
262
  });
263
263
  }
264
+
265
+ recordingToggled(value: RecordingToggled): void {
266
+ const size = Object.keys(RecordingToggled).length + 1;
267
+ InspectorFrontendHostInstance.recordEnumeratedHistogram(EnumeratedHistogram.RecordingToggled, value, size);
268
+ }
269
+
270
+ recordingReplayFinished(value: RecordingReplayFinished): void {
271
+ const size = Object.keys(RecordingReplayFinished).length + 1;
272
+ InspectorFrontendHostInstance.recordEnumeratedHistogram(EnumeratedHistogram.RecordingReplayFinished, value, size);
273
+ }
274
+
275
+ recordingReplayStarted(value: RecordingReplayStarted): void {
276
+ const size = Object.keys(RecordingReplayStarted).length + 1;
277
+ InspectorFrontendHostInstance.recordEnumeratedHistogram(EnumeratedHistogram.RecordingReplayStarted, value, size);
278
+ }
279
+
280
+ recordingEdited(value: RecordingEdited): void {
281
+ const size = Object.keys(RecordingEdited).length + 1;
282
+ InspectorFrontendHostInstance.recordEnumeratedHistogram(EnumeratedHistogram.RecordingEdited, value, size);
283
+ }
284
+
285
+ recordingExported(value: RecordingExported): void {
286
+ const size = Object.keys(RecordingExported).length + 1;
287
+ InspectorFrontendHostInstance.recordEnumeratedHistogram(EnumeratedHistogram.RecordingExported, value, size);
288
+ }
264
289
  }
265
290
 
266
291
  // Codes below are used to collect UMA histograms in the Chromium port.
@@ -687,6 +712,7 @@ export const IssueCreated: {
687
712
  'CorsIssue::NoCorsRedirectModeNotFollow': 57,
688
713
  'QuirksModeIssue::QuirksMode': 58,
689
714
  'QuirksModeIssue::LimitedQuirksMode': 59,
715
+ DeprecationIssue: 60,
690
716
  };
691
717
 
692
718
  // TODO(crbug.com/1167717): Make this a const enum again
@@ -826,3 +852,48 @@ export enum SyncSetting {
826
852
  DevToolsSyncSettingDisabled = 3,
827
853
  DevToolsSyncSettingEnabled = 4,
828
854
  }
855
+
856
+ // TODO(crbug.com/1167717): Make this a const enum again
857
+ // eslint-disable-next-line rulesdir/const_enum
858
+ export enum RecordingToggled {
859
+ RecordingStarted = 1,
860
+ RecordingFinished = 2,
861
+ }
862
+
863
+ // TODO(crbug.com/1167717): Make this a const enum again
864
+ // eslint-disable-next-line rulesdir/const_enum
865
+ export enum RecordingReplayFinished {
866
+ Success = 1,
867
+ TimeoutErrorSelectors = 2,
868
+ TimeoutErrorTarget = 3,
869
+ OtherError = 4,
870
+ }
871
+
872
+ // TODO(crbug.com/1167717): Make this a const enum again
873
+ // eslint-disable-next-line rulesdir/const_enum
874
+ export enum RecordingReplayStarted {
875
+ ReplayOnly = 1,
876
+ ReplayWithPerformanceTracing = 2,
877
+ }
878
+
879
+ // TODO(crbug.com/1167717): Make this a const enum again
880
+ // eslint-disable-next-line rulesdir/const_enum
881
+ export enum RecordingEdited {
882
+ SelectorPickerUsed = 1,
883
+ StepAdded = 2,
884
+ StepRemoved = 3,
885
+ SelectorAdded = 4,
886
+ SelectorRemoved = 5,
887
+ SelectorPartAdded = 6,
888
+ SelectorPartEdited = 7,
889
+ SelectorPartRemoved = 8,
890
+ TypeChanged = 9,
891
+ OtherEditing = 10,
892
+ }
893
+
894
+ // TODO(crbug.com/1167717): Make this a const enum again
895
+ // eslint-disable-next-line rulesdir/const_enum
896
+ export enum RecordingExported {
897
+ ToPuppeteer = 1,
898
+ ToJSON = 2,
899
+ }
@@ -2052,7 +2052,7 @@
2052
2052
  "message": "Stop recording events"
2053
2053
  },
2054
2054
  "panels/application/ApplicationPanelCacheSection.ts | backForwardCache": {
2055
- "message": "Back-forward Cache"
2055
+ "message": "Back-Forward Cache"
2056
2056
  },
2057
2057
  "panels/application/ApplicationPanelCacheSection.ts | cacheStorage": {
2058
2058
  "message": "Cache Storage"
@@ -2688,10 +2688,10 @@
2688
2688
  "message": "Pages that use WebXR are not currently eligible for back/forward cache."
2689
2689
  },
2690
2690
  "panels/application/BackForwardCacheView.ts | backForwardCacheTitle": {
2691
- "message": "Back-forward Cache"
2691
+ "message": "Back-Forward Cache"
2692
2692
  },
2693
2693
  "panels/application/BackForwardCacheView.ts | bfcacheStatus": {
2694
- "message": "Back-forward Cache Status"
2694
+ "message": "Back-Forward Cache Status"
2695
2695
  },
2696
2696
  "panels/application/BackForwardCacheView.ts | circumstantial": {
2697
2697
  "message": "Not Actionable"
@@ -2703,16 +2703,16 @@
2703
2703
  "message": "Main Frame"
2704
2704
  },
2705
2705
  "panels/application/BackForwardCacheView.ts | normalNavigation": {
2706
- "message": "Normal navigation (Not restored from back-forward cache)"
2706
+ "message": "Normal navigation (Not restored from Back-Forward Cache)"
2707
2707
  },
2708
2708
  "panels/application/BackForwardCacheView.ts | pageSupportNeeded": {
2709
2709
  "message": "Actionable"
2710
2710
  },
2711
2711
  "panels/application/BackForwardCacheView.ts | pageSupportNeededExplanation": {
2712
- "message": "These reasons are actionable i.e. they can be cleaned up to make the page eligible for back-forward cache."
2712
+ "message": "These reasons are actionable i.e. they can be cleaned up to make the page eligible for Back-Forward Cache."
2713
2713
  },
2714
2714
  "panels/application/BackForwardCacheView.ts | restoredFromBFCache": {
2715
- "message": "Restored from back-forward cache"
2715
+ "message": "Restored from Back-Forward Cache"
2716
2716
  },
2717
2717
  "panels/application/BackForwardCacheView.ts | runTest": {
2718
2718
  "message": "Run Test"
@@ -2721,7 +2721,7 @@
2721
2721
  "message": "Pending Support"
2722
2722
  },
2723
2723
  "panels/application/BackForwardCacheView.ts | supportPendingExplanation": {
2724
- "message": "Chrome support for these reasons is pending i.e. they will not prevent the page from being eligible for back-forward cache in a future version of Chrome."
2724
+ "message": "Chrome support for these reasons is pending i.e. they will not prevent the page from being eligible for Back-Forward Cache in a future version of Chrome."
2725
2725
  },
2726
2726
  "panels/application/BackForwardCacheView.ts | unavailable": {
2727
2727
  "message": "unavailable"
@@ -5387,8 +5387,14 @@
5387
5387
  "panels/issues/HiddenIssuesRow.ts | unhideAll": {
5388
5388
  "message": "Unhide all"
5389
5389
  },
5390
- "panels/issues/IssueKindView.ts | hideAllCurrent": {
5391
- "message": "Hide all current {PH1}"
5390
+ "panels/issues/IssueKindView.ts | hideAllCurrentBreakingChanges": {
5391
+ "message": "Hide all current Breaking Changes"
5392
+ },
5393
+ "panels/issues/IssueKindView.ts | hideAllCurrentImprovements": {
5394
+ "message": "Hide all current Improvements"
5395
+ },
5396
+ "panels/issues/IssueKindView.ts | hideAllCurrentPageErrors": {
5397
+ "message": "Hide all current Page Errors"
5392
5398
  },
5393
5399
  "panels/issues/issues-meta.ts | cspViolations": {
5394
5400
  "message": "CSP Violations"
@@ -11447,6 +11453,21 @@
11447
11453
  "ui/components/linear_memory_inspector/ValueInterpreterSettings.ts | otherGroup": {
11448
11454
  "message": "Other"
11449
11455
  },
11456
+ "ui/components/panel_feedback/FeedbackButton.ts | feedback": {
11457
+ "message": "Feedback"
11458
+ },
11459
+ "ui/components/panel_feedback/PanelFeedback.ts | previewFeature": {
11460
+ "message": "Preview feature"
11461
+ },
11462
+ "ui/components/panel_feedback/PanelFeedback.ts | previewText": {
11463
+ "message": "Our team is actively working on this feature and we would love to know what you think."
11464
+ },
11465
+ "ui/components/panel_feedback/PanelFeedback.ts | previewTextFeedbackLink": {
11466
+ "message": "Send us your feedback."
11467
+ },
11468
+ "ui/components/panel_feedback/PanelFeedback.ts | videoAndDocumentation": {
11469
+ "message": "Video and documentation"
11470
+ },
11450
11471
  "ui/components/request_link_icon/RequestLinkIcon.ts | clickToShowRequestInTheNetwork": {
11451
11472
  "message": "Click to open the network panel and show request for URL: {url}"
11452
11473
  },
@@ -2052,7 +2052,7 @@
2052
2052
  "message": "Ŝt́ôṕ r̂éĉór̂d́îńĝ év̂én̂t́ŝ"
2053
2053
  },
2054
2054
  "panels/application/ApplicationPanelCacheSection.ts | backForwardCache": {
2055
- "message": "B̂áĉḱ-f̂ór̂ẃâŕd̂ Ćâćĥé"
2055
+ "message": "B̂áĉḱ-F̂ór̂ẃâŕd̂ Ćâćĥé"
2056
2056
  },
2057
2057
  "panels/application/ApplicationPanelCacheSection.ts | cacheStorage": {
2058
2058
  "message": "Ĉáĉh́ê Śt̂ór̂áĝé"
@@ -2688,10 +2688,10 @@
2688
2688
  "message": "P̂áĝéŝ t́ĥát̂ úŝé Ŵéb̂X́R̂ ár̂é n̂ót̂ ćûŕr̂én̂t́l̂ý êĺîǵîb́l̂é f̂ór̂ b́âćk̂/f́ôŕŵár̂d́ ĉáĉh́ê."
2689
2689
  },
2690
2690
  "panels/application/BackForwardCacheView.ts | backForwardCacheTitle": {
2691
- "message": "B̂áĉḱ-f̂ór̂ẃâŕd̂ Ćâćĥé"
2691
+ "message": "B̂áĉḱ-F̂ór̂ẃâŕd̂ Ćâćĥé"
2692
2692
  },
2693
2693
  "panels/application/BackForwardCacheView.ts | bfcacheStatus": {
2694
- "message": "B̂áĉḱ-f̂ór̂ẃâŕd̂ Ćâćĥé Ŝt́ât́ûś"
2694
+ "message": "B̂áĉḱ-F̂ór̂ẃâŕd̂ Ćâćĥé Ŝt́ât́ûś"
2695
2695
  },
2696
2696
  "panels/application/BackForwardCacheView.ts | circumstantial": {
2697
2697
  "message": "N̂ót̂ Áĉt́îón̂áb̂ĺê"
@@ -2703,16 +2703,16 @@
2703
2703
  "message": "M̂áîń F̂ŕâḿê"
2704
2704
  },
2705
2705
  "panels/application/BackForwardCacheView.ts | normalNavigation": {
2706
- "message": "N̂ór̂ḿâĺ n̂áv̂íĝát̂íôń (N̂ót̂ ŕêśt̂ór̂éd̂ f́r̂óm̂ b́âćk̂-f́ôŕŵár̂d́ ĉáĉh́ê)"
2706
+ "message": "N̂ór̂ḿâĺ n̂áv̂íĝát̂íôń (N̂ót̂ ŕêśt̂ór̂éd̂ f́r̂óm̂ B́âćk̂-F́ôŕŵár̂d́ Ĉáĉh́ê)"
2707
2707
  },
2708
2708
  "panels/application/BackForwardCacheView.ts | pageSupportNeeded": {
2709
2709
  "message": "Âćt̂íôńâb́l̂é"
2710
2710
  },
2711
2711
  "panels/application/BackForwardCacheView.ts | pageSupportNeededExplanation": {
2712
- "message": "T̂h́êśê ŕêáŝón̂ś âŕê áĉt́îón̂áb̂ĺê í.ê. t́ĥéŷ ćâń b̂é ĉĺêán̂éd̂ úp̂ t́ô ḿâḱê t́ĥé p̂áĝé êĺîǵîb́l̂é f̂ór̂ b́âćk̂-f́ôŕŵár̂d́ ĉáĉh́ê."
2712
+ "message": "T̂h́êśê ŕêáŝón̂ś âŕê áĉt́îón̂áb̂ĺê í.ê. t́ĥéŷ ćâń b̂é ĉĺêán̂éd̂ úp̂ t́ô ḿâḱê t́ĥé p̂áĝé êĺîǵîb́l̂é f̂ór̂ B́âćk̂-F́ôŕŵár̂d́ Ĉáĉh́ê."
2713
2713
  },
2714
2714
  "panels/application/BackForwardCacheView.ts | restoredFromBFCache": {
2715
- "message": "R̂éŝt́ôŕêd́ f̂ŕôḿ b̂áĉḱ-f̂ór̂ẃâŕd̂ ćâćĥé"
2715
+ "message": "R̂éŝt́ôŕêd́ f̂ŕôḿ B̂áĉḱ-F̂ór̂ẃâŕd̂ Ćâćĥé"
2716
2716
  },
2717
2717
  "panels/application/BackForwardCacheView.ts | runTest": {
2718
2718
  "message": "R̂ún̂ T́êśt̂"
@@ -2721,7 +2721,7 @@
2721
2721
  "message": "P̂én̂d́îńĝ Śûṕp̂ór̂t́"
2722
2722
  },
2723
2723
  "panels/application/BackForwardCacheView.ts | supportPendingExplanation": {
2724
- "message": "Ĉh́r̂óm̂é ŝúp̂ṕôŕt̂ f́ôŕ t̂h́êśê ŕêáŝón̂ś îś p̂én̂d́îńĝ í.ê. t́ĥéŷ ẃîĺl̂ ńôt́ p̂ŕêv́êńt̂ t́ĥé p̂áĝé f̂ŕôḿ b̂éîńĝ él̂íĝíb̂ĺê f́ôŕ b̂áĉḱ-f̂ór̂ẃâŕd̂ ćâćĥé îń â f́ût́ûŕê v́êŕŝíôń ôf́ Ĉh́r̂óm̂é."
2724
+ "message": "Ĉh́r̂óm̂é ŝúp̂ṕôŕt̂ f́ôŕ t̂h́êśê ŕêáŝón̂ś îś p̂én̂d́îńĝ í.ê. t́ĥéŷ ẃîĺl̂ ńôt́ p̂ŕêv́êńt̂ t́ĥé p̂áĝé f̂ŕôḿ b̂éîńĝ él̂íĝíb̂ĺê f́ôŕ B̂áĉḱ-F̂ór̂ẃâŕd̂ Ćâćĥé îń â f́ût́ûŕê v́êŕŝíôń ôf́ Ĉh́r̂óm̂é."
2725
2725
  },
2726
2726
  "panels/application/BackForwardCacheView.ts | unavailable": {
2727
2727
  "message": "ûńâv́âíl̂áb̂ĺê"
@@ -5387,8 +5387,14 @@
5387
5387
  "panels/issues/HiddenIssuesRow.ts | unhideAll": {
5388
5388
  "message": "Ûńĥíd̂é âĺl̂"
5389
5389
  },
5390
- "panels/issues/IssueKindView.ts | hideAllCurrent": {
5391
- "message": "Ĥíd̂é âĺl̂ ćûŕr̂én̂t́ {PH1}"
5390
+ "panels/issues/IssueKindView.ts | hideAllCurrentBreakingChanges": {
5391
+ "message": "Ĥíd̂é âĺl̂ ćûŕr̂én̂t́ B̂ŕêák̂ín̂ǵ Ĉh́âńĝéŝ"
5392
+ },
5393
+ "panels/issues/IssueKindView.ts | hideAllCurrentImprovements": {
5394
+ "message": "Ĥíd̂é âĺl̂ ćûŕr̂én̂t́ Îḿp̂ŕôv́êḿêńt̂ś"
5395
+ },
5396
+ "panels/issues/IssueKindView.ts | hideAllCurrentPageErrors": {
5397
+ "message": "Ĥíd̂é âĺl̂ ćûŕr̂én̂t́ P̂áĝé Êŕr̂ór̂ś"
5392
5398
  },
5393
5399
  "panels/issues/issues-meta.ts | cspViolations": {
5394
5400
  "message": "ĈŚP̂ V́îól̂át̂íôńŝ"
@@ -11447,6 +11453,21 @@
11447
11453
  "ui/components/linear_memory_inspector/ValueInterpreterSettings.ts | otherGroup": {
11448
11454
  "message": "Ôt́ĥér̂"
11449
11455
  },
11456
+ "ui/components/panel_feedback/FeedbackButton.ts | feedback": {
11457
+ "message": "F̂éêd́b̂áĉḱ"
11458
+ },
11459
+ "ui/components/panel_feedback/PanelFeedback.ts | previewFeature": {
11460
+ "message": "P̂ŕêv́îéŵ f́êát̂úr̂é"
11461
+ },
11462
+ "ui/components/panel_feedback/PanelFeedback.ts | previewText": {
11463
+ "message": "Ôúr̂ t́êám̂ íŝ áĉt́îv́êĺŷ ẃôŕk̂ín̂ǵ ôń t̂h́îś f̂éât́ûŕê án̂d́ ŵé ŵóûĺd̂ ĺôv́ê t́ô ḱn̂óŵ ẃĥát̂ ýôú t̂h́îńk̂."
11464
+ },
11465
+ "ui/components/panel_feedback/PanelFeedback.ts | previewTextFeedbackLink": {
11466
+ "message": "Ŝén̂d́ ûś ŷóûŕ f̂éêd́b̂áĉḱ."
11467
+ },
11468
+ "ui/components/panel_feedback/PanelFeedback.ts | videoAndDocumentation": {
11469
+ "message": "V̂íd̂éô án̂d́ d̂óĉúm̂én̂t́ât́îón̂"
11470
+ },
11450
11471
  "ui/components/request_link_icon/RequestLinkIcon.ts | clickToShowRequestInTheNetwork": {
11451
11472
  "message": "Ĉĺîćk̂ t́ô óp̂én̂ t́ĥé n̂ét̂ẃôŕk̂ ṕâńêĺ âńd̂ śĥóŵ ŕêq́ûéŝt́ f̂ór̂ ÚR̂Ĺ: {url}"
11452
11473
  },
@@ -830,7 +830,24 @@ export class DOMDebuggerManager implements SDKModelObserver<DOMDebuggerModel> {
830
830
  this.createEventListenerBreakpoints(
831
831
  i18nString(UIStrings.keyboard), ['keydown', 'keyup', 'keypress', 'input'], ['*']);
832
832
  this.createEventListenerBreakpoints(
833
- i18nString(UIStrings.load), ['load', 'beforeunload', 'unload', 'abort', 'error', 'hashchange', 'popstate'],
833
+ i18nString(UIStrings.load),
834
+ [
835
+ 'load',
836
+ 'beforeunload',
837
+ 'unload',
838
+ 'abort',
839
+ 'error',
840
+ 'hashchange',
841
+ 'popstate',
842
+ 'navigate',
843
+ 'navigatesuccess',
844
+ 'navigateerror',
845
+ 'currentchange',
846
+ 'navigateto',
847
+ 'navigatefrom',
848
+ 'finish',
849
+ 'dispose',
850
+ ],
834
851
  ['*']);
835
852
  this.createEventListenerBreakpoints(
836
853
  i18nString(UIStrings.mouse),
@@ -396,6 +396,11 @@
396
396
  LinearMemoryInspectorTarget: 'DevTools.LinearMemoryInspector.Target',
397
397
  Language: 'DevTools.Language',
398
398
  ConsoleShowsCorsErrors: 'DevTools.ConsoleShowsCorsErrors',
399
+ RecordingEdited: 'DevTools.RecordingEdited',
400
+ RecordingExported: 'DevTools.RecordingExported',
401
+ RecordingReplayFinished: 'DevTools.RecordingReplayFinished',
402
+ RecordingReplayStarted: 'DevTools.RecordingReplayStarted',
403
+ RecordingToggled: 'DevTools.RecordingToggled',
399
404
  };
400
405
 
401
406
  /**
@@ -149,7 +149,10 @@ export class MainImpl {
149
149
  this.createSettings(prefs);
150
150
  await this.requestAndRegisterLocaleData();
151
151
 
152
- Host.userMetrics.syncSetting(Common.Settings.Settings.instance().moduleSetting<boolean>('sync_preferences').get());
152
+ if (Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.SYNC_SETTINGS)) {
153
+ Host.userMetrics.syncSetting(
154
+ Common.Settings.Settings.instance().moduleSetting<boolean>('sync_preferences').get());
155
+ }
153
156
 
154
157
  this.createAppUI();
155
158
  }
@@ -270,8 +273,8 @@ export class MainImpl {
270
273
  'keyboardShortcutEditor', 'Enable keyboard shortcut editor', true,
271
274
  'https://developer.chrome.com/blog/new-in-devtools-88/#keyboard-shortcuts');
272
275
 
273
- // Back-forward cache
274
- Root.Runtime.experiments.register('bfcacheDebugging', 'Enable back-forward cache debugging support');
276
+ // Back-Forward Cache
277
+ Root.Runtime.experiments.register('bfcacheDebugging', 'Enable Back-Forward Cache debugging support');
275
278
 
276
279
  // Timeline
277
280
  Root.Runtime.experiments.register('timelineEventInitiators', 'Timeline: event initiators');
@@ -752,6 +752,7 @@ function filterLocalesForSettings(): string[] {
752
752
 
753
753
  Common.Settings.registerSettingExtension({
754
754
  category: Common.Settings.SettingCategory.APPEARANCE,
755
+ storageType: Common.Settings.SettingStorageType.Synced,
755
756
  settingName: 'language',
756
757
  settingType: Common.Settings.SettingType.ENUM,
757
758
  title: i18nLazyString(UIStrings.language),
@@ -4,7 +4,6 @@
4
4
  { "name": "ui/legacy/components/text_editor", "type": "autostart" },
5
5
  { "name": "ui/legacy/components/source_frame", "type": "autostart" },
6
6
 
7
- { "name": "ui/legacy/components/perf_ui" },
8
7
  { "name": "panels/profiler" }
9
8
  ]
10
9
  }
@@ -25,3 +25,8 @@ declare module '*.css.js' {
25
25
  const styles: CSSStyleSheet;
26
26
  export default styles;
27
27
  }
28
+
29
+ declare module '*.css.legacy.js' {
30
+ const styles: {cssContent: string};
31
+ export default styles;
32
+ }
@@ -113,6 +113,14 @@ ConsoleTestRunner.prepareConsoleMessageText = function(messageElement) {
113
113
  return messageText;
114
114
  };
115
115
 
116
+ /**
117
+ * @param {!Element} messageElement
118
+ * @return {string}
119
+ */
120
+ ConsoleTestRunner.prepareConsoleMessageTextTrimmed = function(messageElement) {
121
+ return ConsoleTestRunner.prepareConsoleMessageText(messageElement).replace(/[ ]+/g, ' ');
122
+ };
123
+
116
124
  /**
117
125
  * @param {!Console.ConsoleViewMessage} viewMessage
118
126
  * @param {boolean} forceInvalidate
@@ -334,15 +342,19 @@ ConsoleTestRunner.dumpConsoleMessagesWithStyles = function() {
334
342
 
335
343
  /**
336
344
  * @param {boolean=} sortMessages
345
+ * @param {boolean=} trimMessages
337
346
  */
338
- ConsoleTestRunner.dumpConsoleMessagesWithClasses = async function(sortMessages) {
347
+ ConsoleTestRunner.dumpConsoleMessagesWithClasses = async function(sortMessages, trimMessages) {
339
348
  const result = [];
340
349
  const messageViews = Console.ConsoleView.instance().visibleViewMessages;
341
350
  for (let i = 0; i < messageViews.length; ++i) {
342
351
  const element = messageViews[i].element();
343
352
  const contentElement = messageViews[i].contentElement();
344
353
  await TestRunner.waitForPendingLiveLocationUpdates();
345
- const messageText = ConsoleTestRunner.prepareConsoleMessageText(element);
354
+ let messageText = ConsoleTestRunner.prepareConsoleMessageText(element);
355
+ if (trimMessages) {
356
+ messageText = messageText.replace(/[ ]+/g, ' ');
357
+ }
346
358
  result.push(messageText + ' ' + element.getAttribute('class') + ' > ' + contentElement.getAttribute('class'));
347
359
  }
348
360
  if (sortMessages) {
@@ -393,6 +393,14 @@ export function textContentWithLineBreaks(node) {
393
393
  return buffer;
394
394
  }
395
395
 
396
+ /**
397
+ * @param {!Node} node
398
+ * @return {string}
399
+ */
400
+ export function textContentWithLineBreaksTrimmed(node) {
401
+ return textContentWithLineBreaks(node).replace(/[ ]+/g, ' ');
402
+ }
403
+
396
404
  /**
397
405
  * @param {!Node} node
398
406
  * @return {string}
@@ -1459,6 +1467,7 @@ TestRunner.showPanel = showPanel;
1459
1467
  TestRunner.createKeyEvent = createKeyEvent;
1460
1468
  TestRunner.safeWrap = safeWrap;
1461
1469
  TestRunner.textContentWithLineBreaks = textContentWithLineBreaks;
1470
+ TestRunner.textContentWithLineBreaksTrimmed = textContentWithLineBreaksTrimmed;
1462
1471
  TestRunner.textContentWithoutStyles = textContentWithoutStyles;
1463
1472
  TestRunner.evaluateInPagePromise = evaluateInPagePromise;
1464
1473
  TestRunner.callFunctionInPageAsync = callFunctionInPageAsync;
@@ -49,6 +49,7 @@ export class LogManager implements SDK.TargetManager.SDKModelObserver<SDK.LogMod
49
49
  timestamp: entry.timestamp,
50
50
  workerId: entry.workerId,
51
51
  category: entry.category,
52
+ affectedResources: entry.networkRequestId ? {requestId: entry.networkRequestId} : undefined,
52
53
  };
53
54
  const consoleMessage = new SDK.ConsoleModel.ConsoleMessage(
54
55
  target.model(SDK.RuntimeModel.RuntimeModel), entry.source, entry.level, entry.text, details);
@@ -446,7 +446,7 @@ export class AXBreadcrumb {
446
446
  }
447
447
  }
448
448
 
449
- if (this.axNodeInternal.hasOnlyUnloadedChildren()) {
449
+ if (!this.axNodeInternal.ignored() && this.axNodeInternal.hasOnlyUnloadedChildren()) {
450
450
  this.nodeElementInternal.classList.add('children-unloaded');
451
451
  UI.ARIAUtils.setExpanded(this.nodeElementInternal, false);
452
452
  }
@@ -673,7 +673,7 @@ export class AXNodeIgnoredReasonTreeElement extends AXNodePropertyTreeElement {
673
673
  reasonElement = i18n.i18n.getFormatLocalizedString(str_, UIStrings.elementIsNotVisible, {});
674
674
  break;
675
675
  case 'presentationalRole': {
676
- const role = axNode && axNode.role() || '';
676
+ const role = axNode && axNode.role()?.value || '';
677
677
  const rolePresentationSpan = document.createElement('span', {is: 'source-code'}).textContent = 'role=' + role;
678
678
  reasonElement =
679
679
  i18n.i18n.getFormatLocalizedString(str_, UIStrings.elementHasPlaceholder, {PH1: rolePresentationSpan});
@@ -20,7 +20,7 @@ const UIStrings = {
20
20
  /**
21
21
  *@description Text in Application Panel Sidebar of the Application panel
22
22
  */
23
- backForwardCache: 'Back-forward Cache',
23
+ backForwardCache: 'Back-Forward Cache',
24
24
  /**
25
25
  *@description A context menu item in the Application Panel Sidebar of the Application panel
26
26
  */