Skip to content

[Experiment] Support embedding DevTools in the sidebar #5396

@DanTup

Description

@DanTup

I thought there was an open issue for this but I can't find it, so opening this one.

There is work in-progress to test out embedding DevTools in sidebar panels instead of editors. It's currently blocked on microsoft/vscode#236494 because that causes us to "restore" bad URLs into the iframes when they load.

TODO:

  • Opening the sidebar before starting a debug session causes it to try to connect to the last session (because of restoring context... we want this to support "Reload WebViews" but probably don't want it to persist over sessions)
    This may be a VS Code issue -> WebView state unexpectedly persists across sessions without a WebviewPanelSerializer microsoft/vscode#236494
  • Performance feels much worse when resizing the sidebar compared to an editor view doesn't repro now
  • Sometimes Flutter throws an error and stops rendering wasm issue, not related to this
  • Decide what should show in the sidebar panels when there's no debug session (or after ending a debug session)
  • How to handle multiple debug sessions (we can have multiple editor windows, but not editor sidebars)
  • Use contexts to ensure side panels only show up for the sections set to sidebar - shown only on first use for now
  • Add unique icons to each view so if they're dragged out to their own section in the activity bar they have different icons
    • if you drag them all out, the remaining item in the original container still keeps the Flutter icon
  • Add a unique DevTools icon instead of using the Flutter one
  • After closing a debug session then re-launching, when it should be re-connected, it opens a standard embedded window
  • Support opening directly from the sidebar without having to use commands
  • Having all pages loaded in sidebar results in connection limit: Unable to open too many DevTools pages due to browser per-host connection limit being exhausted by SSE connections flutter/devtools#8298
    • Should we only support sidebar for some?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions