Implement a memory limit for subframe process reuse. Currently, new out-of-process subframes will aggressively attempt to reuse any available process with a compatible ProcessLock. In certain situations, such as several tabs with heavy OOPIFs from the same site, this unrestricted reuse may lead to an overly large process that eventually runs out of memory. This CL adds a feature, SubframeProcessReuseThresholds, which applies a memory threshold for subframe process reuse. That is, a process will only be allowed to be reused for a new OOPIF if it hasn't reached a predefined, experiment-controlled memory threshold (with the default value of 2GB). Only the REUSE_PENDING_OR_COMMITTED_SITE_SUBFRAME reuse policy will be affected by this change. In the future, we may consider adding other restrictions on subframe process reuse, e.g. with heuristics such as the process's responsiveness. Bug: 40600119, 40259123 Change-Id: If43a3e2d02023cd91f8089b73bf03282b63b8f77 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5843350 Reviewed-by: Charlie Reis <creis@chromium.org> Commit-Queue: Alex Moshchuk <alexmos@chromium.org> Cr-Commit-Position: refs/heads/main@{#1354115}
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.