chrome-devtools-frontend 1.0.1625079 → 1.0.1625854

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 (171) hide show
  1. package/front_end/core/common/VersionController.ts +9 -7
  2. package/front_end/core/common/common.ts +0 -4
  3. package/front_end/core/host/Platform.ts +0 -9
  4. package/front_end/core/host/UserMetrics.ts +0 -55
  5. package/front_end/core/root/ExperimentNames.ts +0 -1
  6. package/front_end/core/sdk/CPUThrottlingManager.ts +1 -1
  7. package/front_end/core/sdk/CSSMetadata.ts +0 -8
  8. package/front_end/core/sdk/CSSProperty.ts +1 -5
  9. package/front_end/core/sdk/CSSPropertyParserMatchers.ts +0 -30
  10. package/front_end/{panels/application → core/sdk}/DOMStorageModel.ts +12 -10
  11. package/front_end/core/sdk/sdk.ts +2 -0
  12. package/front_end/entrypoints/main/MainImpl.ts +12 -8
  13. package/front_end/entrypoints/main/SimpleApp.ts +3 -4
  14. package/front_end/entrypoints/main/main-meta.ts +1 -1
  15. package/front_end/generated/InspectorBackendCommands.ts +3 -3
  16. package/front_end/generated/SupportedCSSProperties.js +21 -21
  17. package/front_end/generated/protocol.ts +4 -1
  18. package/front_end/models/ai_code_completion/AiCodeCompletion.ts +10 -2
  19. package/front_end/models/ai_code_generation/AiCodeGeneration.ts +5 -1
  20. package/front_end/models/issues_manager/CookieIssue.ts +0 -4
  21. package/front_end/models/issues_manager/RelatedIssue.ts +0 -14
  22. package/front_end/models/workspace/IgnoreListManager.ts +1 -1
  23. package/front_end/models/workspace/UISourceCode.ts +10 -5
  24. package/front_end/panels/ai_assistance/components/ChatMessage.ts +26 -9
  25. package/front_end/panels/application/ApplicationPanelSidebar.ts +32 -42
  26. package/front_end/panels/application/BackForwardCacheTreeElement.ts +2 -2
  27. package/front_end/panels/application/BounceTrackingMitigationsTreeElement.ts +2 -2
  28. package/front_end/panels/application/DOMStorageItemsView.ts +18 -13
  29. package/front_end/panels/application/InterestGroupTreeElement.ts +2 -2
  30. package/front_end/panels/application/ReportingApiTreeElement.ts +3 -3
  31. package/front_end/panels/application/ResourcesPanel.ts +1 -2
  32. package/front_end/panels/application/ServiceWorkerCacheTreeElement.ts +1 -2
  33. package/front_end/panels/application/StorageView.ts +1 -2
  34. package/front_end/panels/application/TrustTokensTreeElement.ts +2 -2
  35. package/front_end/panels/application/WebMCPTreeElement.ts +2 -2
  36. package/front_end/panels/application/application.ts +0 -2
  37. package/front_end/panels/console/ConsolePrompt.ts +1 -1
  38. package/front_end/panels/console/ConsoleView.ts +3 -4
  39. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +0 -152
  40. package/front_end/panels/elements/ElementsTreeElement.ts +4 -9
  41. package/front_end/panels/elements/StylePropertiesSection.ts +0 -61
  42. package/front_end/panels/elements/StylePropertyTreeElement.ts +1 -21
  43. package/front_end/panels/elements/StylesAiCodeCompletionProvider.ts +6 -4
  44. package/front_end/panels/elements/StylesSidebarPane.ts +2 -3
  45. package/front_end/panels/elements/stylesSidebarPane.css +0 -8
  46. package/front_end/panels/emulation/AdvancedApp.ts +3 -3
  47. package/front_end/panels/emulation/DeviceModeToolbar.ts +203 -377
  48. package/front_end/panels/emulation/emulation-meta.ts +1 -1
  49. package/front_end/panels/network/NetworkPanel.ts +1 -1
  50. package/front_end/panels/profiler/HeapProfilerPanel.ts +1 -2
  51. package/front_end/panels/screencast/ScreencastApp.ts +3 -3
  52. package/front_end/panels/screencast/screencast-meta.ts +1 -2
  53. package/front_end/panels/settings/SettingsScreen.ts +2 -2
  54. package/front_end/panels/sources/AiCodeCompletionPlugin.ts +2 -4
  55. package/front_end/panels/sources/SourcesNavigator.ts +1 -1
  56. package/front_end/panels/sources/UISourceCodeFrame.ts +1 -3
  57. package/front_end/panels/timeline/TimelinePanel.ts +2 -2
  58. package/front_end/third_party/chromium/README.chromium +1 -1
  59. package/front_end/third_party/puppeteer/README.chromium +2 -2
  60. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +2 -2
  61. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.d.ts +3 -2
  62. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.d.ts.map +1 -1
  63. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.js +53 -23
  64. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.js.map +1 -1
  65. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts +3 -2
  66. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts.map +1 -1
  67. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js +18 -8
  68. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js.map +1 -1
  69. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.d.ts.map +1 -1
  70. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js +2 -2
  71. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js.map +1 -1
  72. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
  73. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +4 -0
  74. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
  75. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManager.d.ts +1 -1
  76. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManager.d.ts.map +1 -1
  77. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManager.js +54 -19
  78. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManager.js.map +1 -1
  79. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebMCP.d.ts +5 -0
  80. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebMCP.d.ts.map +1 -1
  81. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebMCP.js +2 -9
  82. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebMCP.js.map +1 -1
  83. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.d.ts.map +1 -1
  84. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js +3 -0
  85. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js.map +1 -1
  86. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts +37 -1
  87. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  88. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  89. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  90. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js +5 -2
  91. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js.map +1 -1
  92. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  93. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js +1 -0
  94. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js.map +1 -1
  95. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  96. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  97. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  98. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
  99. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
  100. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +47 -65
  101. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +143 -55
  102. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +2 -2
  103. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.d.ts +3 -2
  104. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.d.ts.map +1 -1
  105. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.js +53 -23
  106. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.js.map +1 -1
  107. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts +3 -2
  108. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts.map +1 -1
  109. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js +18 -8
  110. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js.map +1 -1
  111. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.d.ts.map +1 -1
  112. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.js +2 -2
  113. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.js.map +1 -1
  114. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
  115. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +4 -0
  116. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
  117. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManager.d.ts +1 -1
  118. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManager.d.ts.map +1 -1
  119. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManager.js +54 -19
  120. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManager.js.map +1 -1
  121. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebMCP.d.ts +5 -0
  122. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebMCP.d.ts.map +1 -1
  123. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebMCP.js +2 -9
  124. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebMCP.js.map +1 -1
  125. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.d.ts.map +1 -1
  126. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js +3 -0
  127. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js.map +1 -1
  128. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts +37 -1
  129. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  130. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  131. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js +5 -2
  132. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js.map +1 -1
  133. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  134. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js +1 -0
  135. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js.map +1 -1
  136. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  137. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  138. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
  139. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
  140. package/front_end/third_party/puppeteer/package/lib/types.d.ts +47 -65
  141. package/front_end/third_party/puppeteer/package/package.json +6 -6
  142. package/front_end/third_party/puppeteer/package/src/api/Page.ts +2 -2
  143. package/front_end/third_party/puppeteer/package/src/api/locators/locators.ts +69 -27
  144. package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +27 -8
  145. package/front_end/third_party/puppeteer/package/src/cdp/BrowserConnector.ts +4 -2
  146. package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +6 -0
  147. package/front_end/third_party/puppeteer/package/src/cdp/TargetManager.ts +60 -18
  148. package/front_end/third_party/puppeteer/package/src/cdp/WebMCP.ts +7 -9
  149. package/front_end/third_party/puppeteer/package/src/common/BrowserConnector.ts +3 -0
  150. package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +37 -1
  151. package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +7 -2
  152. package/front_end/third_party/puppeteer/package/src/node/ChromeLauncher.ts +1 -0
  153. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  154. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  155. package/front_end/ui/components/text_editor/AiCodeCompletionProvider.ts +19 -14
  156. package/front_end/ui/components/text_editor/AiCodeGenerationProvider.ts +8 -7
  157. package/front_end/{core/common → ui/legacy}/AppProvider.ts +1 -1
  158. package/front_end/ui/legacy/InspectorView.ts +4 -3
  159. package/front_end/ui/legacy/TabbedPane.ts +1 -1
  160. package/front_end/ui/legacy/UIUserMetrics.ts +70 -0
  161. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +1 -8
  162. package/front_end/ui/legacy/components/inline_editor/inline_editor.ts +0 -6
  163. package/front_end/ui/legacy/legacy.ts +6 -0
  164. package/front_end/ui/visual_logging/KnownContextValues.ts +1 -0
  165. package/package.json +1 -1
  166. package/front_end/Images/src/custom-typography.svg +0 -3
  167. package/front_end/ui/legacy/components/inline_editor/FontEditor.ts +0 -798
  168. package/front_end/ui/legacy/components/inline_editor/FontEditorUnitConverter.ts +0 -250
  169. package/front_end/ui/legacy/components/inline_editor/FontEditorUtils.ts +0 -204
  170. package/front_end/ui/legacy/components/inline_editor/fontEditor.css +0 -185
  171. /package/front_end/{core/common → ui/legacy}/App.ts +0 -0
@@ -13,7 +13,6 @@ import * as DeviceBoundSessionsModel from './DeviceBoundSessionsModel.js';
13
13
  import * as DeviceBoundSessionsTreeElement from './DeviceBoundSessionsTreeElement.js';
14
14
  import * as DeviceBoundSessionsView from './DeviceBoundSessionsView.js';
15
15
  import * as DOMStorageItemsView from './DOMStorageItemsView.js';
16
- import * as DOMStorageModel from './DOMStorageModel.js';
17
16
  import * as ExtensionStorageItemsView from './ExtensionStorageItemsView.js';
18
17
  import * as ExtensionStorageModel from './ExtensionStorageModel.js';
19
18
  import * as FrameDetailsView from './FrameDetailsView.js';
@@ -58,7 +57,6 @@ export {
58
57
  DeviceBoundSessionsTreeElement,
59
58
  DeviceBoundSessionsView,
60
59
  DOMStorageItemsView,
61
- DOMStorageModel,
62
60
  ExtensionStorageItemsView,
63
61
  ExtensionStorageModel,
64
62
  FrameDetailsView,
@@ -190,7 +190,7 @@ export class ConsolePrompt extends Common.ObjectWrapper.eventMixin<EventTypes, t
190
190
  this.editorSetForTest();
191
191
 
192
192
  // Record the console tool load time after the console prompt constructor is complete.
193
- Host.userMetrics.panelLoaded('console', 'DevTools.Launch.Console');
193
+ UI.UIUserMetrics.UIUserMetrics.instance().panelLoaded('console', 'DevTools.Launch.Console');
194
194
  }
195
195
 
196
196
  private eagerSettingChanged(): void {
@@ -571,9 +571,8 @@ export class ConsoleView extends UI.Widget.VBox implements
571
571
  this.consoleMessages = [];
572
572
  this.consoleGroupStarts = [];
573
573
 
574
- const devtoolsLocale = i18n.DevToolsLocale.DevToolsLocale.instance();
575
- this.aiCodeCompletionConfig =
576
- AiCodeCompletion.AiCodeCompletion.AiCodeCompletion.isAiCodeCompletionEnabled(devtoolsLocale.locale) ? {
574
+ this.aiCodeCompletionConfig = AiCodeCompletion.AiCodeCompletion.AiCodeCompletion.isAiCodeCompletionAvailable() ?
575
+ {
577
576
  completionContext: {
578
577
  getPrefix: this.getConsoleMessageHistory.bind(this),
579
578
  additionalFiles: [{
@@ -597,7 +596,7 @@ export class ConsoleView extends UI.Widget.VBox implements
597
596
  onResponseReceived: this.#onAiCodeCompletionResponseReceived.bind(this),
598
597
  panel: AiCodeCompletion.AiCodeCompletion.ContextFlavor.CONSOLE,
599
598
  } :
600
- undefined;
599
+ undefined;
601
600
 
602
601
  this.prompt = new ConsolePrompt(this.aiCodeCompletionConfig);
603
602
  this.prompt.show(this.promptElement);
@@ -11,9 +11,7 @@ import * as ColorPicker from '../../ui/legacy/components/color_picker/color_pick
11
11
  import * as InlineEditor from '../../ui/legacy/components/inline_editor/inline_editor.js';
12
12
  import * as UI from '../../ui/legacy/legacy.js';
13
13
 
14
- import type {StylePropertiesSection} from './StylePropertiesSection.js';
15
14
  import type {StylePropertyTreeElement} from './StylePropertyTreeElement.js';
16
- import type {StylesContainer} from './StylesContainer.js';
17
15
 
18
16
  const UIStrings = {
19
17
  /**
@@ -403,153 +401,3 @@ export class ShadowSwatchPopoverHelper extends Common.ObjectWrapper.ObjectWrappe
403
401
  delete this.originalPropertyText;
404
402
  }
405
403
  }
406
-
407
- export class FontEditorSectionManager {
408
- private readonly treeElementMap: Map<string, StylePropertyTreeElement>;
409
- private readonly swatchPopoverHelper: InlineEditor.SwatchPopoverHelper.SwatchPopoverHelper;
410
- private readonly section: StylePropertiesSection;
411
- private stylesContainer: StylesContainer|null;
412
- private fontEditor: InlineEditor.FontEditor.FontEditor|null;
413
- private scrollerElement: Element|null;
414
- private readonly boundFontChanged:
415
- (event: Common.EventTarget.EventTargetEvent<InlineEditor.FontEditor.FontChangedEvent>) => void;
416
- private readonly boundOnScroll: () => void;
417
- private readonly boundResized: () => void;
418
- constructor(
419
- swatchPopoverHelper: InlineEditor.SwatchPopoverHelper.SwatchPopoverHelper, section: StylePropertiesSection) {
420
- this.treeElementMap = new Map();
421
-
422
- this.swatchPopoverHelper = swatchPopoverHelper;
423
-
424
- this.section = section;
425
-
426
- this.stylesContainer = null;
427
-
428
- this.fontEditor = null;
429
-
430
- this.scrollerElement = null;
431
-
432
- this.boundFontChanged = this.fontChanged.bind(this);
433
- this.boundOnScroll = this.onScroll.bind(this);
434
- this.boundResized = this.fontEditorResized.bind(this);
435
- }
436
-
437
- private fontChanged(event: Common.EventTarget.EventTargetEvent<InlineEditor.FontEditor.FontChangedEvent>): void {
438
- const {propertyName, value} = event.data;
439
- const treeElement = this.treeElementMap.get(propertyName);
440
- void this.updateFontProperty(propertyName, value, treeElement);
441
- }
442
-
443
- private async updateFontProperty(propertyName: string, value: string, treeElement?: StylePropertyTreeElement):
444
- Promise<void> {
445
- if (treeElement?.treeOutline && treeElement.valueElement && treeElement.property.parsedOk &&
446
- treeElement.property.range) {
447
- let elementRemoved = false;
448
- treeElement.valueElement.textContent = value;
449
- treeElement.property.value = value;
450
- let styleText;
451
- const propertyName = treeElement.property.name;
452
- if (value.length) {
453
- styleText = treeElement.renderedPropertyText();
454
- } else {
455
- styleText = '';
456
- elementRemoved = true;
457
- this.fixIndex(treeElement.property.index);
458
- }
459
- this.treeElementMap.set(propertyName, treeElement);
460
- await treeElement.applyStyleText(styleText, true);
461
- if (elementRemoved) {
462
- this.treeElementMap.delete(propertyName);
463
- }
464
- } else if (value.length) {
465
- const newProperty = this.section.addNewBlankProperty();
466
- if (newProperty) {
467
- newProperty.property.name = propertyName;
468
- newProperty.property.value = value;
469
- newProperty.updateTitle();
470
- await newProperty.applyStyleText(newProperty.renderedPropertyText(), true);
471
- this.treeElementMap.set(newProperty.property.name, newProperty);
472
- }
473
- }
474
- this.section.onpopulate();
475
- this.swatchPopoverHelper.reposition();
476
- return;
477
- }
478
-
479
- private fontEditorResized(): void {
480
- this.swatchPopoverHelper.reposition();
481
- }
482
-
483
- private fixIndex(removedIndex: number): void {
484
- for (const treeElement of this.treeElementMap.values()) {
485
- if (treeElement.property.index > removedIndex) {
486
- treeElement.property.index -= 1;
487
- }
488
- }
489
- }
490
-
491
- private createPropertyValueMap(): Map<string, string> {
492
- const propertyMap = new Map<string, string>();
493
- for (const fontProperty of this.treeElementMap) {
494
- const propertyName = (fontProperty[0]);
495
- const treeElement = fontProperty[1];
496
- if (treeElement.property.value.length) {
497
- propertyMap.set(propertyName, treeElement.property.value);
498
- } else {
499
- this.treeElementMap.delete(propertyName);
500
- }
501
- }
502
- return propertyMap;
503
- }
504
-
505
- registerFontProperty(treeElement: StylePropertyTreeElement): void {
506
- const propertyName = treeElement.property.name;
507
- if (this.treeElementMap.has(propertyName)) {
508
- const treeElementFromMap = this.treeElementMap.get(propertyName);
509
- if (!treeElement.overloaded() || (treeElementFromMap?.overloaded())) {
510
- this.treeElementMap.set(propertyName, treeElement);
511
- }
512
- } else {
513
- this.treeElementMap.set(propertyName, treeElement);
514
- }
515
- }
516
-
517
- async showPopover(iconElement: Element, stylesContainer: StylesContainer): Promise<void> {
518
- if (this.swatchPopoverHelper.isShowing()) {
519
- this.swatchPopoverHelper.hide(true);
520
- return;
521
- }
522
- this.stylesContainer = stylesContainer;
523
- const propertyValueMap = this.createPropertyValueMap();
524
- this.fontEditor = new InlineEditor.FontEditor.FontEditor(propertyValueMap);
525
- this.fontEditor.addEventListener(InlineEditor.FontEditor.Events.FONT_CHANGED, this.boundFontChanged);
526
- this.fontEditor.addEventListener(InlineEditor.FontEditor.Events.FONT_EDITOR_RESIZED, this.boundResized);
527
- this.swatchPopoverHelper.show(this.fontEditor, iconElement, this.onPopoverHidden.bind(this));
528
- this.scrollerElement = iconElement.enclosingNodeOrSelfWithClass('style-panes-wrapper');
529
- if (this.scrollerElement) {
530
- this.scrollerElement.addEventListener('scroll', this.boundOnScroll, false);
531
- }
532
-
533
- this.stylesContainer.setEditingStyle(true);
534
- }
535
-
536
- private onScroll(): void {
537
- this.swatchPopoverHelper.hide(true);
538
- }
539
-
540
- private onPopoverHidden(): void {
541
- if (this.scrollerElement) {
542
- this.scrollerElement.removeEventListener('scroll', this.boundOnScroll, false);
543
- }
544
- this.section.onpopulate();
545
- if (this.fontEditor) {
546
- this.fontEditor.removeEventListener(InlineEditor.FontEditor.Events.FONT_CHANGED, this.boundFontChanged);
547
- }
548
- this.fontEditor = null;
549
- if (this.stylesContainer) {
550
- this.stylesContainer.setEditingStyle(false);
551
- }
552
- this.section.resetToolbars();
553
- this.section.onpopulate();
554
- }
555
- }
@@ -1,7 +1,6 @@
1
1
  // Copyright 2021 The Chromium Authors
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
- /* eslint-disable @devtools/no-imperative-dom-api */
5
4
  /* eslint-disable @devtools/no-lit-render-outside-of-view */
6
5
 
7
6
  /*
@@ -55,7 +54,6 @@ import type * as Adorners from '../../ui/components/adorners/adorners.js';
55
54
  import * as CodeHighlighter from '../../ui/components/code_highlighter/code_highlighter.js';
56
55
  import * as Highlighting from '../../ui/components/highlighting/highlighting.js';
57
56
  import * as TextEditor from '../../ui/components/text_editor/text_editor.js';
58
- import {Icon} from '../../ui/kit/kit.js';
59
57
  import * as Components from '../../ui/legacy/components/utils/utils.js';
60
58
  import * as UI from '../../ui/legacy/legacy.js';
61
59
  import * as Lit from '../../ui/lit/lit.js';
@@ -1233,12 +1231,9 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
1233
1231
  this.performUpdate();
1234
1232
 
1235
1233
  if (this.nodeInternal.retained && !this.isClosingTag()) {
1236
- const icon = new Icon();
1237
- icon.name = 'small-status-dot';
1238
- icon.style.color = 'var(--icon-error)';
1239
- icon.classList.add('extra-small');
1240
- icon.style.setProperty('vertical-align', 'middle');
1241
- this.setLeadingIcons([icon]);
1234
+ this.setLeadingIcons([
1235
+ html`<devtools-icon class="extra-small" name="small-status-dot" style="color:var(--icon-error); vertical-align:middle"></devtools-icon>`
1236
+ ]);
1242
1237
  this.listItemNode.classList.add('detached-elements-detached-node');
1243
1238
  this.listItemNode.style.setProperty('display', '-webkit-box');
1244
1239
  this.listItemNode.setAttribute('title', 'Retained Node');
@@ -2375,7 +2370,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
2375
2370
  private addNewAttribute(): boolean {
2376
2371
  // Cannot just convert the textual html into an element without
2377
2372
  // a parent node. Use a temporary span container for the HTML.
2378
- const container = document.createElement('span');
2373
+ const container = document.createDocumentFragment();
2379
2374
 
2380
2375
  Lit.render(renderAttribute({name: ' ', value: ''}, null, false, this.nodeInternal), container);
2381
2376
  const attr = container.firstElementChild as HTMLElement;
@@ -39,7 +39,6 @@ import * as Common from '../../core/common/common.js';
39
39
  import * as Host from '../../core/host/host.js';
40
40
  import * as i18n from '../../core/i18n/i18n.js';
41
41
  import * as Platform from '../../core/platform/platform.js';
42
- import * as Root from '../../core/root/root.js';
43
42
  import * as SDK from '../../core/sdk/sdk.js';
44
43
  import * as Protocol from '../../generated/protocol.js';
45
44
  import * as Badges from '../../models/badges/badges.js';
@@ -54,7 +53,6 @@ import {html, type LitTemplate, nothing, render} from '../../ui/lit/lit.js';
54
53
  import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
55
54
  import * as PanelsCommon from '../common/common.js';
56
55
 
57
- import {FontEditorSectionManager} from './ColorSwatchPopoverIcon.js';
58
56
  import * as ElementsComponents from './components/components.js';
59
57
  import {ElementsPanel} from './ElementsPanel.js';
60
58
  import stylePropertiesTreeOutlineStyles from './stylePropertiesTreeOutline.css.js';
@@ -166,9 +164,6 @@ export class StylePropertiesSection {
166
164
  private showAllButton: Buttons.Button.Button;
167
165
  protected selectorElement: HTMLSpanElement;
168
166
  private readonly newStyleRuleToolbar: UI.Toolbar.Toolbar|undefined;
169
- private readonly fontEditorToolbar: UI.Toolbar.Toolbar|undefined;
170
- private readonly fontEditorSectionManager: FontEditorSectionManager|undefined;
171
- private readonly fontEditorButton: UI.Toolbar.ToolbarButton|undefined;
172
167
  private selectedSinceMouseDown: boolean;
173
168
  private readonly elementToSelectorIndex = new WeakMap<Element, number>();
174
169
  navigable: boolean|null|undefined;
@@ -309,31 +304,6 @@ export class StylePropertiesSection {
309
304
  UI.ARIAUtils.setHidden(this.newStyleRuleToolbar, true);
310
305
  }
311
306
 
312
- if (Root.Runtime.experiments.isEnabled(Root.ExperimentNames.ExperimentName.FONT_EDITOR) && this.editable) {
313
- this.fontEditorToolbar = this.#styleRuleElement.createChild('devtools-toolbar', 'sidebar-pane-section-toolbar');
314
- this.fontEditorSectionManager = new FontEditorSectionManager(this.stylesContainer.swatchPopoverHelper(), this);
315
- this.fontEditorButton =
316
- new UI.Toolbar.ToolbarButton('Font Editor', 'custom-typography', undefined, 'font-editor');
317
- this.fontEditorButton.addEventListener(UI.Toolbar.ToolbarButton.Events.CLICK, () => {
318
- this.onFontEditorButtonClicked();
319
- }, this);
320
- this.fontEditorButton.element.addEventListener('keydown', event => {
321
- if (Platform.KeyboardUtilities.isEnterOrSpaceKey(event)) {
322
- event.consume(true);
323
- this.onFontEditorButtonClicked();
324
- }
325
- }, false);
326
- this.fontEditorToolbar.appendToolbarItem(this.fontEditorButton);
327
-
328
- if (this.styleInternal.type === SDK.CSSStyleDeclaration.Type.Inline) {
329
- if (this.newStyleRuleToolbar) {
330
- this.newStyleRuleToolbar.classList.add('shifted-toolbar');
331
- }
332
- } else {
333
- this.fontEditorToolbar.classList.add('font-toolbar-hidden');
334
- }
335
- }
336
-
337
307
  this.selectorElement.addEventListener('click', this.handleSelectorClick.bind(this), false);
338
308
  this.selectorElement.setAttribute(
339
309
  'jslog', `${VisualLogging.cssRuleHeader('selector').track({click: true, change: true})}`);
@@ -409,31 +379,6 @@ export class StylePropertiesSection {
409
379
  return this.sectionIdx;
410
380
  }
411
381
 
412
- registerFontProperty(treeElement: StylePropertyTreeElement): void {
413
- if (this.fontEditorSectionManager) {
414
- this.fontEditorSectionManager.registerFontProperty(treeElement);
415
- }
416
- if (this.fontEditorToolbar) {
417
- this.fontEditorToolbar.classList.remove('font-toolbar-hidden');
418
- if (this.newStyleRuleToolbar) {
419
- this.newStyleRuleToolbar.classList.add('shifted-toolbar');
420
- }
421
- }
422
- }
423
-
424
- resetToolbars(): void {
425
- if (this.stylesContainer.swatchPopoverHelper().isShowing() ||
426
- this.styleInternal.type === SDK.CSSStyleDeclaration.Type.Inline) {
427
- return;
428
- }
429
- if (this.fontEditorToolbar) {
430
- this.fontEditorToolbar.classList.add('font-toolbar-hidden');
431
- }
432
- if (this.newStyleRuleToolbar) {
433
- this.newStyleRuleToolbar.classList.remove('shifted-toolbar');
434
- }
435
- }
436
-
437
382
  static createRuleOriginNode(
438
383
  matchedStyles: SDK.CSSMatchedStyles.CSSMatchedStyles, linkifier: Components.Linkifier.Linkifier,
439
384
  rule: SDK.CSSRule.CSSRule|null): LitTemplate {
@@ -678,12 +623,6 @@ export class StylePropertiesSection {
678
623
  }
679
624
  }
680
625
 
681
- private onFontEditorButtonClicked(): void {
682
- if (this.fontEditorSectionManager && this.fontEditorButton) {
683
- void this.fontEditorSectionManager.showPopover(this.fontEditorButton.element, this.stylesContainer);
684
- }
685
- }
686
-
687
626
  style(): SDK.CSSStyleDeclaration.CSSStyleDeclaration {
688
627
  return this.styleInternal;
689
628
  }
@@ -8,7 +8,6 @@ import * as Common from '../../core/common/common.js';
8
8
  import * as Host from '../../core/host/host.js';
9
9
  import * as i18n from '../../core/i18n/i18n.js';
10
10
  import * as Platform from '../../core/platform/platform.js';
11
- import * as Root from '../../core/root/root.js';
12
11
  import * as SDK from '../../core/sdk/sdk.js';
13
12
  import type * as Protocol from '../../generated/protocol.js';
14
13
  import * as Badges from '../../models/badges/badges.js';
@@ -1599,20 +1598,6 @@ export class ShadowRenderer extends rendererBase(SDK.CSSPropertyParserMatchers.S
1599
1598
  }
1600
1599
  }
1601
1600
 
1602
- // clang-format off
1603
- export class FontRenderer extends rendererBase(SDK.CSSPropertyParserMatchers.FontMatch) {
1604
- // clang-format on
1605
- constructor(readonly treeElement: StylePropertyTreeElement) {
1606
- super();
1607
- }
1608
-
1609
- override render(match: SDK.CSSPropertyParserMatchers.FontMatch, context: RenderingContext): Node[] {
1610
- this.treeElement.section().registerFontProperty(this.treeElement);
1611
- const {nodes} = Renderer.render(ASTUtils.siblings(ASTUtils.declValue(match.node)), context);
1612
- return nodes;
1613
- }
1614
- }
1615
-
1616
1601
  // clang-format off
1617
1602
  export class GridTemplateRenderer extends rendererBase(SDK.CSSPropertyParserMatchers.GridTemplateMatch) {
1618
1603
  // clang-format on
@@ -2462,9 +2447,6 @@ export class StylePropertyTreeElement extends UI.TreeOutline.TreeElement {
2462
2447
  this.getComputedStyles() ?? new Map(), this.getComputedStyleExtraFields()) :
2463
2448
  [];
2464
2449
 
2465
- if (Root.Runtime.experiments.isEnabled(Root.ExperimentNames.ExperimentName.FONT_EDITOR) && this.property.parsedOk) {
2466
- renderers.push(new FontRenderer(this));
2467
- }
2468
2450
  this.listItemElement.removeChildren();
2469
2451
  const matchedResult = this.property.parseValue(this.matchedStyles(), this.computedStyles);
2470
2452
  this.valueElement = Renderer.renderValueElement(this.property, matchedResult, renderers).valueElement;
@@ -3610,9 +3592,7 @@ export class StylePropertyTreeElement extends UI.TreeOutline.TreeElement {
3610
3592
  // This occurs when deleting the last index of a StylePropertiesSection as this.style._allProperties array gets updated
3611
3593
  // before we index it when setting the value for updatedProperty
3612
3594
  const deleteProperty = majorChange && !styleText.length;
3613
- if (deleteProperty) {
3614
- this.#parentSection.resetToolbars();
3615
- } else if (!deleteProperty && updatedProperty) {
3595
+ if (!deleteProperty && updatedProperty) {
3616
3596
  this.property = updatedProperty;
3617
3597
  }
3618
3598
 
@@ -32,9 +32,8 @@ export class StylesAiCodeCompletionProvider {
32
32
  #boundOnUpdateAiCodeCompletionState = this.#updateAiCodeCompletionState.bind(this);
33
33
 
34
34
  private constructor(aiCodeCompletionConfig: TextEditor.AiCodeCompletionProvider.AiCodeCompletionConfig) {
35
- const devtoolsLocale = i18n.DevToolsLocale.DevToolsLocale.instance();
36
- if (!AiCodeCompletion.AiCodeCompletion.AiCodeCompletion.isAiCodeCompletionStylesEnabled(devtoolsLocale.locale)) {
37
- throw new Error('AI code completion feature in Styles is not enabled.');
35
+ if (!AiCodeCompletion.AiCodeCompletion.AiCodeCompletion.isAiCodeCompletionStylesAvailable()) {
36
+ throw new Error('AI code completion feature in Styles is not available.');
38
37
  }
39
38
  this.#aiCodeCompletionConfig = aiCodeCompletionConfig;
40
39
  Host.AidaClient.HostConfigTracker.instance().addEventListener(
@@ -82,7 +81,10 @@ export class StylesAiCodeCompletionProvider {
82
81
  async #updateAiCodeCompletionState(): Promise<void> {
83
82
  const aidaAvailability = await Host.AidaClient.AidaClient.checkAccessPreconditions();
84
83
  const isAvailable = aidaAvailability === Host.AidaClient.AidaAccessPreconditions.AVAILABLE;
85
- const isEnabled = this.#aiCodeCompletionSetting.get();
84
+ const devtoolsLocale = i18n.DevToolsLocale.DevToolsLocale.instance().locale;
85
+ const isEnabled =
86
+ AiCodeCompletion.AiCodeCompletion.AiCodeCompletion.isAiCodeCompletionStylesEnabled(devtoolsLocale) &&
87
+ this.#aiCodeCompletionSetting.get();
86
88
  if (isAvailable && isEnabled) {
87
89
  this.#setupAiCodeCompletion();
88
90
  } else {
@@ -275,8 +275,7 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
275
275
  }
276
276
  });
277
277
 
278
- const devtoolsLocale = i18n.DevToolsLocale.DevToolsLocale.instance();
279
- if (AiCodeCompletion.AiCodeCompletion.AiCodeCompletion.isAiCodeCompletionStylesEnabled(devtoolsLocale.locale)) {
278
+ if (AiCodeCompletion.AiCodeCompletion.AiCodeCompletion.isAiCodeCompletionStylesAvailable()) {
280
279
  this.aiCodeCompletionConfig = {
281
280
  completionContext: {},
282
281
  generationContext: {},
@@ -1045,7 +1044,7 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
1045
1044
  this.swatchPopoverHelper().reposition();
1046
1045
 
1047
1046
  // Record the elements tool load time after the sidepane has loaded.
1048
- Host.userMetrics.panelLoaded('elements', 'DevTools.Launch.Elements');
1047
+ UI.UIUserMetrics.UIUserMetrics.instance().panelLoaded('elements', 'DevTools.Launch.Elements');
1049
1048
 
1050
1049
  this.dispatchEventToListeners(Events.STYLES_UPDATE_COMPLETED, {hasMatchedStyles: false});
1051
1050
  }
@@ -217,10 +217,6 @@
217
217
  width: 100%;
218
218
  }
219
219
 
220
- .font-toolbar-hidden {
221
- visibility: hidden;
222
- }
223
-
224
220
  .sidebar-separator {
225
221
  background-color: var(--sys-color-surface2);
226
222
  padding: 0 5px;
@@ -262,10 +258,6 @@
262
258
 
263
259
  --toolbar-height: 16px;
264
260
  }
265
-
266
- &.shifted-toolbar {
267
- padding-right: 32px;
268
- }
269
261
  }
270
262
 
271
263
  .styles-pane:not(.is-editing-style)
@@ -13,7 +13,7 @@ import {type Bounds, Events, InspectedPagePlaceholder} from './InspectedPagePlac
13
13
 
14
14
  let appInstance: AdvancedApp;
15
15
 
16
- export class AdvancedApp implements Common.App.App {
16
+ export class AdvancedApp implements UI.App.App {
17
17
  private rootSplitWidget!: UI.SplitWidget.SplitWidget;
18
18
  private deviceModeView!: DeviceModeWrapper;
19
19
  private inspectedPagePlaceholder!: InspectedPagePlaceholder;
@@ -188,7 +188,7 @@ globalThis.Emulation.AdvancedApp = AdvancedApp;
188
188
 
189
189
  let advancedAppProviderInstance: AdvancedAppProvider;
190
190
 
191
- export class AdvancedAppProvider implements Common.AppProvider.AppProvider {
191
+ export class AdvancedAppProvider implements UI.AppProvider.AppProvider {
192
192
  static instance(opts: {
193
193
  forceNew: boolean|null,
194
194
  } = {forceNew: null}): AdvancedAppProvider {
@@ -200,7 +200,7 @@ export class AdvancedAppProvider implements Common.AppProvider.AppProvider {
200
200
  return advancedAppProviderInstance;
201
201
  }
202
202
 
203
- createApp(): Common.App.App {
203
+ createApp(): UI.App.App {
204
204
  return AdvancedApp.instance();
205
205
  }
206
206
  }