Implement new starter badge triggers [devtools/devtools-frontend : main]

0 views
Skip to first unread message

Natallia Harshunova (Gerrit)

unread,
Sep 23, 2025, 11:47:48 AM (2 days ago) Sep 23
to Ergün Erdoğmuş, devtools-rev...@chromium.org
Attention needed from Ergün Erdoğmuş

Natallia Harshunova voted Commit-Queue+1

Commit-Queue+1
Open in Gerrit

Related details

Attention is currently required from:
  • Ergün Erdoğmuş
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: devtools/devtools-frontend
Gerrit-Branch: main
Gerrit-Change-Id: Ieca40cc5705240d9d1a6c7dd6d6d7ff1e81f0df2
Gerrit-Change-Number: 6973510
Gerrit-PatchSet: 2
Gerrit-Owner: Natallia Harshunova <nhars...@chromium.org>
Gerrit-Reviewer: Ergün Erdoğmuş <erg...@chromium.org>
Gerrit-Reviewer: Natallia Harshunova <nhars...@chromium.org>
Gerrit-Attention: Ergün Erdoğmuş <erg...@chromium.org>
Gerrit-Comment-Date: Tue, 23 Sep 2025 15:47:44 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Ergün Erdoğmuş (Gerrit)

unread,
Sep 24, 2025, 4:46:17 AM (23 hours ago) Sep 24
to Natallia Harshunova, Devtools-frontend LUCI CQ, devtools-rev...@chromium.org
Attention needed from Natallia Harshunova

Ergün Erdoğmuş added 5 comments

File front_end/models/badges/BUILD.gn
Line 34, Patchset 4 (Latest): "../breakpoints/*",
Ergün Erdoğmuş . unresolved

After moving the recording of setting a breakpoint to `DebuggerPlugin`, we don't need this visibility change anymore. (and we don't need the BUILD.gn change in `models/breakpoints/BUILD.gn` as well)

See the comment: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6973510/comment/cd117db8_8ffe3bc8/

File front_end/models/badges/StarterBadge.ts
Line 26, Patchset 4 (Latest): BadgeAction.RECORDER_PANEL_START_CLICKED,
Ergün Erdoğmuş . unresolved

(Very nit): Let's unify the naming of these enums:

  • `BREAKPOINT_ADDED`
  • `CONSOLE_PROMPT_EXECUTED`
  • `PERFORMANCE_RECORDING_STARTED`
  • `NETWORK_SPEED_THROTTLED`
  • `RECORDER_RECORDING_STARTED`

WDYT?

File front_end/models/breakpoints/BreakpointManager.ts
Line 334, Patchset 4 (Latest): Badges.UserBadges.instance().recordAction(Badges.BadgeAction.ADD_BREAKPOINT);
Ergün Erdoğmuş . unresolved

Let's move this action recording to the `DebuggerPlugin.setBreakpoint` method. This aligns the recording with the explicit user action from the UI and maintains better separation of concerns.

We want to record this action when the user explicitly sets a breakpoint and `setBreakpoint` of the model is used in different places as well (e.g. restoring breakpoints after refresh)

File front_end/panels/mobile_throttling/NetworkThrottlingSelector.ts
Line 96, Patchset 4 (Latest): Badges.UserBadges.instance().recordAction(Badges.BadgeAction.THROTTLING_NETWORK_SPEED);
Ergün Erdoğmuş . unresolved

Let's not record this action on the "View" layer but record it in the `onSelect` method definition in `performUpdate`.

The reason is, we want "DEFAULT_VIEW" to only concern itself with the rendering. All kinds of business logic (e.g. what happens in the system after something is clicked) is handled outside of the view.

File front_end/ui/visual_logging/KnownContextValues.ts
Line 856, Patchset 4 (Latest): 'console-prompt-executed',
Ergün Erdoğmuş . unresolved

We don't need to add these values to here since they are not part of the VE logging system.

Open in Gerrit

Related details

Attention is currently required from:
  • Natallia Harshunova
Submit Requirements:
    • requirement satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: devtools/devtools-frontend
    Gerrit-Branch: main
    Gerrit-Change-Id: Ieca40cc5705240d9d1a6c7dd6d6d7ff1e81f0df2
    Gerrit-Change-Number: 6973510
    Gerrit-PatchSet: 4
    Gerrit-Owner: Natallia Harshunova <nhars...@chromium.org>
    Gerrit-Reviewer: Ergün Erdoğmuş <erg...@chromium.org>
    Gerrit-Reviewer: Natallia Harshunova <nhars...@chromium.org>
    Gerrit-CC: Devtools-frontend LUCI CQ <devtools-fro...@luci-project-accounts.iam.gserviceaccount.com>
    Gerrit-Attention: Natallia Harshunova <nhars...@chromium.org>
    Gerrit-Comment-Date: Wed, 24 Sep 2025 08:46:13 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Natallia Harshunova (Gerrit)

    unread,
    Sep 24, 2025, 6:18:19 AM (21 hours ago) Sep 24
    to Devtools-frontend LUCI CQ, Ergün Erdoğmuş, devtools-rev...@chromium.org
    Attention needed from Ergün Erdoğmuş

    Natallia Harshunova voted and added 5 comments

    Votes added by Natallia Harshunova

    Commit-Queue+1

    5 comments

    File front_end/models/badges/BUILD.gn
    Line 34, Patchset 4: "../breakpoints/*",
    Ergün Erdoğmuş . resolved

    After moving the recording of setting a breakpoint to `DebuggerPlugin`, we don't need this visibility change anymore. (and we don't need the BUILD.gn change in `models/breakpoints/BUILD.gn` as well)

    See the comment: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6973510/comment/cd117db8_8ffe3bc8/

    Natallia Harshunova

    Done

    File front_end/models/badges/StarterBadge.ts
    Line 26, Patchset 4: BadgeAction.RECORDER_PANEL_START_CLICKED,
    Ergün Erdoğmuş . resolved

    (Very nit): Let's unify the naming of these enums:

    • `BREAKPOINT_ADDED`
    • `CONSOLE_PROMPT_EXECUTED`
    • `PERFORMANCE_RECORDING_STARTED`
    • `NETWORK_SPEED_THROTTLED`
    • `RECORDER_RECORDING_STARTED`

    WDYT?

    Natallia Harshunova

    Done

    File front_end/models/breakpoints/BreakpointManager.ts
    Line 334, Patchset 4: Badges.UserBadges.instance().recordAction(Badges.BadgeAction.ADD_BREAKPOINT);
    Ergün Erdoğmuş . resolved

    Let's move this action recording to the `DebuggerPlugin.setBreakpoint` method. This aligns the recording with the explicit user action from the UI and maintains better separation of concerns.

    We want to record this action when the user explicitly sets a breakpoint and `setBreakpoint` of the model is used in different places as well (e.g. restoring breakpoints after refresh)

    Natallia Harshunova

    Done

    File front_end/panels/mobile_throttling/NetworkThrottlingSelector.ts
    Line 96, Patchset 4: Badges.UserBadges.instance().recordAction(Badges.BadgeAction.THROTTLING_NETWORK_SPEED);
    Ergün Erdoğmuş . resolved

    Let's not record this action on the "View" layer but record it in the `onSelect` method definition in `performUpdate`.

    The reason is, we want "DEFAULT_VIEW" to only concern itself with the rendering. All kinds of business logic (e.g. what happens in the system after something is clicked) is handled outside of the view.

    Natallia Harshunova

    Done

    File front_end/ui/visual_logging/KnownContextValues.ts
    Line 856, Patchset 4: 'console-prompt-executed',
    Ergün Erdoğmuş . resolved

    We don't need to add these values to here since they are not part of the VE logging system.

    Natallia Harshunova

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Ergün Erdoğmuş
    Submit Requirements:
      • requirement satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: devtools/devtools-frontend
      Gerrit-Branch: main
      Gerrit-Change-Id: Ieca40cc5705240d9d1a6c7dd6d6d7ff1e81f0df2
      Gerrit-Change-Number: 6973510
      Gerrit-PatchSet: 6
      Gerrit-Owner: Natallia Harshunova <nhars...@chromium.org>
      Gerrit-Reviewer: Ergün Erdoğmuş <erg...@chromium.org>
      Gerrit-Reviewer: Natallia Harshunova <nhars...@chromium.org>
      Gerrit-CC: Devtools-frontend LUCI CQ <devtools-fro...@luci-project-accounts.iam.gserviceaccount.com>
      Gerrit-Attention: Ergün Erdoğmuş <erg...@chromium.org>
      Gerrit-Comment-Date: Wed, 24 Sep 2025 10:18:15 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      Comment-In-Reply-To: Ergün Erdoğmuş <erg...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Ergün Erdoğmuş (Gerrit)

      unread,
      Sep 24, 2025, 7:37:42 AM (20 hours ago) Sep 24
      to Natallia Harshunova, Devtools-frontend LUCI CQ, devtools-rev...@chromium.org
      Attention needed from Natallia Harshunova

      Ergün Erdoğmuş voted and added 2 comments

      Votes added by Ergün Erdoğmuş

      Code-Review+1

      2 comments

      Patchset-level comments
      File-level comment, Patchset 6 (Latest):
      Ergün Erdoğmuş . resolved

      LGTM % 1 comment

      File front_end/panels/console/ConsolePrompt.ts
      Line 495, Patchset 6 (Latest): Badges.UserBadges.instance().recordAction(Badges.BadgeAction.CONSOLE_PROMPT_EXECUTED);
      Ergün Erdoğmuş . unresolved

      Let's move this right below ` Host.userMetrics.actionTaken(Host.UserMetrics.Action.CommandEvaluatedInConsolePanel);` WDYT?

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Natallia Harshunova
      Submit Requirements:
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: devtools/devtools-frontend
      Gerrit-Branch: main
      Gerrit-Change-Id: Ieca40cc5705240d9d1a6c7dd6d6d7ff1e81f0df2
      Gerrit-Change-Number: 6973510
      Gerrit-PatchSet: 6
      Gerrit-Owner: Natallia Harshunova <nhars...@chromium.org>
      Gerrit-Reviewer: Ergün Erdoğmuş <erg...@chromium.org>
      Gerrit-Reviewer: Natallia Harshunova <nhars...@chromium.org>
      Gerrit-CC: Devtools-frontend LUCI CQ <devtools-fro...@luci-project-accounts.iam.gserviceaccount.com>
      Gerrit-Attention: Natallia Harshunova <nhars...@chromium.org>
      Gerrit-Comment-Date: Wed, 24 Sep 2025 11:37:35 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Natallia Harshunova (Gerrit)

      unread,
      Sep 24, 2025, 8:22:20 AM (19 hours ago) Sep 24
      to Ergün Erdoğmuş, Devtools-frontend LUCI CQ, devtools-rev...@chromium.org

      Natallia Harshunova voted and added 1 comment

      Votes added by Natallia Harshunova

      Commit-Queue+1

      1 comment

      File front_end/panels/console/ConsolePrompt.ts
      Line 495, Patchset 6: Badges.UserBadges.instance().recordAction(Badges.BadgeAction.CONSOLE_PROMPT_EXECUTED);
      Ergün Erdoğmuş . resolved

      Let's move this right below ` Host.userMetrics.actionTaken(Host.UserMetrics.Action.CommandEvaluatedInConsolePanel);` WDYT?

      Natallia Harshunova

      Done

      Open in Gerrit

      Related details

      Attention set is empty
      Submit Requirements:
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: devtools/devtools-frontend
        Gerrit-Branch: main
        Gerrit-Change-Id: Ieca40cc5705240d9d1a6c7dd6d6d7ff1e81f0df2
        Gerrit-Change-Number: 6973510
        Gerrit-PatchSet: 7
        Gerrit-Owner: Natallia Harshunova <nhars...@chromium.org>
        Gerrit-Reviewer: Ergün Erdoğmuş <erg...@chromium.org>
        Gerrit-Reviewer: Natallia Harshunova <nhars...@chromium.org>
        Gerrit-CC: Devtools-frontend LUCI CQ <devtools-fro...@luci-project-accounts.iam.gserviceaccount.com>
        Gerrit-Comment-Date: Wed, 24 Sep 2025 12:22:15 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        Comment-In-Reply-To: Ergün Erdoğmuş <erg...@chromium.org>
        satisfied_requirement
        open
        diffy

        Natallia Harshunova (Gerrit)

        unread,
        Sep 24, 2025, 8:55:03 AM (19 hours ago) Sep 24
        to Ergün Erdoğmuş, Devtools-frontend LUCI CQ, devtools-rev...@chromium.org

        Natallia Harshunova voted Commit-Queue+2

        Commit-Queue+2
        Open in Gerrit

        Related details

        Attention set is empty
        Submit Requirements:
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: devtools/devtools-frontend
        Gerrit-Branch: main
        Gerrit-Change-Id: Ieca40cc5705240d9d1a6c7dd6d6d7ff1e81f0df2
        Gerrit-Change-Number: 6973510
        Gerrit-PatchSet: 7
        Gerrit-Owner: Natallia Harshunova <nhars...@chromium.org>
        Gerrit-Reviewer: Ergün Erdoğmuş <erg...@chromium.org>
        Gerrit-Reviewer: Natallia Harshunova <nhars...@chromium.org>
        Gerrit-CC: Devtools-frontend LUCI CQ <devtools-fro...@luci-project-accounts.iam.gserviceaccount.com>
        Gerrit-Comment-Date: Wed, 24 Sep 2025 12:54:58 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        open
        diffy

        Devtools-frontend LUCI CQ (Gerrit)

        unread,
        Sep 24, 2025, 9:11:13 AM (18 hours ago) Sep 24
        to Natallia Harshunova, Ergün Erdoğmuş, devtools-rev...@chromium.org

        Devtools-frontend LUCI CQ submitted the change with unreviewed changes

        Unreviewed changes

        6 is the latest approved patch-set.
        The change was submitted with unreviewed changes in the following files:

        ```
        The name of the file: front_end/panels/console/ConsolePrompt.ts
        Insertions: 1, Deletions: 1.

        @@ -475,6 +475,7 @@
        void this.evaluateCommandInConsole(executionContext, message, expression, useCommandLineAPI);
        if (ConsolePanel.instance().isShowing()) {
        Host.userMetrics.actionTaken(Host.UserMetrics.Action.CommandEvaluatedInConsolePanel);
        + Badges.UserBadges.instance().recordAction(Badges.BadgeAction.CONSOLE_PROMPT_EXECUTED);
        }
        }
        }
        @@ -492,7 +493,6 @@
        await executionContext.target()
        .model(SDK.ConsoleModel.ConsoleModel)
        ?.evaluateCommandInConsole(executionContext, message, expression, useCommandLineAPI);
        - Badges.UserBadges.instance().recordAction(Badges.BadgeAction.CONSOLE_PROMPT_EXECUTED);
        }

        private async substituteNames(expression: string, mapping: Map<string, string|null>): Promise<string> {
        ```

        Change information

        Commit message:
        Implement new starter badge triggers

        This CL implements five new starter badge triggers designed to guide
        new users through key DevTools features.

        The new triggers are for:
        * Setting a breakpoint in the Sources panel.
        * Executing a command in the Console.
        * Starting a recording in the Performance panel.
        * Throttling network speed in the Network panel.
        * Starting a new recording in the Recorder panel.
        Bug: 446641652
        Change-Id: Ieca40cc5705240d9d1a6c7dd6d6d7ff1e81f0df2
        Commit-Queue: Natallia Harshunova <nhars...@chromium.org>
        Reviewed-by: Ergün Erdoğmuş <erg...@chromium.org>
        Files:
        • M front_end/models/badges/Badge.ts
        • M front_end/models/badges/StarterBadge.ts
        • M front_end/panels/console/ConsolePrompt.ts
        • M front_end/panels/mobile_throttling/BUILD.gn
        • M front_end/panels/mobile_throttling/NetworkThrottlingSelector.ts
        • M front_end/panels/recorder/components/CreateRecordingView.ts
        • M front_end/panels/sources/DebuggerPlugin.ts
        • M front_end/panels/timeline/TimelinePanel.ts
        Change size: S
        Delta: 8 files changed, 24 insertions(+), 1 deletion(-)
        Branch: refs/heads/main
        Submit Requirements:
        • requirement satisfiedCode-Review: +1 by Ergün Erdoğmuş
        Open in Gerrit
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: merged
        Gerrit-Project: devtools/devtools-frontend
        Gerrit-Branch: main
        Gerrit-Change-Id: Ieca40cc5705240d9d1a6c7dd6d6d7ff1e81f0df2
        Gerrit-Change-Number: 6973510
        Gerrit-PatchSet: 8
        Gerrit-Owner: Natallia Harshunova <nhars...@chromium.org>
        Gerrit-Reviewer: Devtools-frontend LUCI CQ <devtools-fro...@luci-project-accounts.iam.gserviceaccount.com>
        open
        diffy
        satisfied_requirement
        Reply all
        Reply to author
        Forward
        0 new messages