chrome-devtools-frontend 1.0.948295 → 1.0.949424

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 (53) hide show
  1. package/config/gni/all_devtools_files.gni +5 -0
  2. package/config/gni/devtools_grd_files.gni +5 -6
  3. package/front_end/core/i18n/locales/en-US.json +36 -30
  4. package/front_end/core/i18n/locales/en-XL.json +36 -30
  5. package/front_end/core/root/Runtime.ts +1 -0
  6. package/front_end/core/sdk/AccessibilityModel.ts +7 -7
  7. package/front_end/core/sdk/RemoteObject.ts +15 -1
  8. package/front_end/entrypoints/devtools_app/devtools_app.ts +0 -1
  9. package/front_end/entrypoints/visibility.gni +3 -1
  10. package/front_end/entrypoints/worker_app/worker_app.ts +0 -1
  11. package/front_end/generated/InspectorBackendCommands.js +8 -1
  12. package/front_end/generated/protocol-mapping.d.ts +4 -0
  13. package/front_end/generated/protocol-proxy-api.d.ts +6 -0
  14. package/front_end/generated/protocol.d.ts +9 -0
  15. package/front_end/models/issues_manager/AttributionReportingIssue.ts +42 -2
  16. package/front_end/models/issues_manager/descriptions/arInvalidAttributionSourceExpiry.md +4 -0
  17. package/front_end/models/issues_manager/descriptions/arInvalidAttributionSourcePriority.md +4 -0
  18. package/front_end/models/issues_manager/descriptions/arInvalidEventSourceTriggerData.md +9 -0
  19. package/front_end/models/issues_manager/descriptions/arInvalidTriggerDedupKey.md +5 -0
  20. package/front_end/models/issues_manager/descriptions/arInvalidTriggerPriority.md +5 -0
  21. package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +45 -3
  22. package/front_end/panels/accessibility/AccessibilitySidebarView.ts +2 -4
  23. package/front_end/panels/accessibility/axBreadcrumbs.css +4 -0
  24. package/front_end/panels/console/ConsolePrompt.ts +0 -4
  25. package/front_end/panels/elements/AccessibilityTreeUtils.ts +1 -7
  26. package/front_end/panels/elements/AccessibilityTreeView.ts +4 -6
  27. package/front_end/panels/elements/PropertiesWidget.ts +109 -4
  28. package/front_end/panels/elements/propertiesWidget.css +34 -0
  29. package/front_end/panels/emulation/DeviceModeToolbar.ts +5 -1
  30. package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +44 -0
  31. package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +1 -0
  32. package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
  33. package/front_end/third_party/codemirror.next/codemirror.next.d.ts +8 -6
  34. package/front_end/third_party/codemirror.next/package.json +3 -3
  35. package/package.json +1 -1
  36. package/scripts/eslint_rules/lib/ban_a_tags_in_lit_html.js +2 -11
  37. package/scripts/eslint_rules/lib/ban_literal_devtools_component_tag_names.js +2 -11
  38. package/scripts/eslint_rules/lib/ban_self_closing_custom_element_tagnames.js +2 -11
  39. package/scripts/eslint_rules/lib/ban_style_tags_in_lit_html.js +2 -11
  40. package/scripts/eslint_rules/lib/lit_html_data_as_type.js +2 -11
  41. package/scripts/eslint_rules/lib/lit_html_no_attribute_quotes.js +1 -13
  42. package/scripts/eslint_rules/lib/lit_no_style_interpolation.js +2 -11
  43. package/scripts/eslint_rules/lib/static_tag_must_be_static_property.js +2 -11
  44. package/scripts/eslint_rules/lib/utils.js +29 -0
  45. package/scripts/eslint_rules/tests/.eslintrc.js +4 -0
  46. package/scripts/eslint_rules/tests/utils_test.js +40 -0
  47. package/front_end/panels/help/HelpImpl.ts +0 -141
  48. package/front_end/panels/help/ReleaseNoteText.ts +0 -1496
  49. package/front_end/panels/help/ReleaseNoteView.ts +0 -107
  50. package/front_end/panels/help/help-meta.ts +0 -145
  51. package/front_end/panels/help/help.ts +0 -13
  52. package/front_end/panels/help/releaseNote.css +0 -115
  53. package/scripts/build/rjsmin.py +0 -484
@@ -50,6 +50,11 @@ all_devtools_files = [
50
50
  "front_end/models/issues_manager/descriptions/arAttributionUntrustworthyOrigin.md",
51
51
  "front_end/models/issues_manager/descriptions/arInvalidAttributionData.md",
52
52
  "front_end/models/issues_manager/descriptions/arInvalidAttributionSourceEventId.md",
53
+ "front_end/models/issues_manager/descriptions/arInvalidAttributionSourceExpiry.md",
54
+ "front_end/models/issues_manager/descriptions/arInvalidAttributionSourcePriority.md",
55
+ "front_end/models/issues_manager/descriptions/arInvalidEventSourceTriggerData.md",
56
+ "front_end/models/issues_manager/descriptions/arInvalidTriggerDedupKey.md",
57
+ "front_end/models/issues_manager/descriptions/arInvalidTriggerPriority.md",
53
58
  "front_end/models/issues_manager/descriptions/arMissingAttributionData.md",
54
59
  "front_end/models/issues_manager/descriptions/arPermissionPolicyDisabled.md",
55
60
  "front_end/models/issues_manager/descriptions/CoepCoopSandboxedIframeCannotNavigateToCoopPage.md",
@@ -274,6 +274,11 @@ grd_files_release_sources = [
274
274
  "front_end/models/issues_manager/descriptions/arAttributionUntrustworthyOrigin.md",
275
275
  "front_end/models/issues_manager/descriptions/arInvalidAttributionData.md",
276
276
  "front_end/models/issues_manager/descriptions/arInvalidAttributionSourceEventId.md",
277
+ "front_end/models/issues_manager/descriptions/arInvalidAttributionSourceExpiry.md",
278
+ "front_end/models/issues_manager/descriptions/arInvalidAttributionSourcePriority.md",
279
+ "front_end/models/issues_manager/descriptions/arInvalidEventSourceTriggerData.md",
280
+ "front_end/models/issues_manager/descriptions/arInvalidTriggerDedupKey.md",
281
+ "front_end/models/issues_manager/descriptions/arInvalidTriggerPriority.md",
277
282
  "front_end/models/issues_manager/descriptions/arMissingAttributionData.md",
278
283
  "front_end/models/issues_manager/descriptions/arPermissionPolicyDisabled.md",
279
284
  "front_end/models/issues_manager/descriptions/corsAllowCredentialsRequired.md",
@@ -356,8 +361,6 @@ grd_files_release_sources = [
356
361
  "front_end/panels/emulation/emulation-meta.js",
357
362
  "front_end/panels/emulation/emulation.js",
358
363
  "front_end/panels/event_listeners/event_listeners.js",
359
- "front_end/panels/help/help-meta.js",
360
- "front_end/panels/help/help.js",
361
364
  "front_end/panels/input/input-meta.js",
362
365
  "front_end/panels/input/input.js",
363
366
  "front_end/panels/issues/components/components.js",
@@ -957,10 +960,6 @@ grd_files_debug_sources = [
957
960
  "front_end/panels/event_listeners/EventListenersUtils.js",
958
961
  "front_end/panels/event_listeners/EventListenersView.js",
959
962
  "front_end/panels/event_listeners/eventListenersView.css.js",
960
- "front_end/panels/help/HelpImpl.js",
961
- "front_end/panels/help/ReleaseNoteText.js",
962
- "front_end/panels/help/ReleaseNoteView.js",
963
- "front_end/panels/help/releaseNote.css.js",
964
963
  "front_end/panels/input/InputModel.js",
965
964
  "front_end/panels/input/InputTimeline.js",
966
965
  "front_end/panels/input/inputTimeline.css.js",
@@ -1955,9 +1955,18 @@
1955
1955
  "panels/accessibility/AXBreadcrumbsPane.ts | accessibilityTree": {
1956
1956
  "message": "Accessibility Tree"
1957
1957
  },
1958
+ "panels/accessibility/AXBreadcrumbsPane.ts | fullTreeExperimentDescription": {
1959
+ "message": "The accessibility tree moved to the top right corner of the DOM tree."
1960
+ },
1961
+ "panels/accessibility/AXBreadcrumbsPane.ts | fullTreeExperimentName": {
1962
+ "message": "Enable full-page accessibility tree"
1963
+ },
1958
1964
  "panels/accessibility/AXBreadcrumbsPane.ts | ignored": {
1959
1965
  "message": "Ignored"
1960
1966
  },
1967
+ "panels/accessibility/AXBreadcrumbsPane.ts | reloadRequired": {
1968
+ "message": "Reload required before the change takes effect."
1969
+ },
1961
1970
  "panels/accessibility/AXBreadcrumbsPane.ts | scrollIntoView": {
1962
1971
  "message": "Scroll into view"
1963
1972
  },
@@ -4664,6 +4673,21 @@
4664
4673
  "panels/elements/PlatformFontsWidget.ts | renderedFonts": {
4665
4674
  "message": "Rendered Fonts"
4666
4675
  },
4676
+ "panels/elements/PropertiesWidget.ts | filter": {
4677
+ "message": "Filter"
4678
+ },
4679
+ "panels/elements/PropertiesWidget.ts | filterProperties": {
4680
+ "message": "Filter Properties"
4681
+ },
4682
+ "panels/elements/PropertiesWidget.ts | noMatchingProperty": {
4683
+ "message": "No matching property"
4684
+ },
4685
+ "panels/elements/PropertiesWidget.ts | showAll": {
4686
+ "message": "Show all"
4687
+ },
4688
+ "panels/elements/PropertiesWidget.ts | showAllTooltip": {
4689
+ "message": "When unchecked, only properties whose values are neither null nor undefined will be shown"
4690
+ },
4667
4691
  "panels/elements/StylePropertyTreeElement.ts | copyAllCssDeclarationsAsJs": {
4668
4692
  "message": "Copy all declarations as JS"
4669
4693
  },
@@ -4958,36 +4982,6 @@
4958
4982
  "panels/event_listeners/EventListenersView.ts | toggleWhetherEventListenerIs": {
4959
4983
  "message": "Toggle whether event listener is passive or blocking"
4960
4984
  },
4961
- "panels/help/help-meta.ts | bug": {
4962
- "message": "bug"
4963
- },
4964
- "panels/help/help-meta.ts | doNotShowWhatsNewAfterEachUpdate": {
4965
- "message": "Do not show What's New after each update"
4966
- },
4967
- "panels/help/help-meta.ts | releaseNotes": {
4968
- "message": "Release notes"
4969
- },
4970
- "panels/help/help-meta.ts | reportADevtoolsIssue": {
4971
- "message": "Report a DevTools issue"
4972
- },
4973
- "panels/help/help-meta.ts | reportTranslationIssue": {
4974
- "message": "Report a translation issue"
4975
- },
4976
- "panels/help/help-meta.ts | showWhatsNew": {
4977
- "message": "Show What's New"
4978
- },
4979
- "panels/help/help-meta.ts | showWhatsNewAfterEachUpdate": {
4980
- "message": "Show What's New after each update"
4981
- },
4982
- "panels/help/help-meta.ts | whatsNew": {
4983
- "message": "What's New"
4984
- },
4985
- "panels/help/ReleaseNoteView.ts | close": {
4986
- "message": "Close"
4987
- },
4988
- "panels/help/ReleaseNoteView.ts | learnMore": {
4989
- "message": "Learn more"
4990
- },
4991
4985
  "panels/input/input-meta.ts | inputs": {
4992
4986
  "message": "Inputs"
4993
4987
  },
@@ -5204,9 +5198,21 @@
5204
5198
  "panels/issues/AttributionReportingIssueDetailsView.ts | invalidSourceEventId": {
5205
5199
  "message": "Invalid attributionsourceeventid"
5206
5200
  },
5201
+ "panels/issues/AttributionReportingIssueDetailsView.ts | invalidSourceExpiry": {
5202
+ "message": "Invalid attributionexpiry"
5203
+ },
5204
+ "panels/issues/AttributionReportingIssueDetailsView.ts | invalidSourcePriority": {
5205
+ "message": "Invalid attributionsourcepriority"
5206
+ },
5207
5207
  "panels/issues/AttributionReportingIssueDetailsView.ts | invalidTriggerData": {
5208
5208
  "message": "Invalid trigger-data"
5209
5209
  },
5210
+ "panels/issues/AttributionReportingIssueDetailsView.ts | invalidTriggerDedupKey": {
5211
+ "message": "Invalid dedup-key"
5212
+ },
5213
+ "panels/issues/AttributionReportingIssueDetailsView.ts | invalidTriggerPriority": {
5214
+ "message": "Invalid priority"
5215
+ },
5210
5216
  "panels/issues/AttributionReportingIssueDetailsView.ts | nViolations": {
5211
5217
  "message": "{n, plural, =1 {# violation} other {# violations}}"
5212
5218
  },
@@ -1955,9 +1955,18 @@
1955
1955
  "panels/accessibility/AXBreadcrumbsPane.ts | accessibilityTree": {
1956
1956
  "message": "Âćĉéŝśîb́îĺît́ŷ T́r̂éê"
1957
1957
  },
1958
+ "panels/accessibility/AXBreadcrumbsPane.ts | fullTreeExperimentDescription": {
1959
+ "message": "T̂h́ê áĉćêśŝíb̂íl̂ít̂ý t̂ŕêé m̂óv̂éd̂ t́ô t́ĥé t̂óp̂ ŕîǵĥt́ ĉór̂ńêŕ ôf́ t̂h́ê D́ÔḾ t̂ŕêé."
1960
+ },
1961
+ "panels/accessibility/AXBreadcrumbsPane.ts | fullTreeExperimentName": {
1962
+ "message": "Êńâb́l̂é f̂úl̂ĺ-p̂áĝé âćĉéŝśîb́îĺît́ŷ t́r̂éê"
1963
+ },
1958
1964
  "panels/accessibility/AXBreadcrumbsPane.ts | ignored": {
1959
1965
  "message": "Îǵn̂ór̂éd̂"
1960
1966
  },
1967
+ "panels/accessibility/AXBreadcrumbsPane.ts | reloadRequired": {
1968
+ "message": "R̂él̂óâd́ r̂éq̂úîŕêd́ b̂éf̂ór̂é t̂h́ê ćĥán̂ǵê t́âḱêś êf́f̂éĉt́."
1969
+ },
1961
1970
  "panels/accessibility/AXBreadcrumbsPane.ts | scrollIntoView": {
1962
1971
  "message": "Ŝćr̂ól̂ĺ îńt̂ó v̂íêẃ"
1963
1972
  },
@@ -4664,6 +4673,21 @@
4664
4673
  "panels/elements/PlatformFontsWidget.ts | renderedFonts": {
4665
4674
  "message": "R̂én̂d́êŕêd́ F̂ón̂t́ŝ"
4666
4675
  },
4676
+ "panels/elements/PropertiesWidget.ts | filter": {
4677
+ "message": "F̂íl̂t́êŕ"
4678
+ },
4679
+ "panels/elements/PropertiesWidget.ts | filterProperties": {
4680
+ "message": "F̂íl̂t́êŕ P̂ŕôṕêŕt̂íêś"
4681
+ },
4682
+ "panels/elements/PropertiesWidget.ts | noMatchingProperty": {
4683
+ "message": "N̂ó m̂át̂ćĥín̂ǵ p̂ŕôṕêŕt̂ý"
4684
+ },
4685
+ "panels/elements/PropertiesWidget.ts | showAll": {
4686
+ "message": "Ŝh́ôẃ âĺl̂"
4687
+ },
4688
+ "panels/elements/PropertiesWidget.ts | showAllTooltip": {
4689
+ "message": "Ŵh́êń ûńĉh́êćk̂éd̂, ón̂ĺŷ ṕr̂óp̂ér̂t́îéŝ ẃĥóŝé v̂ál̂úêś âŕê ńêít̂h́êŕ n̂úl̂ĺ n̂ór̂ ún̂d́êf́îńêd́ ŵíl̂ĺ b̂é ŝh́ôẃn̂"
4690
+ },
4667
4691
  "panels/elements/StylePropertyTreeElement.ts | copyAllCssDeclarationsAsJs": {
4668
4692
  "message": "Ĉóp̂ý âĺl̂ d́êćl̂ár̂át̂íôńŝ áŝ J́Ŝ"
4669
4693
  },
@@ -4958,36 +4982,6 @@
4958
4982
  "panels/event_listeners/EventListenersView.ts | toggleWhetherEventListenerIs": {
4959
4983
  "message": "T̂óĝǵl̂é ŵh́êt́ĥér̂ év̂én̂t́ l̂íŝt́êńêŕ îś p̂áŝśîv́ê ór̂ b́l̂óĉḱîńĝ"
4960
4984
  },
4961
- "panels/help/help-meta.ts | bug": {
4962
- "message": "b̂úĝ"
4963
- },
4964
- "panels/help/help-meta.ts | doNotShowWhatsNewAfterEachUpdate": {
4965
- "message": "D̂ó n̂ót̂ śĥóŵ Ẃĥát̂'ś N̂éŵ áf̂t́êŕ êáĉh́ ûṕd̂át̂é"
4966
- },
4967
- "panels/help/help-meta.ts | releaseNotes": {
4968
- "message": "R̂él̂éâśê ńôt́êś"
4969
- },
4970
- "panels/help/help-meta.ts | reportADevtoolsIssue": {
4971
- "message": "R̂ép̂ór̂t́ â D́êv́T̂óôĺŝ íŝśûé"
4972
- },
4973
- "panels/help/help-meta.ts | reportTranslationIssue": {
4974
- "message": "R̂ép̂ór̂t́ â t́r̂án̂śl̂át̂íôń îśŝúê"
4975
- },
4976
- "panels/help/help-meta.ts | showWhatsNew": {
4977
- "message": "Ŝh́ôẃ Ŵh́ât́'ŝ Ńêẃ"
4978
- },
4979
- "panels/help/help-meta.ts | showWhatsNewAfterEachUpdate": {
4980
- "message": "Ŝh́ôẃ Ŵh́ât́'ŝ Ńêẃ âf́t̂ér̂ éâćĥ úp̂d́ât́ê"
4981
- },
4982
- "panels/help/help-meta.ts | whatsNew": {
4983
- "message": "Ŵh́ât́'ŝ Ńêẃ"
4984
- },
4985
- "panels/help/ReleaseNoteView.ts | close": {
4986
- "message": "Ĉĺôśê"
4987
- },
4988
- "panels/help/ReleaseNoteView.ts | learnMore": {
4989
- "message": "L̂éâŕn̂ ḿôŕê"
4990
- },
4991
4985
  "panels/input/input-meta.ts | inputs": {
4992
4986
  "message": "Îńp̂út̂ś"
4993
4987
  },
@@ -5204,9 +5198,21 @@
5204
5198
  "panels/issues/AttributionReportingIssueDetailsView.ts | invalidSourceEventId": {
5205
5199
  "message": "Îńv̂ál̂íd̂ attributionsourceeventid"
5206
5200
  },
5201
+ "panels/issues/AttributionReportingIssueDetailsView.ts | invalidSourceExpiry": {
5202
+ "message": "Îńv̂ál̂íd̂ attributionexpiry"
5203
+ },
5204
+ "panels/issues/AttributionReportingIssueDetailsView.ts | invalidSourcePriority": {
5205
+ "message": "Îńv̂ál̂íd̂ attributionsourcepriority"
5206
+ },
5207
5207
  "panels/issues/AttributionReportingIssueDetailsView.ts | invalidTriggerData": {
5208
5208
  "message": "Îńv̂ál̂íd̂ trigger-data"
5209
5209
  },
5210
+ "panels/issues/AttributionReportingIssueDetailsView.ts | invalidTriggerDedupKey": {
5211
+ "message": "Îńv̂ál̂íd̂ dedup-key"
5212
+ },
5213
+ "panels/issues/AttributionReportingIssueDetailsView.ts | invalidTriggerPriority": {
5214
+ "message": "Îńv̂ál̂íd̂ priority"
5215
+ },
5210
5216
  "panels/issues/AttributionReportingIssueDetailsView.ts | nViolations": {
5211
5217
  "message": "{n, plural, =1 {# v̂íôĺât́îón̂} other {# v́îól̂át̂íôńŝ}}"
5212
5218
  },
@@ -351,6 +351,7 @@ export enum ExperimentName {
351
351
  PROTOCOL_MONITOR = 'protocolMonitor',
352
352
  WEBAUTHN_PANE = 'webauthnPane',
353
353
  SYNC_SETTINGS = 'syncSettings',
354
+ FULL_ACCESSIBILITY_TREE = 'fullAccessibilityTree',
354
355
  }
355
356
 
356
357
  // TODO(crbug.com/1167717): Make this a const enum again
@@ -291,25 +291,25 @@ export class AccessibilityModel extends SDKModel<EventTypes> implements Protocol
291
291
  async requestAXChildren(nodeId: Protocol.Accessibility.AXNodeId, frameId?: Protocol.Page.FrameId):
292
292
  Promise<AccessibilityNode[]> {
293
293
  const parent = this.#axIdToAXNode.get(nodeId);
294
- if (parent && !parent.hasUnloadedChildren()) {
294
+ if (!parent) {
295
+ throw Error('Cannot request children before parent');
296
+ }
297
+ if (!parent.hasUnloadedChildren()) {
295
298
  return parent.children();
296
299
  }
297
300
 
298
301
  let nodes;
299
302
  const request = this.#pendingChildRequests.get(nodeId);
300
303
  if (request) {
301
- nodes = (await request).nodes;
304
+ await request;
302
305
  } else {
303
306
  const req = this.agent.invoke_getChildAXNodes({id: nodeId, frameId});
304
307
  this.#pendingChildRequests.set(nodeId, req);
305
308
  nodes = (await req).nodes;
309
+ this.createNodesFromPayload(nodes);
306
310
  this.#pendingChildRequests.delete(nodeId);
307
311
  }
308
- if (!nodes) {
309
- return [];
310
- }
311
- const axNodes = this.createNodesFromPayload(nodes);
312
- return axNodes;
312
+ return parent.children();
313
313
  }
314
314
 
315
315
  async requestAndLoadSubTreeToNode(node: DOMNode): Promise<AccessibilityNode[]|null> {
@@ -33,7 +33,7 @@
33
33
  */
34
34
 
35
35
  import type * as ProtocolProxyApi from '../../generated/protocol-proxy-api.js';
36
- import type * as Protocol from '../../generated/protocol.js';
36
+ import * as Protocol from '../../generated/protocol.js';
37
37
 
38
38
  import type {DebuggerModel, FunctionDetails} from './DebuggerModel.js';
39
39
  import type {RuntimeModel} from './RuntimeModel.js';
@@ -62,6 +62,20 @@ export class RemoteObject {
62
62
  return remoteObject.type;
63
63
  }
64
64
 
65
+ static isNullOrUndefined(remoteObject: RemoteObject|null|undefined): boolean {
66
+ if (remoteObject === null || remoteObject === undefined) {
67
+ return true;
68
+ }
69
+ switch (remoteObject.type) {
70
+ case Protocol.Runtime.RemoteObjectType.Object:
71
+ return remoteObject.subtype === Protocol.Runtime.RemoteObjectSubtype.Null;
72
+ case Protocol.Runtime.RemoteObjectType.Undefined:
73
+ return true;
74
+ default:
75
+ return false;
76
+ }
77
+ }
78
+
65
79
  static arrayNameFromDescription(description: string): string {
66
80
  return description.replace(_descriptionLengthParenRegex, '').replace(_descriptionLengthSquareRegex, '');
67
81
  }
@@ -15,7 +15,6 @@ import '../../panels/developer_resources/developer_resources-meta.js';
15
15
  import '../inspector_main/inspector_main-meta.js';
16
16
  import '../../panels/application/application-meta.js';
17
17
  import '../../panels/issues/issues-meta.js';
18
- import '../../panels/help/help-meta.js';
19
18
  import '../../panels/layers/layers-meta.js';
20
19
  import '../../panels/lighthouse/lighthouse-meta.js';
21
20
  import '../../panels/media/media-meta.js';
@@ -2,6 +2,8 @@
2
2
  # Use of this source code is governed by a BSD-style license that can be
3
3
  # found in the LICENSE file.
4
4
 
5
+ import("../visibility.gni")
6
+
5
7
  declare_args() {
6
- devtools_entrypoints_visibility = []
8
+ devtools_entrypoints_visibility = devtools_visibility
7
9
  }
@@ -5,7 +5,6 @@ import '../shell/shell.js';
5
5
  import '../../panels/browser_debugger/browser_debugger-meta.js';
6
6
  import '../../panels/developer_resources/developer_resources-meta.js';
7
7
  import '../../panels/elements/elements-meta.js';
8
- import '../../panels/help/help-meta.js';
9
8
  import '../../panels/issues/issues-meta.js';
10
9
  import '../../panels/layer_viewer/layer_viewer-meta.js';
11
10
  import '../../panels/mobile_throttling/mobile_throttling-meta.js';
@@ -270,7 +270,12 @@ export function registerCommands(inspectorBackend) {
270
270
  AttributionSourceUntrustworthyOrigin: 'AttributionSourceUntrustworthyOrigin',
271
271
  AttributionUntrustworthyOrigin: 'AttributionUntrustworthyOrigin',
272
272
  AttributionTriggerDataTooLarge: 'AttributionTriggerDataTooLarge',
273
- AttributionEventSourceTriggerDataTooLarge: 'AttributionEventSourceTriggerDataTooLarge'
273
+ AttributionEventSourceTriggerDataTooLarge: 'AttributionEventSourceTriggerDataTooLarge',
274
+ InvalidAttributionSourceExpiry: 'InvalidAttributionSourceExpiry',
275
+ InvalidAttributionSourcePriority: 'InvalidAttributionSourcePriority',
276
+ InvalidEventSourceTriggerData: 'InvalidEventSourceTriggerData',
277
+ InvalidTriggerPriority: 'InvalidTriggerPriority',
278
+ InvalidTriggerDedupKey: 'InvalidTriggerDedupKey'
274
279
  });
275
280
  inspectorBackend.registerEnum(
276
281
  'Audits.GenericIssueErrorType', {CrossOriginPortalPostMessageError: 'CrossOriginPortalPostMessageError'});
@@ -591,6 +596,8 @@ export function registerCommands(inspectorBackend) {
591
596
  inspectorBackend.registerCommand('Cast.disable', [], []);
592
597
  inspectorBackend.registerCommand(
593
598
  'Cast.setSinkToUse', [{'name': 'sinkName', 'type': 'string', 'optional': false}], []);
599
+ inspectorBackend.registerCommand(
600
+ 'Cast.startDesktopMirroring', [{'name': 'sinkName', 'type': 'string', 'optional': false}], []);
594
601
  inspectorBackend.registerCommand(
595
602
  'Cast.startTabMirroring', [{'name': 'sinkName', 'type': 'string', 'optional': false}], []);
596
603
  inspectorBackend.registerCommand('Cast.stopCasting', [{'name': 'sinkName', 'type': 'string', 'optional': false}], []);
@@ -1086,6 +1086,10 @@ export namespace ProtocolMapping {
1086
1086
  * sink via Presentation API, Remote Playback API, or Cast SDK.
1087
1087
  */
1088
1088
  'Cast.setSinkToUse': {paramsType: [Protocol.Cast.SetSinkToUseRequest]; returnType: void;};
1089
+ /**
1090
+ * Starts mirroring the desktop to the sink.
1091
+ */
1092
+ 'Cast.startDesktopMirroring': {paramsType: [Protocol.Cast.StartDesktopMirroringRequest]; returnType: void;};
1089
1093
  /**
1090
1094
  * Starts mirroring the tab to the sink.
1091
1095
  */
@@ -751,6 +751,12 @@ declare namespace ProtocolProxyApi {
751
751
  */
752
752
  invoke_setSinkToUse(params: Protocol.Cast.SetSinkToUseRequest): Promise<Protocol.ProtocolResponseWithError>;
753
753
 
754
+ /**
755
+ * Starts mirroring the desktop to the sink.
756
+ */
757
+ invoke_startDesktopMirroring(params: Protocol.Cast.StartDesktopMirroringRequest):
758
+ Promise<Protocol.ProtocolResponseWithError>;
759
+
754
760
  /**
755
761
  * Starts mirroring the tab to the sink.
756
762
  */
@@ -967,6 +967,11 @@ declare namespace Protocol {
967
967
  AttributionUntrustworthyOrigin = 'AttributionUntrustworthyOrigin',
968
968
  AttributionTriggerDataTooLarge = 'AttributionTriggerDataTooLarge',
969
969
  AttributionEventSourceTriggerDataTooLarge = 'AttributionEventSourceTriggerDataTooLarge',
970
+ InvalidAttributionSourceExpiry = 'InvalidAttributionSourceExpiry',
971
+ InvalidAttributionSourcePriority = 'InvalidAttributionSourcePriority',
972
+ InvalidEventSourceTriggerData = 'InvalidEventSourceTriggerData',
973
+ InvalidTriggerPriority = 'InvalidTriggerPriority',
974
+ InvalidTriggerDedupKey = 'InvalidTriggerDedupKey',
970
975
  }
971
976
 
972
977
  /**
@@ -2773,6 +2778,10 @@ declare namespace Protocol {
2773
2778
  sinkName: string;
2774
2779
  }
2775
2780
 
2781
+ export interface StartDesktopMirroringRequest {
2782
+ sinkName: string;
2783
+ }
2784
+
2776
2785
  export interface StartTabMirroringRequest {
2777
2786
  sinkName: string;
2778
2787
  }
@@ -17,8 +17,13 @@ export const enum IssueCode {
17
17
  AttributionSourceUntrustworthyOrigin = 'AttributionReportingIssue::AttributionSourceUntrustworthyOrigin',
18
18
  AttributionUntrustworthyFrameOrigin = 'AttributionReportingIssue::AttributionUntrustworthyFrameOrigin',
19
19
  AttributionUntrustworthyOrigin = 'AttributionReportingIssue::AttributionUntrustworthyOrigin',
20
- AttributionTriggerDataTooLarge = 'AttrubtionReportingIssue::AttributionTriggerDataTooLarge',
21
- AttributionEventSourceTriggerDataTooLarge = 'AttrubtionReportingIssue::AttributionEventSourceTriggerDataTooLarge',
20
+ AttributionTriggerDataTooLarge = 'AttributionReportingIssue::AttributionTriggerDataTooLarge',
21
+ AttributionEventSourceTriggerDataTooLarge = 'AttributionReportingIssue::AttributionEventSourceTriggerDataTooLarge',
22
+ InvalidAttributionSourceExpiry = 'AttributionReportingIssue::InvalidAttributionSourceExpiry',
23
+ InvalidAttributionSourcePriority = 'AttributionReportingIssue::InvalidAttributionSourcePriority',
24
+ InvalidEventSourceTriggerData = 'AttributionReportingIssue::InvalidEventSourceTriggerData',
25
+ InvalidTriggerPriority = 'AttributionReportingIssue::InvalidTriggerPriority',
26
+ InvalidTriggerDedupKey = 'AttributionReportingIssue::InvalidTriggerDedupKey',
22
27
  }
23
28
 
24
29
  function getIssueCode(details: Protocol.Audits.AttributionReportingIssueDetails): IssueCode {
@@ -40,6 +45,16 @@ function getIssueCode(details: Protocol.Audits.AttributionReportingIssueDetails)
40
45
  return IssueCode.AttributionTriggerDataTooLarge;
41
46
  case Protocol.Audits.AttributionReportingIssueType.AttributionEventSourceTriggerDataTooLarge:
42
47
  return IssueCode.AttributionEventSourceTriggerDataTooLarge;
48
+ case Protocol.Audits.AttributionReportingIssueType.InvalidAttributionSourceExpiry:
49
+ return IssueCode.InvalidAttributionSourceExpiry;
50
+ case Protocol.Audits.AttributionReportingIssueType.InvalidAttributionSourcePriority:
51
+ return IssueCode.InvalidAttributionSourcePriority;
52
+ case Protocol.Audits.AttributionReportingIssueType.InvalidEventSourceTriggerData:
53
+ return IssueCode.InvalidEventSourceTriggerData;
54
+ case Protocol.Audits.AttributionReportingIssueType.InvalidTriggerPriority:
55
+ return IssueCode.InvalidTriggerPriority;
56
+ case Protocol.Audits.AttributionReportingIssueType.InvalidTriggerDedupKey:
57
+ return IssueCode.InvalidTriggerDedupKey;
43
58
  }
44
59
  }
45
60
 
@@ -108,6 +123,31 @@ export class AttributionReportingIssue extends Issue<IssueCode> {
108
123
  file: 'arAttributionEventSourceTriggerDataTooLarge.md',
109
124
  links: [],
110
125
  };
126
+ case IssueCode.InvalidAttributionSourceExpiry:
127
+ return {
128
+ file: 'arInvalidAttributionSourceExpiry.md',
129
+ links: [],
130
+ };
131
+ case IssueCode.InvalidAttributionSourcePriority:
132
+ return {
133
+ file: 'arInvalidAttributionSourcePriority.md',
134
+ links: [],
135
+ };
136
+ case IssueCode.InvalidEventSourceTriggerData:
137
+ return {
138
+ file: 'arInvalidEventSourceTriggerData.md',
139
+ links: [],
140
+ };
141
+ case IssueCode.InvalidTriggerPriority:
142
+ return {
143
+ file: 'arInvalidTriggerPriority.md',
144
+ links: [],
145
+ };
146
+ case IssueCode.InvalidTriggerDedupKey:
147
+ return {
148
+ file: 'arInvalidTriggerDedupKey.md',
149
+ links: [],
150
+ };
111
151
  }
112
152
  }
113
153
 
@@ -0,0 +1,4 @@
1
+ # Ensure attribution source expiry is a valid number
2
+
3
+ The expiry associated with an attribution source was defaulted to 30 days.
4
+ This happens if the provided value is not a valid 64-bit signed integer.
@@ -0,0 +1,4 @@
1
+ # Ensure attribution source priority is a valid number
2
+
3
+ The priority associated with an attribution source was defaulted to `0`.
4
+ This happens if the provided value is not a valid 64-bit signed integer.
@@ -0,0 +1,9 @@
1
+ # Ensure the "event-source-trigger-data" query parameter for an attribution redirect is a valid number
2
+
3
+ The event-source trigger data associated with an attribution was defaulted to `0`.
4
+ This happens if the `event-source-trigger-data` query parameter provided in the `.well-known`
5
+ redirect is not a valid 64-bit unsigned integer.
6
+
7
+ Note that even if a valid integer is provided, only the lowest 1-bit of the
8
+ `event-source-trigger-data` query parameter is recorded, with a 5% chance of the 1 bit being
9
+ noised.
@@ -0,0 +1,5 @@
1
+ # Ensure the "dedup-key" query parameter for an attribution redirect is a valid number
2
+
3
+ The dedup key associated with an attribution was defaulted to `null`.
4
+ This happens if the `dedup-key` query parameter provided in the `.well-known` redirect is not a
5
+ valid 64-bit signed integer.
@@ -0,0 +1,5 @@
1
+ # Ensure the "priority" query parameter for an attribution redirect is a valid number
2
+
3
+ The priority associated with an attribution was defaulted to `0`.
4
+ This happens if the `priority` query parameter provided in the `.well-known` redirect is not a
5
+ valid 64-bit signed integer.
@@ -3,8 +3,11 @@
3
3
  // found in the LICENSE file.
4
4
 
5
5
  import * as Common from '../../core/common/common.js';
6
+ import * as Host from '../../core/host/host.js';
6
7
  import * as i18n from '../../core/i18n/i18n.js';
8
+ import * as Root from '../../core/root/root.js';
7
9
  import * as SDK from '../../core/sdk/sdk.js';
10
+ import * as Feedback from '../../ui/components/panel_feedback/panel_feedback.js';
8
11
  import * as UI from '../../ui/legacy/legacy.js';
9
12
 
10
13
  import axBreadcrumbsStyles from './axBreadcrumbs.css.js';
@@ -27,6 +30,18 @@ const UIStrings = {
27
30
  *@description Ignored node element text content in AXBreadcrumbs Pane of the Accessibility panel
28
31
  */
29
32
  ignored: 'Ignored',
33
+ /**
34
+ *@description Name for experimental tree toggle.
35
+ */
36
+ fullTreeExperimentName: 'Enable full-page accessibility tree',
37
+ /**
38
+ *@description Description text for experimental tree toggle.
39
+ */
40
+ fullTreeExperimentDescription: 'The accessibility tree moved to the top right corner of the DOM tree.',
41
+ /**
42
+ *@description Message saying that DevTools must be restarted before the experiment is enabled.
43
+ */
44
+ reloadRequired: 'Reload required before the change takes effect.',
30
45
  };
31
46
  const str_ = i18n.i18n.registerUIStrings('panels/accessibility/AXBreadcrumbsPane.ts', UIStrings);
32
47
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
@@ -37,24 +52,48 @@ export class AXBreadcrumbsPane extends AccessibilitySubPane {
37
52
  private collapsingBreadcrumbId: number;
38
53
  private hoveredBreadcrumb: AXBreadcrumb|null;
39
54
  private readonly rootElement: HTMLElement;
55
+ #legacyTreeDisabled = false;
40
56
 
41
57
  constructor(axSidebarView: AccessibilitySidebarView) {
42
58
  super(i18nString(UIStrings.accessibilityTree));
43
59
 
44
60
  this.element.classList.add('ax-subpane');
45
- UI.ARIAUtils.markAsTree(this.element);
46
61
  this.element.tabIndex = -1;
47
62
 
48
63
  this.axSidebarView = axSidebarView;
49
-
50
64
  this.preselectedBreadcrumb = null;
51
65
  this.inspectedNodeBreadcrumb = null;
52
66
 
53
67
  this.collapsingBreadcrumbId = -1;
54
68
 
55
- this.hoveredBreadcrumb = null;
56
69
  this.rootElement = this.element.createChild('div', 'ax-breadcrumbs');
57
70
 
71
+ this.hoveredBreadcrumb = null;
72
+ const previewToggle = new Feedback.PreviewToggle.PreviewToggle();
73
+ const name = i18nString(UIStrings.fullTreeExperimentName);
74
+ const experiment = Root.Runtime.ExperimentName.FULL_ACCESSIBILITY_TREE;
75
+ const onChangeCallback: (checked: boolean) => void = checked => {
76
+ Host.userMetrics.experimentChanged(experiment, checked);
77
+ UI.InspectorView.InspectorView.instance().displayReloadRequiredWarning(i18nString(UIStrings.reloadRequired));
78
+ };
79
+ if (Root.Runtime.experiments.isEnabled(experiment)) {
80
+ this.#legacyTreeDisabled = true;
81
+ const feedbackURL = 'https://goo.gle/devtools-a11y-tree-feedback';
82
+ previewToggle.data = {
83
+ name,
84
+ helperText: i18nString(UIStrings.fullTreeExperimentDescription),
85
+ feedbackURL,
86
+ experiment,
87
+ onChangeCallback,
88
+ };
89
+ this.element.appendChild(previewToggle);
90
+ return;
91
+ }
92
+ previewToggle.data = {name, helperText: null, feedbackURL: null, experiment, onChangeCallback};
93
+ this.element.prepend(previewToggle);
94
+
95
+ UI.ARIAUtils.markAsTree(this.rootElement);
96
+
58
97
  this.rootElement.addEventListener('keydown', this.onKeyDown.bind(this), true);
59
98
  this.rootElement.addEventListener('mousemove', this.onMouseMove.bind(this), false);
60
99
  this.rootElement.addEventListener('mouseleave', this.onMouseLeave.bind(this), false);
@@ -72,6 +111,9 @@ export class AXBreadcrumbsPane extends AccessibilitySubPane {
72
111
  }
73
112
 
74
113
  setAXNode(axNode: SDK.AccessibilityModel.AccessibilityNode|null): void {
114
+ if (this.#legacyTreeDisabled) {
115
+ return;
116
+ }
75
117
  const hadFocus = this.element.hasFocus();
76
118
  super.setAXNode(axNode);
77
119
 
@@ -31,10 +31,8 @@ export class AccessibilitySidebarView extends UI.ThrottledWidget.ThrottledWidget
31
31
  this.axNodeInternal = null;
32
32
  this.skipNextPullNode = false;
33
33
  this.sidebarPaneStack = UI.ViewManager.ViewManager.instance().createStackLocation();
34
- if (!Root.Runtime.experiments.isEnabled('fullAccessibilityTree')) {
35
- this.breadcrumbsSubPane = new AXBreadcrumbsPane(this);
36
- this.sidebarPaneStack.showView(this.breadcrumbsSubPane);
37
- }
34
+ this.breadcrumbsSubPane = new AXBreadcrumbsPane(this);
35
+ this.sidebarPaneStack.showView(this.breadcrumbsSubPane);
38
36
  this.ariaSubPane = new ARIAAttributesPane();
39
37
  this.sidebarPaneStack.showView(this.ariaSubPane);
40
38
  this.axNodeSubPane = new AXNodeSubPane();
@@ -99,6 +99,10 @@
99
99
  background-color: var(--color-background-elevation-0);
100
100
  }
101
101
 
102
+ .ax-breadcrumbs .ax-node:not(.inspected):focus {
103
+ background-color: var(--color-background-elevation-1);
104
+ }
105
+
102
106
  .ax-breadcrumbs .ax-node.inspected:focus * {
103
107
  color: inherit;
104
108
  }