chrome-devtools-frontend 1.0.1618066 → 1.0.1621064

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 (54) hide show
  1. package/docs/checklist/README.md +8 -7
  2. package/eslint.config.mjs +7 -0
  3. package/front_end/core/sdk/NetworkManager.ts +23 -2
  4. package/front_end/core/sdk/ServerSentEventsProtocol.ts +1 -1
  5. package/front_end/entrypoints/greendev_floaty/FloatyEntrypoint.ts +119 -13
  6. package/front_end/generated/InspectorBackendCommands.ts +6 -6
  7. package/front_end/generated/SupportedCSSProperties.js +100 -100
  8. package/front_end/generated/protocol-mapping.d.ts +1 -9
  9. package/front_end/generated/protocol-proxy-api.d.ts +1 -9
  10. package/front_end/generated/protocol.ts +5 -0
  11. package/front_end/models/ai_assistance/agents/GreenDevAgent.ts +512 -0
  12. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +65 -85
  13. package/front_end/models/ai_assistance/agents/StylingAgent.ts +9 -16
  14. package/front_end/models/ai_assistance/ai_assistance.ts +2 -0
  15. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +21 -4
  16. package/front_end/models/bindings/SymbolizedError.ts +69 -2
  17. package/front_end/models/javascript_metadata/NativeFunctions.js +2 -2
  18. package/front_end/models/stack_trace/DetailedErrorStackParser.ts +11 -3
  19. package/front_end/models/stack_trace/ErrorStackParser.ts +18 -0
  20. package/front_end/panels/ai_assistance/components/ChatMessage.ts +84 -2
  21. package/front_end/panels/ai_assistance/components/WalkthroughUtils.ts +1 -1
  22. package/front_end/panels/ai_assistance/components/WalkthroughView.ts +9 -2
  23. package/front_end/panels/application/WebMCPView.ts +212 -89
  24. package/front_end/panels/application/webMCPView.css +260 -199
  25. package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +9 -5
  26. package/front_end/panels/changes/ChangesSidebar.ts +2 -2
  27. package/front_end/panels/changes/ChangesView.ts +4 -7
  28. package/front_end/panels/console/ConsoleViewMessage.ts +1 -19
  29. package/front_end/panels/coverage/CoverageView.ts +4 -5
  30. package/front_end/panels/elements/ElementsPanel.ts +9 -12
  31. package/front_end/panels/elements/StylePropertiesSection.ts +1 -1
  32. package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +19 -20
  33. package/front_end/panels/elements/components/ElementsBreadcrumbsUtils.ts +29 -29
  34. package/front_end/panels/elements/components/QueryContainer.ts +5 -6
  35. package/front_end/panels/elements/components/components.ts +0 -2
  36. package/front_end/panels/emulation/MediaQueryInspector.ts +4 -7
  37. package/front_end/panels/mobile_throttling/NetworkThrottlingSelector.ts +47 -66
  38. package/front_end/panels/network/RequestConditionsDrawer.ts +6 -4
  39. package/front_end/panels/performance_monitor/PerformanceMonitor.ts +6 -9
  40. package/front_end/panels/protocol_monitor/JSONEditor.ts +2 -2
  41. package/front_end/panels/search/SearchView.ts +4 -7
  42. package/front_end/panels/sources/DebuggerPausedMessage.ts +18 -22
  43. package/front_end/panels/sources/ThreadsSidebarPane.ts +2 -4
  44. package/front_end/panels/web_audio/WebAudioView.ts +5 -4
  45. package/front_end/third_party/chromium/README.chromium +1 -1
  46. package/front_end/ui/components/icon_button/iconButton.css +1 -0
  47. package/front_end/ui/components/lists/list.css +4 -0
  48. package/front_end/ui/legacy/ViewRegistration.ts +2 -2
  49. package/front_end/ui/legacy/Widget.ts +9 -2
  50. package/front_end/ui/legacy/components/utils/Linkifier.ts +32 -11
  51. package/front_end/ui/visual_logging/KnownContextValues.ts +17 -0
  52. package/package.json +1 -1
  53. package/front_end/Images/src/dots-circle.svg +0 -10
  54. package/front_end/panels/elements/components/Helper.ts +0 -35
@@ -254,8 +254,8 @@ export class JSONEditor extends Common.ObjectWrapper.eventMixin<EventTypes, type
254
254
  }
255
255
  }
256
256
 
257
- set commandToDisplay(command: string) {
258
- this.displayCommand(command, {});
257
+ set commandToDisplay(data: {command: string, parameters?: Record<string, unknown>}) {
258
+ this.displayCommand(data.command, data.parameters ?? {});
259
259
  }
260
260
 
261
261
  get targetId(): string|undefined {
@@ -134,7 +134,7 @@ export interface SearchViewOutput {
134
134
  collapseAllResults: () => void;
135
135
  }
136
136
 
137
- export type View = (input: SearchViewInput, output: SearchViewOutput, target: HTMLElement) => void;
137
+ export type View = (input: SearchViewInput, output: SearchViewOutput, target: HTMLElement|DocumentFragment) => void;
138
138
 
139
139
  export const DEFAULT_VIEW: View = (input, output, target) => {
140
140
  const {
@@ -262,11 +262,11 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
262
262
  </devtools-progress>` : ''}
263
263
  </div>
264
264
  <div class="search-message">${searchResultsMessage}</div>
265
- </div>`, target);
265
+ </div>`, target, {container: {attributes: {jslog: `${VisualLogging.panel('search').track({resize: true})}`}}});
266
266
  // clang-format on
267
267
  };
268
268
 
269
- export class SearchView extends UI.Widget.VBox {
269
+ export class SearchView extends UI.Widget.VBox<ShadowRoot> {
270
270
  readonly #view: View;
271
271
  #focusSearchInput = (): void => {};
272
272
  #showAllMatches = (): void => {};
@@ -295,10 +295,7 @@ export class SearchView extends UI.Widget.VBox {
295
295
  #searchResults: SearchResult[] = [];
296
296
 
297
297
  constructor(settingKey: string, view = DEFAULT_VIEW) {
298
- super({
299
- jslog: `${VisualLogging.panel('search').track({resize: true})}`,
300
- useShadowDom: true,
301
- });
298
+ super({useShadowDom: 'pure'});
302
299
  this.#view = view;
303
300
  this.setMinimumSize(0, 40);
304
301
 
@@ -153,43 +153,39 @@ function domBreakpointSubtext(data: DOMBreakpointData): Lit.LitTemplate {
153
153
  `;
154
154
  }
155
155
 
156
- const DEFAULT_VIEW = (input: ViewInput|null, _output: undefined, target: HTMLElement): void => {
157
- render(
158
- html`
156
+ const DEFAULT_VIEW = (input: ViewInput|null, _output: undefined, target: DocumentFragment): void => {
157
+ // clang-format off
158
+ render(html`
159
159
  <style>${debuggerPausedMessageStyles}</style>
160
- <div aria-live="polite" ?hidden=${!input}>${
161
- input ?
162
- html`
160
+ <div aria-live="polite" ?hidden=${!input}>${input ? html`
163
161
  <div class="paused-status ${input.errorLike ? 'error-reason' : ''}">
164
162
  <span>
165
163
  <div class="status-main">
166
164
  <devtools-icon name=${input.errorLike ? 'cross-circle-filled' : 'info'} class="medium"></devtools-icon>
167
165
  ${input.mainText}
168
166
  </div>
169
- ${
170
- input.subText || input.domBreakpointData ?
171
- html`
172
- <div class="status-sub monospace" title=${ifDefined(input.title ?? input.subText)}>${
173
- input.domBreakpointData ? domBreakpointSubtext(input.domBreakpointData) : input.subText}</div>
174
- ` :
175
- nothing}
167
+ ${input.subText || input.domBreakpointData ? html`
168
+ <div class="status-sub monospace" title=${ifDefined(input.title ?? input.subText)}>
169
+ ${input.domBreakpointData ? domBreakpointSubtext(input.domBreakpointData) : input.subText}
170
+ </div>` : nothing}
176
171
  </span>
177
- </div>` :
178
- nothing}
179
- </div>
180
- `,
181
- target);
172
+ </div>` : nothing}
173
+ </div>`, target, {
174
+ container: {
175
+ attributes: {jslog: `${VisualLogging.dialog('debugger-paused')}`},
176
+ classes: ['paused-message', 'flex-none']
177
+ }
178
+ });
179
+ // clang-format on
182
180
  };
183
181
 
184
182
  type View = typeof DEFAULT_VIEW;
185
183
 
186
- export class DebuggerPausedMessage extends UI.Widget.Widget {
184
+ export class DebuggerPausedMessage extends UI.Widget.Widget<ShadowRoot> {
187
185
  #viewInput: ViewInput|null = null;
188
186
  constructor(element?: HTMLElement, private readonly view: View = DEFAULT_VIEW) {
189
187
  super(element, {
190
- jslog: `${VisualLogging.dialog('debugger-paused')}`,
191
- classes: ['paused-message', 'flex-none'],
192
- useShadowDom: true,
188
+ useShadowDom: 'pure',
193
189
  });
194
190
  }
195
191
 
@@ -52,7 +52,7 @@ const DEFAULT_VIEW = (input: ViewInput, _output: undefined, target: HTMLElement)
52
52
  </button>
53
53
  `)}
54
54
  </div>
55
- `, target);
55
+ `, target, {container: {attributes: {jslog: `${VisualLogging.section('sources.threads')}`}}});
56
56
  };
57
57
  // clang-format on
58
58
 
@@ -65,9 +65,7 @@ export class ThreadsSidebarPane extends UI.Widget.VBox implements
65
65
  #view: View;
66
66
 
67
67
  constructor(element?: HTMLElement, view: View = DEFAULT_VIEW) {
68
- super(element, {
69
- jslog: `${VisualLogging.section('sources.threads')}`,
70
- });
68
+ super(element);
71
69
  this.#view = view;
72
70
 
73
71
  const currentTarget = UI.Context.Context.instance().flavor(SDK.Target.Target);
@@ -80,7 +80,7 @@ interface ViewInput {
80
80
  contextRealtimeData: Protocol.WebAudio.ContextRealtimeData|null;
81
81
  }
82
82
 
83
- type View = (input: ViewInput, output: object, target: HTMLElement) => void;
83
+ type View = (input: ViewInput, output: object, target: HTMLElement|DocumentFragment) => void;
84
84
 
85
85
  export const DEFAULT_VIEW: View = (input, _output, target) => {
86
86
  const {
@@ -169,11 +169,12 @@ export const DEFAULT_VIEW: View = (input, _output, target) => {
169
169
  (contextRealtimeData.renderCapacity * 100).toFixed(3)} %</span>
170
170
  </div>` : ''}
171
171
  </div>
172
- </div>`, target);
172
+ </div>`, target, {container: {attributes: {jslog: `${VisualLogging.panel('web-audio').track({resize: true})}`}}});
173
173
  // clang-format on
174
174
  };
175
175
 
176
- export class WebAudioView extends UI.Widget.VBox implements SDK.TargetManager.SDKModelObserver<WebAudioModel> {
176
+ export class WebAudioView extends UI.Widget.VBox<ShadowRoot> implements
177
+ SDK.TargetManager.SDKModelObserver<WebAudioModel> {
177
178
  private readonly knownContexts = new Set<string>();
178
179
  private readonly contextSelectorItems: UI.ListModel.ListModel<Protocol.WebAudio.BaseAudioContext>;
179
180
  private contextRealtimeData: Protocol.WebAudio.ContextRealtimeData|null = null;
@@ -182,7 +183,7 @@ export class WebAudioView extends UI.Widget.VBox implements SDK.TargetManager.SD
182
183
  private readonly pollRealtimeDataThrottler: Common.Throttler.Throttler;
183
184
 
184
185
  constructor(element?: HTMLElement, view = DEFAULT_VIEW) {
185
- super({jslog: `${VisualLogging.panel('web-audio').track({resize: true})}`, useShadowDom: true});
186
+ super({useShadowDom: 'pure'});
186
187
  this.view = view;
187
188
 
188
189
  this.contextSelectorItems = new UI.ListModel.ListModel();
@@ -1,7 +1,7 @@
1
1
  Name: Dependencies sourced from the upstream `chromium` repository
2
2
  URL: Internal
3
3
  Version: N/A
4
- Revision: 9b1af1c3bfa10271c6f92691e32659acea5f941c
4
+ Revision: 3e3e498dbe4d68709d4f6b2e2a834a7a85a17a83
5
5
  Update Mechanism: Manual (https://crbug.com/428069060)
6
6
  License: BSD-3-Clause
7
7
  License File: LICENSE
@@ -21,6 +21,7 @@
21
21
  font-size: inherit;
22
22
  font-family: inherit;
23
23
  background-color: inherit;
24
+ cursor: inherit;
24
25
  }
25
26
 
26
27
  .icon-button.with-click-handler {
@@ -13,6 +13,10 @@
13
13
  --override-background-list-item-color: var(--sys-color-cdt-base-container);
14
14
  }
15
15
 
16
+ :host(.square-corners) li {
17
+ border-radius: 0;
18
+ }
19
+
16
20
  :host([hidden]) {
17
21
  display: none;
18
22
  }
@@ -8,7 +8,7 @@ import * as Root from '../../core/root/root.js';
8
8
  import type * as Foundation from '../../foundation/foundation.js';
9
9
 
10
10
  import type {ViewLocationResolver} from './View.js';
11
- import type {Widget} from './Widget.js';
11
+ import type {AnyWidget} from './Widget.js';
12
12
 
13
13
  const UIStrings = {
14
14
  /**
@@ -140,7 +140,7 @@ export interface ViewRegistration {
140
140
  * });
141
141
  * ```
142
142
  */
143
- loadView: (universe: Foundation.Universe.Universe) => Promise<Widget>;
143
+ loadView: (universe: Foundation.Universe.Universe) => Promise<AnyWidget>;
144
144
  /**
145
145
  * Used to sort the views that appear in a shared location.
146
146
  */
@@ -527,6 +527,8 @@ export class Widget<ContentTypeT extends HTMLElement|DocumentFragment = HTMLElem
527
527
  }
528
528
  if (this.contentElement instanceof HTMLElement) {
529
529
  this.contentElement.classList.add('widget');
530
+ } else if (options?.useShadowDom === 'pure') {
531
+ this.element.classList.add('widget');
530
532
  }
531
533
  widgetMap.set(this.element, this);
532
534
  }
@@ -1216,6 +1218,8 @@ export class VBox<ContentTypeT extends HTMLElement|DocumentFragment = HTMLElemen
1216
1218
  super(elementOrOptions, options);
1217
1219
  if (this.contentElement instanceof HTMLElement) {
1218
1220
  this.contentElement.classList.add('vbox');
1221
+ } else {
1222
+ this.element.classList.add('vbox');
1219
1223
  }
1220
1224
  }
1221
1225
 
@@ -1239,7 +1243,7 @@ export class HBox<ContentTypeT extends HTMLElement|DocumentFragment = HTMLElemen
1239
1243
  *
1240
1244
  * @param options optional settings to configure the behavior.
1241
1245
  */
1242
- constructor(options?: WidgetOptions);
1246
+ constructor(options?: WidgetOptions<ContentTypeT>);
1243
1247
 
1244
1248
  /**
1245
1249
  * Constructs a new `HBox` with the given `options` and attached to the
@@ -1251,13 +1255,16 @@ export class HBox<ContentTypeT extends HTMLElement|DocumentFragment = HTMLElemen
1251
1255
  * @param element an (optional) `HTMLElement` to attach the `HBox` to.
1252
1256
  * @param options optional settings to configure the behavior.
1253
1257
  */
1254
- constructor(element?: HTMLElement, options?: WidgetOptions);
1258
+ constructor(element?: HTMLElement, options?: WidgetOptions<ContentTypeT>);
1255
1259
 
1256
1260
  constructor(elementOrOptions?: HTMLElement|WidgetOptions<ContentTypeT>, options?: WidgetOptions<ContentTypeT>) {
1257
1261
  // @ts-expect-error
1258
1262
  super(elementOrOptions, options);
1259
1263
  if (this.contentElement instanceof HTMLElement) {
1260
1264
  this.contentElement.classList.add('hbox');
1265
+ } else {
1266
+ this.element.classList.remove('vbox');
1267
+ this.element.classList.add('hbox');
1261
1268
  }
1262
1269
  }
1263
1270
 
@@ -347,11 +347,11 @@ export class Linkifier extends Common.ObjectWrapper.ObjectWrapper<EventTypes> im
347
347
  callFrame.url as Platform.DevToolsPath.UrlString, callFrame.lineNumber, linkifyOptions);
348
348
  }
349
349
 
350
- static linkifyStackTraceFrame(frame: StackTrace.StackTrace.Frame, options?: LinkifyOptions): HTMLElement {
350
+ static linkifyUILocation(uiLocation: Workspace.UISourceCode.UILocation, options?: LinkifyOptions): HTMLElement {
351
351
  const linkifyURLOptions = {
352
352
  ...options,
353
- lineNumber: frame.line,
354
- columnNumber: frame.column,
353
+ lineNumber: uiLocation.lineNumber,
354
+ columnNumber: uiLocation.columnNumber,
355
355
  showColumnNumber: Boolean(options?.showColumnNumber),
356
356
  className: options?.className,
357
357
  tabStop: options?.tabStop,
@@ -361,13 +361,10 @@ export class Linkifier extends Common.ObjectWrapper.ObjectWrapper<EventTypes> im
361
361
  omitOrigin: options?.omitOrigin,
362
362
  } satisfies LinkifyURLOptions;
363
363
  const {className = ''} = linkifyURLOptions;
364
- const fallbackAnchor = Linkifier.linkifyURL(frame.url as Platform.DevToolsPath.UrlString, linkifyURLOptions);
365
- if (!frame.uiSourceCode) {
366
- const isIgnoreListed = (options?.ignoreListManager ?? Workspace.IgnoreListManager.IgnoreListManager.instance())
367
- .isUserIgnoreListedURL(frame.url as Platform.DevToolsPath.UrlString);
368
- fallbackAnchor.classList.toggle('ignore-list-link', isIgnoreListed);
369
- return fallbackAnchor;
370
- }
364
+ const fallbackAnchor = Linkifier.linkifyURL(uiLocation.uiSourceCode.url(), linkifyURLOptions);
365
+ const isIgnoreListed = (options?.ignoreListManager ?? Workspace.IgnoreListManager.IgnoreListManager.instance())
366
+ .isUserIgnoreListedURL(uiLocation.uiSourceCode.url());
367
+ fallbackAnchor.classList.toggle('ignore-list-link', isIgnoreListed);
371
368
 
372
369
  const createLinkOptions: CreateLinkOptions = {
373
370
  tabStop: options?.tabStop,
@@ -384,12 +381,36 @@ export class Linkifier extends Common.ObjectWrapper.ObjectWrapper<EventTypes> im
384
381
  revealBreakpoint: options?.revealBreakpoint,
385
382
  };
386
383
 
387
- const uiLocation = frame.uiSourceCode.uiLocation(frame.line, frame.column) ?? null;
388
384
  Linkifier.updateAnchorFromUILocation(link, linkDisplayOptions, uiLocation, options?.ignoreListManager);
389
385
 
390
386
  return link;
391
387
  }
392
388
 
389
+ static linkifyStackTraceFrame(frame: StackTrace.StackTrace.Frame, options?: LinkifyOptions): HTMLElement {
390
+ const linkifyURLOptions = {
391
+ ...options,
392
+ lineNumber: frame.line,
393
+ columnNumber: frame.column,
394
+ showColumnNumber: Boolean(options?.showColumnNumber),
395
+ className: options?.className,
396
+ tabStop: options?.tabStop,
397
+ inlineFrameIndex: options?.inlineFrameIndex ?? 0,
398
+ userMetric: options?.userMetric,
399
+ jslogContext: options?.jslogContext || 'script-location',
400
+ omitOrigin: options?.omitOrigin,
401
+ } satisfies LinkifyURLOptions;
402
+ const fallbackAnchor = Linkifier.linkifyURL(frame.url as Platform.DevToolsPath.UrlString, linkifyURLOptions);
403
+ if (!frame.uiSourceCode) {
404
+ const isIgnoreListed = (options?.ignoreListManager ?? Workspace.IgnoreListManager.IgnoreListManager.instance())
405
+ .isUserIgnoreListedURL(frame.url as Platform.DevToolsPath.UrlString);
406
+ fallbackAnchor.classList.toggle('ignore-list-link', isIgnoreListed);
407
+ return fallbackAnchor;
408
+ }
409
+
410
+ const uiLocation = frame.uiSourceCode.uiLocation(frame.line, frame.column);
411
+ return Linkifier.linkifyUILocation(uiLocation, options);
412
+ }
413
+
393
414
  linkifyStackTraceTopFrame(target: SDK.Target.Target|null, stackTrace: Protocol.Runtime.StackTrace): HTMLElement {
394
415
  console.assert(stackTrace.callFrames.length > 0);
395
416
 
@@ -853,7 +853,13 @@ export const knownContextValues = new Set([
853
853
  'column-rule-edge-start-inset',
854
854
  'column-rule-edge-start-outset',
855
855
  'column-rule-inset',
856
+ 'column-rule-inset-cap',
857
+ 'column-rule-inset-cap-end',
858
+ 'column-rule-inset-cap-start',
856
859
  'column-rule-inset-end',
860
+ 'column-rule-inset-junction',
861
+ 'column-rule-inset-junction-end',
862
+ 'column-rule-inset-junction-start',
857
863
  'column-rule-inset-start',
858
864
  'column-rule-interior-end-inset',
859
865
  'column-rule-interior-end-outset',
@@ -3330,7 +3336,13 @@ export const knownContextValues = new Set([
3330
3336
  'row-rule-edge-start-inset',
3331
3337
  'row-rule-edge-start-outset',
3332
3338
  'row-rule-inset',
3339
+ 'row-rule-inset-cap',
3340
+ 'row-rule-inset-cap-end',
3341
+ 'row-rule-inset-cap-start',
3333
3342
  'row-rule-inset-end',
3343
+ 'row-rule-inset-junction',
3344
+ 'row-rule-inset-junction-end',
3345
+ 'row-rule-inset-junction-start',
3334
3346
  'row-rule-inset-start',
3335
3347
  'row-rule-interior-end-inset',
3336
3348
  'row-rule-interior-end-outset',
@@ -3354,7 +3366,9 @@ export const knownContextValues = new Set([
3354
3366
  'rule-color',
3355
3367
  'rule-edge-inset',
3356
3368
  'rule-inset',
3369
+ 'rule-inset-cap',
3357
3370
  'rule-inset-end',
3371
+ 'rule-inset-junction',
3358
3372
  'rule-inset-start',
3359
3373
  'rule-interior-inset',
3360
3374
  'rule-outset',
@@ -4368,13 +4382,16 @@ export const knownContextValues = new Set([
4368
4382
  'webgl-warning-fired',
4369
4383
  'webmcp.call-inputs',
4370
4384
  'webmcp.call-outputs',
4385
+ 'webmcp.canceled',
4371
4386
  'webmcp.completed',
4372
4387
  'webmcp.copy-tool-description',
4373
4388
  'webmcp.copy-tool-name',
4374
4389
  'webmcp.declarative',
4390
+ 'webmcp.edit-and-run',
4375
4391
  'webmcp.error',
4376
4392
  'webmcp.imperative',
4377
4393
  'webmcp.pending',
4394
+ 'webmcp.reveal-tool',
4378
4395
  'webmcp.status-types',
4379
4396
  'webmcp.tool-details',
4380
4397
  'webmcp.tool-types',
package/package.json CHANGED
@@ -104,5 +104,5 @@
104
104
  "flat-cache": "6.1.12"
105
105
  }
106
106
  },
107
- "version": "1.0.1618066"
107
+ "version": "1.0.1621064"
108
108
  }
@@ -1,10 +0,0 @@
1
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <g clip-path="url(#clip0_367_65863)">
3
- <path d="M5.2 8.875C5.44306 8.875 5.64722 8.79236 5.8125 8.62708C5.9875 8.45208 6.075 8.24306 6.075 8C6.075 7.75694 5.9875 7.55278 5.8125 7.3875C5.64722 7.2125 5.44306 7.125 5.2 7.125C4.95694 7.125 4.74792 7.2125 4.57292 7.3875C4.40764 7.55278 4.325 7.75694 4.325 8C4.325 8.24306 4.40764 8.45208 4.57292 8.62708C4.74792 8.79236 4.95694 8.875 5.2 8.875ZM8 8.875C8.24306 8.875 8.44722 8.79236 8.6125 8.62708C8.7875 8.45208 8.875 8.24306 8.875 8C8.875 7.75694 8.7875 7.55278 8.6125 7.3875C8.44722 7.2125 8.24306 7.125 8 7.125C7.75694 7.125 7.54792 7.2125 7.37292 7.3875C7.20764 7.55278 7.125 7.75694 7.125 8C7.125 8.24306 7.20764 8.45208 7.37292 8.62708C7.54792 8.79236 7.75694 8.875 8 8.875ZM10.8 8.875C11.0431 8.875 11.2472 8.79236 11.4125 8.62708C11.5875 8.45208 11.675 8.24306 11.675 8C11.675 7.75694 11.5875 7.55278 11.4125 7.3875C11.2472 7.2125 11.0431 7.125 10.8 7.125C10.5569 7.125 10.3479 7.2125 10.1729 7.3875C10.0076 7.55278 9.925 7.75694 9.925 8C9.925 8.24306 10.0076 8.45208 10.1729 8.62708C10.3479 8.79236 10.5569 8.875 10.8 8.875ZM8 13.6C7.23194 13.6 6.50764 13.4542 5.82708 13.1625C5.14653 12.8708 4.54861 12.4722 4.03333 11.9667C3.52778 11.4514 3.12917 10.8535 2.8375 10.1729C2.54583 9.49236 2.4 8.76806 2.4 8C2.4 7.22222 2.54583 6.49792 2.8375 5.82708C3.12917 5.14653 3.52778 4.55347 4.03333 4.04792C4.54861 3.53264 5.14653 3.12917 5.82708 2.8375C6.50764 2.54583 7.23194 2.4 8 2.4C8.77778 2.4 9.50208 2.54583 10.1729 2.8375C10.8535 3.12917 11.4465 3.53264 11.9521 4.04792C12.4674 4.55347 12.8708 5.14653 13.1625 5.82708C13.4542 6.49792 13.6 7.22222 13.6 8C13.6 8.76806 13.4542 9.49236 13.1625 10.1729C12.8708 10.8535 12.4674 11.4514 11.9521 11.9667C11.4465 12.4722 10.8535 12.8708 10.1729 13.1625C9.50208 13.4542 8.77778 13.6 8 13.6ZM8 12.55C9.26389 12.55 10.3382 12.1076 11.2229 11.2229C12.1076 10.3382 12.55 9.26389 12.55 8C12.55 6.73611 12.1076 5.66181 11.2229 4.77708C10.3382 3.89236 9.26389 3.45 8 3.45C6.73611 3.45 5.66181 3.89236 4.77708 4.77708C3.89236 5.66181 3.45 6.73611 3.45 8C3.45 9.26389 3.89236 10.3382 4.77708 11.2229C5.66181 12.1076 6.73611 12.55 8 12.55Z" fill="#474747"/>
4
- </g>
5
- <defs>
6
- <clipPath id="clip0_367_65863">
7
- <rect width="16" height="16" fill="white"/>
8
- </clipPath>
9
- </defs>
10
- </svg>
@@ -1,35 +0,0 @@
1
- // Copyright 2021 The Chromium Authors
2
- // Use of this source code is governed by a BSD-style license that can be
3
- // found in the LICENSE file.
4
-
5
- import * as SDK from '../../../core/sdk/sdk.js';
6
-
7
- export interface DOMNode {
8
- parentNode: DOMNode|null;
9
- id: number;
10
- nodeType: number;
11
- pseudoType?: string;
12
- shadowRootType: string|null;
13
- nodeName: string;
14
- nodeNameNicelyCased: string;
15
- legacyDomNode: SDK.DOMModel.DOMNode;
16
- highlightNode: (mode?: string) => void;
17
- clearHighlight: () => void;
18
- getAttribute: (attr: string) => string | undefined;
19
- }
20
-
21
- export const legacyNodeToElementsComponentsNode = (node: SDK.DOMModel.DOMNode): DOMNode => {
22
- return {
23
- parentNode: node.parentNode ? legacyNodeToElementsComponentsNode(node.parentNode) : null,
24
- id: (node.id as number),
25
- nodeType: node.nodeType(),
26
- pseudoType: node.pseudoType(),
27
- shadowRootType: node.shadowRootType(),
28
- nodeName: node.nodeName(),
29
- nodeNameNicelyCased: node.nodeNameInCorrectCase(),
30
- legacyDomNode: node,
31
- highlightNode: (mode?: string) => node.highlight(mode),
32
- clearHighlight: () => SDK.OverlayModel.OverlayModel.hideDOMNodeHighlight(),
33
- getAttribute: node.getAttribute.bind(node),
34
- };
35
- };