Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "pdf/pdfium/pdfium_engine.h" | 5 #include "pdf/pdfium/pdfium_engine.h" |
| 6 | 6 |
| 7 #include <math.h> | 7 #include <math.h> |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 291 EnumFonts, | 291 EnumFonts, |
| 292 MapFont, | 292 MapFont, |
| 293 0, | 293 0, |
| 294 GetFontData, | 294 GetFontData, |
| 295 0, | 295 0, |
| 296 0, | 296 0, |
| 297 DeleteFont | 297 DeleteFont |
| 298 }; | 298 }; |
| 299 #endif // defined(OS_LINUX) | 299 #endif // defined(OS_LINUX) |
| 300 | 300 |
| 301 PDFiumEngine* g_engine_for_unsupported; | 301 PDFiumEngine* g_engine_for_unsupported = nullptr; |
| 302 | 302 |
| 303 void Unsupported_Handler(UNSUPPORT_INFO*, int type) { | 303 void Unsupported_Handler(UNSUPPORT_INFO*, int type) { |
| 304 if (!g_engine_for_unsupported) { | 304 if (!g_engine_for_unsupported) { |
| 305 NOTREACHED(); | 305 NOTREACHED(); |
| 306 return; | 306 return; |
| 307 } | 307 } |
| 308 | 308 |
| 309 g_engine_for_unsupported->UnsupportedFeature(type); | 309 g_engine_for_unsupported->UnsupportedFeature(type); |
| 310 } | 310 } |
| 311 | 311 |
| (...skipping 2072 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2384 } | 2384 } |
| 2385 | 2385 |
| 2386 CalculateVisiblePages(); | 2386 CalculateVisiblePages(); |
| 2387 if (document_size_ != old_document_size) | 2387 if (document_size_ != old_document_size) |
| 2388 client_->DocumentSizeUpdated(document_size_); | 2388 client_->DocumentSizeUpdated(document_size_); |
| 2389 } | 2389 } |
| 2390 | 2390 |
| 2391 void PDFiumEngine::LoadDocument() { | 2391 void PDFiumEngine::LoadDocument() { |
| 2392 // Check if the document is ready for loading. If it isn't just bail for now, | 2392 // Check if the document is ready for loading. If it isn't just bail for now, |
| 2393 // we will call LoadDocument() again later. | 2393 // we will call LoadDocument() again later. |
| 2394 if (!doc_ && !doc_loader_.IsDocumentComplete() && | 2394 if (!doc_ && !doc_loader_.IsDocumentComplete()) |
| 2395 !FPDFAvail_IsDocAvail(fpdf_availability_, &download_hints_)) { | |
|
Wei Li
2016/05/24 00:21:27
Should these conditions be ORed instead?
Lei Zhang
2016/05/25 17:16:36
No, we have to continue past this point to turn |d
| |
| 2396 return; | 2395 return; |
| 2397 } | 2396 |
| 2397 // Always call FPDFAvail_IsDocAvail() so PDFium initializes internal data | |
| 2398 // structures. | |
| 2399 if (!FPDFAvail_IsDocAvail(fpdf_availability_, &download_hints_)) | |
| 2400 return; | |
| 2398 | 2401 |
| 2399 // If we're in the middle of getting a password, just return. We will retry | 2402 // If we're in the middle of getting a password, just return. We will retry |
| 2400 // loading the document after we get the password anyway. | 2403 // loading the document after we get the password anyway. |
| 2401 if (getting_password_) | 2404 if (getting_password_) |
| 2402 return; | 2405 return; |
| 2403 | 2406 |
| 2404 ScopedUnsupportedFeature scoped_unsupported_feature(this); | 2407 ScopedUnsupportedFeature scoped_unsupported_feature(this); |
| 2405 bool needs_password = false; | 2408 bool needs_password = false; |
| 2406 if (TryLoadingDoc(false, std::string(), &needs_password)) { | 2409 if (TryLoadingDoc(false, std::string(), &needs_password)) { |
| 2407 ContinueLoadingDocument(false, std::string()); | 2410 ContinueLoadingDocument(false, std::string()); |
| (...skipping 1469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3877 FPDF_DOCUMENT doc = | 3880 FPDF_DOCUMENT doc = |
| 3878 FPDF_LoadMemDocument(pdf_buffer, pdf_buffer_size, nullptr); | 3881 FPDF_LoadMemDocument(pdf_buffer, pdf_buffer_size, nullptr); |
| 3879 if (!doc) | 3882 if (!doc) |
| 3880 return false; | 3883 return false; |
| 3881 bool success = FPDF_GetPageSizeByIndex(doc, page_number, width, height) != 0; | 3884 bool success = FPDF_GetPageSizeByIndex(doc, page_number, width, height) != 0; |
| 3882 FPDF_CloseDocument(doc); | 3885 FPDF_CloseDocument(doc); |
| 3883 return success; | 3886 return success; |
| 3884 } | 3887 } |
| 3885 | 3888 |
| 3886 } // namespace chrome_pdf | 3889 } // namespace chrome_pdf |
| OLD | NEW |