Skip to content

Support openDevTools over sidebar API without a debug session ID #5147

Closed

Description

@DanTup

We can prompt for a debug session in VS Code if one isn't supplied.

Activity

  1. added
    is enhancementAn enhancement or improvement that should be listed in release notes but is not a bug fix.
    in devtoolsRelates to integration with Dart/Flutter DevTools
    on Jun 17, 2024
  2. added this to the v3.92.0 milestone on Jun 17, 2024
  3. DanTup commented on Jun 18, 2024

    @DanTup
    MemberAuthor

    Turns out we already support this. The types did not suggest so (which was fixed in 04dbe4e) but the code was all good (since in TS, debugSessionId as string doesn't do anything, and allows the null/undefined through!).

    Just needs some testing from DevTools.

  4. DanTup commented on Jun 18, 2024

    @DanTup
    MemberAuthor

    I tested this by forcing a null debug session ID in DevTools sidebar:

    image

    Then launched two debug sessions and tried to open Inspector from the DevTools sidebar. It prompted for a debug session as expected:

    image

    This is because it goes through the usual code path for launching DevTools pages and that checks whether the target page requires a debug session and if one wasn't provided will prompt.

    @kenzieschmoll the DevTools API classes already allow for null here too, so this is implementable today. If you pull the DevTools buttons up to the top level and pass null here, it'll do what we want.

  5. DanTup commented on Jun 18, 2024

    @DanTup
    MemberAuthor

    Actually, that's not the full story... The check for whether we need require a debug session / VM Service looks like this:

    const page = devToolsPages.find((p) => p.id === pageId);
    const requiresVmService = page && !page.isStaticTool;

    So if we don't recognise the page, we'll assume a session is not required. This will be problematic for extensions (which Dart-Code doesn't know about).

    So we need an API change to allow DevTools to dictate whether we prompt for a session or if one is not necessary (because it's a static tool). I'll look at adding something to support this distinction.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    in devtoolsRelates to integration with Dart/Flutter DevToolsis enhancementAn enhancement or improvement that should be listed in release notes but is not a bug fix.

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions