Commit graph

167 commits

Author SHA1 Message Date
AleksanderBodurri
9efd86e4f1 build(devtools): migrate ng-devtools-backend to bazel
Allows the ng-devtools-backend to be built with bazel. Allows ng-devtools-backend to be used as a dependency in other bazel build rules.
2021-11-10 12:30:54 -05:00
mgechev
ff78c66ae9 fix(devtools): handle ngFor and ngIf contexts in the profiler
Currently, we skip the time spent in evaluation of embedded view
templates because the passed context is either an NgIf or an NgForOf.

This change generalizes the implementation to work with views embedded
into a component.
2021-11-09 10:04:12 -08:00
mgechev
a5c26b6910 refactor(devtools): use local declaration of the change detection strategy enum 2021-10-18 16:24:42 -07:00
mgechev
b85d48c7d2 refactor(devtools): use safe operation to update the overlay 2021-10-18 16:24:42 -07:00
Minko Gechev
dc345956ce fix(devtools): show properly dynamically inserted content with DOM APIs (rangle/angular-devtools#828)
Fix rangle/angular-devtools#791

Build the render tree starting from the root node of the application.
This fix is applicable only for v12+ apps that are using the latest
debugging APIs.
2021-05-27 22:54:52 -07:00
Mark Whitfeld
5bf180afb8 fix(devtools): skip node if there is no associated TViewData (rangle/angular-devtools#804)
* fix(backend): skip node if there is no associated TViewData

The code was assuming that the TViewData item at the same index as the node
in LView would contain a data entry. This value can be `null` (which is the
case in our app), which causes a catastrophic failure in the dev tool. By
checking for null, the node is skipped because it cannot determine the
associated component or directive and the dev tool does not die.

fixes issue rangle/angular-devtools#801

* chore: style tweak - add early return to avoid nesting
2021-05-26 11:17:48 -07:00
mgechev
f8ea26cd92 style(devtools): add call signatures 2021-05-23 11:52:31 -07:00
mgechev
e6bec2430a fix(devtools): update the prod mode detection to also consider VE apps
Fix rangle/angular-devtools#798
2021-05-23 11:00:11 -07:00
markwhitfeld
d60bdfc207 fix(devtools): don't access service prop unnecessarily
The code was requesting index 0 of each item in the LView before checking
if it is an array. This causes issues with services that only allow calls to
properties that are defined on the service (backed by a strict ES6 proxy).
A check if the type is Array first corrects this issue.

fixes issue rangle/angular-devtools#802
2021-05-23 10:59:48 -07:00
AleksanderBodurri
ded6796efb fix(devtools): prevent directive forest hooks from being initiated in production applications 2021-05-20 21:18:45 -07:00
mgechev
f8bd3fccd7 fix(devtools): preserve proper nesting in flattened node lists
Rather than naively filter the flattened list, preserve the nesting by
filtering the original tree.
2021-05-11 08:38:18 -07:00
Minko Gechev
fab8d018b4 refactor(devtools): better naming and removal of log statement (rangle/angular-devtools#753) 2021-05-10 17:29:16 -04:00
mgechev
a7f6562158 fix(devtools): get all the property names including getters
This PR intentionally ignores `Symbol`s because their serialization and deserialization will include extra complexity.

The changes also improve the typings in the continuation function that's passed during serialization.
2021-05-04 17:29:59 -07:00
mgechev
ee0c245b44 fix(devtools): proper dev mode detection when app compiled with closure 2021-05-04 17:21:49 -07:00
AleksanderBodurri
e85d65d26a fix(devtools): disable router tree tab
Previously the router parser uses private APIs to create the visualization for the router tree tab. Now the router parser always returns an empty router tree, effectively disabling the router tree tab until the necessary framework APIs are developed.
2021-05-03 15:47:47 -07:00
mgechev
967bd3cf8e feat(devtools): improve output formatting 2021-04-29 10:25:01 -07:00
mgechev
ff45fbd075 feat(devtools): implement output profiling 2021-04-29 10:25:01 -07:00
mgechev
8a0861cfb7 refactor(devtools): move the profiler subscription to the native profiler 2021-04-29 10:25:01 -07:00
mgechev
42a6a775f7 refactor(devtools): move different profiler implementations to separate files 2021-04-29 10:25:01 -07:00
AleksanderBodurri
e24b476624 fix(devtools): pass in root element ng context as an LView instead of as a context object 2021-04-23 09:33:55 -07:00
AleksanderBodurri
534809cf85 feat(devtools): implement profiler with new framework APIs 2021-04-21 11:30:20 -07:00
mgechev
2e8fe67864 fix(devtools): change the isIvy detection 2021-04-19 17:26:20 -07:00
mgechev
ba31d1f784 refactor(devtools): use framework debugging APIs to extract metadata 2021-04-19 17:26:20 -07:00
mgechev
ee8b53bed5 refactor(devtools): use framework debugging APIs to extract render tree 2021-04-19 17:26:20 -07:00
mgechev
a3fed3bc94 refactor(devtools): implement view extraction strategies 2021-04-19 17:26:20 -07:00
AleksanderBodurri
73dff6f002 feat(devtools): disable devtools for production applications 2021-03-03 15:23:39 -08:00
Sumit Arora
0c10ddb98c refactor(devtools): adding router-tree tests and reverting configuration 2021-03-01 15:10:35 -08:00
Sumit Arora
f28dae22ec feat(devtools): adding router tree 2021-03-01 15:10:35 -08:00
AleksanderBodurri
ca0910e59c perf(devtools): prevent directive forest from building twice every time a node is selected in the directive explorer 2020-11-20 16:30:23 +02:00
AleksanderBodurri
1a00837b0c perf(devtools): prevent highlighter from rebuilding the directive forest every time a node is hovered over in the directive forest 2020-11-20 16:30:23 +02:00
mgechev
1613d6274a style(devtools): fix linting errors 2020-10-06 02:20:39 +03:00
mgechev
26f8808f4b refactor(devtools): remove MutationObserver and rename observer to execution hooks 2020-10-06 02:20:39 +03:00
mgechev
ffb46bdc3c fix(devtools): lview parsing when trying to get data from an option
Fix rangle/angular-devtools#513
2020-10-06 01:13:02 +03:00
mgechev
7c0d6c06e4 fix(devtools): enable the profiler even without zone available 2020-08-27 19:20:12 +03:00
mgechev
199745fd6c fix(devtools): handle lifecycle hooks of only components & directives 2020-08-27 12:50:36 +03:00
mgechev
b7c003f76a refactor(devtools): remove unused default value 2020-08-27 12:50:36 +03:00
Emma Twersky
21eb190f74 feat(devtools): move highlighter placement - no more overlap (rangle/angular-devtools#451) 2020-08-19 00:52:13 +03:00
mgechev
42ecb7a0d5 fix(devtools): do not attempt to initialize devtools if not ivy 2020-05-20 15:51:30 -07:00
mgechev
5c5345fdd4 fix(devtools): remove forgotten markers causing slowdown 2020-05-11 15:40:33 -07:00
mgechev
5c0031d944 fix(devtools): broken virtual scroll layout on resize
Fix rangle/angular-devtools#342
2020-05-11 14:31:34 -07:00
AleksanderBodurri
dd71a52466 feat(devtools): Implement basic configuration UI and use it to toggle Timing API 2020-05-09 18:15:48 -07:00
mgechev
6422b60568 fix(devtools): preserve the expansion status of moved items 2020-05-07 16:25:36 -07:00
mgechev
4fc8a075c0 fix(devtools): initialization and popup logic
- Rename the popups and introduce a new one - supported version but no ivy
- Change the initialization logic to reflect the latest profiling updates
2020-05-04 18:33:17 -04:00
mgechev
c17b5fdc3e refactor(devtools): temporarily disable timingg API 2020-05-04 18:33:17 -04:00
mgechev
288ecfd994 fix(devtools): consider change detection completed after a microtask 2020-05-04 18:33:17 -04:00
mgechev
be6ffb4f23 refactor(devtools): use single change detection tracker 2020-05-04 18:33:17 -04:00
mgechev
ccee9302a0 refactor(devtools): observer logic so that we can have a single instance
We currently have a single instance of the directive forest observer. It's shared between the identity tracker and the capturer.
2020-05-04 18:33:17 -04:00
mgechev
2eb4771ea6 refactor(devtools): use different hook mechanism 2020-05-04 18:33:17 -04:00
mgechev
df5857ddc2 feat(devtools): introduce timing API support 2020-05-04 18:33:17 -04:00
AleksanderBodurri
8d319dd486 feat(devtools): make devtools fail elegantly for view engine apps 2020-05-04 10:33:23 -07:00