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 2269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2280 return -1; | 2280 return -1; |
2281 dest = FPDFBookmark_GetDest(doc_, bookmark); | 2281 dest = FPDFBookmark_GetDest(doc_, bookmark); |
2282 } | 2282 } |
2283 return dest ? FPDFDest_GetPageIndex(doc_, dest) : -1; | 2283 return dest ? FPDFDest_GetPageIndex(doc_, dest) : -1; |
2284 } | 2284 } |
2285 | 2285 |
2286 int PDFiumEngine::GetMostVisiblePage() { | 2286 int PDFiumEngine::GetMostVisiblePage() { |
2287 if (in_flight_visible_page_) | 2287 if (in_flight_visible_page_) |
2288 return *in_flight_visible_page_; | 2288 return *in_flight_visible_page_; |
2289 | 2289 |
| 2290 // We can call GetMostVisiblePage through a callback from PDFium. We have |
| 2291 // to defer the page deletion otherwise we could potentially delete the page |
| 2292 // that originated the calling JS request and destroy the objects that are |
| 2293 // currently being used. |
| 2294 defer_page_unload_ = true; |
2290 CalculateVisiblePages(); | 2295 CalculateVisiblePages(); |
| 2296 defer_page_unload_ = false; |
2291 return most_visible_page_; | 2297 return most_visible_page_; |
2292 } | 2298 } |
2293 | 2299 |
2294 pp::Rect PDFiumEngine::GetPageRect(int index) { | 2300 pp::Rect PDFiumEngine::GetPageRect(int index) { |
2295 pp::Rect rc(pages_[index]->rect()); | 2301 pp::Rect rc(pages_[index]->rect()); |
2296 rc.Inset(-kPageShadowLeft, -kPageShadowTop, | 2302 rc.Inset(-kPageShadowLeft, -kPageShadowTop, |
2297 -kPageShadowRight, -kPageShadowBottom); | 2303 -kPageShadowRight, -kPageShadowBottom); |
2298 return rc; | 2304 return rc; |
2299 } | 2305 } |
2300 | 2306 |
(...skipping 1674 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3975 FPDF_DOCUMENT doc = | 3981 FPDF_DOCUMENT doc = |
3976 FPDF_LoadMemDocument(pdf_buffer, pdf_buffer_size, nullptr); | 3982 FPDF_LoadMemDocument(pdf_buffer, pdf_buffer_size, nullptr); |
3977 if (!doc) | 3983 if (!doc) |
3978 return false; | 3984 return false; |
3979 bool success = FPDF_GetPageSizeByIndex(doc, page_number, width, height) != 0; | 3985 bool success = FPDF_GetPageSizeByIndex(doc, page_number, width, height) != 0; |
3980 FPDF_CloseDocument(doc); | 3986 FPDF_CloseDocument(doc); |
3981 return success; | 3987 return success; |
3982 } | 3988 } |
3983 | 3989 |
3984 } // namespace chrome_pdf | 3990 } // namespace chrome_pdf |
OLD | NEW |