New issue
Advanced search Search tips

Issue 891310 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 8
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 2
Type: Bug



Sign in to add a comment

Resource coordinator graph view for chrome://discards

Project Member Reported by siggi@chromium.org, Oct 2

Issue description

The RC graph is totally opaque, which is a liability the more we use the graph to reason about Chrome's performance. It's pretty easy to add a graph view to the chrome://discards UI, given the expressive power of D3.js.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 5

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

commit e933e974a10be30358729f17d5a73e75888cf84e
Author: Sigurdur Asgeirsson <siggi@chromium.org>
Date: Fri Oct 05 20:18:25 2018

RC: Add a graph dump interface for the WebUI graph view.

Bug:  891310 
Change-Id: Ie3aeb33c2f6031bdafd2ded0131cc54e1ee496cf
Reviewed-on: https://chromium-review.googlesource.com/c/1256907
Reviewed-by: Will Harris <wfh@chromium.org>
Reviewed-by: François Doray <fdoray@chromium.org>
Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#597267}
[modify] https://crrev.com/e933e974a10be30358729f17d5a73e75888cf84e/services/resource_coordinator/BUILD.gn
[modify] https://crrev.com/e933e974a10be30358729f17d5a73e75888cf84e/services/resource_coordinator/coordination_unit/coordination_unit_graph.cc
[modify] https://crrev.com/e933e974a10be30358729f17d5a73e75888cf84e/services/resource_coordinator/coordination_unit/coordination_unit_graph.h
[modify] https://crrev.com/e933e974a10be30358729f17d5a73e75888cf84e/services/resource_coordinator/coordination_unit/coordination_unit_graph_unittest.cc
[modify] https://crrev.com/e933e974a10be30358729f17d5a73e75888cf84e/services/resource_coordinator/coordination_unit/process_coordination_unit_impl.h
[modify] https://crrev.com/e933e974a10be30358729f17d5a73e75888cf84e/services/resource_coordinator/public/mojom/BUILD.gn
[add] https://crrev.com/e933e974a10be30358729f17d5a73e75888cf84e/services/resource_coordinator/public/mojom/webui_graph_dump.mojom
[add] https://crrev.com/e933e974a10be30358729f17d5a73e75888cf84e/services/resource_coordinator/webui_graph_dump_impl.cc
[add] https://crrev.com/e933e974a10be30358729f17d5a73e75888cf84e/services/resource_coordinator/webui_graph_dump_impl.h
[add] https://crrev.com/e933e974a10be30358729f17d5a73e75888cf84e/services/resource_coordinator/webui_graph_dump_impl_unittest.cc

Project Member

Comment 2 by bugdroid1@chromium.org, Oct 9

Project Member

Comment 3 by bugdroid1@chromium.org, Oct 10

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

commit 10609e5c152dd914d1da3a5a45b2764181bf2f8d
Author: Sigurdur Asgeirsson <siggi@chromium.org>
Date: Wed Oct 10 19:58:49 2018

RC: Plumb the Graph Dump interface to the WebUI.

Bug:  891310 

Change-Id: I9973fc1c2263e57c54ee6f900edb53ad1841bc19
Reviewed-on: https://chromium-review.googlesource.com/c/1264736
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: Will Harris <wfh@chromium.org>
Reviewed-by: François Doray <fdoray@chromium.org>
Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598464}
[modify] https://crrev.com/10609e5c152dd914d1da3a5a45b2764181bf2f8d/chrome/browser/BUILD.gn
[modify] https://crrev.com/10609e5c152dd914d1da3a5a45b2764181bf2f8d/chrome/browser/browser_resources.grd
[modify] https://crrev.com/10609e5c152dd914d1da3a5a45b2764181bf2f8d/chrome/browser/chrome_content_browser_manifest_overlay.json
[modify] https://crrev.com/10609e5c152dd914d1da3a5a45b2764181bf2f8d/chrome/browser/resources/discards/BUILD.gn
[modify] https://crrev.com/10609e5c152dd914d1da3a5a45b2764181bf2f8d/chrome/browser/resources/discards/discards.html
[modify] https://crrev.com/10609e5c152dd914d1da3a5a45b2764181bf2f8d/chrome/browser/resources/discards/discards_tab.html
[modify] https://crrev.com/10609e5c152dd914d1da3a5a45b2764181bf2f8d/chrome/browser/ui/webui/discards/discards_ui.cc
[modify] https://crrev.com/10609e5c152dd914d1da3a5a45b2764181bf2f8d/chrome/browser/ui/webui/discards/discards_ui.h
[modify] https://crrev.com/10609e5c152dd914d1da3a5a45b2764181bf2f8d/content/browser/webui/shared_resources_data_source.cc
[modify] https://crrev.com/10609e5c152dd914d1da3a5a45b2764181bf2f8d/mojo/public/js/mojo_bindings_resources.grd
[modify] https://crrev.com/10609e5c152dd914d1da3a5a45b2764181bf2f8d/services/resource_coordinator/manifest.json
[modify] https://crrev.com/10609e5c152dd914d1da3a5a45b2764181bf2f8d/services/resource_coordinator/public/mojom/webui_graph_dump.mojom
[modify] https://crrev.com/10609e5c152dd914d1da3a5a45b2764181bf2f8d/services/resource_coordinator/resource_coordinator_service.cc
[modify] https://crrev.com/10609e5c152dd914d1da3a5a45b2764181bf2f8d/services/resource_coordinator/resource_coordinator_service.h
[modify] https://crrev.com/10609e5c152dd914d1da3a5a45b2764181bf2f8d/services/resource_coordinator/webui_graph_dump_impl.cc
[modify] https://crrev.com/10609e5c152dd914d1da3a5a45b2764181bf2f8d/services/resource_coordinator/webui_graph_dump_impl.h

Project Member

Comment 4 by bugdroid1@chromium.org, Oct 22

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

commit 79cd52f829e8d786bc4fbd349529462f4755b8bb
Author: Sigurdur Asgeirsson <siggi@chromium.org>
Date: Mon Oct 22 17:22:19 2018

Add an externs.js file for D3.

Bug:  891310 
Change-Id: Ie467f737e76cc0125b03723e16c3c12bdaf41187
Reviewed-on: https://chromium-review.googlesource.com/c/1271380
Reviewed-by: François Doray <fdoray@chromium.org>
Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601627}
[modify] https://crrev.com/79cd52f829e8d786bc4fbd349529462f4755b8bb/third_party/d3/README.chromium
[add] https://crrev.com/79cd52f829e8d786bc4fbd349529462f4755b8bb/third_party/d3/src/externs.js

After a long discussion with chrome-eng-review and security@chromium.org, the way this can be put together is:

1. Host D3.js on a Google-controlled domain.
2. Render the graph in a webview.
3. Provide the main body document for the vebview in a data: URL.
4. Load D3.js with subresource integrity into the above main body document.
5. Communicate with the webview using postMessage.

This way:
1. We don't bloat Chrome's installer or on-disk footprint for users that don't use this debug page.
2. The WebUI renderer never loads content from the network, which could compromise a privileged process.
3. The graph data is never on the network.
4. Realtime updates are a piece of cake.
Project Member

Comment 6 by bugdroid1@chromium.org, Oct 31

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

commit 4f21da0442bf6aa5ba6c5628581898c9a310fa4a
Author: Sigurdur Asgeirsson <siggi@chromium.org>
Date: Wed Oct 31 14:41:27 2018

RC: Allow chrome://discards to use webview.

This is to support rendering the Resource Coordinator graph using
D3.js in a future CL.

Bug:  891310 
Change-Id: Ie58ab6e8e49b2e897eabecf79b202172c50bf5ef
Reviewed-on: https://chromium-review.googlesource.com/c/1305204
Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org>
Reviewed-by: Chris Hamilton <chrisha@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604248}
[modify] https://crrev.com/4f21da0442bf6aa5ba6c5628581898c9a310fa4a/chrome/common/extensions/api/_api_features.json
[modify] https://crrev.com/4f21da0442bf6aa5ba6c5628581898c9a310fa4a/extensions/common/api/_api_features.json

Project Member

Comment 7 by bugdroid1@chromium.org, Oct 31

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

commit 6ffe379a8a9b9ee0c5c6c706fe1f0df1311ff4d1
Author: Sigurdur Asgeirsson <siggi@chromium.org>
Date: Wed Oct 31 14:45:34 2018

RC: Skeleton and build changes for graph tab.

All the presentation changes needed to get the tab to display correctly
and to track with size changes, but the tab itself is blank.

Bug:  891310 
Change-Id: Ic0e6cafed3237b459d1b76b1997029c3a4cd580c
Reviewed-on: https://chromium-review.googlesource.com/c/1305874
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: Chris Hamilton <chrisha@chromium.org>
Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604250}
[modify] https://crrev.com/6ffe379a8a9b9ee0c5c6c706fe1f0df1311ff4d1/chrome/browser/BUILD.gn
[modify] https://crrev.com/6ffe379a8a9b9ee0c5c6c706fe1f0df1311ff4d1/chrome/browser/browser_resources.grd
[modify] https://crrev.com/6ffe379a8a9b9ee0c5c6c706fe1f0df1311ff4d1/chrome/browser/resources/discards/BUILD.gn
[modify] https://crrev.com/6ffe379a8a9b9ee0c5c6c706fe1f0df1311ff4d1/chrome/browser/resources/discards/discards.html
[modify] https://crrev.com/6ffe379a8a9b9ee0c5c6c706fe1f0df1311ff4d1/chrome/browser/resources/discards/discards_main.html
[add] https://crrev.com/6ffe379a8a9b9ee0c5c6c706fe1f0df1311ff4d1/chrome/browser/resources/discards/generate_graph_tab.py
[add] https://crrev.com/6ffe379a8a9b9ee0c5c6c706fe1f0df1311ff4d1/chrome/browser/resources/discards/graph_doc.js
[add] https://crrev.com/6ffe379a8a9b9ee0c5c6c706fe1f0df1311ff4d1/chrome/browser/resources/discards/graph_doc_template.html
[add] https://crrev.com/6ffe379a8a9b9ee0c5c6c706fe1f0df1311ff4d1/chrome/browser/resources/discards/graph_tab.js
[add] https://crrev.com/6ffe379a8a9b9ee0c5c6c706fe1f0df1311ff4d1/chrome/browser/resources/discards/graph_tab_template.html
[add] https://crrev.com/6ffe379a8a9b9ee0c5c6c706fe1f0df1311ff4d1/chrome/browser/resources/discards/graph_view.md
[modify] https://crrev.com/6ffe379a8a9b9ee0c5c6c706fe1f0df1311ff4d1/chrome/browser/ui/webui/discards/discards_ui.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Nov 6

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

commit 4dbfae513b88277e26892f1232322e4c76d5a220
Author: Sigurdur Asgeirsson <siggi@chromium.org>
Date: Tue Nov 06 15:01:18 2018

RC: First cut graph animation.

This shows a continuously updating graph of pages, frames and processes.

Bug:  891310 
Change-Id: I1b2f462740374dfb1d2529057d1831dc240e79f2
Reviewed-on: https://chromium-review.googlesource.com/c/1313449
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: Chris Hamilton <chrisha@chromium.org>
Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#605674}
[modify] https://crrev.com/4dbfae513b88277e26892f1232322e4c76d5a220/chrome/browser/resources/discards/graph_doc.js
[modify] https://crrev.com/4dbfae513b88277e26892f1232322e4c76d5a220/chrome/browser/resources/discards/graph_doc_template.html

Project Member

Comment 9 by bugdroid1@chromium.org, Nov 8

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

commit 1927f2842f9a62b120ff58272fc0fc4a7ad48756
Author: Sigurdur Asgeirsson <siggi@chromium.org>
Date: Thu Nov 08 19:02:02 2018

RC: Move mojo dependencies to mojo_api.html.

Also move one of the functions from discards.js into discards_tab.js
as that's the only user.

Bug:  891310 
Change-Id: I434dc950029fb5e526a42dbed999a7dddc4ff6b1
Reviewed-on: https://chromium-review.googlesource.com/c/1324101
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606558}
[modify] https://crrev.com/1927f2842f9a62b120ff58272fc0fc4a7ad48756/chrome/browser/browser_resources.grd
[modify] https://crrev.com/1927f2842f9a62b120ff58272fc0fc4a7ad48756/chrome/browser/resources/discards/database_tab.html
[modify] https://crrev.com/1927f2842f9a62b120ff58272fc0fc4a7ad48756/chrome/browser/resources/discards/discards.html
[modify] https://crrev.com/1927f2842f9a62b120ff58272fc0fc4a7ad48756/chrome/browser/resources/discards/discards.js
[modify] https://crrev.com/1927f2842f9a62b120ff58272fc0fc4a7ad48756/chrome/browser/resources/discards/discards_tab.html
[modify] https://crrev.com/1927f2842f9a62b120ff58272fc0fc4a7ad48756/chrome/browser/resources/discards/discards_tab.js
[modify] https://crrev.com/1927f2842f9a62b120ff58272fc0fc4a7ad48756/chrome/browser/resources/discards/graph_tab_template.html
[add] https://crrev.com/1927f2842f9a62b120ff58272fc0fc4a7ad48756/chrome/browser/resources/discards/mojo_api.html
[modify] https://crrev.com/1927f2842f9a62b120ff58272fc0fc4a7ad48756/chrome/browser/ui/webui/discards/discards_ui.cc
[modify] https://crrev.com/1927f2842f9a62b120ff58272fc0fc4a7ad48756/chrome/test/data/webui/discards/discards_browsertest.js

Status: Fixed (was: Started)
The first cut implementation is in, I've filed another bug for improving the presentation...
Project Member

Comment 11 by bugdroid1@chromium.org, Nov 9

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

commit e826ee9592541ae9d53fd23c51761adf9df17cfc
Author: Sigurdur Asgeirsson <siggi@chromium.org>
Date: Fri Nov 09 14:35:01 2018

RC: Compress all chrome://discards resources.

I don't know whether to trust these numbers, but this is what I see
for my local Windows release 32 bit build.

Uncompressed:
3,034,139 browser_resources.pak
233,038,336 mini_installer.exe

Compressed:
2,869,382 browser_resources.pak
232,873,472 mini_installer.exe

Bug:  891310 
Change-Id: I3db92ad65afc97b80a9acfbd2fabf486739d7822
Reviewed-on: https://chromium-review.googlesource.com/c/1327406
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606833}
[modify] https://crrev.com/e826ee9592541ae9d53fd23c51761adf9df17cfc/chrome/browser/browser_resources.grd
[modify] https://crrev.com/e826ee9592541ae9d53fd23c51761adf9df17cfc/chrome/browser/ui/webui/discards/discards_ui.cc

Sign in to add a comment