Update NewTabPagePreloadPipeline*::StartPrerender behavior This CL makes following changes similar to http://crrev.com/c/6857734 1. Introduce `NewTabPagePreloadPipelineManager::EnsurePipelineForUrl` which resets pipeline if url mismatches in `StartPrerender`. This guarantees a new pipeline or a pipeline with the same url. 2. Remove return value in `NewTabPagePreloadPipeline::StartPrerender` as the pipeline manager will not reset pipeline according to the trigger result anymore. 3. Due to mechanism in 1, if a `prerender_handle_` exists, it must have the same url. Remove `prerender_handle_->IsValid()` from the duplicate check condition in `NewTabPagePreloadPipeline::StartPrerender`. Behavioral change: 1. Before the changes `NewTabPagePreloadPipelineManager::StartPrerender` returns if pipeline is not null, now it creates a new pipeline if the given url is different. 2. `NewTabPagePreloadPipelineManager::StartPrerender` no longer resets pipeline according to the result of `NewTabPagePreloadPipeline::StartPrerender`. We expect that 2 doesn't affect user's experience. 1 changes the behavior for two mouseenters that don't contain mouseleave, but it's quite rare and safe. Bug: 421941586 Change-Id: I845f4fffc303672397be2d7dafcb240a16b3d275 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6865471 Commit-Queue: Huanpo Lin <robertlin@chromium.org> Reviewed-by: Ken Okada <kenoss@chromium.org> Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org> Cr-Commit-Position: refs/heads/main@{#1506885}
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.
To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.
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.
If you found a bug, please file it at https://crbug.com/new.