DescriptionTransfer v8 snapshot files as file descriptors to child processes on Posix.
An update on Chrome could replace the V8 snapshot files with newer version.
For zygoted processes this is OK because the zygote will have already mapped
the V8 snapshot and thus child processes will use the correct version of the
snapshot. However, for processes which don't use the zygote (such as
unsandboxed plugin processes) base::LaunchProcess will launch the old
version of he Chrome binary (via /proc/self/exe on Linux), but the child will
read the new version of the V8 snapshot, thus causing a crash due to a
version mismatch.
The fix is to load V8 snapshot file in the browser and pass a file descriptor to
the child processes (much like Android already did, but for different reasons).
This ensures that the child process always sees the correct version of the
snapshot file.
BUG=457656, 461057
Committed: https://crrev.com/3fb072718b5ff38aa9c34d8d5160404aa2ad50a5
Cr-Commit-Position: refs/heads/master@{#317790}
Patch Set 1 #Patch Set 2 : Add file mapping to content/shell #Patch Set 3 : Tidy up #
Total comments: 1
Patch Set 4 : Fix android content_browsertests and android webview #Patch Set 5 : Only get region when descriptor is set. #Patch Set 6 : Fix iOS #
Messages
Total messages: 17 (5 generated)
|