commit | 9369ded6b34c601980ee2ce94cfd0c8c97df8215 | [log] [tgz] |
---|---|---|
author | calamity <calamity@chromium.org> | Wed Sep 20 05:47:33 2017 |
committer | Commit Bot <commit-bot@chromium.org> | Wed Sep 20 05:47:33 2017 |
tree | 0832c10291011c0ea4dbad72cdb2d6debf3f03b7 | |
parent | 37e7759fea9965d238c9e709ea95bfdf58605953 [diff] |
Revert "Flatten ModuleTreeLinker" This reverts commit 5a168dfca798f0088b3257f21781a66b4132ba7b. Reason for revert: Seems to be breaking ModuleTreeLinkerTest.FetchTreeWith3Deps1Fail on: https://uberchromegw.corp.google.com/i/chromium.memory/builders/Linux%20TSan%20Tests/builds/11696 Original change's description: > Flatten ModuleTreeLinker > > 1. This CL applies the spec change by > https://github.com/whatwg/html/pull/2971. > Since [1], the code has already been behaving like the spec PR 2971, and this CL > makes the code align with PR 2971 more completely, by removing AncestorList > and adding spec comments. > > 2. This CL also flattens the code structure of ModuleTreeLinker, which is > enabled by the spec PR 2971, to make the code simpler to make further > optimizations easy. > That is, instead of creating a ModuleTreeLinker for each module script > (i.e. for each "fetch the descendants" call) in a module graph, this CL > creates a single ModuleTreeLinker that corresponds to a top-level module graph > script. > > Most of fetching-related classes/methods, including > - ModuleTreeLinker::DependencyModuleClient > - ModuleTreeLinker::FetchDescendants() > - ModuleTreeLinker::NotifyOneDescendantFinished() > are merged into the single method NotifyModuleLoadFinished() that implements > the main body of "fetch the descendants" and > "internal module script graph fetching procedure". > > This also removes ModuleTreeReachedUrlSet and instead uses HashSet<KURL> > directly, as we no longer have to share it across multiple ModuleTreeLinkers. > Modulator::FetchTreeInternal() is removed as we no longer create > ModuleTreeLinkers for subtree fetching via Modulator. > > 3. This CL applies a part of > https://github.com/whatwg/html/pull/2991, particularly introduces > FindFirstParseError() that corresponds to "find the first parse error" and > use it to find the error to be reported, instead of propagating errors > based on Step 6.1 and 6.2 of "fetch the descendants". > > (*) In some subtle cases, this might cause behavior changes in error reporting, > but these changes shouldn't be significant, because anyway the spec before > PR 2991 (and thus the previous implementation) behaves nondeterministically > in some similarly subtle cases. > > This CL is an intermediate step to apply spec PRs 2971 and 2991. > This CL refactors largely ModuleTreeLinker with keeping the existing behavior > mostly (except for (*)), and subsequent CLs will apply the behavior changes > and remaining code structure changes introduced by PR 2991. > > Bug: 763597 > Change-Id: I0ef38c5ebf462fa7f02093f1725ea0014b80585d > Reviewed-on: https://chromium-review.googlesource.com/583552 > Commit-Queue: Hiroshige Hayashizaki <hiroshige@chromium.org> > Reviewed-by: Kouhei Ueno <kouhei@chromium.org> > Cr-Commit-Position: refs/heads/master@{#503034} TBR=hiroshige@chromium.org,ksakamoto@chromium.org,kouhei@chromium.org,nhiroki@chromium.org Change-Id: I84c8f8f443bdbb1d5fbe8cb52d2cb513c7890d2c No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 763597 Reviewed-on: https://chromium-review.googlesource.com/674510 Reviewed-by: calamity <calamity@chromium.org> Commit-Queue: calamity <calamity@chromium.org> Cr-Commit-Position: refs/heads/master@{#503063}
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 .