commit | 117531541461bf6954afb89bfc3a2d6ffb3a5721 | [log] [tgz] |
---|---|---|
author | Koji Ishii <kojii@chromium.org> | Mon May 25 17:30:27 2020 |
committer | Commit Bot <commit-bot@chromium.org> | Mon May 25 17:30:27 2020 |
tree | 09beb0d4fcf96a9d9bb7f8c0562765eb544ccd5f | |
parent | 074bd1be0c1139dafddb17d75f1f7e2dee431850 [diff] |
[FragmentItem] Make NGFragmentItem not a DisplayItemClient Making |NGFragmentItem| not a |DisplayItemClient| has two benefits: 1. Give a persistent |DisplayItemClientId| across multiple layout cycles. 2. Allow making |Vector<NGFragmentItem>| instead of |Vector<scoped_refptr<NGFragmentItem>>|, because a |Vector| of |DisplayItemClient| is not allowed. This change is expected to reduce the memory allocation cost, which is high for text-heavy pages. This patch is only for 1. The work for 2 will be in following patches. Still, this patch improves `blink_perf.paint/ paint-offset-changes` microbenchmark by ~10%: https://pinpoint-dot-chromeperf.appspot.com/job/15b8f60a120000 https://pinpoint-dot-chromeperf.appspot.com/job/14e61bb6120000 and slight positive changes to blink_perf.layout, probably due to simpler paint invalidations: https://pinpoint-dot-chromeperf.appspot.com/job/17d3126c120000 This patch is on top of following foudnation patches: * r770260 <crrev.com/c/2207948> supported |wtf_size_t| for fragment id. * r770637 <crrev.com/c/2209774> added |NGFragment:: FragmentId()|. Bug: 982194 Change-Id: I1cb5e2633bd591723632f1acb0cbb09ab4d77f83 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2208586 Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org> Reviewed-by: Yoshifumi Inoue <yosin@chromium.org> Reviewed-by: Morten Stenshorne <mstensho@chromium.org> Commit-Queue: Koji Ishii <kojii@chromium.org> Cr-Commit-Position: refs/heads/master@{#771601}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.