Giter Club home page Giter Club logo

angular-devtools's People

Contributors

aleksanderbodurri avatar amirrustam avatar daandesmedt avatar kamikopi avatar ladraum avatar markwhitfeld avatar mgechev avatar renovate-bot avatar renovate[bot] avatar sumitarora avatar twerske avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

angular-devtools's Issues

Show bar chart for time spent per component

In the individual profile frames, together with the flamegraph and treemap views, we can show a bar chart view, where we order the components by time spent.

For example:

[###### 15ms #####] NgForOf
[### 10ms ###] AppComponent
[## 5ms ##] BarComponent

Format the profiler details

Screen Shot 2020-02-20 at 6 17 18 PM

The format of the information in the right sidebar could definitely be improved. I'd suggest waiting for mocks first, but we can brainstorm on what's the best way to visualize it. Maybe a pie chart?

Don't fail when there's no global ng object

Currently the chrome extension fails when there's no global ng object. We should check if it is available before trying to access it.

For non-Angular apps we should output a message saying the app is not using the Angular framework.

For Angular apps using old version of the framework we should be explicit that we only support Ivy with v9+.

For v9 apps running in production we should warn that we currently support only apps running in dev mode. Notice in this case that the app can be running either VE or Ivy. I don't see a good reason to be specific and distinguish between the two.

Visualize the captured change detection cycles in a bar chart

Instead of using a slider, show the captured change detection cycles in a bar chart. Each bar should have width relative to its width. If we've spent 1ms in the first change detection cycle and 20ms in the second one, we need to show the first bar 1/20th of the second one.

Initialization of non-angular apps

As discussed in #127 there was an else case in initChangeDetection() that informed the UI of the error state of the application. This was removed in #111 because it was causing errors in some app initializations.

I'm opening this issue so we can discuss alternate solutions.

@mgechev
@sumitarora

Implement Extension popup

  • Similar to Augury look at the website and showing if it's Angular app or not
  • Also check implementation of React Devtools

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

File: renovate.json
Error type: The renovate configuration file contains some invalid settings
Message: packageRules: You have included an unsupported manager in a package rule. Your list: yarn. Supported managers are: (ansible, ansible-galaxy, bazel, buildkite, bundler, cargo, cdnurl, circleci, cocoapods, composer, deps-edn, docker-compose, dockerfile, droneci, git-submodules, github-actions, gitlabci, gitlabci-include, gomod, gradle, gradle-wrapper, helm-requirements, helm-values, helmfile, homebrew, html, kubernetes, kustomize, leiningen, maven, meteor, mix, npm, nuget, nvm, pip_requirements, pip_setup, pipenv, poetry, pub, regex, ruby-version, sbt, swift, terraform, travis).

Dependency Dashboard

This issue provides visibility into Renovate updates and their statuses. Learn more

Pending Approval

These branches will be created by Renovate only once you click their checkbox below.

  • build(deps): update dependency typescript to ~4.5.0

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.


  • Check this box to trigger a request for Renovate to run again on this repository

Memory leak when closing and reopening chrome devtools

How to recreate:

  1. Open chrome dev tools
  2. Open Angular dev tools tab
  3. Inspect extension frame to view extension console
  4. Click the refresh button on the top left of the Angular dev tools
  5. Note how many messages the extension frame console logs
  6. Close chrome dev tools
  7. Open chrome dev tools again without refreshing the page
  8. Repeat steps 2-5
  9. Note that the number of messages logged increases every time you repeat steps 6-8

Use flame graph in the timeline and the aggregated views

Currently, our chart is a bit confusing. DevTools does not properly visualize the component hierarchy, since we don't show the nested child components right below the parent but instead, they take the entire space.

A better way to show the graph is to use a flame chart similar to this one.

Component explorer breaks in apps with many components

In large component trees (not sure what's the pattern yet), the component explorer shows components that no longer exist in the tree.

In such cases, we get runtime errors when we try to access the props of such components or we move mouse' cursor over them.

Dark mode

We can hold this off for when our designer completes the mocks.

Angular elements visualization in profiler

Currently, we visualize the individual elements as nodes which are siblings of the root component of the app. It makes sense logically, but practically it might not be ideal.

Screen Shot 2020-03-09 at 2 55 39 PM

Two potential options for profiler.

  1. Show different views - aggregated view, like the one we have today, and other views per element

  2. Find the exact position of the element in the component tree and color it differently

  3. Hybrid option

  4. makes most sense, but there will be an overhead, finding where in the component tree the element resides.

For now, I'll go ahead and implement the hybrid option.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.