Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 44ecdd4e8ee1c31d2e2c85cd5665c965199a8857 https://github.com/WebKit/WebKit/commit/44ecdd4e8ee1c31d2e2c85cd5665c965199a8857 Author: Simon Fraser <simon.fra...@apple.com> Date: 2024-02-09 (Fri, 09 Feb 2024)
Changed paths: M LayoutTests/http/tests/pdf/linearized-pdf-in-iframe-expected.html M LayoutTests/http/tests/pdf/linearized-pdf-in-iframe.html M LayoutTests/http/tests/resources/network-simulator.py M Source/WebKit/WebProcess/Plugins/PDF/PDFIncrementalLoader.mm M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm Log Message: ----------- Fix http/tests/pdf/linearized-pdf-in-iframe to actually test incremental PDF loading https://bugs.webkit.org/show_bug.cgi?id=269102 rdar://122672100 Reviewed by Tim Horton. Triggering the incremental PDF loading code path requires a fairly exact set of conditions that need to be satisfied by the HTTP server: 1. Support for byte-range requests 2. Multithreading (handle a byte-range request while the main request is also being served) 3. Slow enough that a couple of initial byte-range requests complete before the main resource request This PR enhances network-simulator.py to support byte-range requests, and tweaks the laoding speed in the test. With UnifiedPDF enabled, we hit a couple of `ASSERT(documentFinishedLoading())` in the data provider callbacks on the main thread, under a painting callstack. This happens because UnifiedPDF currently paints on the main thread, so relax those assertions (with some logging). * LayoutTests/http/tests/pdf/linearized-pdf-in-iframe-expected.html: * LayoutTests/http/tests/pdf/linearized-pdf-in-iframe.html: * LayoutTests/http/tests/resources/network-simulator.py: (generate_response): (file_to_stdout): (range_of_file_to_stdout): (chunked_file_to_stdout): (parse_byte_range): (temp_path_base): * Source/WebKit/WebProcess/Plugins/PDF/PDFIncrementalLoader.mm: (WebKit::PDFPluginStreamLoaderClient::didReceiveResponse): (WebKit::PDFIncrementalLoader::dataProviderGetBytesAtPosition): * Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm: (WebKit::PDFPluginBase::copyDataAtPosition const): (WebKit::PDFPluginBase::streamDidReceiveData): (WebKit::PDFPluginBase::streamDidFinishLoading): Canonical link: https://commits.webkit.org/274412@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes