IDG: Add first elements of discoverability & extensibility API - #4904
IDG: Add first elements of discoverability & extensibility API#4904lukechurch wants to merge 1 commit into
Conversation
|
|
||
| @override | ||
| void dispose() { | ||
| widget.selectedTabNotifier?.removeListener(_onChangeTab); |
There was a problem hiding this comment.
use auto dispose mixin here and for the other listeners in this class.
| import '../../../devtools_app.dart'; | ||
| import '../../extensibility/discoverable.dart'; | ||
|
|
||
| class DiscoverablePerformancePage extends DiscoverablePage { |
There was a problem hiding this comment.
is there a reason this can't be part of the PerformanceScreen class itself?
| static String get id => MemoryScreen.id; | ||
|
|
||
| // Events | ||
| static const memorySnapshotTaken = 'mem-snapshot-done'; |
There was a problem hiding this comment.
could be nice to have a single enum of all the events so it is easier to track them across all screens.
The enum could have comments about what page they are for.
|
Thanks for taking a look @jacob314. I'd like to add some context about this PR after talking with @lukechurch and @kenzieschmoll separately. This PR is intended to demonstrate how we might add the capability of highlighting specific UI elements of DevTools from a program decoupled from DevTools. The first use case is likely to provide some sort of onboarding tour of features for perf debugging tabs. Luke plans on sending a few follow-up PRs to demonstrate how this capability can be used in interactive tutorials that can drive DevTools. These parts are more experimental and will require updated docs and case studies for perf debugging tools to have value. For now, the PRs will serve the purpose of a technical feasibility evaluation, so we can have a better idea about whether this is something we want to productionize when the tutorial content is ready. |
|
I believe this PR has been replaced by #5469. I'll close it for now. |
For discussion @kenzieschmoll @InMatrix
This PR is contains the first part of the infrastructure for supporting Interactive Debugging Guides, per the high level design documentation we talked about earlier.
This follows an approach of constructing a facade over the existing pages with elements that are safe for an extensibility system to use. It's more work on the page authors to maintain than a dynamic search scheme would have been, but allows for static analysis to determine breaking changes between pages and guides, without creating excessive coupling between the pages and all potential guides. It might also serve as the beginning of a wider extensibility story.
If you're comfortable with this facade approach this would then be followed by PRs containing:
Thanks in advance for taking a look.