Index: pdf/pdfium/pdfium_engine.cc |
diff --git a/pdf/pdfium/pdfium_engine.cc b/pdf/pdfium/pdfium_engine.cc |
index 0528c94ecca007a1e58ec053c96689974027318d..39b27d8e4b21797970cd67a4fa46fd39aee16618 100644 |
--- a/pdf/pdfium/pdfium_engine.cc |
+++ b/pdf/pdfium/pdfium_engine.cc |
@@ -2597,12 +2597,13 @@ void PDFiumEngine::ContinueLoadingDocument( |
permissions_handler_revision_ = FPDF_GetSecurityHandlerRevision(doc_); |
if (!form_) { |
- // Only returns 0 when data isn't available. If form data is downloaded, or |
- // if this isn't a form, returns positive values. |
- if (!doc_loader_.IsDocumentComplete() && |
- !FPDFAvail_IsFormAvail(fpdf_availability_, &download_hints_)) { |
+ int form_status = |
+ FPDFAvail_IsFormAvail(fpdf_availability_, &download_hints_); |
+ bool doc_complete = doc_loader_.IsDocumentComplete(); |
+ // Try again if the data is not available and the document hasn't finished |
+ // downloading. |
+ if (form_status == PDF_FORM_NOTAVAIL && !doc_complete) |
return; |
- } |
form_ = FPDFDOC_InitFormFillEnvironment( |
doc_, static_cast<FPDF_FORMFILLINFO*>(this)); |