{"action":"created","issue":{"url":"https://api.github.com/repos/devtools-html/debugger.html/issues/6317","repository_url":"https://api.github.com/repos/devtools-html/debugger.html","labels_url":"https://api.github.com/repos/devtools-html/debugger.html/issues/6317/labels{/name}","comments_url":"https://api.github.com/repos/devtools-html/debugger.html/issues/6317/comments","events_url":"https://api.github.com/repos/devtools-html/debugger.html/issues/6317/events","html_url":"https://github.com/devtools-html/debugger.html/pull/6317","id":323440056,"number":6317,"title":"[WIP][Tree] Virtualize tree","user":{"login":"AnshulMalik","id":7821757,"avatar_url":"https://avatars1.githubusercontent.com/u/7821757?v=4","gravatar_id":"","url":"https://api.github.com/users/AnshulMalik","html_url":"https://github.com/AnshulMalik","followers_url":"https://api.github.com/users/AnshulMalik/followers","following_url":"https://api.github.com/users/AnshulMalik/following{/other_user}","gists_url":"https://api.github.com/users/AnshulMalik/gists{/gist_id}","starred_url":"https://api.github.com/users/AnshulMalik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AnshulMalik/subscriptions","organizations_url":"https://api.github.com/users/AnshulMalik/orgs","repos_url":"https://api.github.com/users/AnshulMalik/repos","events_url":"https://api.github.com/users/AnshulMalik/events{/privacy}","received_events_url":"https://api.github.com/users/AnshulMalik/received_events","type":"User","site_admin":false},"labels":[{"id":731965110,"url":"https://api.github.com/repos/devtools-html/debugger.html/labels/pr-wip","name":"pr-wip","color":"d4c5f9","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2018-05-16T01:42:48Z","updated_at":"2018-05-18T15:47:59Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/devtools-html/debugger.html/pulls/6317","html_url":"https://github.com/devtools-html/debugger.html/pull/6317","diff_url":"https://github.com/devtools-html/debugger.html/pull/6317.diff","patch_url":"https://github.com/devtools-html/debugger.html/pull/6317.patch"},"body":"Fixes Issue: #4168\r\n\r\n### Summary of Changes\r\n\r\n* Virtualize the 🌲 component so that we can handle huge trees\r\n\r\nCurrently, the source tree works really nice and fast. But there are some side effects, the scopes panel has some issues, when we expand, it doesn't expand the first time, but expands second time. I think that's because the properties are fetched asynchronously and the re-render doesn't take place when the results arrive."},"comment":{"url":"https://api.github.com/repos/devtools-html/debugger.html/issues/comments/390249682","html_url":"https://github.com/devtools-html/debugger.html/pull/6317#issuecomment-390249682","issue_url":"https://api.github.com/repos/devtools-html/debugger.html/issues/6317","id":390249682,"user":{"login":"jasonLaster","id":254562,"avatar_url":"https://avatars1.githubusercontent.com/u/254562?v=4","gravatar_id":"","url":"https://api.github.com/users/jasonLaster","html_url":"https://github.com/jasonLaster","followers_url":"https://api.github.com/users/jasonLaster/followers","following_url":"https://api.github.com/users/jasonLaster/following{/other_user}","gists_url":"https://api.github.com/users/jasonLaster/gists{/gist_id}","starred_url":"https://api.github.com/users/jasonLaster/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasonLaster/subscriptions","organizations_url":"https://api.github.com/users/jasonLaster/orgs","repos_url":"https://api.github.com/users/jasonLaster/repos","events_url":"https://api.github.com/users/jasonLaster/events{/privacy}","received_events_url":"https://api.github.com/users/jasonLaster/received_events","type":"User","site_admin":false},"created_at":"2018-05-18T15:47:59Z","updated_at":"2018-05-18T15:47:59Z","author_association":"CONTRIBUTOR","body":"### Editor/componentWillReceiveProps\n\nWe try and resize the gutter and bp every time, that is kind of crazy. We should only do this, if the source has changed or some other indicator:\n`resizeBreakpointGutter`, `resizeToggleButton`\n\n![Screen Shot 2018-05-18 at 11.39.16 AM.png](https://shipusercontent.com/de4277e883953cf97ea46ddeebeb323e/Screen%20Shot%202018-05-18%20at%2011.39.16%20AM.png)\n\n### Editor/componentWillUpdate\n\ncan we prevent doing costly work here?\n\n    this.setText(nextProps);\n    this.setSize(nextProps);\n    this.scrollToLocation(nextProps);\n\n![Screen Shot 2018-05-18 at 11.39.29 AM.png](https://shipusercontent.com/9e7eb8f4b2ad38499e9bc9ee2bd93cf2/Screen%20Shot%202018-05-18%20at%2011.39.29%20AM.png) \n\n### Editor/setupEditor\n\n4 seconds, can we speed this up?\n\n![Screen Shot 2018-05-18 at 11.39.37 AM.png](https://shipusercontent.com/c297fc98a26ff0e942a37e20750ff067/Screen%20Shot%202018-05-18%20at%2011.39.37%20AM.png)\n\n### SourcesTree/renderItem\n\nIt's by far the slowest part of the tree, and renderItem is disproportionately spending time in getIcon, which is URL.parse heavy...\n\n[video](http://recordit.co/s02VZpD7Yb)\n\n![Screen Shot 2018-05-18 at 11.40.31 AM.png](https://shipusercontent.com/7b257c3ae8bcbd7a18cacffda7711a09/Screen%20Shot%202018-05-18%20at%2011.40.31%20AM.png)\n"}}
{"actor":{"display_login":"jasonLaster"}}