diff --git a/front_end/core/host/InspectorFrontendHostAPI.ts b/front_end/core/host/InspectorFrontendHostAPI.ts index 83493b721d..a9d96b65f3 100644 --- a/front_end/core/host/InspectorFrontendHostAPI.ts +++ b/front_end/core/host/InspectorFrontendHostAPI.ts @@ -369,4 +369,9 @@ export enum EnumeratedHistogram { Language = 'DevTools.Language', ConsoleShowsCorsErrors = 'DevTools.ConsoleShowsCorsErrors', SyncSetting = 'DevTools.SyncSetting', + RecordingEdited = 'DevTools.RecordingEdited', + RecordingExported = 'DevTools.RecordingExported', + RecordingReplayFinished = 'DevTools.RecordingReplayFinished', + RecordingReplayStarted = 'DevTools.RecordingReplayStarted', + RecordingToggled = 'DevTools.RecordingToggled', } diff --git a/front_end/core/host/UserMetrics.ts b/front_end/core/host/UserMetrics.ts index b03da9f2d3..7343504635 100644 --- a/front_end/core/host/UserMetrics.ts +++ b/front_end/core/host/UserMetrics.ts @@ -261,6 +261,31 @@ export class UserMetrics { InspectorFrontendHostInstance.recordEnumeratedHistogram(EnumeratedHistogram.SyncSetting, settingValue, size); }); } + + recordingToggled(value: RecordingToggled): void { + const size = Object.keys(RecordingToggled).length + 1; + InspectorFrontendHostInstance.recordEnumeratedHistogram(EnumeratedHistogram.RecordingToggled, value, size); + } + + recordingReplayFinished(value: RecordingReplayFinished): void { + const size = Object.keys(RecordingReplayFinished).length + 1; + InspectorFrontendHostInstance.recordEnumeratedHistogram(EnumeratedHistogram.RecordingReplayFinished, value, size); + } + + recordingReplayStarted(value: RecordingReplayStarted): void { + const size = Object.keys(RecordingReplayStarted).length + 1; + InspectorFrontendHostInstance.recordEnumeratedHistogram(EnumeratedHistogram.RecordingReplayStarted, value, size); + } + + recordingEdited(value: RecordingEdited): void { + const size = Object.keys(RecordingEdited).length + 1; + InspectorFrontendHostInstance.recordEnumeratedHistogram(EnumeratedHistogram.RecordingEdited, value, size); + } + + recordingExported(value: RecordingExported): void { + const size = Object.keys(RecordingExported).length + 1; + InspectorFrontendHostInstance.recordEnumeratedHistogram(EnumeratedHistogram.RecordingExported, value, size); + } } // Codes below are used to collect UMA histograms in the Chromium port. @@ -827,3 +852,48 @@ export enum SyncSetting { DevToolsSyncSettingDisabled = 3, DevToolsSyncSettingEnabled = 4, } + +// TODO(crbug.com/1167717): Make this a const enum again +// eslint-disable-next-line rulesdir/const_enum +export enum RecordingToggled { + RecordingStarted = 1, + RecordingFinished = 2, +} + +// TODO(crbug.com/1167717): Make this a const enum again +// eslint-disable-next-line rulesdir/const_enum +export enum RecordingReplayFinished { + Success = 1, + TimeoutErrorSelectors = 2, + TimeoutErrorTarget = 3, + OtherError = 4, +} + +// TODO(crbug.com/1167717): Make this a const enum again +// eslint-disable-next-line rulesdir/const_enum +export enum RecordingReplayStarted { + ReplayOnly = 1, + ReplayWithPerformanceTracing = 2, +} + +// TODO(crbug.com/1167717): Make this a const enum again +// eslint-disable-next-line rulesdir/const_enum +export enum RecordingEdited { + SelectorPickerUsed = 1, + StepAdded = 2, + StepRemoved = 3, + SelectorAdded = 4, + SelectorRemoved = 5, + SelectorPartAdded = 6, + SelectorPartEdited = 7, + SelectorPartRemoved = 8, + TypeChanged = 9, + OtherEditing = 10, +} + +// TODO(crbug.com/1167717): Make this a const enum again +// eslint-disable-next-line rulesdir/const_enum +export enum RecordingExported { + ToPuppeteer = 1, + ToJSON = 2, +} diff --git a/front_end/devtools_compatibility.js b/front_end/devtools_compatibility.js index ba470f15d5..34c2ee4d99 100644 --- a/front_end/devtools_compatibility.js +++ b/front_end/devtools_compatibility.js @@ -396,6 +396,11 @@ LinearMemoryInspectorTarget: 'DevTools.LinearMemoryInspector.Target', Language: 'DevTools.Language', ConsoleShowsCorsErrors: 'DevTools.ConsoleShowsCorsErrors', + RecordingEdited: 'DevTools.RecordingEdited', + RecordingExported: 'DevTools.RecordingExported', + RecordingReplayFinished: 'DevTools.RecordingReplayFinished', + RecordingReplayStarted: 'DevTools.RecordingReplayStarted', + RecordingToggled: 'DevTools.RecordingToggled', }; /**