New issue
Advanced search Search tips

Issue 910009 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 30
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 2
Type: Bug



Sign in to add a comment

Large PDF refuses to render in Chrome

Reported by ian@ian.sh, Nov 29

Issue description

Chrome Version       : 70.0.3538.110
OS Version: OS X 10.14.1
URLs (if applicable) : https://www.delta.com/content/dam/delta-www/pdfs/flight_schedules.pdf
Other browsers tested:
  Add OK or FAIL after other browsers where you have tested this issue:
     Safari: OK
    Firefox:
    IE/Edge:

What steps will reproduce the problem?
1. Go to the listed URL and attempt to have Chrome render the PDF.
2. See it fail out very quickly.
3.

What is the expected result?
The PDF renders.

What happens instead of that?
The PDF errors out.

Please provide any additional information below. Attach a screenshot if
possible.

The PDF is pretty massive, so I imagine that's part of the issue.

UserAgentString: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36



 
Bisected to r576004 "Roll src/third_party/pdfium 89063ecda876..30688fb1c434 (4 commits)"
No idea what commit to suspect inside since all are related to the parser.
Landed in 69.0.3496.0

BTW, Chrome spends several seconds to open it on a fast computer (i7 4.4 GHz, 32MB RAM, SSD), but Adobe Acrobat does it in half a second, and SumatraPDF in like 100ms, which is virtually instantaneous. Apparently, Chrome loads the entire file, which shouldn't be necessary to display the first few visible pages.
Components: Internals>Plugins>PDF
Cc: art-sn...@yandex-team.ru
Labels: -Pri-3 OS-Chrome OS-Linux OS-Windows Pri-2
Status: Untriaged (was: Unconfirmed)
In debug builds, this causes an assertion failure in CPDF_CrossRefTable::AddCompressed().
Owner: thestig@chromium.org
Status: Assigned (was: Untriaged)
https://pdfium.googlesource.com/pdfium.git/+/30688fb1 added some sanity checks, and now they are failing. The sanity check is for object numbers in the PDF vs the limit:

// A limit on the maximum object number in the xref table. Theoretical limits
// are higher, but this may be large enough in practice.
static const uint32_t kMaxObjectNumber = 1048576;

This PDF has an object numbered 1713470. It probably does not have 1713470 objects, but the numbers can be non-consecutive. I'll just bump it up for now.
Project Member

Comment 6 by bugdroid1@chromium.org, Nov 30

The following revision refers to this bug:
  https://pdfium.googlesource.com/pdfium/+/590cc0adffd85b7c3415f9f1b03a5355fef665d5

commit 590cc0adffd85b7c3415f9f1b03a5355fef665d5
Author: Lei Zhang <thestig@chromium.org>
Date: Thu Nov 29 23:59:31 2018

Bump up |kMaxObjectNumber|.

Its current value does not work for some PDFs in the wild.

BUG= chromium:910009 

Change-Id: I186111ee356bb8b8213ff6bd2505236895a9fe3c
Reviewed-on: https://pdfium-review.googlesource.com/c/46090
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>

[modify] https://crrev.com/590cc0adffd85b7c3415f9f1b03a5355fef665d5/core/fpdfapi/parser/cpdf_parser.h

Status: Fixed (was: Assigned)
Will be fixed on Canary channel in a day or two. Fix will reach users in either Chrome 72 or 73.
Project Member

Comment 8 by bugdroid1@chromium.org, Nov 30

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/38c448a6131c6808c935fa8e79027872b96f34af

commit 38c448a6131c6808c935fa8e79027872b96f34af
Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Date: Fri Nov 30 03:57:33 2018

Roll src/third_party/pdfium f737d4bdb38d..75a486e0a03a (4 commits)

https://pdfium.googlesource.com/pdfium.git/+log/f737d4bdb38d..75a486e0a03a


git log f737d4bdb38d..75a486e0a03a --date=short --no-merges --format='%ad %ae %s'
2018-11-30 thestig@chromium.org Export defines to dependents of the "pdfium" target.
2018-11-29 thestig@chromium.org Bump up |kMaxObjectNumber|.
2018-11-29 thestig@chromium.org Make CBC_SymbolInfo::Lookup() return a const pointer.
2018-11-29 thestig@chromium.org Fix WideString() vs {} confusion in fxbarcode.


Created with:
  gclient setdep -r src/third_party/pdfium@75a486e0a03a

The AutoRoll server is located here: https://autoroll.skia.org/r/pdfium-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.



BUG= chromium:910009 , chromium:910198 
TBR=dsinclair@chromium.org

Change-Id: I84cd9d7ccecc0acb72b8e8fe91394b486affea8f
Reviewed-on: https://chromium-review.googlesource.com/c/1356130
Reviewed-by: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#612552}
[modify] https://crrev.com/38c448a6131c6808c935fa8e79027872b96f34af/DEPS

Will be fixed in Chrome 73.

Sign in to add a comment