
Chromium, which is PDFium's embedder, provides callbacks to the latter. It is possible for PDFium to enter its own isolate before calling one of these callbacks, further creating the possibility of Chromium calling v8::Isolate::GetCurrent() and getting PDFium's isolate. Capture Chromium's isolate prior to passing the callbacks to PDFium, and enter it within each of the callbacks. Fixed: 1252212 Change-Id: I1f5036ca1e52a2ae67745795501828cf8659f758 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3183825 Auto-Submit: Daniel Hosseinian <dhoss@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: John Abd-El-Malek <jam@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: John Abd-El-Malek <jam@chromium.org> Cr-Commit-Position: refs/heads/main@{#928423}
//pdf
contains the PDF plugin, its Blink-based replacement, as well as PDF
utility functions that leverage PDFium. It can use low-level components that
live below the content layer, as well as other foundational code like
//printing
. It should not use //content
or anything in //components
that
lives above the content layer. Code that lives above the content layer should
live in //components/pdf
, or in the embedder. All the code here should run in
sandboxed child processes.
TODO(crbug.com/1220865): Remove existing //content
dependencies.