Skip to content

3.0.0b1

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 24 Sep 16:26
· 619 commits to main since this release

Changes (Release 3.0.0b1)

Summary (pypdfium2)

  • Support model

    API-breaking changes

    • If the target page of a bookmark cannot be identified, OutlineItem.page_index is now None rather than -1, to avoid accidental reverse list indexing and to enforce that callers properly handle this case. Moreover, OutlineItem.is_closed is now None rather than False if the bookmark has no kids.
    • PdfPageObject.get_type() was replaced with a type attribute.
    • PdfPage.count_objects() was removed. Use PdfPage.get_objects() or the raw PDFium API instead.
    • If a negative index is passed to PdfDocument.new_page(), it is now interpreted in reversed direction, rather than inserting at the beginning.
    • PDFium is now provided with an external, python-allocated buffer for rendering. This has numerous advantages, most notably that callers don't need to free resources anymore. PdfPage.render_base() now directly returns a ctypes ubyte array; BitmapDataHolder has been removed.
    • Changed rendering parameters
      • annotations was renamed to draw_annots
      • colour was renamed to fill_colour and now only takes a list of 4 values for simplicity - it may not be 3 values or None anymore
      • no_antialias has been replaced with separate boolean options no_smoothtext, no_smoothimage, and no_smoothpath

    Other changes

    • OutlineItem now contains information on the number of sub-items (n_kids attribute).
    • All document-level methods that take a page index now accept negative values for reverse indexing (except the rendering methods).
    • New method PdfDocument.get_page_size() to retrieve page size by index without needing to load a PdfPage (uses FPDF_GetPageSizeByIndexF() under the hood).
    • New rendering parameters added: colour_scheme, fill_to_stroke, force_halftone, draw_forms, rev_byteorder, prefer_bgrx, force_bitmap_format, extra_flags, allocator, and memory_limit.
    • Added new render_to() functions to PdfPage and PdfDocument that take a custom bitmap converter, to transform the ctypes array to a different object. A set of built-in converters is provided with the BitmapConv class. Confer the updated API documentation for details. The previous rendering functions (render_topil() render_tobytes(), ...) are still around as aliases but might be deprecated eventually.
    • New rendering target numpy_ndarray added.
    • The pil_image rendering target now accepts a prefer_la parameter to request automatic conversion of BGRA/RGBA to LA if rendering in greyscale mode with alpha channel.
    • PdfPage.get_objects() can now recursively descend into Form XObjects.
    • Form environments are now initialised/exited on document level rather than on page rendering. In the course of this work, a segmentation fault source was eliminated, related to a formerly undocumented requirement of PDFium regarding object lifetime. Whether the segmentation fault would actually take place was dependent on Python garbage collection behaviour. This did not appear to happen under normal circumstances, so the issue remained unnoticed for a long time.
  • Setup code

    • $PYP_TARGET_PLATFORM was renamed to $PDFIUM_BINARY, the value sdist was renamed to none.
    • When doing an automatic release, repository changes are now only pushed after successful wheel building, to avoid leaving the repository in an invalid state in case some earlier step fails.
    • pypdfium2 now declares a no-op setuptools extension to prevent wheel content from landing in a purelib folder. Some systems use this information to separate platform-dependent packages from pure-python packages (i. e. /usr/lib64 instead of /usr/lib). Confer PEP 427.
    • Autorelease now properly takes existing beta tags into account for its version changes.
    • PDFium's commit log is now shown with GitHub releases.
    • The wheel packaging script now restores in-tree artefacts from a possible editable install.
    • Platform files are now detected in a more robust way. If missing, a proper exception will be raised.
    • Platform data directories are now annotated with a text file storing the pdfium version, to prevent a possible mismatch between the state of version.py and the actual version of the used binary. The update and build scripts do not directly change the main version file anymore, but defer the changes to setup.py.
    • Missing platform files are now always procured implicitly on installation. If platform files exist already but are outdated, they will be updated by default. You may opt out by creating an empty file called .lock_autoupdate.txt in data/.
    • A MANIFEST.in file was added to avoid being dependent on setuptools_scm.
    • On setup, dependency checks are now only done for system commands. The wonky implicit installation of missing Python packages was removed. If opting out of build isolation, callers should properly install setup dependencies beforehand.
  • Documentation

    • Rewrote the project's README.md. Added more support model examples and an extensive guide regarding the raw PDFium/ctypes API.
    • Improved docstrings and included type hints.
pypdfium2 commit log

Commits between 2.11.0 and 3.0.0b1 (latest commit first):

  • 03b379f [autorelease] update changelog and version file
  • 75b972c update_pdfium: make max_workers configurable
  • 69a0b77 autorelease: nevermind, always include the log
  • 76fc08e Finalise changelog_staging
  • 21dc9b0 Misc improvements
  • b02b67b workflow: re-activate schedule
  • 0378257 Slightly improve converter docs
  • 6a24cc4 Revert "textpage: replace count_chars() with char_count attribute"
  • 7f2e9ff Update some docs
  • 18221b4 readme: suggest using get_functype()
  • 1b8d7f1 tocprinter: avoid some variable assignments
  • ff52551 Update tasks
  • 6d00654 Make most of _utils.py public
  • 2c82267 readme: fix use of non-public member
  • cc70047 utils: rename bg_colour to fill_colour
  • d960830 Rename back from color to colour
  • 69c780f rendering: rework colour integration
  • 26bf175 textpage: replace count_chars() with char_count attribute
  • 038feb2 Improve string decoding
  • 6b14960 docs: decide not to deprecate render_to* methods just yet
  • 97d2243 Update rendering CLI
  • fc736ec auto_bitmap_format(): flatten if/else tree
  • c44d81a multipage renderer: add missing close() calls
  • f8608e8 Set OutlineItem.is_closed to None if it has no kids
  • 1f2b75b toc/OutlineItem: Add n_kids attribute
  • 1093579 Provide means to plug in custom converters (#140)
  • e513026 render_topil: use frombuffer() rather than frombytes()
  • d17cffd autorelease: make commit log collapsible
  • 9d4a3fc autorelease: allow skipping commit log
  • 3df1533 autorelease: improve changelog handling for beta release
  • 101ca5e document: add page index validation for rendering
  • 05d7549 docs: better integrate new allocator parameter
  • 013917c render_page: always fill the bitmap
  • 580e1e1 page/render_base: accept a caller-provided allocator
  • 1b9643f readme/development: add tasks
  • e953d7c Merge pull request #139 from pypdfium2-team/readme
  • e9cc218 Add initial development section
  • 5774cfd correct docs for PdfPage.get_objects()
  • 06543ab changelog: note removal of PdfPage.count_objects()
  • 20413eb docs: improve attribute documentation
  • d81ac2c docs: update index.rst
  • 03d1bde Merge pull request #138 from pypdfium2-team/setupinfra
  • 0049bfb Readme: use named footnotes
  • eff97a1 check_deps: just check for missing commands
  • aa7e7c6 fix excessive whitespace
  • 9de1236 update build.sh
  • afbc0d7 update changelog/tasks
  • 8d31b6a update manifest/setup.cfg
  • 66453fe update changelog
  • d2cfcc9 improve pageobjects testing
  • 3f03597 PdfPage.get_objects(): lower default depth to 2
  • 628b4c3 toc: adjust code to match pattern of PdfPage.get_objects()
  • dac4d6c pageobjects: descend into form objects
  • adb4294 Remove presetup_done legacy
  • 3344ee8 Rid project of setuptools_scm dependency
  • d676833 Do a beta update anyway
  • 60df3a8 check_deps: raise exception instead of implicit install
  • cc2e4e9 skip unnecessary version changes
  • bbede3b readme: normalise footnotes
  • 76e1c0d setup.py: fix oversight
  • dc224a1 Update readme
  • 62367d1 Slightly simplify some setup code
  • 4d564ff Rename craft_packages to craft_wheels
  • 05d5fb0 Update tasks
  • 69bccf0 readme: extend In Use section
  • 4060b73 Decide we don't want a beta release
  • e06048b Start editing the Readme
  • 73cbfa4 Add a few code comments
  • 5849e09 Update changelog and tasks
  • 8bf49c4 Check in first attempt for version status files
  • 98815b8 Autorelease: r/w version file only once
  • 53cdcbb Void version test code
  • e5ed0ba Start writing version status files
  • a472366 declare extension module differently
  • d51ccf9 Make clean_artefacts() nicer
  • 4c8b832 preparations for separate version status files
  • c4014a1 Update readme/changelog
  • fd019ba craft_packages: restore in-tree artefacts from editable install
  • 6fd99e7 rename a parameter of call_ctypesgen()
  • 053fa9f Improve libnames logic
  • 8687c37 Move away from dependency pinning anyway
  • 5c53604 Harden copy_platfiles()
  • 79d51d8 Start setup work
  • 337f1ee Update tasks
  • 253df27 Fix using similar word with wrong meaning
  • 34b03de Add inline tasks
  • 51929e7 Correct wrong docstring
  • 455e556 Update rendering CLI
  • 41a0b1a update_pdfium: preparations for calling ctypesgen only once
  • 2e49825 update_pdfium: by default, abort in case of missing binaries
  • ddda5da update_pdfium: accept auto for current host platform
  • af8e48c Move some components from packaging_base to setup_base
  • 5aeda24 update tasks
  • b772b7c Page-related improvements
  • 626d59c Change pattern of optional imports
  • 4b675eb readme: update toc example
  • 8956e70 Update changelog
  • 4cd7d4c Add proper color validation
  • ac68204 Finish struct fields topic
  • f921025 readme[in use]: add Arabic-OCR
  • 52f0fef Don't pass through git/ctypesgen executables
  • 6a6c7a9 readme: add missing word
  • 8a93813 autorelease: handle existing beta tags correctly
  • 6e46a22 Update tasks
  • 6bbcc90 Add tasks concerning uninitialized struct fields
  • 6ee94e9 Remove superfluous empty line
  • 03c50be Minor doc improvements
  • d7bd975 Use FPDF_InitLibrary() anyway
  • 030bd72 Fix some documentation oversights
  • 92cd1c8 readme: minor improvements again
  • 5f18040 Construct numpy arrays differently (#133)
  • ef1f2ad Prefer explicit encoding of strings
  • 56524ec readme: slightly improve a phrase
  • 4cded8c Further Readme improvements (#132)
  • 1d9825f readme: remove form rendering from example
  • e9adc16 wheel tags: adjust minimum required macOS version
  • 0d6f2e9 Reformat changelog_staging
  • d8c7ef3 docs: improve warning regarding thread unsafety
  • 0eac03f Update changelog
  • f44b6ad exit_formenv: stylistic swap
  • 853eb78 rendering: add test case
  • 20a436a Create a separate exit_formenv() method
  • 3500197 Move form environment from page rendering to document level (#130)
  • 36c95aa CLI: minor style improvements
  • 30d1222 font: hold reference to pdf
  • 015cb2f Fix another init inconsistency
  • 2f212c2 Fix typo and update .reuse/dep5
  • 52e7ee3 Improve consistency of helper class init
  • 894d555 PdfPageObject: hold a reference to the corresponding page
  • ff470b4 Slightly improve forminfo creation
  • 33f7966 Initialise form environment differently
  • 1cef257 Add documentation for public attributes
  • 5dec9ba Remove internal aliases for underlying pdfium objects
  • 48f875a rendering: order parameters
  • b49681e ColorScheme: add docs
  • 0096ab8 Improvements for rendering with custom colour scheme (#126)
  • 4745916 rendering/colourscheme: add task
  • 6ee94d4 Adapt rendering cli
  • b8dc7c6 Experimental rendering with custom colour scheme
  • 6d81f57 PdfDocument.save(): declare interface version
  • acb1508 Split up colour functions as planned
  • 69e5494 update tasks
  • 9970e58 utils: add task
  • 25a0e2e Update changelog
  • 13d31f8 minor style improvements
  • 88010bb Add further numpy rendering test case
  • 7c4285c Add methods for rendering to numpy arrays
  • 0f6f3cc page/renderers: take only keyword arguments
  • bd869c5 Fix typos
  • d36aef6 readme: update rendering example
  • 5d858f2 Restructure page rendering and related utilities (#125)
  • 451f275 HostPlatform: rename platform attribute to plat_info
  • 3de1e8e Implement no_antialias rendering param differently
  • 2583618 OutlineItem: improve docs for page_index
  • 265ebe9 document: add info about exceptions
  • d44bf55 Internalise raise_error() code into opener as planned
  • d59bd3b Update changelog_staging
  • d59ad6e Implement planned PdfDocument.get_toc() change
  • c1b3409 Change typing.Optional[type] to type | None in docstrings
  • 1056e79 Decide that the next release will increment major version
  • b4662fd HostPlatform: add defaults for libc / is_glibc
  • 2a3eb38 setup.py: slightly rearrange a code passage
  • 9cfaab9 autorelease: check for pypdfium2 code updates
  • 1414ff7 Fix reuse compliance
  • 973efe7 Continue addressing setup code tasks
  • 7d5cd9c Update changelog
  • 6652365 Rewrite setup.py and move HostPlatform into packaging_base
  • 1eadf49 Add inline tasks
  • bf06496 Pass through ctypesgen executable as well
  • 46c1f97 Rearrange some setup code
  • 61e070a Update changelog
  • e18de79 workflow: stop passing removed flag to autorelease
  • 72a74c7 Add .git suffix to depot_tools URL
  • 367b55e Render with external buffer and remove BitmapDataHolder
  • b42b5a4 update tasks
  • 682557b readme: add another project that uses pypdfium2
  • ec2dc82 craft_packages: add another task
  • e22aaaa autorelease: slightly improve import style
  • b61c2d0 install newer version of wheel anyway
  • ad1fd00 craft_packages: turn comment into task
  • dfc40bc autorelease: always do a new clone of pdfium
  • 7ca6c8c update_pdfium: add task
  • fba8b43 autorelease: further improve log
  • 3a2524f autorelease: only add PDFium log if V_LIBPDFIUM is actually updated
  • feceeb1 readme: swap two examples
  • 0d0f689 readme: slightly improve wording
  • c964276 autorelease: add pdfium commit log
  • 2a61322 autorelease: rename some variables
  • 2d1bf27 autorelease/workflow: only push after successful wheel building
  • 4a1294a Rework dependency pinning
  • 8b41759 Apply suggestions from previous commit
  • 6907ddf Rewrite README.md and improve code quality on the way (#122)
PDFium commit log

Commits between 5254 and 5316 (latest commit first):

  • 2ed2550ad Create testing command line helpers
  • 1279e11ea Provide an escape hatch for structs in Data Partition
  • 5ccd10bce Change CPDF_TextPage::m_CharIndices to be a struct.
  • 7a92ada7c Remove dead code in CPDF_TextPage::Init().
  • 623ac7b75 Refactor remaining test for runtime renderer selection
  • 91e2a1466 Add a flag for selecting renderer at runtime
  • d9ccef469 Store retained object keys in all CPDF_DocPageData maps.
  • 2c1b81c30 Return retained refs from CPDF_IndirectObjectHolder::NewIndirect().
  • 7037a48eb Remove assignment to RetainPtr from raw T* types.
  • 36421c60d Store retained streams in CPDF_DocPageData::m_FontFileMap.
  • 495f91ded Use FixedUninitDataVectors in CPDF_TransferFunc.
  • a73aa34df Roll v8/ 278633dc7..340416187 (254 commits)
  • 5313f926c Return retained references from CPDF_Dictionary::GetDictFor().
  • bd8a0e475 [Skia] Fix the issue that some images are not rendered smooth
  • c84dc1f9e Return retained references from CPDF_Dictionary::GetArrayFor().
  • d20b2f05f Add missing bounds check in FPDFFont_GetGlyphPath().
  • 55c78b079 Re-introduce CPDF_{Array,Dictionary}::GetStringAt().
  • 3f90d431a Return retained references from CPDF_Dictionary::GetObjectFor()
  • 1219d0acc Allow implicit convestion from FixedUninitDataVector<> to span<>
  • 89b87842c Shuffle for-loop in CPDF_DocRenderData::CreateTransferFunc().
  • 28906822d Rename variables in CPDF_Parser::ParseAndAppendCrossRefSubsectionData().
  • 0f304633b Add IFX_WriteStream::WriteSpan().
  • 0e723c531 Explicitly allow IFX_WriteStream::WriteBlock() calls with size of 0.
  • 908d34cfe Test RetainPtr with pdfium::Contains().
  • c79ca1311 Reduce some ref-churn when using CPDF_References.
  • d8ede5f8d Align fax encoder interface with JPEG encoder interface.
  • a416d84ee Return retained objects from CPDF_Object::GetDict()
  • 30031534c De-virtualize CPDF_IndirectObjectHolder::GetOrParseIndirectObject().
  • bd17761f7 Re-work string template constructors
  • f929f2ffb Add FPDFAnnot_GetFormAdditionalActionJavaScript() API
  • 8e1d839bc Reland "Use DataVector in CFX_MemoryStream."
  • a52ea7f7b Copy data in CPDF_SyntaxParser::ReadStream().
  • e4022a837 Add a test case for CFX_MemoryStream::{Read,Write}BlockAtOffset().
  • e10b8b664 DEPS-in PartitionAlloc to PDFium
  • 3c226cd17 Remove dead code in CFX_FileBufferArchive.
  • be937bf25 Replace Vector2D with Fx2DSizeOrDie().
  • d89483740 Use FixedUninitDataVector in CFX_FontMapper and CFX_FontMgr.
  • 45d721018 Add a FixedUninitDataVector container.
  • e44f16772 Fill in runtime renderer check
  • e6e3ca05a [skia] Clean up empty skopts variables
  • f41b8f6e9 [Skia] Remove mask_array.pdf from the suppression list
  • 937972960 Use CFX_DIBBase::GetPitch() in CFX_PSRenderer.
  • 569024734 Rename CPDF_Array::GetStringAt() to GetByteStringAt()
  • 27151a6c7 Rename CPDF_Dictionary::GetStringFor() to GetByteStringFor()
  • ae8ba7e15 Revert Array/Dictionary locker Get*() methods
  • bd9316553 Convert some CPDF_ExpIntFunc getters to return spans.
  • 23705d987 Make CPDF_StreamAcc take retained arguments.
  • 99e6ab14e Add additional dictionary locker methods.
  • 4df8e905e Prefer fabsf() over static_cast(fabs()).
  • e5a22f326 Move the Skia-only code into a separate function
  • e50f95a3c Move a condition check in CStretchEngine to a static function
  • dd063d0eb Reduce copying in fxbarcode.
  • f01189dad Improve fxbarcode matrix classes.
  • f5406e512 Add a regression test case to StreamAccTest.
  • f979a14da Add a WriteRect() helper to cpdf_contentstream_write_utils.h.
  • 07ef29a27 Add a libcxx_revision presubmit check.
  • 3f42f8180 Revert "Use DataVector in CFX_FontMapper and CFX_FontMgr."
  • 6cc858e62 Revert "Use DataVector in CFX_MemoryStream."
  • 638c69c8f Fix member destruction order in CPDF_StreamAcc.
  • 652d35bec Return retained object from CPDF_Dictionary::GetStreamFor().
  • 3f3305e25 Add a pixel test for incorrect text rendering on macOS.
  • 1ec9e6865 Add CPDF_Array::GetNumberAt() helper method
  • 3b886ba98 Rename CPDF_Array::GetNumberAt() to GetFloatAt().
  • 27bb94d6b Add CPDF_Dictionary::GetNumberFor() helper method
  • da4072305 Rename CPDF_Dictionary::GetNumberFor() to GetFloatFor().
  • c844131cb Roll buildtools and libc++
  • 0ceda736b Use CPDF_DictionaryLocker in CPDF_GenerateAP
  • d985207ec Make Dictionary and Array lockers more useful
  • 4f8b26512 Support runtime renderer selection in CFDETextOutLargeBitmapTest.
  • 8bdbd2c58 Roll third_party/freetype/src/ 1a242558b..8e68439a6 (41 commits)
  • 612da3fdd Roll tools/clang, build, buildtools and libc++
  • a015667fd Use DataVector in CFX_MemoryStream.
  • 530f0500f Use DataVector in CFX_FontMapper and CFX_FontMgr.
  • f00bbebca Roll v8/ 709443dcb..278633dc7 (599 commits)
  • a60b5c53b Use spans in BasicModule::A85Encode().
  • 72389a3b6 Use spans in BasicModule::RunLengthEncode().
  • e0dcb6bcd Return retained reference from CPDF_Dictionary::GetDirectObjectFor().
  • c43b78543 Return const pointer from CPDF_Stream::GetInMemoryRawData().
  • d9dbe513f Use more spans inside FaxModule.
  • d8db3048d Convert BinaryBuffer to store a DataVector.
  • 067421809 Change FaxModule::FaxEncode() to use DataVector.
  • b39d4807a Convert BasicModule::A85Encode() to use DataVector.
  • cf28202ba Return even more retained objects from CPDF_Array getters.
  • 24c54b653 Avoid a potential copy in CPDF_ObjectStream.
  • 219be71e2 Use DataVector in CPDF_FlateEncoder.
  • c14b89a8d Return more retained objects from CPDF_Array getters.
  • 085c2632b Make size types more consistent within FlateModule.
  • 105670a2f Avoid null-deref in CJX_Node::model.
  • 8fcb85579 Ensure FxAllocAllocator<> only allocates ordinary data.
  • e3e7fc0d4 Return retained objects from indirect object holder, part 3.
  • c3ff4188b Pass more retained references into CPDF_ObjectWalker.
  • 65f7bed26 Return retained results from CPDF_ObjectWalker::GetNext()
  • ad039f8a5 Roll Catapult from 1c7fc8f4bdb8 to 7ee071132a53 (32 revisions)
  • ad110e56b Roll Code Coverage from cd81494a2f49 to 06c29fb95a45 (2 revisions)
  • 524e53d7c [Skia] Set the correct group knockout status for fill-and-stroke paths
  • 3a5aefe1c De-virtualize CPDF_Object::Is*() methods
  • 274fce6e8 Make CPDF_StreamAcc::GetData() private.
  • c8fb3fb87 Return const pointer from CPDF_StreamAcc::GetData().
  • 8c0b6c1c0 De-virtualize const forms of CPDF_Object::As*()
  • d6daaedda Split CPDF_Object::As*() into mutable and non-mutable varieties.
  • a02e22a45 Remove non-const version of CPDF_StreamAcc::GetSpan().
  • 6c2c66b17 Return retained objects from indirect object holder, part 2.
  • 70df5d0cc Return retained objects from the indirect object holder, part 1.
  • 8ef3b24ed Document a FPDFDOC_InitFormFillEnvironment() lifetime requirement.
  • a02871ee4 Remove references to empty Skia files
  • 29fdb775d Roll buildtools/third_party/libc++/trunk/ 88bf40704..84f06932d (228 commits)
  • c1997e165 Return CPDF_Reference from CPDF_Object::MakeReference()
  • a2ea597e7 Avoid ambiguity in RetainPtr<> constructors
  • 779b542c6 Keep track of objects in name tree traversals.
  • 6a3f7ed9e Improve first page object number validation in a linearized header.
  • 2f9d9ed70 Roll buildtools, libc++ and abseil-cpp.
  • cf5411ae3 Remove mutability from CPDF_FileSpec
  • ab8c6ce15 Update gn_version to 00b741b1568d56cf4e117dcb9f70cd42653b4c78
  • b01ac3667 Roll buildtools/third_party/libc++/trunk/ b1269813e..b1d4c7dbe (64 commits)
  • 01a7dfe21 Roll build/ 26f8da347..918b804ee (140 commits; 1 trivial rolls)
  • 435a50873 Remove unused non-const form of CPDF_Object::SafeGetDirect()
  • 3ea81de1d Add two more RetainPtr tests.
  • fffda1d36 Avoid ref-churn when move conversion constructing RetainPtrs
  • b14660cb0 Roll third_party/abseil-cpp/ 62a4d6866..fd07f9469 (4 commits)
  • cd807b610 Roll tools/clang/ c8f1e5e5b..3d8d88e8b (4 commits)
  • d51720c9b Return retained const objects from SearchNameNodeByNameInternal()
  • fbf605544 Roll third_party/freetype/src/ 2db58e061..1a242558b (8 commits)
  • 48c2e6905 Add new kConstants for form controls
  • 81ab3354f Enforce maximum legal object number during linearized parses.
  • 39da1f7a1 Roll buildtools/third_party/libunwind/trunk/ 012c3438e..42aa6de55 (10 commits)
  • fe847b545 Roll Fuchsia SDK from 9.20220729.1.1 to 9.20220830.0.1.
  • e8977dea9 Roll buildtools/third_party/libc++abi/trunk/ 039323b94..48afced8a (6 commits)
  • 589de03fe Roll third_party/depot_tools/ 5fb99f65c..3528d4d3c (47 commits; 5 trivial rolls)
  • bc09eb274 Roll base/trace_event/common/ d115b033c..640fc6dc8 (3 commits)
  • fc2a16f18 Roll third_party/zlib/ c4e126880..926ac230d (2 commits)
  • 6a0caf018 Roll third_party/skia/ 3605b5fd7..73fb58ce0 (544 commits)
  • 46b0bfdea Roll tools/memory/ 41d69d665..e5f1a8a76 (2 commits)
  • ff6bd1821 Roll third_party/icu/ 50ec7b382..bbdc7d893 (4 commits)
  • 47a82db41 Pass spans to CFX_FloatRect::GetBBox()
  • 551eb6914 Avoid pointer arithmetic in CFX_FileBufferArchive
  • 5e49f9ccc Add runtime renderer checks
  • ef3036859 Refactor embeddertest constants for runtime renderer selection
  • 340bbcf10 Fix a malloc size error in OpenJPEG.
  • 8479a083a Fix bad probe on span assignment operator.
  • c9c2180c8 Avoid pointer arithmetic in cpdf_streamparser.cpp
  • 7fa683297 Use spans in place of pointers in fx_font.cpp
  • c3451daff Give PDFium's top-level build a "default" group
  • f75272cce Refactor fpdf_view_embeddertest for runtime renderer selection
  • ef51a2d87 Use Substr() in cpdf_syntax_parser.cpp
  • 9605f2f9c Vastly simplify CPDF_Type3Cache::m_SizeMap
  • ee2616e99 Refactor fpdf_ppo_embeddertest for runtime renderer selection
  • a7c6ff71d Avoid pointer arithmetic in FindFullName().
  • 322c87c3e Refactor fpdf_transformpage_embeddertest for runtime renderer selection
  • b588d237d Avoid pointer arithmetic in cfx_datetime.cpp
  • 6c759cd2f Avoid pointer arithmetic in RemoveAllHighLights().
  • 2a9c98c93 [Skia] Enable FPDFEditEmbedderTest.GetRenderedBitmapHandlesSMask
  • 2db19d607 [Skia] Convert Skia rendering results into an unpremultiplied format.
  • a7adcb62c Re-work some HasCurrentViewRecord() calls.
  • f28915d98 Make GetCurrentViewRecord() safe even when at end().
  • 0d76a139d Avoid de-referencing end() in GetNextAvailContentHeight().
  • f27b228d6 Update some corpus test expectations
  • f2942c250 Improve memory management in CFGAS_GEFont::LoadFontInternal().
  • 3eaff6683 Document FPDF_RenderPageSkp().
  • c34e23404 Remove some new statements from fx_skia_device.cpp.
  • 6f3c62423 Introduce pdf_use_partition_alloc build config variable.
  • 810b1aff4 Refactor fpdf_formfill_embeddertest for runtime renderer selection
  • 316fa08f5 Refactor edit embedder tests for runtime renderer selection
  • e0ea309ba Refactor fpdf_editpage_embeddertest for runtime renderer selection
  • ac1113060 Update to always include AGG
  • 62b90cc73 Refactor annot embedder tests for runtime renderer selection
  • f4f7c741d Use more spans in fx_skia_device.cpp.
  • 2cbb74c58 Rename render create and attach implementations
  • 5a1336a4f Switch away from FxFreeDeleter in fx_skia_device.cpp.
  • 31d54d1f4 Refactor fpdfapi/render tests for runtime renderer selection
  • 6cc084fb5 Refactor fpdfapi/parser tests for runtime renderer selection
  • a7fa28c3a Introduce Skia is renderer queries
  • 44ba1c67a [Skia] Fix the issue that images' transparency level is ignored
  • dc2660a14 Reduce duplicated code in CPDF_ImageRenderer::StartDIBBase().
  • 1bfb29df2 [Skia] Choose sampling options depending on the interpolate values