angular/devtools/projects/ng-devtools/src/lib/devtools-tabs
Andres Olivares d26a91fddc refactor(devtools): Use Chrome DevTools Performance extension API (#55805)
This change is a proof of concept of how the new Chrome DevTools
Performance extension API (https://bit.ly/rpp-e11y) can be used to
surface Angular runtime data directly in the Chrome DevTools Performance
panel.

Specifically, it implements the following changes:

1. Use the profiling status notification API to toggle the Timing API:
The notification API is implemented under the
chrome.devtools.performance extension namespace and consits of two
events: ProfilingStarted and ProfilingStopped, dispatched when the
Performance panel has started and stopped recording, respectively. This
API is used to enable the Timings API when the recording has started in
the Performance panel and disable it when recording has stopped.

2. Use the User Timings `detail` field format specification of the
Performance extension API
(https://developer.mozilla.org/en-US/docs/Web/API/Performance_API/User_timing)
to inject data collected by the Angular Profiler into the
Performance panel timeline. Angular Profiler uses several hooks to
measure framework tasks like change detection. With this change, this
measurements are visible in the same context as the runtime data
collected by the browser in the Performance Panel timeline.

Note: to enable the user timings to be collected in the first place, one
needs to open the Angular DevTools panel so that the related artifacts
are loaded in the page. This shortcoming can be fixed in a follow up so
that the extra step isn't necessary.

PR Close #55805
2024-07-31 16:04:52 +00:00
..
dependency-injection refactor(devtools): use signal apis in injection and router tree (#57047) 2024-07-30 16:42:14 +00:00
diffing refactor(devtools): migrate devtools to prettier formatting (#53945) 2024-01-19 19:09:54 +01:00
directive-explorer refactor(devtools): use signal apis in injection and router tree (#57047) 2024-07-30 16:42:14 +00:00
injector-tree refactor(devtools): use signal apis in injection and router tree (#57047) 2024-07-30 16:42:14 +00:00
profiler fix(devtools): issue where backendReady race condition causes Angular not detected error (#54805) 2024-03-26 09:19:06 -07:00
router-tree refactor(devtools): use signal apis in injection and router tree (#57047) 2024-07-30 16:42:14 +00:00
tab-update refactor(devtools): migrate to standalone (#53998) 2024-01-23 09:53:24 +01:00
BUILD.bazel Revert "Revert "refactor(devtools): implement multiframe support in devtools page (#53934)" (#54629)" (#54805) 2024-03-26 09:19:06 -07:00
devtools-tabs.component.html refactor(devtools): Use Chrome DevTools Performance extension API (#55805) 2024-07-31 16:04:52 +00:00
devtools-tabs.component.scss fix(devtools): allow DevTools to fail gracefully for unsupported versions of Angular. (#55233) 2024-04-22 11:25:20 -07:00
devtools-tabs.component.ts refactor(devtools): Use Chrome DevTools Performance extension API (#55805) 2024-07-31 16:04:52 +00:00
devtools-tabs.spec.ts Revert "Revert "refactor(devtools): implement multiframe support in devtools page (#53934)" (#54629)" (#54805) 2024-03-26 09:19:06 -07:00