angular/devtools/projects/ng-devtools/src/lib
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
..
application-environment refactor(devtools): remove git sha stamping from devtools build (#55694) 2024-05-06 16:02:36 -07:00
application-operations Revert "Revert "refactor(devtools): implement multiframe support in devtools page (#53934)" (#54629)" (#54805) 2024-03-26 09:19:06 -07:00
devtools-tabs refactor(devtools): Use Chrome DevTools Performance extension API (#55805) 2024-07-31 16:04:52 +00:00
vendor 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.component.html fix(devtools): allow DevTools to fail gracefully for unsupported versions of Angular. (#55233) 2024-04-22 11:25:20 -07:00
devtools.component.scss feat(devtools): implement zoom and pan in injector graph visualizer (#52489) 2023-11-03 17:37:55 -07:00
devtools.component.ts fix(devtools): allow DevTools to fail gracefully for unsupported versions of Angular. (#55233) 2024-04-22 11:25:20 -07:00
devtools_spec.ts fix(devtools): allow DevTools to fail gracefully for unsupported versions of Angular. (#55233) 2024-04-22 11:25:20 -07:00
frame_manager.ts Revert "Revert "refactor(devtools): implement multiframe support in devtools page (#53934)" (#54629)" (#54805) 2024-03-26 09:19:06 -07:00
frame_manager_spec.ts Revert "Revert "refactor(devtools): implement multiframe support in devtools page (#53934)" (#54629)" (#54805) 2024-03-26 09:19:06 -07:00
theme-service.ts refactor(devtools): migrate devtools to prettier formatting (#53945) 2024-01-19 19:09:54 +01:00