New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 847599 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jul 20
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Revamp supersize UI

Project Member Reported by estevenson@chromium.org, May 29 2018

Issue description

The existing ui: https://agrieve.github.io/chrome/supersize-monochrome-apr-4-2018/html_report/index.html has worked fairly well but we'd like make it easier to navigate.

One option is to use a tree view (like https://en.wikipedia.org/wiki/Tree_view#/media/File:Tree_view_example.png). Works well for file/symbol hierarchy and everyone knows how to use it! It also will work well for handling negative changes, and can be ordered to show the most important items at the top.

Some features we want:
* Should also support supersize diffs, which the current view does not.
* Rewrite the node generation logic in js instead of Python and create nodes that are more representative of actual symbols - this should make adding more filtering features easier.
* Would be nice if filter options changed the url so that we can easily share direct links to filtered views

There's a whole bunch of libraries available for creating tree views but nothing specifically jumps out at me as the one to use. Creating our own polymer component is another option for this.
 

Comment 1 by wnwen@chromium.org, May 30 2018

Horray! Happy to help with code reviews and design questions alongside Eric.

Comment 2 by wnwen@chromium.org, May 30 2018

Cc: agrieve@chromium.org
If supersize diffs can be supported as a first-class citizen, it will likely become the primary way this will be used.

For example: android-binary-size trybot failed build, and provides a nice interactive html link right in the failed step to view the diffs (as opposed to the current text which is fine for small diffs but unmanageable for large ones due to lack of collapsing).
Thanks Peter!

Re: trybot link - agreed this would be ideal!

Comment 4 by tigero@google.com, Jun 11 2018

https://github.com/vpusher/paper-tree seems to be a good Polymer component for our needs. TreeView with optional actions for each node & minimal styles.
Project Member

Comment 5 by bugdroid1@chromium.org, Jun 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3b181ae28cb015aba8f01796c903d538ed7082fc

commit 3b181ae28cb015aba8f01796c903d538ed7082fc
Author: Tiger Oakes <tigero@google.com>
Date: Wed Jun 27 14:34:12 2018

Added new redesign for supersize HTML report under flag

supersize html_report (in //tools/binary_size) is being redesigned to use a
tree view to make it easier to navigate. Tree views are more familiar to users
and open up additional features we plan to add, such as rendering size diffs by
showing negative values. Symbols and files in the tree are organized by size,
with larger items on top.

You can preview an example report at:
https://notwoods.github.io/chrome-supersize-reports/

Alternatively, compile your own report by running:
```
tools/binary_size/supersize html_report chrome.size --tree-view-ui --report-dir size-report -v
xdg-open size-report/index.html
```

Design Doc: go/supersize-tree-view-ui

Bug:  847599 
Change-Id: I78add67bbc759903b1717585a9463dfd08dacceb
Reviewed-on: https://chromium-review.googlesource.com/1113848
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: Eric Stevenson <estevenson@chromium.org>
Reviewed-by: agrieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570762}
[modify] https://crrev.com/3b181ae28cb015aba8f01796c903d538ed7082fc/tools/binary_size/libsupersize/html_report.py
[add] https://crrev.com/3b181ae28cb015aba8f01796c903d538ed7082fc/tools/binary_size/libsupersize/template_tree_view/index.html
[add] https://crrev.com/3b181ae28cb015aba8f01796c903d538ed7082fc/tools/binary_size/libsupersize/template_tree_view/state.js
[add] https://crrev.com/3b181ae28cb015aba8f01796c903d538ed7082fc/tools/binary_size/libsupersize/template_tree_view/tree-worker.js
[add] https://crrev.com/3b181ae28cb015aba8f01796c903d538ed7082fc/tools/binary_size/libsupersize/template_tree_view/ui.js

Project Member

Comment 6 by bugdroid1@chromium.org, Jun 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f74e694634d92902fed699aa641bb2cc623ae65f

commit f74e694634d92902fed699aa641bb2cc623ae65f
Author: Tiger Oakes <tigero@google.com>
Date: Thu Jun 28 17:50:03 2018

Added diff mode to supersize ui

Created new flag, --diff-with, which will diff two .size files and display their
relative sizes instead of the absolute sizes in a single .size file.

Preview at:
https://notwoods.github.io/chrome-supersize-reports/monochrome-diff-2018-06-27/

Reports can be compiled by running:
```
tools/binary_size/supersize html_report after.size --diff-with before.size --tree-view-ui --report-dir diff-report
xdg-open diff-report/index.html
```

Bug:  847599 
Change-Id: I860ce6cd70c7261d3053d6a259f0208d74f0b35e
Reviewed-on: https://chromium-review.googlesource.com/1117758
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: agrieve <agrieve@chromium.org>
Reviewed-by: Eric Stevenson <estevenson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571194}
[modify] https://crrev.com/f74e694634d92902fed699aa641bb2cc623ae65f/tools/binary_size/libsupersize/html_report.py
[modify] https://crrev.com/f74e694634d92902fed699aa641bb2cc623ae65f/tools/binary_size/libsupersize/template_tree_view/index.html
[modify] https://crrev.com/f74e694634d92902fed699aa641bb2cc623ae65f/tools/binary_size/libsupersize/template_tree_view/tree-worker.js
[modify] https://crrev.com/f74e694634d92902fed699aa641bb2cc623ae65f/tools/binary_size/libsupersize/template_tree_view/ui.js

Project Member

Comment 7 by bugdroid1@chromium.org, Jun 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c4710a9392b1a537c3d5f3f0cae66401b574035e

commit c4710a9392b1a537c3d5f3f0cae66401b574035e
Author: Tiger Oakes <tigero@google.com>
Date: Thu Jun 28 21:01:22 2018

Added method_count option to supersize UI

This mode ports the ability to show Dex method counts rather than binary size
from the old UI. The mode previously required recompiling with a flag using the
supersize command, but the new UI supports it as client side toggle.

Bug:  847599 
Change-Id: I613975cf20e45b30a1017ec0d8f6aee287c134e6
Reviewed-on: https://chromium-review.googlesource.com/1117598
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: agrieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571254}
[modify] https://crrev.com/c4710a9392b1a537c3d5f3f0cae66401b574035e/tools/binary_size/libsupersize/html_report.py
[modify] https://crrev.com/c4710a9392b1a537c3d5f3f0cae66401b574035e/tools/binary_size/libsupersize/template_tree_view/index.html
[add] https://crrev.com/c4710a9392b1a537c3d5f3f0cae66401b574035e/tools/binary_size/libsupersize/template_tree_view/options.css
[modify] https://crrev.com/c4710a9392b1a537c3d5f3f0cae66401b574035e/tools/binary_size/libsupersize/template_tree_view/state.js
[modify] https://crrev.com/c4710a9392b1a537c3d5f3f0cae66401b574035e/tools/binary_size/libsupersize/template_tree_view/tree-worker.js
[modify] https://crrev.com/c4710a9392b1a537c3d5f3f0cae66401b574035e/tools/binary_size/libsupersize/template_tree_view/ui.js

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/de1e7d8d98836919eb571b1744679f58f19de4dd

commit de1e7d8d98836919eb571b1744679f58f19de4dd
Author: Tiger Oakes <tigero@google.com>
Date: Thu Jun 28 21:28:25 2018

Increased density of tree items

Also added background that displays on hover, and tweaked the sidebar so its
transparency effect does not show the scrim.

https://notwoods.github.io/chrome-supersize-reports/monochrome-2018-06-28/

Bug:  847599 
Change-Id: I7c9b404cf4b6a468c297a4b147b41d47e4998f7a
Reviewed-on: https://chromium-review.googlesource.com/1119108
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: Eric Stevenson <estevenson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571267}
[modify] https://crrev.com/de1e7d8d98836919eb571b1744679f58f19de4dd/tools/binary_size/libsupersize/template_tree_view/index.html
[modify] https://crrev.com/de1e7d8d98836919eb571b1744679f58f19de4dd/tools/binary_size/libsupersize/template_tree_view/options.css

Project Member

Comment 9 by bugdroid1@chromium.org, Jun 29 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4fdf023188059ddeea83336e2a90ac8a01959063

commit 4fdf023188059ddeea83336e2a90ac8a01959063
Author: Tiger Oakes <tigero@google.com>
Date: Fri Jun 29 19:16:40 2018

Added word break hints & removed source_paths

Zero-width spaces  (https://en.wikipedia.org/wiki/Zero-width_space) have been
added to improve usage of supersize on small screens. They hint at where line
breaks should be placed when the screen width is too small for the entire text
to be shown on one line.

These characters are added after ":" (for C symbol names), "#" (for Java
symbol names), and "/" (for paths in symbol names or compressed nodes).

Before: https://screenshot.googleplex.com/3cmsuPO0A97.png
After: https://screenshot.googleplex.com/4Sfsj1RrGRW.png

Additionally, as source_paths of files are always unique, I removed the
source_paths IndexedSet and store the paths inside the symbol object in the
JSON data.

Finally, the byte representation in JSON has been truncated 2 digits after
the decimal point, which is the max depth used by the UI. If a float is a
whole number, it is written as an int instead.
(214.0000003 -> 214)
(2435.454353 -> 2435.45)
(12.0 -> 12)

Bug:  847599 
Change-Id: Ifc388f19fe0c5402c0093af0d6c1d30bea20bb5e
Reviewed-on: https://chromium-review.googlesource.com/1120736
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: Eric Stevenson <estevenson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571583}
[modify] https://crrev.com/4fdf023188059ddeea83336e2a90ac8a01959063/tools/binary_size/libsupersize/html_report.py
[modify] https://crrev.com/4fdf023188059ddeea83336e2a90ac8a01959063/tools/binary_size/libsupersize/template_tree_view/tree-worker.js

Project Member

Comment 10 by bugdroid1@chromium.org, Jul 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9df7b32dd3a809e917e8afb9fe15ab1c94f00b57

commit 9df7b32dd3a809e917e8afb9fe15ab1c94f00b57
Author: Tiger Oakes <tigero@google.com>
Date: Wed Jul 04 13:36:17 2018

Added keyboard navigation to supersize

Allows users to navigate the tree view using the keyboard. The navigation
pattern follows the aria guide:
https://www.w3.org/TR/wai-aria-practices-1.1/examples/treeview/treeview-2/treeview-2a.html

- Pressing enter/space will expand the tree node.
- Pressing down navigates to the below tree node, up navigates to the above one.
- Pressing right will open the tree node, or go to its first child.
- Pressing left will close the tree node, or go to its parent.
- Pressing home goes to the root node, end goes to the last node on screen.
- Pressing a printable character (A-z, $, etc) will go to the node that starts
  with that character.

https://notwoods.github.io/chrome-supersize-reports/monochrome-2018-06-28/

Bug:  847599 
Change-Id: I421909090ffff8f99f7ea1e851c4417cb8b26b57
Reviewed-on: https://chromium-review.googlesource.com/1119119
Reviewed-by: Eric Stevenson <estevenson@chromium.org>
Reviewed-by: agrieve <agrieve@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#572551}
[modify] https://crrev.com/9df7b32dd3a809e917e8afb9fe15ab1c94f00b57/tools/binary_size/libsupersize/template_tree_view/index.html
[modify] https://crrev.com/9df7b32dd3a809e917e8afb9fe15ab1c94f00b57/tools/binary_size/libsupersize/template_tree_view/state.js
[modify] https://crrev.com/9df7b32dd3a809e917e8afb9fe15ab1c94f00b57/tools/binary_size/libsupersize/template_tree_view/ui.js

Project Member

Comment 11 by bugdroid1@chromium.org, Jul 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ba94cbfe04a62f2e1b58fadce82cf2a57dea3cef

commit ba94cbfe04a62f2e1b58fadce82cf2a57dea3cef
Author: Tiger Oakes <tigero@google.com>
Date: Wed Jul 04 15:33:19 2018

Changed Update button to refresh tree without page refresh

Makes your browser history cleaner by replacing the current query string with
Javascript rather than making a new request with the form. Updates the UI inline
rather than reloading the page.

Additionally fixed the select element so it renders properly on Mac.

Bug:  847599 
Change-Id: I709cb71b184f271fdcfb7561cc56f9e1d29d059a
Reviewed-on: https://chromium-review.googlesource.com/1125284
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: agrieve <agrieve@chromium.org>
Reviewed-by: Eric Stevenson <estevenson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572579}
[modify] https://crrev.com/ba94cbfe04a62f2e1b58fadce82cf2a57dea3cef/tools/binary_size/libsupersize/template_tree_view/index.html
[modify] https://crrev.com/ba94cbfe04a62f2e1b58fadce82cf2a57dea3cef/tools/binary_size/libsupersize/template_tree_view/options.css
[modify] https://crrev.com/ba94cbfe04a62f2e1b58fadce82cf2a57dea3cef/tools/binary_size/libsupersize/template_tree_view/state.js
[modify] https://crrev.com/ba94cbfe04a62f2e1b58fadce82cf2a57dea3cef/tools/binary_size/libsupersize/template_tree_view/ui.js

Project Member

Comment 12 by bugdroid1@chromium.org, Jul 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a883d88186e534dc062708548b82e8549b94cae1

commit a883d88186e534dc062708548b82e8549b94cae1
Author: Tiger Oakes <tigero@google.com>
Date: Wed Jul 04 16:00:23 2018

Added group by component mode

V3 of the supersize UI design adds alternate groupings using component.
The tree treats each component as a folder seperated by ">" signs. For example,
if a symbol belongs to Internal>Android, the tree view would include an Internal
node containing an Android node, which would contain the symbol.

To reduce noise, symbols are still grouped by directory within the component
groups.

https://notwoods.github.io/chrome-supersize-reports/monochrome-2018-07-04/?group_by=component

Bug:  847599 
Change-Id: Ifc9cb2c58f3937fe849f8004360021d5f9143512
Reviewed-on: https://chromium-review.googlesource.com/1125264
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: agrieve <agrieve@chromium.org>
Reviewed-by: Eric Stevenson <estevenson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572593}
[modify] https://crrev.com/a883d88186e534dc062708548b82e8549b94cae1/tools/binary_size/libsupersize/html_report.py
[modify] https://crrev.com/a883d88186e534dc062708548b82e8549b94cae1/tools/binary_size/libsupersize/template_tree_view/index.html
[modify] https://crrev.com/a883d88186e534dc062708548b82e8549b94cae1/tools/binary_size/libsupersize/template_tree_view/options.css
[modify] https://crrev.com/a883d88186e534dc062708548b82e8549b94cae1/tools/binary_size/libsupersize/template_tree_view/state.js
[modify] https://crrev.com/a883d88186e534dc062708548b82e8549b94cae1/tools/binary_size/libsupersize/template_tree_view/tree-worker.js
[modify] https://crrev.com/a883d88186e534dc062708548b82e8549b94cae1/tools/binary_size/libsupersize/template_tree_view/ui.js

Project Member

Comment 13 by bugdroid1@chromium.org, Jul 5

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c92e44c00324be13288005dea74f3118979fcfd1

commit c92e44c00324be13288005dea74f3118979fcfd1
Author: Tiger Oakes <tigero@google.com>
Date: Thu Jul 05 18:34:58 2018

Added keyboard shortcut to supersize to expand all closed sibling nodes

Added the ability to press "*" (asterisk) when focused on a node in order to
expand all closed sibling nodes that are at the same level as the focused node.

This is a keyboard shortcut from the aria treeview guide I didn't implement
previously. Added as a poweruser feature to expand all nodes.
https://www.w3.org/TR/wai-aria-practices-1.1/examples/treeview/treeview-2/treeview-2a.html

Bug:  847599 
Change-Id: Id52be05a2e42214b6d6d9346a67c0b66f9a484eb
Reviewed-on: https://chromium-review.googlesource.com/1127348
Reviewed-by: agrieve <agrieve@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#572833}
[modify] https://crrev.com/c92e44c00324be13288005dea74f3118979fcfd1/tools/binary_size/libsupersize/template_tree_view/ui.js

Project Member

Comment 14 by bugdroid1@chromium.org, Jul 5

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9ed9f7835db3de7c8808b5ad653809e3b6ca1391

commit 9ed9f7835db3de7c8808b5ad653809e3b6ca1391
Author: Tiger Oakes <tigero@google.com>
Date: Thu Jul 05 19:47:14 2018

Colors supersize folders based on the most common type present inside

Directories, files, and components will have their fill color changed based on
whatever symbol type they contain the most of. Symbol size is based on the size
property, which will be either byte size or method count depending on the
selected mode.

The hover text of the icons is also changed to note which file type is most
common.

Demo:
https://notwoods.github.io/chrome-supersize-reports/monochrome-2018-07-06/

Bug:  847599 
Change-Id: Ia8aa0c9f9ec93b0899fbf1da2fe4d599cd8ec3bf
Reviewed-on: https://chromium-review.googlesource.com/1127357
Reviewed-by: agrieve <agrieve@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#572842}
[modify] https://crrev.com/9ed9f7835db3de7c8808b5ad653809e3b6ca1391/tools/binary_size/libsupersize/template_tree_view/tree-worker.js
[modify] https://crrev.com/9ed9f7835db3de7c8808b5ad653809e3b6ca1391/tools/binary_size/libsupersize/template_tree_view/ui.js

Project Member

Comment 15 by bugdroid1@chromium.org, Jul 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/30f9124a3d4acb615f480dcd318b1c5b6d9308fa

commit 30f9124a3d4acb615f480dcd318b1c5b6d9308fa
Author: Tiger Oakes <tigero@google.com>
Date: Mon Jul 09 15:09:22 2018

Ported filters to new supersize UI

Filtering options have been added to the side of the tree view, bringing the
tree view UI to feature parity with the old UI. Filtering selectively hides
nodes from the tree view, and was previously avaliable as a dialog.

Added filters:
- Select which symbol types to show
- Set the minimum symbol byte size
- Only show symbols that match a certain regex
- Hide symbols that match a certain regex

Demo: https://notwoods.github.io/chrome-supersize-reports/monochrome-2018-07-05/

Bug:  847599 
Change-Id: If13d8f8de973b114a49a44268c63e8b033530806
Reviewed-on: https://chromium-review.googlesource.com/1127145
Reviewed-by: Peter Wen <wnwen@chromium.org>
Reviewed-by: Eric Stevenson <estevenson@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#573311}
[modify] https://crrev.com/30f9124a3d4acb615f480dcd318b1c5b6d9308fa/tools/binary_size/libsupersize/html_report.py
[modify] https://crrev.com/30f9124a3d4acb615f480dcd318b1c5b6d9308fa/tools/binary_size/libsupersize/template_tree_view/index.html
[modify] https://crrev.com/30f9124a3d4acb615f480dcd318b1c5b6d9308fa/tools/binary_size/libsupersize/template_tree_view/options.css
[modify] https://crrev.com/30f9124a3d4acb615f480dcd318b1c5b6d9308fa/tools/binary_size/libsupersize/template_tree_view/state.js
[modify] https://crrev.com/30f9124a3d4acb615f480dcd318b1c5b6d9308fa/tools/binary_size/libsupersize/template_tree_view/tree-worker.js
[modify] https://crrev.com/30f9124a3d4acb615f480dcd318b1c5b6d9308fa/tools/binary_size/libsupersize/template_tree_view/ui.js

Project Member

Comment 16 by bugdroid1@chromium.org, Jul 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9bbad06491c5f42bae5d660e960913f20901ec3e

commit 9bbad06491c5f42bae5d660e960913f20901ec3e
Author: Tiger Oakes <tigero@google.com>
Date: Mon Jul 09 16:17:00 2018

Added infocard that displays on hover to supersize

When a tree node is hovered over, an information card displays breaking down
the contents of that node. This is based on the hover effect from the old UI.

For symbols, this is a card with its full name, byte size, and type, showing
information similar to what is currently represented by the "title" attribute.

For containers, this is a card that also includes a breakdown of the symbol
types within that container. A table listing the sizes and percentags is
displayed, as well as a pie chart rendered with the Canvas API.

Demo:
https://notwoods.github.io/chrome-supersize-reports/monochrome-2018-07-06/

Bug:  847599 
Change-Id: Ie33ea09bc3476e260d70391c5b2e88597f09a69d
Reviewed-on: https://chromium-review.googlesource.com/1127857
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: Peter Wen <wnwen@chromium.org>
Reviewed-by: agrieve <agrieve@chromium.org>
Reviewed-by: Eric Stevenson <estevenson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573326}
[modify] https://crrev.com/9bbad06491c5f42bae5d660e960913f20901ec3e/tools/binary_size/libsupersize/html_report.py
[modify] https://crrev.com/9bbad06491c5f42bae5d660e960913f20901ec3e/tools/binary_size/libsupersize/template_tree_view/index.html
[add] https://crrev.com/9bbad06491c5f42bae5d660e960913f20901ec3e/tools/binary_size/libsupersize/template_tree_view/infocard.css
[modify] https://crrev.com/9bbad06491c5f42bae5d660e960913f20901ec3e/tools/binary_size/libsupersize/template_tree_view/options.css
[modify] https://crrev.com/9bbad06491c5f42bae5d660e960913f20901ec3e/tools/binary_size/libsupersize/template_tree_view/tree-worker.js
[modify] https://crrev.com/9bbad06491c5f42bae5d660e960913f20901ec3e/tools/binary_size/libsupersize/template_tree_view/ui.js

Project Member

Comment 17 by bugdroid1@chromium.org, Jul 10

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fe957c7679a580a665cc75fe31f5be188878f235

commit fe957c7679a580a665cc75fe31f5be188878f235
Author: Tiger Oakes <tigero@google.com>
Date: Tue Jul 10 16:02:36 2018

Stream symbol data to handle 100 MB+ files

The new UI now supports `--min-symbol-size=0` by streaming the data
file rather than loading all its contents into memory. As a tradeoff,
we now need to runa HTTP server instead of being able to open the HTML
file in the browser directly.

Since loading in so many symbols takes some time, the default minimum
size is still 1024 bytes for now. Progress indicators and partial
states have been added to the UI:
- A progress bar in the header indicates how much data has loaded
- The tree loaded so far is displayed every second

When opening child nodes, the data is requested from the worker
asynchronously rather than sending it all to the UI thread at once.
This avoids a bottleneck when serializing and deserializing large
trees, which reached 7 seconds total with large data files.

https://notwoods.github.io/chrome-supersize-reports/monochrome-2018-07-03/

Bug:  847599 
Change-Id: Ie843389dfaa5bdb22a09b8d1aa9dd256da8be4aa
Reviewed-on: https://chromium-review.googlesource.com/1125119
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: Peter Wen <wnwen@chromium.org>
Reviewed-by: Eric Stevenson <estevenson@chromium.org>
Reviewed-by: agrieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573754}
[modify] https://crrev.com/fe957c7679a580a665cc75fe31f5be188878f235/tools/binary_size/libsupersize/html_report.py
[modify] https://crrev.com/fe957c7679a580a665cc75fe31f5be188878f235/tools/binary_size/libsupersize/template_tree_view/index.html
[add] https://crrev.com/fe957c7679a580a665cc75fe31f5be188878f235/tools/binary_size/libsupersize/template_tree_view/infocard-ui.js
[modify] https://crrev.com/fe957c7679a580a665cc75fe31f5be188878f235/tools/binary_size/libsupersize/template_tree_view/infocard.css
[modify] https://crrev.com/fe957c7679a580a665cc75fe31f5be188878f235/tools/binary_size/libsupersize/template_tree_view/options.css
[add] https://crrev.com/fe957c7679a580a665cc75fe31f5be188878f235/tools/binary_size/libsupersize/template_tree_view/shared.js
[modify] https://crrev.com/fe957c7679a580a665cc75fe31f5be188878f235/tools/binary_size/libsupersize/template_tree_view/state.js
[add] https://crrev.com/fe957c7679a580a665cc75fe31f5be188878f235/tools/binary_size/libsupersize/template_tree_view/tree-ui.js
[modify] https://crrev.com/fe957c7679a580a665cc75fe31f5be188878f235/tools/binary_size/libsupersize/template_tree_view/tree-worker.js
[delete] https://crrev.com/62db8de384c4e960d8c5cc0d8282385f4a3a98a5/tools/binary_size/libsupersize/template_tree_view/ui.js

Project Member

Comment 18 by bugdroid1@chromium.org, Jul 10

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5a2f606212e07c4952209417dfb1f94f740a8edd

commit 5a2f606212e07c4952209417dfb1f94f740a8edd
Author: Tiger Oakes <tigero@google.com>
Date: Tue Jul 10 20:07:32 2018

Adds icon and type description to supersize container infocard

Updates to the infocard to improve style, readability and performance.
An icon has been added to the center of the pie chart on container
cards, similar to the icon shown on symbol cards. Text to describe
the container type has also been added ("File", "Directory", etc) in
the same style as the symbol type text.

The infocard code has been rewritten to be class based, and the two
types of cards inherit from the same base class. This improves
readability of the code.

The previous icon shown on the card is now cached. This means that if
the next node displayed is of the same type (such as moving from a
directory to another directory), then the corresponding icon will be
reused instead of being cloned again. This improves performance by
avoiding unnessecary garbage collection from the identical icon clones.

Bug:  847599 
Change-Id: Iabe9b5eca2173338aed3d99025d2cbd917aa7d0f
Reviewed-on: https://chromium-review.googlesource.com/1132123
Reviewed-by: agrieve <agrieve@chromium.org>
Reviewed-by: Eric Stevenson <estevenson@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#573874}
[modify] https://crrev.com/5a2f606212e07c4952209417dfb1f94f740a8edd/tools/binary_size/libsupersize/template_tree_view/index.html
[modify] https://crrev.com/5a2f606212e07c4952209417dfb1f94f740a8edd/tools/binary_size/libsupersize/template_tree_view/infocard-ui.js
[modify] https://crrev.com/5a2f606212e07c4952209417dfb1f94f740a8edd/tools/binary_size/libsupersize/template_tree_view/infocard.css

Project Member

Comment 19 by bugdroid1@chromium.org, Jul 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1e8515dd6e122df37a478bd24ae342b2fb6d1da9

commit 1e8515dd6e122df37a478bd24ae342b2fb6d1da9
Author: Tiger Oakes <tigero@google.com>
Date: Wed Jul 11 16:45:35 2018

Supersize: Adds small quality of life improvements

Changes so far:
- Improved reading of a node in a screen reader
- Added checkboxes and radios into tab flow
- Settings starts expanded instead of hidden
- Arrow immediately rotates when expanding a row
- Added "Select all" and "Select none" buttons for types
- Query parameters equal to the defaults are hidden
- Types are shown as a single string in the query
- .bss is no longer checked by default
- Fetch requests are cancelled when a new one is started

Demo:
https://notwoods.github.io/chrome-supersize-reports/monochrome-2018-07-10/

Bug:  847599 
Change-Id: I366ff2746a331e846dc0c683757a2a5bfa43d96a
Reviewed-on: https://chromium-review.googlesource.com/1132132
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: Eric Stevenson <estevenson@chromium.org>
Reviewed-by: agrieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574194}
[modify] https://crrev.com/1e8515dd6e122df37a478bd24ae342b2fb6d1da9/tools/binary_size/libsupersize/template_tree_view/index.html
[modify] https://crrev.com/1e8515dd6e122df37a478bd24ae342b2fb6d1da9/tools/binary_size/libsupersize/template_tree_view/infocard.css
[modify] https://crrev.com/1e8515dd6e122df37a478bd24ae342b2fb6d1da9/tools/binary_size/libsupersize/template_tree_view/options.css
[modify] https://crrev.com/1e8515dd6e122df37a478bd24ae342b2fb6d1da9/tools/binary_size/libsupersize/template_tree_view/shared.js
[modify] https://crrev.com/1e8515dd6e122df37a478bd24ae342b2fb6d1da9/tools/binary_size/libsupersize/template_tree_view/state.js
[modify] https://crrev.com/1e8515dd6e122df37a478bd24ae342b2fb6d1da9/tools/binary_size/libsupersize/template_tree_view/tree-ui.js
[modify] https://crrev.com/1e8515dd6e122df37a478bd24ae342b2fb6d1da9/tools/binary_size/libsupersize/template_tree_view/tree-worker.js

Project Member

Comment 20 by bugdroid1@chromium.org, Jul 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3459a089449cdc6728667a5e4d60bf30ac96ffc4

commit 3459a089449cdc6728667a5e4d60bf30ac96ffc4
Author: Tiger Oakes <tigero@google.com>
Date: Wed Jul 11 20:13:35 2018

Supersize: Adds counter for number of symbols of each type

The infocard now displays the amount of each type of symbol present in
a container. This is a 3rd column alongside the existing total byte
size and percentage columns.

Bug:  847599 
Change-Id: Iab247f1891ee036262956dd585e81864ee8ce12c
Reviewed-on: https://chromium-review.googlesource.com/1133759
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: agrieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574301}
[modify] https://crrev.com/3459a089449cdc6728667a5e4d60bf30ac96ffc4/tools/binary_size/libsupersize/template_tree_view/index.html
[modify] https://crrev.com/3459a089449cdc6728667a5e4d60bf30ac96ffc4/tools/binary_size/libsupersize/template_tree_view/infocard-ui.js
[modify] https://crrev.com/3459a089449cdc6728667a5e4d60bf30ac96ffc4/tools/binary_size/libsupersize/template_tree_view/shared.js
[modify] https://crrev.com/3459a089449cdc6728667a5e4d60bf30ac96ffc4/tools/binary_size/libsupersize/template_tree_view/state.js
[modify] https://crrev.com/3459a089449cdc6728667a5e4d60bf30ac96ffc4/tools/binary_size/libsupersize/template_tree_view/tree-ui.js
[modify] https://crrev.com/3459a089449cdc6728667a5e4d60bf30ac96ffc4/tools/binary_size/libsupersize/template_tree_view/tree-worker.js

Project Member

Comment 21 by bugdroid1@chromium.org, Jul 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6c883823a93d9e693ecb5b6c6ae63eda0a76b63a

commit 6c883823a93d9e693ecb5b6c6ae63eda0a76b63a
Author: Tiger Oakes <tigero@google.com>
Date: Wed Jul 11 21:22:13 2018

Supersize: Organize dex methods into class containers

Introduces a new container type for java classes. Classes are found by
splitting dex methods where the "#" character appears.

Additionally moves the zero-space character to be client-side only. The
UI thread inserts the character when creating new tree node elements.

Bug:  847599 
Change-Id: Ib65a4100797a84bff35502303990ac89a383a808
Reviewed-on: https://chromium-review.googlesource.com/1134049
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: agrieve <agrieve@chromium.org>
Reviewed-by: Eric Stevenson <estevenson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574340}
[modify] https://crrev.com/6c883823a93d9e693ecb5b6c6ae63eda0a76b63a/tools/binary_size/libsupersize/html_report.py
[modify] https://crrev.com/6c883823a93d9e693ecb5b6c6ae63eda0a76b63a/tools/binary_size/libsupersize/template_tree_view/index.html
[modify] https://crrev.com/6c883823a93d9e693ecb5b6c6ae63eda0a76b63a/tools/binary_size/libsupersize/template_tree_view/shared.js
[modify] https://crrev.com/6c883823a93d9e693ecb5b6c6ae63eda0a76b63a/tools/binary_size/libsupersize/template_tree_view/state.js
[modify] https://crrev.com/6c883823a93d9e693ecb5b6c6ae63eda0a76b63a/tools/binary_size/libsupersize/template_tree_view/tree-ui.js
[modify] https://crrev.com/6c883823a93d9e693ecb5b6c6ae63eda0a76b63a/tools/binary_size/libsupersize/template_tree_view/tree-worker.js

Project Member

Comment 22 by bugdroid1@chromium.org, Jul 12

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6d9ffa49bc8e4b239cf5ebe1e7b886764280f5a

commit e6d9ffa49bc8e4b239cf5ebe1e7b886764280f5a
Author: Tiger Oakes <tigero@google.com>
Date: Thu Jul 12 14:25:01 2018

Adds favicon for supersize UI

Creates a simple icon by taking the pie chart icon and giving it colors
from the Chromium logo.
(https://material.io/tools/icons/?search=pie_chart&icon=pie_chart)

Icon:
https://notwoods.github.io/chrome-supersize-reports/icon.png

Bug:  847599 
Change-Id: Ib711bf0c717b9339914ec4ba2d9f369b33fb84d7
Reviewed-on: https://chromium-review.googlesource.com/1134195
Reviewed-by: agrieve <agrieve@chromium.org>
Reviewed-by: Peter Wen <wnwen@chromium.org>
Reviewed-by: Eric Stevenson <estevenson@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#574555}
[modify] https://crrev.com/e6d9ffa49bc8e4b239cf5ebe1e7b886764280f5a/tools/binary_size/libsupersize/html_report.py
[add] https://crrev.com/e6d9ffa49bc8e4b239cf5ebe1e7b886764280f5a/tools/binary_size/libsupersize/template_tree_view/favicon.ico
[modify] https://crrev.com/e6d9ffa49bc8e4b239cf5ebe1e7b886764280f5a/tools/binary_size/libsupersize/template_tree_view/index.html

Project Member

Comment 23 by bugdroid1@chromium.org, Jul 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/72099a935113aa88c21bed6d4477f05dbe4b8db4

commit 72099a935113aa88c21bed6d4477f05dbe4b8db4
Author: Tiger Oakes <tigero@google.com>
Date: Fri Jul 13 15:35:02 2018

Include size info metadata in supersize ui data

Duplications metadata and section_sizes from the header of a .size file
inside the data.ndjson file generated by html_report. We don't use this
for anything currently, but we're including it for potential future use.

Bug:  847599 
Change-Id: I845dc76e86907db9bc1716fca2fd0233a2598f69
Reviewed-on: https://chromium-review.googlesource.com/1136579
Reviewed-by: agrieve <agrieve@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#574924}
[modify] https://crrev.com/72099a935113aa88c21bed6d4477f05dbe4b8db4/tools/binary_size/libsupersize/html_report.py

Project Member

Comment 24 by bugdroid1@chromium.org, Jul 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d222b885043b7e876d6b827d2860c77c8e7235e1

commit d222b885043b7e876d6b827d2860c77c8e7235e1
Author: Tiger Oakes <tigero@google.com>
Date: Fri Jul 13 18:14:43 2018

Supersize: Fix percentages and counts in diff mode

Previously percentages and symbol counts were misreported in diff mode,
as the values did not match up with the total size. Percentages are now
calculated based on the total delta of bytes changed, and the pie chart
has an outer ring to indicate if that type of symbol reduced or
increased.

Counts have been updated to be more accurate now that we have small
symbol buckets. A new property has been added to the data file that
indicated how many symbols a symbol represents. Most symbols omit this
key and default to 1 instead. Buckets indicate how many symbols they
represent. Removed dex methods have a negative count to indicate they
were removed, fixing the method count mode in diff mode.

Bug:  847599 
Change-Id: I20073dc20b89481733aaaa319f3b4966217c6096
Reviewed-on: https://chromium-review.googlesource.com/1135698
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: agrieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574981}
[modify] https://crrev.com/d222b885043b7e876d6b827d2860c77c8e7235e1/tools/binary_size/libsupersize/html_report.py
[modify] https://crrev.com/d222b885043b7e876d6b827d2860c77c8e7235e1/tools/binary_size/libsupersize/template_tree_view/index.html
[modify] https://crrev.com/d222b885043b7e876d6b827d2860c77c8e7235e1/tools/binary_size/libsupersize/template_tree_view/infocard-ui.js
[modify] https://crrev.com/d222b885043b7e876d6b827d2860c77c8e7235e1/tools/binary_size/libsupersize/template_tree_view/infocard.css
[modify] https://crrev.com/d222b885043b7e876d6b827d2860c77c8e7235e1/tools/binary_size/libsupersize/template_tree_view/shared.js
[modify] https://crrev.com/d222b885043b7e876d6b827d2860c77c8e7235e1/tools/binary_size/libsupersize/template_tree_view/state.js
[modify] https://crrev.com/d222b885043b7e876d6b827d2860c77c8e7235e1/tools/binary_size/libsupersize/template_tree_view/tree-ui.js
[modify] https://crrev.com/d222b885043b7e876d6b827d2860c77c8e7235e1/tools/binary_size/libsupersize/template_tree_view/tree-worker.js

Project Member

Comment 26 by bugdroid1@chromium.org, Jul 19

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d999c0d99cd843af2aca9a48ff688d47c3524281

commit d999c0d99cd843af2aca9a48ff688d47c3524281
Author: Tiger Oakes <tigero@google.com>
Date: Thu Jul 19 14:47:53 2018

Supersize: Filter symbols based on count rather than size

Replaced --min-symbol-size with --all-symbols. By default, 100,000
symbols are included in the data file (similar to the amount when min
symbol size was 1024 bytes). If the all-symbols flag is used, every
symbol is included.

Bug:  847599 
Change-Id: I4511d0fdb6c179ff368ce5eceaa529890f8d2d5b
Reviewed-on: https://chromium-review.googlesource.com/1142477
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: agrieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576488}
[modify] https://crrev.com/d999c0d99cd843af2aca9a48ff688d47c3524281/tools/binary_size/libsupersize/html_report.py

Project Member

Comment 27 by bugdroid1@chromium.org, Jul 19

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cb2a0573934925479ac89664deedabe59bcfb5b3

commit cb2a0573934925479ac89664deedabe59bcfb5b3
Author: Tiger Oakes <tigero@google.com>
Date: Thu Jul 19 14:58:14 2018

Supersize: Improving performance by storing fetch results

We now cache the data file as binary data, which can be cached in
memory without crashing the page. When streaming, we build the final
cache by tracking the total size of the bytes streamed in. This
cache allows us to reuse the data on subsequent runs
(such as when filters change) rather than calling fetch again.

Bug:  847599 
Change-Id: I09fb9f45c992984ed56c1270c1c015d274c4c167
Reviewed-on: https://chromium-review.googlesource.com/1136852
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: agrieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576490}
[modify] https://crrev.com/cb2a0573934925479ac89664deedabe59bcfb5b3/tools/binary_size/libsupersize/template_tree_view/index.html
[modify] https://crrev.com/cb2a0573934925479ac89664deedabe59bcfb5b3/tools/binary_size/libsupersize/template_tree_view/shared.js
[modify] https://crrev.com/cb2a0573934925479ac89664deedabe59bcfb5b3/tools/binary_size/libsupersize/template_tree_view/tree-ui.js
[modify] https://crrev.com/cb2a0573934925479ac89664deedabe59bcfb5b3/tools/binary_size/libsupersize/template_tree_view/tree-worker.js

Project Member

Comment 28 by bugdroid1@chromium.org, Jul 19

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/970ae9275121fff350b43e54b355c9b4d2937641

commit 970ae9275121fff350b43e54b355c9b4d2937641
Author: Tiger Oakes <tigero@google.com>
Date: Thu Jul 19 17:33:48 2018

Supersize: Allow user to upload custom data files

Adds an "Upload" button to the toolbar, which allows the user to upload
their own data.ndjson file to display. This allows hot-swapping between
different reports without needing to run the command line program again.

This also helps prepare supersize to be self-hosted in the future, and
the command line program may simply output a data file and link to the
site rather than outputting template files.

Bug:  847599 
Change-Id: I9edd293fbdeca30f549becf76b22cea64afbd102
Reviewed-on: https://chromium-review.googlesource.com/1140955
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: agrieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576546}
[modify] https://crrev.com/970ae9275121fff350b43e54b355c9b4d2937641/tools/binary_size/libsupersize/template_tree_view/favicon.ico
[modify] https://crrev.com/970ae9275121fff350b43e54b355c9b4d2937641/tools/binary_size/libsupersize/template_tree_view/index.html
[modify] https://crrev.com/970ae9275121fff350b43e54b355c9b4d2937641/tools/binary_size/libsupersize/template_tree_view/options.css
[modify] https://crrev.com/970ae9275121fff350b43e54b355c9b4d2937641/tools/binary_size/libsupersize/template_tree_view/start-worker.js
[modify] https://crrev.com/970ae9275121fff350b43e54b355c9b4d2937641/tools/binary_size/libsupersize/template_tree_view/state.js
[modify] https://crrev.com/970ae9275121fff350b43e54b355c9b4d2937641/tools/binary_size/libsupersize/template_tree_view/tree-ui.js
[modify] https://crrev.com/970ae9275121fff350b43e54b355c9b4d2937641/tools/binary_size/libsupersize/template_tree_view/tree-worker.js

Project Member

Comment 29 by bugdroid1@chromium.org, Jul 19

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a7086fafa5b3ab73c539d0b091765958cc37e3a1

commit a7086fafa5b3ab73c539d0b091765958cc37e3a1
Author: Tiger Oakes <tigero@google.com>
Date: Thu Jul 19 18:11:28 2018

Supersize: Add start_server to run server instead of copying template

Adds a class that wraps SimpleHTTPServer. When start_server is
called, the server starts up and serve files from the template
directory. The data.ndjson file is still created.

Bug:  847599 
Change-Id: Id153ae3c8c78b01376d09c53842c747e2b4e04fb
Reviewed-on: https://chromium-review.googlesource.com/1136932
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: agrieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576560}
[modify] https://crrev.com/a7086fafa5b3ab73c539d0b091765958cc37e3a1/tools/binary_size/libsupersize/html_report.py
[modify] https://crrev.com/a7086fafa5b3ab73c539d0b091765958cc37e3a1/tools/binary_size/libsupersize/main.py
[add] https://crrev.com/a7086fafa5b3ab73c539d0b091765958cc37e3a1/tools/binary_size/libsupersize/start_server.py
[rename] https://crrev.com/a7086fafa5b3ab73c539d0b091765958cc37e3a1/tools/binary_size/libsupersize/static/favicon.ico
[rename] https://crrev.com/a7086fafa5b3ab73c539d0b091765958cc37e3a1/tools/binary_size/libsupersize/static/index.html
[rename] https://crrev.com/a7086fafa5b3ab73c539d0b091765958cc37e3a1/tools/binary_size/libsupersize/static/infocard-ui.js
[rename] https://crrev.com/a7086fafa5b3ab73c539d0b091765958cc37e3a1/tools/binary_size/libsupersize/static/infocard.css
[rename] https://crrev.com/a7086fafa5b3ab73c539d0b091765958cc37e3a1/tools/binary_size/libsupersize/static/options.css
[rename] https://crrev.com/a7086fafa5b3ab73c539d0b091765958cc37e3a1/tools/binary_size/libsupersize/static/shared.js
[rename] https://crrev.com/a7086fafa5b3ab73c539d0b091765958cc37e3a1/tools/binary_size/libsupersize/static/start-worker.js
[rename] https://crrev.com/a7086fafa5b3ab73c539d0b091765958cc37e3a1/tools/binary_size/libsupersize/static/state.js
[rename] https://crrev.com/a7086fafa5b3ab73c539d0b091765958cc37e3a1/tools/binary_size/libsupersize/static/tree-ui.js
[rename] https://crrev.com/a7086fafa5b3ab73c539d0b091765958cc37e3a1/tools/binary_size/libsupersize/static/tree-worker.js
[modify] https://crrev.com/a7086fafa5b3ab73c539d0b091765958cc37e3a1/tools/binary_size/supersize.pydeps

Project Member

Comment 31 by bugdroid1@chromium.org, Jul 19

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a6e17135374d73bcd4111e44e663e3b65b87e053

commit a6e17135374d73bcd4111e44e663e3b65b87e053
Author: Tiger Oakes <tigero@google.com>
Date: Thu Jul 19 20:45:33 2018

Supersize: Fix symbol count bug

There are more than 100,000 dex method symbols, causing the slice
arguments for the symbols list to become negative. Added a min value of
0 and increased the symbol cap.

Bug:  847599 
Change-Id: Ie2a5ee606a0d134c92e4c238073e5183963e92a3
Reviewed-on: https://chromium-review.googlesource.com/1144248
Reviewed-by: agrieve <agrieve@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#576613}
[modify] https://crrev.com/a6e17135374d73bcd4111e44e663e3b65b87e053/tools/binary_size/libsupersize/html_report.py

Status: Fixed (was: Assigned)
Project Member

Comment 33 by bugdroid1@chromium.org, Jul 20

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/318233c4a3b0f6b273b06b2b0cb160d6b922a328

commit 318233c4a3b0f6b273b06b2b0cb160d6b922a328
Author: Tiger Oakes <tigero@google.com>
Date: Fri Jul 20 18:26:52 2018

Supersize: Adjusts infocard and options

Changed infocard so that focusing on a node will lock the infocard.
Focus can be removed by pressing the escape key.

The options have been reorganized so that regular expressions are now
higher in the list.

Additionally added a "?" key shortcut to open help, fixed the
toolbar on small screen sizes, and added input validation for the
regex inputs.

Bug:  847599 
Change-Id: I124afe3bdc162b55889b25ba35b403aca72a8435
Reviewed-on: https://chromium-review.googlesource.com/1145230
Reviewed-by: agrieve <agrieve@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#576933}
[modify] https://crrev.com/318233c4a3b0f6b273b06b2b0cb160d6b922a328/tools/binary_size/libsupersize/html_report.py
[modify] https://crrev.com/318233c4a3b0f6b273b06b2b0cb160d6b922a328/tools/binary_size/libsupersize/static/index.html
[modify] https://crrev.com/318233c4a3b0f6b273b06b2b0cb160d6b922a328/tools/binary_size/libsupersize/static/infocard.css
[modify] https://crrev.com/318233c4a3b0f6b273b06b2b0cb160d6b922a328/tools/binary_size/libsupersize/static/options.css
[modify] https://crrev.com/318233c4a3b0f6b273b06b2b0cb160d6b922a328/tools/binary_size/libsupersize/static/state.js
[modify] https://crrev.com/318233c4a3b0f6b273b06b2b0cb160d6b922a328/tools/binary_size/libsupersize/static/tree-ui.js
[modify] https://crrev.com/318233c4a3b0f6b273b06b2b0cb160d6b922a328/tools/binary_size/libsupersize/static/tree-worker.js

Project Member

Comment 34 by bugdroid1@chromium.org, Jul 24

Project Member

Comment 35 by bugdroid1@chromium.org, Jul 25

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b4abaad47c98f5ad0c1365ea02eee864f82fe604

commit b4abaad47c98f5ad0c1365ea02eee864f82fe604
Author: Tiger Oakes <tigero@google.com>
Date: Wed Jul 25 16:25:20 2018

SuperSize: Adds highlights for certain flags

Adds flags to the data.ndjson file, and exposed the information in the
UI using custom highlighting options. The UI will additionally list the
flags in the symbol infocard.

Bug:  847599 
Change-Id: If2c7b7f5147296cf13e0c0ef9c36d6748820e42f
Reviewed-on: https://chromium-review.googlesource.com/1148795
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: Sam Maier <smaier@chromium.org>
Reviewed-by: Eric Stevenson <estevenson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577923}
[modify] https://crrev.com/b4abaad47c98f5ad0c1365ea02eee864f82fe604/tools/binary_size/libsupersize/html_report.py
[modify] https://crrev.com/b4abaad47c98f5ad0c1365ea02eee864f82fe604/tools/binary_size/libsupersize/models.py
[modify] https://crrev.com/b4abaad47c98f5ad0c1365ea02eee864f82fe604/tools/binary_size/libsupersize/static/index.html
[modify] https://crrev.com/b4abaad47c98f5ad0c1365ea02eee864f82fe604/tools/binary_size/libsupersize/static/infocard-ui.js
[modify] https://crrev.com/b4abaad47c98f5ad0c1365ea02eee864f82fe604/tools/binary_size/libsupersize/static/infocard.css
[modify] https://crrev.com/b4abaad47c98f5ad0c1365ea02eee864f82fe604/tools/binary_size/libsupersize/static/shared.js
[modify] https://crrev.com/b4abaad47c98f5ad0c1365ea02eee864f82fe604/tools/binary_size/libsupersize/static/state.js
[modify] https://crrev.com/b4abaad47c98f5ad0c1365ea02eee864f82fe604/tools/binary_size/libsupersize/static/tree-ui.js
[modify] https://crrev.com/b4abaad47c98f5ad0c1365ea02eee864f82fe604/tools/binary_size/libsupersize/static/tree-worker.js

Project Member

Comment 36 by bugdroid1@chromium.org, Jul 25

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4d808ac708a97368b360088e4d4061c19fbf23ff

commit 4d808ac708a97368b360088e4d4061c19fbf23ff
Author: Tiger Oakes <tigero@google.com>
Date: Wed Jul 25 19:03:16 2018

SuperSize: Optionally load data file from URL

Data files can now be loaded from a URL in addition to uploading a file
from the computer, by using the `data_url` query parameter. This isn't
directly exposed in the UI, but `supersize start_server` will suggest
using the parameter when run.

Additionally, some demo data is display when no data has been set
(either from uploading or URL). The demo data is from a public .size
file.

Bug:  847599 
Change-Id: I64659f30e0fdb0f1d0b907b6515ab87fbe2bda5f
Reviewed-on: https://chromium-review.googlesource.com/1150208
Reviewed-by: Peter Wen <wnwen@chromium.org>
Reviewed-by: Sam Maier <smaier@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#578005}
[modify] https://crrev.com/4d808ac708a97368b360088e4d4061c19fbf23ff/tools/binary_size/libsupersize/start_server.py
[modify] https://crrev.com/4d808ac708a97368b360088e4d4061c19fbf23ff/tools/binary_size/libsupersize/static/index.html
[modify] https://crrev.com/4d808ac708a97368b360088e4d4061c19fbf23ff/tools/binary_size/libsupersize/static/start-worker.js
[modify] https://crrev.com/4d808ac708a97368b360088e4d4061c19fbf23ff/tools/binary_size/libsupersize/static/tree-worker.js

Project Member

Comment 37 by bugdroid1@chromium.org, Jul 26

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/61cf118302b1b0f846aea8dff2b5c0c0211fd07d

commit 61cf118302b1b0f846aea8dff2b5c0c0211fd07d
Author: Tiger Oakes <tigero@google.com>
Date: Thu Jul 26 17:32:16 2018

SuperSize: Fetch milestones and pre-generate data files

Adds `generate_milestone_report.py`, a script to generate milestone
reports then upload the results to GCS. A new page for selecting a
milestone was also created, which directs the user to Super Size with
a certain data_url set.

Bug:  847599 
Change-Id: I718e14814b021c7810e94a0b95bf55e1ed381be6
Reviewed-on: https://chromium-review.googlesource.com/1150738
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: Peter Wen <wnwen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578352}
[modify] https://crrev.com/61cf118302b1b0f846aea8dff2b5c0c0211fd07d/tools/binary_size/libsupersize/archive.py
[modify] https://crrev.com/61cf118302b1b0f846aea8dff2b5c0c0211fd07d/tools/binary_size/libsupersize/file_format.py
[add] https://crrev.com/61cf118302b1b0f846aea8dff2b5c0c0211fd07d/tools/binary_size/libsupersize/generate_milestone_report.py
[modify] https://crrev.com/61cf118302b1b0f846aea8dff2b5c0c0211fd07d/tools/binary_size/libsupersize/gsutil.py
[modify] https://crrev.com/61cf118302b1b0f846aea8dff2b5c0c0211fd07d/tools/binary_size/libsupersize/html_report.py
[modify] https://crrev.com/61cf118302b1b0f846aea8dff2b5c0c0211fd07d/tools/binary_size/libsupersize/static/index.html
[add] https://crrev.com/61cf118302b1b0f846aea8dff2b5c0c0211fd07d/tools/binary_size/libsupersize/static/main.css
[add] https://crrev.com/61cf118302b1b0f846aea8dff2b5c0c0211fd07d/tools/binary_size/libsupersize/static/milestones.html
[modify] https://crrev.com/61cf118302b1b0f846aea8dff2b5c0c0211fd07d/tools/binary_size/libsupersize/templates/sw.js

Project Member

Comment 38 by bugdroid1@chromium.org, Jul 26

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2e425d5200f81ba484838a4c4062ef6f56ad8a5c

commit 2e425d5200f81ba484838a4c4062ef6f56ad8a5c
Author: Tiger Oakes <tigero@google.com>
Date: Thu Jul 26 21:12:22 2018

SuperSize: Display percentage of highlighted symbols in pie chart

Builds on the highlighting code to display highlights in the pie chart.
The hightlights appear as bars along the chart, similar to the diff
view.

Bug:  847599 
Change-Id: I5dc0f163ebaa5d46b331b084391e6e09645e5dd3
Reviewed-on: https://chromium-review.googlesource.com/1152090
Reviewed-by: Peter Wen <wnwen@chromium.org>
Reviewed-by: Sam Maier <smaier@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#578441}
[modify] https://crrev.com/2e425d5200f81ba484838a4c4062ef6f56ad8a5c/tools/binary_size/libsupersize/static/index.html
[modify] https://crrev.com/2e425d5200f81ba484838a4c4062ef6f56ad8a5c/tools/binary_size/libsupersize/static/infocard-ui.js
[modify] https://crrev.com/2e425d5200f81ba484838a4c4062ef6f56ad8a5c/tools/binary_size/libsupersize/static/shared.js
[modify] https://crrev.com/2e425d5200f81ba484838a4c4062ef6f56ad8a5c/tools/binary_size/libsupersize/static/tree-ui.js
[modify] https://crrev.com/2e425d5200f81ba484838a4c4062ef6f56ad8a5c/tools/binary_size/libsupersize/static/tree-worker.js

Project Member

Comment 39 by bugdroid1@chromium.org, Jul 27

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f2379e93b0fecb04a837af135955104a24dcc07b

commit f2379e93b0fecb04a837af135955104a24dcc07b
Author: Tiger Oakes <tigero@google.com>
Date: Fri Jul 27 18:30:06 2018

SuperSize: Fixes infocard and options layout on small screens

Fixes two CSS issues:
* The options sidebar has no bottom padding
* The infocard table sometimes expands past the screen width

Bug:  847599 
Change-Id: Ic39b594c777194e24fa8233094c41106166703cb
Reviewed-on: https://chromium-review.googlesource.com/1152902
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: Sam Maier <smaier@chromium.org>
Reviewed-by: Samuel Huang <huangs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578719}
[modify] https://crrev.com/f2379e93b0fecb04a837af135955104a24dcc07b/tools/binary_size/libsupersize/static/index.html
[modify] https://crrev.com/f2379e93b0fecb04a837af135955104a24dcc07b/tools/binary_size/libsupersize/static/infocard.css

Sign in to add a comment