PdfViewWebPlugin: Clear dangling
Enabling MiraclePtr in the renderer process surfaced a transient dangling pointer between two members of `PdfViewWebPlugin`. This can be seen by running the `browser_tests` suite on `linux-chromeos-rel` in these two tests: * `PrintBrowserTest.MultipagePrint` * `SitePerProcessPrintBrowserTest.MultipagePrint` Bug: 1444624 Change-Id: I4b16db941f7f46276f605927dcc287f7534defe0 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4918733 Reviewed-by: Nigi <nigi@chromium.org> Commit-Queue: Kalvin Lee <kdlee@chromium.org> Cr-Commit-Position: refs/heads/main@{#1207453}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
16fa408e4f
commit
712b3f65f6
@ -2290,6 +2290,12 @@ void PdfViewWebPlugin::LoadAvailablePreviewPage() {
|
||||
void PdfViewWebPlugin::DidOpenPreview(std::unique_ptr<UrlLoader> loader,
|
||||
int32_t result) {
|
||||
DCHECK_EQ(result, kSuccess);
|
||||
|
||||
// `preview_engine_` holds a `raw_ptr` to `preview_client_`.
|
||||
// We need to explicitly destroy it before clobbering
|
||||
// `preview_client_` to dodge lifetime issues.
|
||||
preview_engine_.reset();
|
||||
|
||||
preview_client_ = std::make_unique<PreviewModeClient>(this);
|
||||
preview_engine_ = client_->CreateEngine(
|
||||
preview_client_.get(), PDFiumFormFiller::ScriptOption::kNoJavaScript);
|
||||
|
Reference in New Issue
Block a user