diff --git a/core/fpdfapi/parser/fpdf_parser_decode_embeddertest.cpp b/core/fpdfapi/parser/fpdf_parser_decode_embeddertest.cpp index 0d8aa41805..9c49dcf23d 100644 --- a/core/fpdfapi/parser/fpdf_parser_decode_embeddertest.cpp +++ b/core/fpdfapi/parser/fpdf_parser_decode_embeddertest.cpp @@ -2,11 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "build/build_config.h" #include "core/fpdfapi/parser/fpdf_parser_decode.h" + #include "public/cpp/fpdf_scopers.h" #include "testing/embedder_test.h" -#include "testing/embedder_test_constants.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/test_support.h" @@ -14,24 +13,23 @@ using FPDFParserDecodeEmbedderTest = EmbedderTest; TEST_F(FPDFParserDecodeEmbedderTest, Bug552046) { // Tests specifying multiple image filters for a stream. Should not cause a - // crash when rendered. + // crash when rendered and should produce a blank page. ASSERT_TRUE(OpenDocument("bug_552046.pdf")); ScopedPage page = LoadScopedPage(0); ASSERT_TRUE(page); - ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get()); - CompareBitmap(bitmap.get(), pdfium::kBlankPage612By792Png); + CompareDisplayList(RenderLoadedPageToDisplayList(page.get()), + "blank_page_612x792"); } TEST_F(FPDFParserDecodeEmbedderTest, Bug555784) { // Tests bad input to the run length decoder that caused a heap overflow. // Should not cause a crash when rendered. The image is 81915 pixels wide // with 3277 DeviceN components at 16 bits each, which is a valid but - // enourmous pitch, so its one scanline does get decoded and drawn. + // enormous pitch, so its one scanline does get decoded and drawn. ASSERT_TRUE(OpenDocument("bug_555784.pdf")); ScopedPage page = LoadScopedPage(0); ASSERT_TRUE(page); - ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get()); - CompareBitmap(bitmap.get(), "bug_555784"); + CompareDisplayList(RenderLoadedPageToDisplayList(page.get()), "bug_555784"); } TEST_F(FPDFParserDecodeEmbedderTest, Bug455199) { @@ -40,6 +38,5 @@ TEST_F(FPDFParserDecodeEmbedderTest, Bug455199) { ASSERT_TRUE(OpenDocument("bug_455199.pdf")); ScopedPage page = LoadScopedPage(0); ASSERT_TRUE(page); - ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get()); - CompareBitmapWithExpectationSuffix(bitmap.get(), pdfium::kHelloWorldPng); + CompareDisplayList(RenderLoadedPageToDisplayList(page.get()), "hello_world"); } diff --git a/core/fxcodec/jpx/cjpx_decoder.cpp b/core/fxcodec/jpx/cjpx_decoder.cpp index b61dd5cd30..74dc42d8a1 100644 --- a/core/fxcodec/jpx/cjpx_decoder.cpp +++ b/core/fxcodec/jpx/cjpx_decoder.cpp @@ -97,9 +97,9 @@ void sycc_to_rgb(int offset, int* out_b) { cb -= offset; cr -= offset; - *out_r = std::clamp(y + static_cast(1.402 * cr), 0, upb); - *out_g = std::clamp(y - static_cast(0.344 * cb + 0.714 * cr), 0, upb); - *out_b = std::clamp(y + static_cast(1.772 * cb), 0, upb); + *out_r = std::clamp(y + static_cast(1.402f * cr), 0, upb); + *out_g = std::clamp(y - static_cast(0.344f * cb + 0.714f * cr), 0, upb); + *out_b = std::clamp(y + static_cast(1.772f * cb), 0, upb); } pdfium::span components_span(opj_image_t* img) { diff --git a/core/fxge/cfx_face.cpp b/core/fxge/cfx_face.cpp index 0d98d66d3b..eca14f58ea 100644 --- a/core/fxge/cfx_face.cpp +++ b/core/fxge/cfx_face.cpp @@ -17,6 +17,7 @@ #include "core/fxcrt/check_op.h" #include "core/fxcrt/compiler_specific.h" #include "core/fxcrt/fixed_size_data_vector.h" +#include "core/fxcrt/fx_extension.h" #include "core/fxcrt/notreached.h" #include "core/fxcrt/numerics/clamped_math.h" #include "core/fxcrt/numerics/safe_conversions.h" @@ -53,24 +54,21 @@ namespace { +// Boundary value to avoid integer overflow when adding 1/64th of the value. +constexpr int kMaxRectTop = 2114445437; + #if defined(PDF_ENABLE_FREETYPE) constexpr int kThousandthMinInt = std::numeric_limits::min() / 1000; constexpr int kThousandthMaxInt = std::numeric_limits::max() / 1000; constexpr int kMaxGlyphDimension = 2048; -#endif // defined(PDF_ENABLE_FREETYPE) - -// Boundary value to avoid integer overflow when adding 1/64th of the value. -constexpr int kMaxRectTop = 2114445437; +constexpr float kCoordUnit = 64 * 64.0f; -#if defined(PDF_ENABLE_FREETYPE) struct OUTLINE_PARAMS { UnownedPtr path_; FT_Pos cur_x_; FT_Pos cur_y_; }; -constexpr float kCoordUnit = 64 * 64.0f; - int FTPosToCBoxInt(FT_Pos pos) { // Boundary values to avoid integer overflow when multiplied by 1000. static constexpr FT_Pos kMinCBox = -2147483; @@ -509,6 +507,57 @@ class ScopedFaceVariation { }; #endif // defined(PDF_ENABLE_FREETYPE) +#if defined(PDF_ENABLE_FONTATIONS) +wchar_t UnicodeFromZapfDingbatsName(const char* name) { + ByteStringView name_view(name); + if (name_view.GetLength() < 2) { + return 0; + } + if (name_view.Front() != 'a') { + return 0; + } + uint32_t val = 0; + for (char c : name_view.Substr(1)) { + if (!FXSYS_IsDecimalDigit(c)) { + return 0; + } + val = val * 10 + FXSYS_DecimalCharToInt(c); + if (val > 206) { + return 0; + } + } + if (val == 0) { + return 0; + } + static constexpr std::array kZapfGlyphs = { + 0x2701, 0x2702, 0x2704, 0x260e, 0x2706, 0x271d, 0x271e, 0x271f, 0x2720, + 0x2721, 0x261b, 0x261e, 0x270c, 0x270d, 0x270e, 0x270f, 0x2711, 0x2712, + 0x2713, 0x2714, 0x2715, 0x2716, 0x2717, 0x2718, 0x2719, 0x271a, 0x271b, + 0x271c, 0x2722, 0x2723, 0x2724, 0x2725, 0x2726, 0x2727, 0x2605, 0x2729, + 0x272a, 0x272b, 0x272c, 0x272d, 0x272e, 0x272f, 0x2730, 0x2731, 0x2732, + 0x2733, 0x2734, 0x2735, 0x2736, 0x2737, 0x2738, 0x2739, 0x273a, 0x273b, + 0x273c, 0x273d, 0x273e, 0x273f, 0x2740, 0x2741, 0x2742, 0x2743, 0x2744, + 0x2745, 0x2746, 0x2747, 0x2748, 0x2749, 0x274a, 0x274b, 0x25cf, 0x274d, + 0x25a0, 0x274f, 0x2751, 0x25b2, 0x25bc, 0x25c6, 0x2756, 0x0000, 0x25d7, + 0x2758, 0x2759, 0x275a, 0x276f, 0x2771, 0x2772, 0x2773, 0x2768, 0x2769, + 0x276c, 0x276d, 0x276a, 0x276b, 0x2774, 0x2775, 0x275b, 0x275c, 0x275d, + 0x275e, 0x2761, 0x2762, 0x2763, 0x2764, 0x2710, 0x2765, 0x2766, 0x2767, + 0x2660, 0x2665, 0x2666, 0x2663, 0x0000, 0x0000, 0x0000, 0x0000, 0x2709, + 0x2708, 0x2707, 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, + 0x2467, 0x2468, 0x2469, 0x2776, 0x2777, 0x2778, 0x2779, 0x277a, 0x277b, + 0x277c, 0x277d, 0x277e, 0x277f, 0x2780, 0x2781, 0x2782, 0x2783, 0x2784, + 0x2785, 0x2786, 0x2787, 0x2788, 0x2789, 0x278a, 0x278b, 0x278c, 0x278d, + 0x278e, 0x278f, 0x2790, 0x2791, 0x2792, 0x2793, 0x2794, 0x2192, 0x27a3, + 0x2194, 0x2195, 0x2799, 0x279b, 0x279c, 0x279d, 0x279e, 0x279f, 0x27a0, + 0x27a1, 0x27a2, 0x27a4, 0x27a5, 0x27a6, 0x27a7, 0x27a8, 0x27a9, 0x27ab, + 0x27ad, 0x27af, 0x27b2, 0x27b3, 0x27b5, 0x27b8, 0x27ba, 0x27bb, 0x27bc, + 0x27bd, 0x27be, 0x279a, 0x27aa, 0x27b6, 0x27b9, 0x2798, 0x27b4, 0x27b7, + 0x27ac, 0x27ae, 0x27b1, 0x2703, 0x2750, 0x2752, 0x276e, 0x2770, + }; + return kZapfGlyphs[val - 1]; +} +#endif // defined(PDF_ENABLE_FONTATIONS) + } // namespace #if defined(PDF_ENABLE_FONTATIONS) @@ -566,12 +615,14 @@ RetainPtr CFX_Face::New(RetainPtr cache_entry, // static wchar_t CFX_Face::UnicodeFromAdobeName(const char* name) { + CHECK(name); #if defined(PDF_ENABLE_FONTATIONS) if (CFX_GEModule::IsFontations()) { uint32_t unicode = 0; - return skrifa::agl_name_to_unicode(name, unicode) - ? static_cast(unicode) - : 0; + if (skrifa::agl_name_to_unicode(name, unicode)) { + return static_cast(unicode); + } + return UnicodeFromZapfDingbatsName(name); } #endif // defined(PDF_ENABLE_FONTATIONS) #if defined(PDF_ENABLE_FREETYPE) diff --git a/docs/embedpdf/syncs/2026-10-19-9c866a447.md b/docs/embedpdf/syncs/2026-10-19-9c866a447.md new file mode 100644 index 0000000000..5d9b86aa08 --- /dev/null +++ b/docs/embedpdf/syncs/2026-10-19-9c866a447.md @@ -0,0 +1,96 @@ +# Sync 2026-10-19: upstream 7c55203ed..9c866a447 (9 commits) + +## Summary + +Upstream from 2026-10-16 to 2026-10-16, merged into `b6d182352`. + +Upstream moved four more groups of embedder tests (annotation, parser decode, page import, flatten) +to display-list comparisons and deleted their PNG goldens. It also added ZapfDingbats names to the +fontations name lookup and fixed an XFA FormCalc lifetime. We took upstream's tests, dropped the Mac +goldens they replace, and kept our substitute-font fix next to upstream's new table. The layer-mode +harness now keeps form drawing out of display lists too, as it already did for bitmaps. + +## Likely security fixes + +None. + +## Conflicts (6 files, 2 blocks) + +A block with an `EPDF_TLS` count is never resolved by taking upstream's side without putting `EPDF_TLS` back (rule thread-confined-globals). + +| File | Blocks | Rules in the blocks | EPDF_TLS | Upstream commits | Resolution | +| :-- | --: | :-- | --: | :-- | :-- | +| `core/fxge/cfx_face.cpp` | 1 | substitute-font-bounds | | `c3e1143e8` Use display list comparisons in flatten embedder tests | Both: our `ScopedFaceVariation` (substitute-font-bounds), then upstream's `UnicodeFromZapfDingbatsName()` (fontations only, not in our builds). | +| `fpdfsdk/fpdf_flatten_embeddertest.cpp` | 1 | untagged | | `c3e1143e8` Use display list comparisons in flatten embedder tests | Upstream's `VerifySavedDocumentWithDisplayList("blank_100x120", FPDF_ANNOT)`. Ours only pointed the old check at a Mac golden (`ef8389fe2`); our `blank_100x120_agg_mac.png` goes with it. | +| `testing/resources/embedder_tests/annots_page1_agg_mac.png` | binary, rename or delete | untagged | | `e804c9576` Use display list comparisons in annotation embedder tests | Deleted, as upstream did: the test compares a display list now. | +| `testing/resources/embedder_tests/annots_page1_focus_highlight_agg_mac.png` | binary, rename or delete | untagged | | `e804c9576` Use display list comparisons in annotation embedder tests | Deleted, as upstream did: the test compares a display list now. | +| `testing/resources/embedder_tests/annots_page1_focus_link_agg_mac.png` | binary, rename or delete | untagged | | `e804c9576` Use display list comparisons in annotation embedder tests | Deleted, as upstream did: the test compares a display list now. | +| `testing/resources/embedder_tests/bug_861842_agg_mac.png` | binary, rename or delete | untagged | | `c3e1143e8` Use display list comparisons in flatten embedder tests | Deleted, as upstream did: the test compares a display list now. | + +## Write audit (0 lines) + +None. + +## Upstream changes outside the conflicts + +- **Display-list tests.** `e804c9576` (annotation), `02aeb0078` (parser decode), `f14ea7f3d` (page + import), `c3e1143e8` (flatten) and `067393bda` (`DeletePageAndRender`) compare display lists + instead of PNGs. Six of our Mac pixel failures go away with them. +- **Layer-mode harness (rule layer-mode).** The display-list renderer draws the form through the + form handle (`GetOrCreatePageView()`), and the form-fill page view isn't layer-safe. `RenderPageWithFlags()` + already skips `FPDF_FFLDraw` in layer mode; `RenderPageWithFlagsToDisplayList()` now drops the + handle the same way. Without it, the flatten tests `Bug889099`, `Bug890322` and `Bug896366` hit + the layer's write assertions in layer mode instead of failing as expected. +- **XFA FormCalc (`c9a34bc1d`, `a50f1a595`).** The context's destructor clears the binding of its + value, and a date-symbols loop drops an `UNSAFE_TODO`. Not in our builds (`pdf_enable_xfa=false`). +- **JPX `sycc_to_rgb()` (`9c866a447`)** uses float literals; same results. +- **lcms (`bb72e525b`)** removes a stale patch file; no code change. + +## Upstream appearance generator + +None. + +## Globals + +No new globals by the heuristic. `check-globals.py` on the darwin-arm64 release build: ok. + +## Build and patches + +- `DEPS` changed in 0 commits; no `gclient sync` needed. +- All of `patches/embedpdf-runtime/` apply (darwin-arm64 and wasm32 locally; CI applies every + target's). + +## API diff + +None from upstream. The darwin-arm64 exports differ from S11's only by what `embedpdf/main` merged +since then: #80 replaces `EPDFBookmark_*` with `EPDFOutline_*`, #81 adds +`EPDFPage_ExportRawToOwnedBuffer` and `EPDFPage_ImportRaw`. + +## Tests + +- [x] fork unit + embedder tests (darwin-arm64): 1286 unit tests pass. Embedder: 1655 tests, + 9 skipped, 30 failing, every one a PNG pixel comparison against a Mac golden; the same 30 failed + in S11, whose other six (`AddAndSaveLinkAnnotation`, `FocusableAnnotRendering`, `Bug861842`, + `Bug889099`, `ImportWithZeroLengthStream`, `Bug455199`) compare display lists now and pass. + Linux runs in the PR's CI. +- [x] layer mode: exit 0, no warnings; 213 layer-only failures, all expected; writers unchanged + (270). The four new layer-only failures are form drawing, already in the expectations: + `Bug861842`, `Bug889099` and `FocusableAnnotRendering` failed the plain Mac run before, and + `FPDFFormFillEmbedderTest.Bug1302455RenderOnly` no longer gets the form drawn into its display + list. `FPDFFormFillEmbedderTest.RemoveFormFieldHighlight` fails instead of crashing. (A Mac + recording drops the Linux-only `TransFormWithClipAndSaveWithLocale`; its line stays.) +- [x] tag check (`--base 9c866a447`): 975 blocks, 0 untagged. +- [x] C API check: ok, 527 functions in 23 headers (the outline and page-capture merges on main). +- [x] globals check: ok. +- [x] wasm build: builds locally. +- [ ] ThreadSanitizer soak: in the PR's CI. +- [ ] engine tests and engine-conformance with the local runtime: not run for this sync. +- changed expectations, each with its reason: + - `FPDFFlattenEmbedderTest.Bug861842`, `Bug889099`, `Bug890322`, `Bug896366` (layer mode): same + entries, reason reworded from "Pixel test of a form" since they compare display lists now. + - `FPDFFlattenEmbedderTest.Bug861842`: upstream's display list replaces our Mac golden + `blank_100x120_agg_mac.png`. + +## Ledger changes proposed + +None. diff --git a/fpdfsdk/fpdf_annot_embeddertest.cpp b/fpdfsdk/fpdf_annot_embeddertest.cpp index 426b54b8ed..34f2b65dd0 100644 --- a/fpdfsdk/fpdf_annot_embeddertest.cpp +++ b/fpdfsdk/fpdf_annot_embeddertest.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include "build/build_config.h" @@ -438,11 +439,11 @@ TEST_F(FPDFAnnotEmbedderTest, RenderAnnotWithOnlyRolloverAP) { ASSERT_TRUE(page); // This annotation has a malformed appearance stream, which does not have its - // normal appearance defined, only its rollover appearance. In this case, its - // normal appearance should be generated, allowing the highlight annotation to - // still display. - ScopedFPDFBitmap bitmap = RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT); - CompareBitmap(bitmap.get(), "fpdf_annot_render_annot_with_only_rollover_ap"); + // normal appearance defined, only its rollover appearance. In this case, no + // normal appearance is rendered. + CompareDisplayList( + RenderLoadedPageWithFlagsToDisplayList(page.get(), FPDF_ANNOT), + "fpdf_annot_render_annot_with_only_rollover_ap"); } TEST_F(FPDFAnnotEmbedderTest, RenderMultilineMarkupAnnotWithoutAP) { @@ -687,10 +688,9 @@ TEST_F(FPDFAnnotEmbedderTest, AddAndSaveLinkAnnotation) { ASSERT_TRUE(OpenDocument("hello_world.pdf")); ScopedPage page = LoadScopedPage(0); ASSERT_TRUE(page); - { - ScopedFPDFBitmap bitmap = RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT); - CompareBitmapWithExpectationSuffix(bitmap.get(), pdfium::kHelloWorldPng); - } + CompareDisplayList( + RenderLoadedPageWithFlagsToDisplayList(page.get(), FPDF_ANNOT), + "hello_world"); EXPECT_EQ(0, FPDFPage_GetAnnotCount(page.get())); static constexpr char kUri[] = "https://pdfium.org/"; @@ -747,8 +747,9 @@ TEST_F(FPDFAnnotEmbedderTest, AddAndSaveLinkAnnotation) { ASSERT_TRUE(saved_doc); ScopedSavedPage saved_page = LoadScopedSavedPage(0); ASSERT_TRUE(saved_page); - VerifySavedRenderingWithExpectationSuffix(saved_page.get(), - pdfium::kHelloWorldPng); + CompareDisplayList( + RenderSavedPageWithFlagsToDisplayList(saved_page.get(), FPDF_ANNOT), + "hello_world"); EXPECT_EQ(1, FPDFPage_GetAnnotCount(saved_page.get())); ScopedFPDFAnnotation annot(FPDFPage_GetAnnot(saved_page.get(), 0)); @@ -1240,12 +1241,9 @@ TEST_F(FPDFAnnotEmbedderTest, ModifyAnnotationFlags) { ASSERT_TRUE(page); // Check that the page renders correctly. - static constexpr char kAnnotationHighlightRolloverApPng[] = - "annotation_highlight_rollover_ap"; - { - ScopedFPDFBitmap bitmap = RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT); - CompareBitmap(bitmap.get(), kAnnotationHighlightRolloverApPng); - } + CompareDisplayList( + RenderLoadedPageWithFlagsToDisplayList(page.get(), FPDF_ANNOT), + "annotation_highlight_rollover_ap"); { // Retrieve the annotation. @@ -1272,11 +1270,9 @@ TEST_F(FPDFAnnotEmbedderTest, ModifyAnnotationFlags) { EXPECT_TRUE(flags & FPDF_ANNOT_FLAG_PRINT); // Check that the page renders correctly without rendering the annotation. - { - ScopedFPDFBitmap bitmap = - RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT); - CompareBitmap(bitmap.get(), pdfium::kBlankPage612By792Png); - } + CompareDisplayList( + RenderLoadedPageWithFlagsToDisplayList(page.get(), FPDF_ANNOT), + "blank_page_612x792"); // Unset the HIDDEN flag. EXPECT_TRUE(FPDFAnnot_SetFlags(annot.get(), FPDF_ANNOT_FLAG_NONE)); @@ -1288,11 +1284,9 @@ TEST_F(FPDFAnnotEmbedderTest, ModifyAnnotationFlags) { EXPECT_TRUE(flags & FPDF_ANNOT_FLAG_PRINT); // Check that the page renders correctly as before. - { - ScopedFPDFBitmap bitmap = - RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT); - CompareBitmap(bitmap.get(), kAnnotationHighlightRolloverApPng); - } + CompareDisplayList( + RenderLoadedPageWithFlagsToDisplayList(page.get(), FPDF_ANNOT), + "annotation_highlight_rollover_ap"); } } @@ -3016,11 +3010,10 @@ TEST_F(FPDFAnnotEmbedderTest, FocusableAnnotRendering) { ScopedPage page = LoadScopedPage(0); ASSERT_TRUE(page); - { - // Check the initial rendering. - ScopedFPDFBitmap bitmap = RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT); - CompareBitmapWithExpectationSuffix(bitmap.get(), "annots_page1"); - } + // Check the initial rendering. + CompareDisplayList( + RenderLoadedPageWithFlagsToDisplayList(page.get(), FPDF_ANNOT), + "annots_page1"); // Make links and highlights focusable. static constexpr FPDF_ANNOTATION_SUBTYPE kSubTypes[] = {FPDF_ANNOT_LINK, @@ -3041,8 +3034,9 @@ TEST_F(FPDFAnnotEmbedderTest, FocusableAnnotRendering) { ASSERT_TRUE(annot); EXPECT_EQ(FPDF_ANNOT_LINK, FPDFAnnot_GetSubtype(annot.get())); EXPECT_TRUE(FORM_SetFocusedAnnot(form_handle(), annot.get())); - ScopedFPDFBitmap bitmap = RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT); - CompareBitmapWithExpectationSuffix(bitmap.get(), "annots_page1_focus_link"); + CompareDisplayList( + RenderLoadedPageWithFlagsToDisplayList(page.get(), FPDF_ANNOT), + "annots_page1_focus_link"); } { @@ -3051,9 +3045,9 @@ TEST_F(FPDFAnnotEmbedderTest, FocusableAnnotRendering) { ASSERT_TRUE(annot); EXPECT_EQ(FPDF_ANNOT_HIGHLIGHT, FPDFAnnot_GetSubtype(annot.get())); EXPECT_TRUE(FORM_SetFocusedAnnot(form_handle(), annot.get())); - ScopedFPDFBitmap bitmap = RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT); - CompareBitmapWithExpectationSuffix(bitmap.get(), - "annots_page1_focus_highlight"); + CompareDisplayList( + RenderLoadedPageWithFlagsToDisplayList(page.get(), FPDF_ANNOT), + "annots_page1_focus_highlight"); } } diff --git a/fpdfsdk/fpdf_doc_embeddertest.cpp b/fpdfsdk/fpdf_doc_embeddertest.cpp index a4fad673b5..8b7adf597c 100644 --- a/fpdfsdk/fpdf_doc_embeddertest.cpp +++ b/fpdfsdk/fpdf_doc_embeddertest.cpp @@ -776,7 +776,7 @@ TEST_F(FPDFDocEmbedderTest, DeletePage) { } TEST_F(FPDFDocEmbedderTest, DeletePageAndRender) { - const std::array page_paths = {{ + static constexpr std::array kPagePaths = {{ "rectangles_multi_pages_1", "rectangles_multi_pages_2", "rectangles_multi_pages_3", @@ -790,8 +790,8 @@ TEST_F(FPDFDocEmbedderTest, DeletePageAndRender) { for (int i = 0; i < 5; ++i) { ScopedPage page = LoadScopedPage(i); ASSERT_TRUE(page); - ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get()); - CompareBitmapWithExpectationSuffix(bitmap.get(), page_paths[i]); + CompareDisplayList(RenderLoadedPageToDisplayList(page.get()), + kPagePaths[i]); } // Delete the first page and render again. (original page indices 1-4) @@ -800,8 +800,8 @@ TEST_F(FPDFDocEmbedderTest, DeletePageAndRender) { for (int i = 0; i < 4; ++i) { ScopedPage page = LoadScopedPage(i); ASSERT_TRUE(page); - ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get()); - CompareBitmapWithExpectationSuffix(bitmap.get(), page_paths[i + 1]); + CompareDisplayList(RenderLoadedPageToDisplayList(page.get()), + kPagePaths[i + 1]); } // Delete the last page and render again. (original page indices 1-3) @@ -810,8 +810,8 @@ TEST_F(FPDFDocEmbedderTest, DeletePageAndRender) { for (int i = 0; i < 3; ++i) { ScopedPage page = LoadScopedPage(i); ASSERT_TRUE(page); - ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get()); - CompareBitmapWithExpectationSuffix(bitmap.get(), page_paths[i + 1]); + CompareDisplayList(RenderLoadedPageToDisplayList(page.get()), + kPagePaths[i + 1]); } // Delete the middle page and render again. (original page indices 1, 3) @@ -820,10 +820,9 @@ TEST_F(FPDFDocEmbedderTest, DeletePageAndRender) { for (int i = 0; i < 2; ++i) { ScopedPage page = LoadScopedPage(i); ASSERT_TRUE(page); - ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get()); int adjusted_index = i == 0 ? 1 : 3; - CompareBitmapWithExpectationSuffix(bitmap.get(), - page_paths[adjusted_index]); + CompareDisplayList(RenderLoadedPageToDisplayList(page.get()), + kPagePaths[adjusted_index]); } } diff --git a/fpdfsdk/fpdf_flatten_embeddertest.cpp b/fpdfsdk/fpdf_flatten_embeddertest.cpp index 8b06ed0910..f9211fe64b 100644 --- a/fpdfsdk/fpdf_flatten_embeddertest.cpp +++ b/fpdfsdk/fpdf_flatten_embeddertest.cpp @@ -7,7 +7,6 @@ #include "public/fpdf_flatten.h" #include "public/fpdfview.h" #include "testing/embedder_test.h" -#include "testing/embedder_test_constants.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" @@ -85,14 +84,15 @@ TEST_F(FPDFFlattenEmbedderTest, Bug861842) { ScopedPage page = LoadScopedPage(0); ASSERT_TRUE(page); - ScopedFPDFBitmap bitmap = RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT); - CompareBitmapWithExpectationSuffix(bitmap.get(), "bug_861842"); + CompareDisplayList( + RenderLoadedPageWithFlagsToDisplayList(page.get(), FPDF_ANNOT), + "bug_861842"); EXPECT_EQ(FLATTEN_SUCCESS, FPDFPage_Flatten(page.get(), FLAT_PRINT)); EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0)); // TODO(crbug.com/861842): This should not render blank. - VerifySavedDocumentWithExpectationSuffix("blank_100x120"); + VerifySavedDocumentWithDisplayList("blank_100x120", FPDF_ANNOT); } TEST_F(FPDFFlattenEmbedderTest, Bug889099) { @@ -101,13 +101,14 @@ TEST_F(FPDFFlattenEmbedderTest, Bug889099) { ASSERT_TRUE(page); // The original document has a malformed media box; the height is -400. - ScopedFPDFBitmap bitmap = RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT); - CompareBitmapWithExpectationSuffix(bitmap.get(), "bug_889099"); + CompareDisplayList( + RenderLoadedPageWithFlagsToDisplayList(page.get(), FPDF_ANNOT), + "bug_889099"); EXPECT_EQ(FLATTEN_SUCCESS, FPDFPage_Flatten(page.get(), FLAT_PRINT)); EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0)); - VerifySavedDocumentWithExpectationSuffix("bug_889099_flattened"); + VerifySavedDocumentWithDisplayList("bug_889099_flattened", FPDF_ANNOT); } TEST_F(FPDFFlattenEmbedderTest, Bug890322) { @@ -115,13 +116,14 @@ TEST_F(FPDFFlattenEmbedderTest, Bug890322) { ScopedPage page = LoadScopedPage(0); ASSERT_TRUE(page); - ScopedFPDFBitmap bitmap = RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT); - CompareBitmapWithExpectationSuffix(bitmap.get(), pdfium::kBug890322Png); + CompareDisplayList( + RenderLoadedPageWithFlagsToDisplayList(page.get(), FPDF_ANNOT), + "bug_890322"); EXPECT_EQ(FLATTEN_SUCCESS, FPDFPage_Flatten(page.get(), FLAT_PRINT)); EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0)); - VerifySavedDocumentWithExpectationSuffix(pdfium::kBug890322Png); + VerifySavedDocumentWithDisplayList("bug_890322_saved", FPDF_ANNOT); } TEST_F(FPDFFlattenEmbedderTest, Bug896366) { @@ -129,13 +131,14 @@ TEST_F(FPDFFlattenEmbedderTest, Bug896366) { ScopedPage page = LoadScopedPage(0); ASSERT_TRUE(page); - ScopedFPDFBitmap bitmap = RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT); - CompareBitmapWithExpectationSuffix(bitmap.get(), "bug_896366"); + CompareDisplayList( + RenderLoadedPageWithFlagsToDisplayList(page.get(), FPDF_ANNOT), + "bug_896366"); EXPECT_EQ(FLATTEN_SUCCESS, FPDFPage_Flatten(page.get(), FLAT_PRINT)); EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0)); - VerifySavedDocumentWithExpectationSuffix("bug_896366"); + VerifySavedDocumentWithDisplayList("bug_896366_saved", FPDF_ANNOT); } TEST_F(FPDFFlattenEmbedderTest, FlattenShouldRemoveAcroForm) { diff --git a/fpdfsdk/fpdf_ppo_embeddertest.cpp b/fpdfsdk/fpdf_ppo_embeddertest.cpp index 1a0f60c44f..adaf336641 100644 --- a/fpdfsdk/fpdf_ppo_embeddertest.cpp +++ b/fpdfsdk/fpdf_ppo_embeddertest.cpp @@ -27,7 +27,6 @@ #include "public/fpdf_save.h" #include "public/fpdfview.h" #include "testing/embedder_test.h" -#include "testing/embedder_test_constants.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/utils/file_util.h" #include "testing/utils/path_service.h" @@ -152,14 +151,12 @@ TEST_F(FPDFPPOEmbedderTest, NupRenderImage) { ASSERT_TRUE(output_doc_3up); ASSERT_EQ(kRectanglesMultiPagesPageCount, FPDF_GetPageCount(output_doc_3up.get())); + for (int i = 0; i < kRectanglesMultiPagesPageCount; ++i) { ScopedFPDFPage page(FPDF_LoadPage(output_doc_3up.get(), i)); ASSERT_TRUE(page); - ScopedFPDFBitmap bitmap = RenderPage(page.get()); - EXPECT_EQ(792, FPDFBitmap_GetWidth(bitmap.get())); - EXPECT_EQ(612, FPDFBitmap_GetHeight(bitmap.get())); - CompareBitmapWithExpectationSuffix(bitmap.get(), - RectanglesMultiPagesPagePath(i)); + CompareDisplayList(RenderPageToDisplayList(page.get()), + RectanglesMultiPagesPagePath(i)); } } @@ -188,9 +185,8 @@ TEST_F(FPDFPPOEmbedderTest, ImportPageToXObject) { FPDFPage_InsertObject(page.get(), page_object); EXPECT_TRUE(FPDFPage_GenerateContent(page.get())); - ScopedFPDFBitmap page_bitmap = RenderPage(page.get()); - CompareBitmapWithExpectationSuffix(page_bitmap.get(), - "import_page_to_xobject"); + CompareDisplayList(RenderPageToDisplayList(page.get()), + "import_page_to_xobject"); float left; float bottom; @@ -225,11 +221,8 @@ TEST_F(FPDFPPOEmbedderTest, ImportPageToXObject) { ASSERT_EQ(FPDF_PAGEOBJ_FORM, FPDFPageObj_GetType(xobjects[i])); EXPECT_EQ(8, FPDFFormObj_CountObjects(xobjects[i])); - { - ScopedFPDFBitmap page_bitmap = RenderPage(saved_pages[i].get()); - CompareBitmapWithExpectationSuffix(page_bitmap.get(), - "import_page_to_xobject"); - } + CompareDisplayList(RenderSavedPageToDisplayList(saved_pages[i].get()), + "import_page_to_xobject"); } for (int i = 0; i < kExpectedPageCount; ++i) { @@ -269,10 +262,7 @@ TEST_F(FPDFPPOEmbedderTest, ImportPageToXObjectWithSameDoc) { ScopedPage page = LoadScopedPage(0); ASSERT_TRUE(page); - { - ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get()); - CompareBitmapWithExpectationSuffix(bitmap.get(), pdfium::kRectanglesPng); - } + CompareDisplayList(RenderLoadedPageToDisplayList(page.get()), "rectangles"); FPDF_PAGEOBJECT page_object = FPDF_NewFormObjectFromXObject(xobject); ASSERT_TRUE(page_object); @@ -284,17 +274,14 @@ TEST_F(FPDFPPOEmbedderTest, ImportPageToXObjectWithSameDoc) { FPDFPage_InsertObject(page.get(), page_object); EXPECT_TRUE(FPDFPage_GenerateContent(page.get())); - { - ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get()); - CompareBitmapWithExpectationSuffix(bitmap.get(), - "import_page_to_xobject_with_same_doc"); - } + CompareDisplayList(RenderLoadedPageToDisplayList(page.get()), + "import_page_to_xobject_with_same_doc"); FPDF_CloseXObject(xobject); EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0)); - VerifySavedDocumentWithExpectationSuffix( - "import_page_to_xobject_with_same_doc"); + + VerifySavedDocumentWithDisplayList("import_page_to_xobject_with_same_doc"); } TEST_F(FPDFPPOEmbedderTest, XObjectNullParams) { @@ -340,9 +327,9 @@ TEST_F(FPDFPPOEmbedderTest, Bug1229106) { // Show all pages render the same. ASSERT_EQ(kPageCount, FPDF_GetPageCount(document())); for (int i = 0; i < kPageCount; ++i) { - ScopedPage page = LoadScopedPage(0); - ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get()); - CompareBitmap(bitmap.get(), "bug_1229106_rect"); + ScopedPage page = LoadScopedPage(i); + CompareDisplayList(RenderLoadedPageToDisplayList(page.get()), + "bug_1229106_rect"); } // Create a 2-up PDF. @@ -351,8 +338,8 @@ TEST_F(FPDFPPOEmbedderTest, Bug1229106) { ASSERT_EQ(kTwoUpPageCount, FPDF_GetPageCount(output_doc_2up.get())); for (int i = 0; i < kTwoUpPageCount; ++i) { ScopedFPDFPage page(FPDF_LoadPage(output_doc_2up.get(), i)); - ScopedFPDFBitmap bitmap = RenderPage(page.get()); - CompareBitmap(bitmap.get(), "bug_1229106_two_up"); + CompareDisplayList(RenderPageToDisplayList(page.get()), + "bug_1229106_two_up"); } } @@ -550,10 +537,8 @@ TEST_F(FPDFPPOEmbedderTest, Bug750568) { for (size_t i = 0; i < 4; ++i) { ScopedPage page = LoadScopedPage(i); ASSERT_TRUE(page); - - ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get()); - CompareBitmapWithExpectationSuffix( - bitmap.get(), "bug_750568_page" + std::to_string(i + 1)); + CompareDisplayList(RenderLoadedPageToDisplayList(page.get()), + "bug_750568_page" + std::to_string(i + 1)); } ScopedFPDFDocument output_doc(FPDF_CreateNewDocument()); @@ -566,10 +551,8 @@ TEST_F(FPDFPPOEmbedderTest, Bug750568) { for (size_t i = 0; i < 4; ++i) { ScopedFPDFPage page(FPDF_LoadPage(output_doc.get(), i)); ASSERT_TRUE(page); - - ScopedFPDFBitmap bitmap = RenderPage(page.get()); - CompareBitmapWithExpectationSuffix( - bitmap.get(), "bug_750568_page" + std::to_string(i + 1)); + CompareDisplayList(RenderPageToDisplayList(page.get()), + "bug_750568_page" + std::to_string(i + 1)); } } @@ -577,8 +560,7 @@ TEST_F(FPDFPPOEmbedderTest, Bug40162073) { ASSERT_TRUE(OpenDocument("bug_40162073.pdf")); ScopedPage page = LoadScopedPage(0); ASSERT_TRUE(page); - ScopedFPDFBitmap bitmap = RenderPage(page.get()); - CompareBitmap(bitmap.get(), "bug_40162073"); + CompareDisplayList(RenderPageToDisplayList(page.get()), "bug_40162073"); ScopedFPDFDocument new_doc(FPDF_CreateNewDocument()); ASSERT_TRUE(new_doc); @@ -590,9 +572,9 @@ TEST_F(FPDFPPOEmbedderTest, Bug40162073) { EXPECT_EQ(1, FPDF_GetPageCount(new_doc.get())); ScopedFPDFPage new_page(FPDF_LoadPage(new_doc.get(), 0)); ASSERT_TRUE(new_page); - ScopedFPDFBitmap new_bitmap = RenderPage(new_page.get()); // TODO(crbug.com/40162073): Should render with "bug_40162073" expectation. - CompareBitmap(new_bitmap.get(), "bug_40162073_wrong"); + CompareDisplayList(RenderPageToDisplayList(new_page.get()), + "bug_40162073_wrong"); } TEST_F(FPDFPPOEmbedderTest, ImportWithZeroLengthStream) { @@ -600,8 +582,7 @@ TEST_F(FPDFPPOEmbedderTest, ImportWithZeroLengthStream) { ScopedPage page = LoadScopedPage(0); ASSERT_TRUE(page); - ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get()); - CompareBitmapWithExpectationSuffix(bitmap.get(), pdfium::kHelloWorldPng); + CompareDisplayList(RenderLoadedPageToDisplayList(page.get()), "hello_world"); ScopedFPDFDocument new_doc(FPDF_CreateNewDocument()); ASSERT_TRUE(new_doc); @@ -613,8 +594,7 @@ TEST_F(FPDFPPOEmbedderTest, ImportWithZeroLengthStream) { EXPECT_EQ(1, FPDF_GetPageCount(new_doc.get())); ScopedFPDFPage new_page(FPDF_LoadPage(new_doc.get(), 0)); ASSERT_TRUE(new_page); - ScopedFPDFBitmap new_bitmap = RenderPage(new_page.get()); - CompareBitmapWithExpectationSuffix(new_bitmap.get(), pdfium::kHelloWorldPng); + CompareDisplayList(RenderPageToDisplayList(new_page.get()), "hello_world"); } TEST_F(FPDFPPOEmbedderTest, ImportWithSelfReferentialPageParent) { @@ -682,14 +662,14 @@ TEST_F(FPDFPPOEmbedderTest, ImportIntoDocWithWrongPageType) { { ScopedPage page = LoadScopedPage(0); ASSERT_TRUE(page); - ScopedFPDFBitmap bitmap = RenderPage(page.get()); - CompareBitmapWithExpectationSuffix(bitmap.get(), "bad_page_type_new_page1"); + CompareDisplayList(RenderPageToDisplayList(page.get()), + "bad_page_type_new_page1"); } { ScopedPage page = LoadScopedPage(1); ASSERT_TRUE(page); - ScopedFPDFBitmap bitmap = RenderPage(page.get()); - CompareBitmap(bitmap.get(), "bad_page_type_new_page2"); + CompareDisplayList(RenderPageToDisplayList(page.get()), + "bad_page_type_new_page2"); } EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0)); @@ -700,14 +680,14 @@ TEST_F(FPDFPPOEmbedderTest, ImportIntoDocWithWrongPageType) { { ScopedSavedPage page = LoadScopedSavedPage(0); ASSERT_TRUE(page); - ScopedFPDFBitmap bitmap = RenderPage(page.get()); - CompareBitmapWithExpectationSuffix(bitmap.get(), "bad_page_type_new_page1"); + CompareDisplayList(RenderSavedPageToDisplayList(page.get()), + "bad_page_type_new_page1"); } { ScopedSavedPage page = LoadScopedSavedPage(1); ASSERT_TRUE(page); - ScopedFPDFBitmap bitmap = RenderPage(page.get()); - CompareBitmap(bitmap.get(), "bad_page_type_new_page2"); + CompareDisplayList(RenderSavedPageToDisplayList(page.get()), + "bad_page_type_new_page2"); } } diff --git a/fxjs/xfa/cfxjse_class.cpp b/fxjs/xfa/cfxjse_class.cpp index c56c2e9628..d8102edf4d 100644 --- a/fxjs/xfa/cfxjse_class.cpp +++ b/fxjs/xfa/cfxjse_class.cpp @@ -45,14 +45,21 @@ FXJSE_CLASS_DESCRIPTOR* AsClassDescriptor(void* ptr) { void V8FunctionCallback_Wrapper( const v8::FunctionCallbackInfo& info) { - const FXJSE_FUNCTION_DESCRIPTOR* pFunctionInfo = + const FXJSE_FUNCTION_DESCRIPTOR* function_info = AsFunctionDescriptor(info.DataV2().As()->Value( v8::kExternalPointerTypeTagDefault)); - if (!pFunctionInfo) { + if (!function_info) { return; } - pFunctionInfo->callbackProc(CFXJSE_HostObject::FromV8(info.This()), info); + // Reject receivers whose binding has been cleared instead of handing a null + // host object to the callback. + CFXJSE_HostObject* host_object = CFXJSE_HostObject::FromV8(info.This()); + if (!host_object) { + FXJSE_ThrowMessage(info.GetIsolate(), "Invalid receiver."); + return; + } + function_info->callbackProc(host_object, info); } void V8ConstructorCallback_Wrapper( diff --git a/fxjs/xfa/cfxjse_formcalc_context.cpp b/fxjs/xfa/cfxjse_formcalc_context.cpp index b0684df65c..b0e6a4ec52 100644 --- a/fxjs/xfa/cfxjse_formcalc_context.cpp +++ b/fxjs/xfa/cfxjse_formcalc_context.cpp @@ -36,6 +36,7 @@ #include "fxjs/xfa/cfxjse_class.h" #include "fxjs/xfa/cfxjse_context.h" #include "fxjs/xfa/cfxjse_engine.h" +#include "fxjs/xfa/cfxjse_isolatetracker.h" #include "fxjs/xfa/cjx_object.h" #include "v8/include/v8-container.h" #include "v8/include/v8-function-callback.h" @@ -302,54 +303,50 @@ const FXJSE_FUNCTION_DESCRIPTOR kFormCalcFunctions[] = { {kFuncTag, "var_filter", CFXJSE_FormCalcContext::fm_var_filter}, }; -const uint8_t kAltTableDate[] = { +constexpr auto kAltTableDate = std::to_array({ 255, 255, 255, 3, 9, 255, 255, 255, 255, 255, 255, 255, 2, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 1, 255, 255, 255, 255, 255, 255, 255, 255, -}; -static_assert(std::size(kAltTableDate) == L'a' - L'A' + 1, - "Invalid kAltTableDate size."); +}); +static_assert(kAltTableDate.size() == L'a' - L'A' + 1); -const uint8_t kAltTableTime[] = { +constexpr auto kAltTableTime = std::to_array({ 14, 255, 255, 3, 9, 255, 255, 15, 255, 255, 255, 255, 6, 255, 255, 255, 255, 255, 7, 255, 255, 255, 255, 255, 1, 17, 255, 255, 255, 255, 255, 255, 255, -}; -static_assert(std::size(kAltTableTime) == L'a' - L'A' + 1, - "Invalid kAltTableTime size."); +}); +static_assert(kAltTableTime.size() == L'a' - L'A' + 1); void AlternateDateTimeSymbols(WideString* pPattern, const WideString& wsAltSymbols, bool bIsDate) { - const uint8_t* pAltTable = bIsDate ? kAltTableDate : kAltTableTime; + const auto& alt_table = bIsDate ? kAltTableDate : kAltTableTime; int32_t nLength = pPattern->GetLength(); bool bInConstRange = false; bool bEscape = false; int32_t i = 0; - UNSAFE_TODO({ - while (i < nLength) { - wchar_t wc = (*pPattern)[i]; - if (wc == L'\'') { - bInConstRange = !bInConstRange; - if (bEscape) { - i++; - } else { - pPattern->Delete(i); - nLength--; - } - bEscape = !bEscape; - continue; + while (i < nLength) { + wchar_t wc = (*pPattern)[i]; + if (wc == L'\'') { + bInConstRange = !bInConstRange; + if (bEscape) { + i++; + } else { + pPattern->Delete(i); + nLength--; } - if (!bInConstRange && wc >= L'A' && wc <= L'a') { - uint8_t nAlt = pAltTable[wc - L'A']; - if (nAlt != 255) { - pPattern->SetAt(i, wsAltSymbols[nAlt]); - } + bEscape = !bEscape; + continue; + } + if (!bInConstRange && wc >= L'A' && wc <= L'a') { + uint8_t nAlt = alt_table[wc - L'A']; + if (nAlt != 255) { + pPattern->SetAt(i, wsAltSymbols[nAlt]); } - i++; - bEscape = false; } - }); + i++; + bEscape = false; + } } std::pair PatternStringType( @@ -5120,7 +5117,18 @@ CFXJSE_FormCalcContext::CFXJSE_FormCalcContext(v8::Isolate* pIsolate, ->GetTemplate(isolate_))); } -CFXJSE_FormCalcContext::~CFXJSE_FormCalcContext() = default; +CFXJSE_FormCalcContext::~CFXJSE_FormCalcContext() { + // Clear the binding the same way CFXJSE_Engine does for every other bound + // so later calls on the retained object do not see this binding. + if (!value_.IsEmpty()) { + CFXJSE_ScopeUtil_IsolateHandle scope(GetIsolate()); + v8::Local value = + v8::Local::New(GetIsolate(), value_); + if (value->IsObject()) { + FXJSE_ClearObjectBinding(value.As()); + } + } +} CFXJSE_FormCalcContext* CFXJSE_FormCalcContext::AsFormCalcContext() { return this; diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp index 46a4e0e8c6..ab4fcda176 100644 --- a/testing/embedder_test.cpp +++ b/testing/embedder_test.cpp @@ -987,6 +987,11 @@ std::string EmbedderTest::RenderPageWithFlagsToDisplayList( FPDF_PAGE page, FPDF_FORMHANDLE handle, int flags) { + // EmbedPDF(layer-mode): no form-fill drawing in layer mode, as in + // RenderPageWithFlags(); the form handle would create the page view. + if (embedpdf_test::IsLayerModeEnabled()) { + handle = nullptr; + } return DisplayListRenderer::RenderPage(page, handle, flags); } diff --git a/testing/embedpdf_layer_mode_expectations.txt b/testing/embedpdf_layer_mode_expectations.txt index c5b8177ff8..11f322a46c 100644 --- a/testing/embedpdf_layer_mode_expectations.txt +++ b/testing/embedpdf_layer_mode_expectations.txt @@ -22,10 +22,10 @@ FPDFAnnotEmbedderTest.GetFontSize* Needs the form-fill page view (FPDF_FORMHANDL FPDFAnnotEmbedderTest.GetFontColor Needs the form-fill page view (FPDF_FORMHANDLE APIs). FPDFAnnotEmbedderTest.IsChecked* Needs the form-fill page view (FPDF_FORMHANDLE APIs). FPDFAnnotEmbedderTest.GetFormFieldExportValue* Needs the form-fill page view (FPDF_FORMHANDLE APIs). -FPDFFlattenEmbedderTest.Bug861842 Pixel test of a form; layer mode doesn't draw with FPDF_FFLDraw. -FPDFFlattenEmbedderTest.Bug889099 Pixel test of a form; layer mode doesn't draw with FPDF_FFLDraw. -FPDFFlattenEmbedderTest.Bug890322 Pixel test of a form; layer mode doesn't draw with FPDF_FFLDraw. -FPDFFlattenEmbedderTest.Bug896366 Pixel test of a form; layer mode doesn't draw with FPDF_FFLDraw. +FPDFFlattenEmbedderTest.Bug861842 Draws a form; layer mode doesn't draw the form-fill layer. +FPDFFlattenEmbedderTest.Bug889099 Draws a form; layer mode doesn't draw the form-fill layer. +FPDFFlattenEmbedderTest.Bug890322 Draws a form; layer mode doesn't draw the form-fill layer. +FPDFFlattenEmbedderTest.Bug896366 Draws a form; layer mode doesn't draw the form-fill layer. # --- Upstream write APIs the engine doesn't call; they write in place, past # the layer's copy-up door. Make one layer-safe before the engine uses it. diff --git a/testing/resources/embedder_tests/annotation_highlight_rollover_ap.dump.txt b/testing/resources/embedder_tests/annotation_highlight_rollover_ap.dump.txt new file mode 100644 index 0000000000..0541a9b4eb --- /dev/null +++ b/testing/resources/embedder_tests/annotation_highlight_rollover_ap.dump.txt @@ -0,0 +1,8 @@ +SaveState +SetBaseClip [0,0,612,792] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,792.0000) line(0.0000,0.0000) line(612.0000,0.0000) line(612.0000,792.0000) line(0.0000,792.0000,close)] +SaveState +RestoreState +SaveState +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/annotation_highlight_rollover_ap.png b/testing/resources/embedder_tests/annotation_highlight_rollover_ap.png deleted file mode 100644 index 67b7d946f9..0000000000 Binary files a/testing/resources/embedder_tests/annotation_highlight_rollover_ap.png and /dev/null differ diff --git a/testing/resources/embedder_tests/annots_page1.dump.txt b/testing/resources/embedder_tests/annots_page1.dump.txt new file mode 100644 index 0000000000..193fb3c6d9 --- /dev/null +++ b/testing/resources/embedder_tests/annots_page1.dump.txt @@ -0,0 +1,27 @@ +SaveState +SetBaseClip [0,0,612,792] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,792.0000) line(0.0000,0.0000) line(612.0000,0.0000) line(612.0000,792.0000) line(0.0000,792.0000,close)] +SaveState +DrawDeviceText font="Tinos" size=18.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,92.0000] glyphs=[(idx=47,u=U+004C,origin=(0.0000,0.0000)) (idx=76,u=U+0069,origin=(10.9980,0.0000)) (idx=81,u=U+006E,origin=(16.0020,0.0000)) (idx=78,u=U+006B,origin=(25.0020,0.0000)) (idx=3,u=U+0020,origin=(34.0020,0.0000)) (idx=36,u=U+0041,origin=(38.5020,0.0000)) (idx=81,u=U+006E,origin=(51.4980,0.0000)) (idx=81,u=U+006E,origin=(60.4980,0.0000)) (idx=82,u=U+006F,origin=(69.4980,0.0000)) (idx=87,u=U+0074,origin=(78.4980,0.0000)) (idx=68,u=U+0061,origin=(83.5020,0.0000)) (idx=87,u=U+0074,origin=(91.4940,0.0000)) (idx=76,u=U+0069,origin=(96.4980,0.0000)) (idx=82,u=U+006F,origin=(101.5020,0.0000)) (idx=81,u=U+006E,origin=(110.5020,0.0000)) (idx=86,u=U+0073,origin=(119.5020,0.0000)) (idx=3,u=U+0020,origin=(126.5040,0.0000)) (idx=16,u=U+002D,origin=(131.0040,0.0000)) (idx=3,u=U+0020,origin=(136.9980,0.0000)) (idx=51,u=U+0050,origin=(141.4980,0.0000)) (idx=68,u=U+0061,origin=(151.5060,0.0000)) (idx=74,u=U+0067,origin=(159.4980,0.0000)) (idx=72,u=U+0065,origin=(168.4980,0.0000)) (idx=3,u=U+0020,origin=(176.4900,0.0000)) (idx=20,u=U+0031,origin=(180.9900,0.0000))] +DrawDeviceText font="Arimo" size=14.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,157.0000] glyphs=[(idx=20,u=U+0031,origin=(0.0000,0.0000)) (idx=17,u=U+002E,origin=(7.7840,0.0000)) (idx=3,u=U+0020,origin=(11.6760,0.0000)) (idx=47,u=U+004C,origin=(15.5680,0.0000)) (idx=76,u=U+0069,origin=(23.3520,0.0000)) (idx=81,u=U+006E,origin=(26.4600,0.0000)) (idx=78,u=U+006B,origin=(34.2440,0.0000)) (idx=3,u=U+0020,origin=(41.2440,0.0000)) (idx=90,u=U+0077,origin=(45.1360,0.0000)) (idx=76,u=U+0069,origin=(55.2440,0.0000)) (idx=87,u=U+0074,origin=(58.3520,0.0000)) (idx=75,u=U+0068,origin=(62.2440,0.0000)) (idx=3,u=U+0020,origin=(70.0280,0.0000)) (idx=71,u=U+0064,origin=(73.9200,0.0000)) (idx=72,u=U+0065,origin=(81.7040,0.0000)) (idx=86,u=U+0073,origin=(89.4880,0.0000)) (idx=87,u=U+0074,origin=(96.4880,0.0000)) (idx=76,u=U+0069,origin=(100.3800,0.0000)) (idx=81,u=U+006E,origin=(103.4880,0.0000)) (idx=68,u=U+0061,origin=(111.2720,0.0000)) (idx=87,u=U+0074,origin=(119.0560,0.0000)) (idx=76,u=U+0069,origin=(122.9480,0.0000)) (idx=82,u=U+006F,origin=(126.0560,0.0000)) (idx=81,u=U+006E,origin=(133.8400,0.0000)) (idx=3,u=U+0020,origin=(141.6240,0.0000)) (idx=87,u=U+0074,origin=(145.5160,0.0000)) (idx=82,u=U+006F,origin=(149.4080,0.0000)) (idx=3,u=U+0020,origin=(157.1920,0.0000)) (idx=73,u=U+0066,origin=(161.0840,0.0000)) (idx=76,u=U+0069,origin=(164.9760,0.0000)) (idx=85,u=U+0072,origin=(168.0840,0.0000)) (idx=86,u=U+0073,origin=(172.7460,0.0000)) (idx=87,u=U+0074,origin=(179.7460,0.0000)) (idx=3,u=U+0020,origin=(183.6380,0.0000)) (idx=83,u=U+0070,origin=(187.5300,0.0000)) (idx=68,u=U+0061,origin=(195.3140,0.0000)) (idx=74,u=U+0067,origin=(203.0980,0.0000)) (idx=72,u=U+0065,origin=(210.8820,0.0000))] +DrawDeviceText font="Arimo" size=14.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,80.0000,177.0000] glyphs=[(idx=21,u=U+0032,origin=(0.0000,0.0000)) (idx=17,u=U+002E,origin=(7.7840,0.0000)) (idx=3,u=U+0020,origin=(11.6760,0.0000)) (idx=47,u=U+004C,origin=(15.5680,0.0000)) (idx=76,u=U+0069,origin=(23.3520,0.0000)) (idx=81,u=U+006E,origin=(26.4600,0.0000)) (idx=78,u=U+006B,origin=(34.2440,0.0000)) (idx=3,u=U+0020,origin=(41.2440,0.0000)) (idx=90,u=U+0077,origin=(45.1360,0.0000)) (idx=76,u=U+0069,origin=(55.2440,0.0000)) (idx=87,u=U+0074,origin=(58.3520,0.0000)) (idx=75,u=U+0068,origin=(62.2440,0.0000)) (idx=3,u=U+0020,origin=(70.0280,0.0000)) (idx=71,u=U+0064,origin=(73.9200,0.0000)) (idx=72,u=U+0065,origin=(81.7040,0.0000)) (idx=86,u=U+0073,origin=(89.4880,0.0000)) (idx=87,u=U+0074,origin=(96.4880,0.0000)) (idx=76,u=U+0069,origin=(100.3800,0.0000)) (idx=81,u=U+006E,origin=(103.4880,0.0000)) (idx=68,u=U+0061,origin=(111.2720,0.0000)) (idx=87,u=U+0074,origin=(119.0560,0.0000)) (idx=76,u=U+0069,origin=(122.9480,0.0000)) (idx=82,u=U+006F,origin=(126.0560,0.0000)) (idx=81,u=U+006E,origin=(133.8400,0.0000)) (idx=3,u=U+0020,origin=(141.6240,0.0000)) (idx=87,u=U+0074,origin=(145.5160,0.0000)) (idx=82,u=U+006F,origin=(149.4080,0.0000)) (idx=3,u=U+0020,origin=(157.1920,0.0000)) (idx=86,u=U+0073,origin=(161.0840,0.0000)) (idx=72,u=U+0065,origin=(168.0840,0.0000)) (idx=70,u=U+0063,origin=(175.8680,0.0000)) (idx=82,u=U+006F,origin=(182.8680,0.0000)) (idx=81,u=U+006E,origin=(190.6520,0.0000)) (idx=71,u=U+0064,origin=(198.4360,0.0000)) (idx=3,u=U+0020,origin=(206.2200,0.0000)) (idx=83,u=U+0070,origin=(210.1120,0.0000)) (idx=68,u=U+0061,origin=(217.8960,0.0000)) (idx=74,u=U+0067,origin=(225.6799,0.0000)) (idx=72,u=U+0065,origin=(233.4639,0.0000))] +DrawDeviceText font="Arimo" size=10.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,68.0000,261.0000] glyphs=[(idx=51,u=U+0050,origin=(0.0000,0.0000)) (idx=39,u=U+0044,origin=(6.6700,0.0000)) (idx=41,u=U+0046,origin=(13.8900,0.0000)) (idx=3,u=U+0020,origin=(20.0000,0.0000)) (idx=53,u=U+0052,origin=(22.7800,0.0000)) (idx=72,u=U+0065,origin=(30.0000,0.0000)) (idx=73,u=U+0066,origin=(35.5600,0.0000)) (idx=72,u=U+0065,origin=(38.3400,0.0000)) (idx=85,u=U+0072,origin=(43.9000,0.0000)) (idx=72,u=U+0065,origin=(47.2300,0.0000)) (idx=81,u=U+006E,origin=(52.7900,0.0000)) (idx=70,u=U+0063,origin=(58.3500,0.0000)) (idx=72,u=U+0065,origin=(63.3500,0.0000)) (idx=15,u=U+002C,origin=(68.9100,0.0000)) (idx=3,u=U+0020,origin=(71.6900,0.0000)) (idx=57,u=U+0056,origin=(74.4700,0.0000)) (idx=72,u=U+0065,origin=(81.1400,0.0000)) (idx=85,u=U+0072,origin=(86.7000,0.0000)) (idx=86,u=U+0073,origin=(90.0300,0.0000)) (idx=76,u=U+0069,origin=(95.0300,0.0000)) (idx=82,u=U+006F,origin=(97.2500,0.0000)) (idx=81,u=U+006E,origin=(102.8100,0.0000)) (idx=3,u=U+0020,origin=(108.3700,0.0000)) (idx=20,u=U+0031,origin=(111.1500,0.0000)) (idx=17,u=U+002E,origin=(116.7100,0.0000)) (idx=26,u=U+0037,origin=(119.4900,0.0000)) (idx=15,u=U+002C,origin=(125.0500,0.0000)) (idx=3,u=U+0020,origin=(127.8300,0.0000)) (idx=54,u=U+0053,origin=(130.6100,0.0000)) (idx=72,u=U+0065,origin=(137.2800,0.0000)) (idx=70,u=U+0063,origin=(142.8400,0.0000)) (idx=87,u=U+0074,origin=(147.8400,0.0000)) (idx=76,u=U+0069,origin=(150.6200,0.0000)) (idx=82,u=U+006F,origin=(152.8400,0.0000)) (idx=81,u=U+006E,origin=(158.4000,0.0000)) (idx=3,u=U+0020,origin=(163.9600,0.0000)) (idx=27,u=U+0038,origin=(166.7400,0.0000)) (idx=17,u=U+002E,origin=(172.3000,0.0000)) (idx=23,u=U+0034,origin=(175.0800,0.0000)) (idx=17,u=U+002E,origin=(180.6400,0.0000)) (idx=24,u=U+0035,origin=(183.4200,0.0000)) (idx=3,u=U+0020,origin=(188.9800,0.0000)) (idx=71,u=U+0064,origin=(191.7600,0.0000)) (idx=72,u=U+0065,origin=(197.3200,0.0000)) (idx=73,u=U+0066,origin=(202.8800,0.0000)) (idx=76,u=U+0069,origin=(205.6600,0.0000)) (idx=81,u=U+006E,origin=(207.8800,0.0000)) (idx=72,u=U+0065,origin=(213.4400,0.0000)) (idx=86,u=U+0073,origin=(219.0000,0.0000)) (idx=3,u=U+0020,origin=(224.0000,0.0000)) (idx=36,u=U+0041,origin=(226.7800,0.0000)) (idx=81,u=U+006E,origin=(233.4500,0.0000)) (idx=81,u=U+006E,origin=(239.0099,0.0000)) (idx=82,u=U+006F,origin=(244.5699,0.0000)) (idx=87,u=U+0074,origin=(250.1299,0.0000)) (idx=68,u=U+0061,origin=(252.9099,0.0000)) (idx=87,u=U+0074,origin=(258.4699,0.0000)) (idx=76,u=U+0069,origin=(261.2499,0.0000)) (idx=82,u=U+006F,origin=(263.4699,0.0000)) (idx=81,u=U+006E,origin=(269.0299,0.0000)) (idx=86,u=U+0073,origin=(274.5899,0.0000))] +DrawDeviceText font="Arimo" size=10.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,314.0000] glyphs=[(idx=22,u=U+0033,origin=(0.0000,0.0000)) (idx=17,u=U+002E,origin=(5.5600,0.0000)) (idx=3,u=U+0020,origin=(8.3400,0.0000)) (idx=3,u=U+0020,origin=(11.1200,0.0000)) (idx=36,u=U+0041,origin=(13.9000,0.0000)) (idx=81,u=U+006E,origin=(20.5700,0.0000)) (idx=3,u=U+0020,origin=(26.1300,0.0000)) (idx=72,u=U+0065,origin=(28.9100,0.0000)) (idx=91,u=U+0078,origin=(34.4700,0.0000)) (idx=68,u=U+0061,origin=(39.4700,0.0000)) (idx=80,u=U+006D,origin=(45.0300,0.0000)) (idx=83,u=U+0070,origin=(53.3600,0.0000)) (idx=79,u=U+006C,origin=(58.9200,0.0000)) (idx=72,u=U+0065,origin=(61.1400,0.0000)) (idx=3,u=U+0020,origin=(66.7000,0.0000)) (idx=82,u=U+006F,origin=(69.4800,0.0000)) (idx=73,u=U+0066,origin=(75.0400,0.0000)) (idx=3,u=U+0020,origin=(77.8200,0.0000)) (idx=43,u=U+0048,origin=(80.6000,0.0000)) (idx=76,u=U+0069,origin=(87.8200,0.0000)) (idx=74,u=U+0067,origin=(90.0400,0.0000)) (idx=75,u=U+0068,origin=(95.6000,0.0000)) (idx=79,u=U+006C,origin=(101.1600,0.0000)) (idx=76,u=U+0069,origin=(103.3800,0.0000)) (idx=74,u=U+0067,origin=(105.6000,0.0000)) (idx=75,u=U+0068,origin=(111.1600,0.0000)) (idx=87,u=U+0074,origin=(116.7200,0.0000)) (idx=3,u=U+0020,origin=(119.5000,0.0000)) (idx=90,u=U+0077,origin=(122.2800,0.0000)) (idx=76,u=U+0069,origin=(129.5000,0.0000)) (idx=87,u=U+0074,origin=(131.7200,0.0000)) (idx=75,u=U+0068,origin=(134.5000,0.0000)) (idx=3,u=U+0020,origin=(140.0600,0.0000)) (idx=87,u=U+0074,origin=(142.8400,0.0000)) (idx=72,u=U+0065,origin=(145.6200,0.0000)) (idx=91,u=U+0078,origin=(151.1800,0.0000)) (idx=87,u=U+0074,origin=(156.1800,0.0000)) (idx=3,u=U+0020,origin=(158.9600,0.0000)) (idx=81,u=U+006E,origin=(161.7400,0.0000)) (idx=82,u=U+006F,origin=(167.3000,0.0000)) (idx=87,u=U+0074,origin=(172.8600,0.0000)) (idx=72,u=U+0065,origin=(175.6400,0.0000)) (idx=86,u=U+0073,origin=(181.2000,0.0000))] +DrawDeviceText font="Arimo" size=10.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,332.0000] glyphs=[(idx=75,u=U+0068,origin=(0.0000,0.0000)) (idx=87,u=U+0074,origin=(5.5600,0.0000)) (idx=87,u=U+0074,origin=(8.3400,0.0000)) (idx=83,u=U+0070,origin=(11.1200,0.0000)) (idx=86,u=U+0073,origin=(16.6800,0.0000)) (idx=29,u=U+003A,origin=(21.6800,0.0000)) (idx=18,u=U+002F,origin=(24.4600,0.0000)) (idx=18,u=U+002F,origin=(27.2400,0.0000)) (idx=83,u=U+0070,origin=(30.0200,0.0000)) (idx=71,u=U+0064,origin=(35.5800,0.0000)) (idx=73,u=U+0066,origin=(41.1400,0.0000)) (idx=76,u=U+0069,origin=(43.9200,0.0000)) (idx=88,u=U+0075,origin=(46.1400,0.0000)) (idx=80,u=U+006D,origin=(51.7000,0.0000)) (idx=17,u=U+002E,origin=(60.0300,0.0000)) (idx=74,u=U+0067,origin=(62.8100,0.0000)) (idx=82,u=U+006F,origin=(68.3700,0.0000)) (idx=82,u=U+006F,origin=(73.9300,0.0000)) (idx=74,u=U+0067,origin=(79.4900,0.0000)) (idx=79,u=U+006C,origin=(85.0500,0.0000)) (idx=72,u=U+0065,origin=(87.2700,0.0000)) (idx=86,u=U+0073,origin=(92.8300,0.0000)) (idx=82,u=U+006F,origin=(97.8300,0.0000)) (idx=88,u=U+0075,origin=(103.3900,0.0000)) (idx=85,u=U+0072,origin=(108.9500,0.0000)) (idx=70,u=U+0063,origin=(112.2800,0.0000)) (idx=72,u=U+0065,origin=(117.2800,0.0000)) (idx=17,u=U+002E,origin=(122.8400,0.0000)) (idx=70,u=U+0063,origin=(125.6200,0.0000)) (idx=82,u=U+006F,origin=(130.6200,0.0000)) (idx=80,u=U+006D,origin=(136.1800,0.0000)) (idx=18,u=U+002F,origin=(144.5100,0.0000)) (idx=83,u=U+0070,origin=(147.2900,0.0000)) (idx=71,u=U+0064,origin=(152.8500,0.0000)) (idx=73,u=U+0066,origin=(158.4100,0.0000)) (idx=76,u=U+0069,origin=(161.1900,0.0000)) (idx=88,u=U+0075,origin=(163.4100,0.0000)) (idx=80,u=U+006D,origin=(168.9700,0.0000)) (idx=3,u=U+0020,origin=(177.3000,0.0000)) (idx=76,u=U+0069,origin=(180.0800,0.0000)) (idx=86,u=U+0073,origin=(182.3000,0.0000)) (idx=3,u=U+0020,origin=(187.3000,0.0000)) (idx=79,u=U+006C,origin=(190.0800,0.0000)) (idx=76,u=U+0069,origin=(192.3000,0.0000)) (idx=81,u=U+006E,origin=(194.5200,0.0000)) (idx=78,u=U+006B,origin=(200.0800,0.0000)) (idx=3,u=U+0020,origin=(205.0800,0.0000)) (idx=76,u=U+0069,origin=(207.8600,0.0000)) (idx=81,u=U+006E,origin=(210.0800,0.0000)) (idx=3,u=U+0020,origin=(215.6400,0.0000)) (idx=83,u=U+0070,origin=(218.4200,0.0000)) (idx=79,u=U+006C,origin=(223.9800,0.0000)) (idx=68,u=U+0061,origin=(226.2000,0.0000)) (idx=76,u=U+0069,origin=(231.7600,0.0000)) (idx=81,u=U+006E,origin=(233.9800,0.0000)) (idx=3,u=U+0020,origin=(239.5400,0.0000)) (idx=87,u=U+0074,origin=(242.3200,0.0000)) (idx=72,u=U+0065,origin=(245.1000,0.0000)) (idx=91,u=U+0078,origin=(250.6600,0.0000)) (idx=87,u=U+0074,origin=(255.6600,0.0000)) (idx=15,u=U+002C,origin=(258.4400,0.0000)) (idx=3,u=U+0020,origin=(261.2200,0.0000)) (idx=81,u=U+006E,origin=(264.0000,0.0000)) (idx=82,u=U+006F,origin=(269.5600,0.0000)) (idx=87,u=U+0074,origin=(275.1200,0.0000)) (idx=3,u=U+0020,origin=(277.9000,0.0000)) (idx=79,u=U+006C,origin=(280.6800,0.0000)) (idx=76,u=U+0069,origin=(282.9000,0.0000)) (idx=81,u=U+006E,origin=(285.1200,0.0000)) (idx=78,u=U+006B,origin=(290.6800,0.0000)) (idx=3,u=U+0020,origin=(295.6800,0.0000)) (idx=68,u=U+0061,origin=(298.4600,0.0000)) (idx=81,u=U+006E,origin=(304.0200,0.0000)) (idx=81,u=U+006E,origin=(309.5800,0.0000)) (idx=82,u=U+006F,origin=(315.1400,0.0000)) (idx=87,u=U+0074,origin=(320.7000,0.0000)) (idx=68,u=U+0061,origin=(323.4799,0.0000)) (idx=87,u=U+0074,origin=(329.0399,0.0000)) (idx=76,u=U+0069,origin=(331.8199,0.0000)) (idx=82,u=U+006F,origin=(334.0399,0.0000)) (idx=81,u=U+006E,origin=(339.5999,0.0000)) (idx=17,u=U+002E,origin=(345.1599,0.0000)) (idx=3,u=U+0020,origin=(347.9399,0.0000)) (idx=55,u=U+0054,origin=(350.7199,0.0000)) (idx=75,u=U+0068,origin=(356.8299,0.0000)) (idx=72,u=U+0065,origin=(362.3899,0.0000)) (idx=86,u=U+0073,origin=(367.9499,0.0000)) (idx=72,u=U+0065,origin=(372.9499,0.0000)) (idx=3,u=U+0020,origin=(378.5099,0.0000)) (idx=68,u=U+0061,origin=(381.2899,0.0000)) (idx=85,u=U+0072,origin=(386.8499,0.0000)) (idx=72,u=U+0065,origin=(390.1799,0.0000)) (idx=3,u=U+0020,origin=(395.7399,0.0000)) (idx=85,u=U+0072,origin=(398.5199,0.0000)) (idx=72,u=U+0065,origin=(401.8499,0.0000)) (idx=73,u=U+0066,origin=(407.4099,0.0000)) (idx=72,u=U+0065,origin=(410.1899,0.0000)) (idx=85,u=U+0072,origin=(415.7499,0.0000)) (idx=85,u=U+0072,origin=(419.0799,0.0000)) (idx=72,u=U+0065,origin=(422.4099,0.0000)) (idx=71,u=U+0064,origin=(427.9698,0.0000)) (idx=3,u=U+0020,origin=(433.5298,0.0000)) (idx=87,u=U+0074,origin=(436.3098,0.0000)) (idx=82,u=U+006F,origin=(439.0898,0.0000))] +DrawDeviceText font="Arimo" size=10.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,349.0000] glyphs=[(idx=68,u=U+0061,origin=(0.0000,0.0000)) (idx=86,u=U+0073,origin=(5.5600,0.0000)) (idx=3,u=U+0020,origin=(10.5600,0.0000)) (idx=58,u=U+0057,origin=(13.3400,0.0000)) (idx=72,u=U+0065,origin=(22.7800,0.0000)) (idx=69,u=U+0062,origin=(28.3400,0.0000)) (idx=47,u=U+004C,origin=(33.9000,0.0000)) (idx=76,u=U+0069,origin=(39.4600,0.0000)) (idx=81,u=U+006E,origin=(41.6800,0.0000)) (idx=78,u=U+006B,origin=(47.2400,0.0000)) (idx=86,u=U+0073,origin=(52.2400,0.0000)) (idx=3,u=U+0020,origin=(57.2400,0.0000)) (idx=76,u=U+0069,origin=(60.0200,0.0000)) (idx=81,u=U+006E,origin=(62.2400,0.0000)) (idx=3,u=U+0020,origin=(67.8000,0.0000)) (idx=51,u=U+0050,origin=(70.5800,0.0000)) (idx=39,u=U+0044,origin=(77.2500,0.0000)) (idx=41,u=U+0046,origin=(84.4700,0.0000)) (idx=76,u=U+0069,origin=(90.5800,0.0000)) (idx=88,u=U+0075,origin=(92.8000,0.0000)) (idx=80,u=U+006D,origin=(98.3600,0.0000)) (idx=17,u=U+002E,origin=(106.6900,0.0000))] +RestoreState +SaveState +RestoreState +SaveState +RestoreState +SaveState +RestoreState +RestoreState +SaveState +FillRect [156,413,169,441] color=0xffdcdcdc +DrawPath fill=0xffffffff stroke=0x00000000 rule=winding stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,442.0000] points=[move(87.0000,2.0000) line(87.0000,28.0000) line(98.0000,28.0000) line(97.0000,27.0000) line(88.0000,27.0000) line(88.0000,3.0000)] +DrawPath fill=0xff808080 stroke=0x00000000 rule=winding stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,442.0000] points=[move(98.0000,28.0000) line(98.0000,2.0000) line(87.0000,2.0000) line(88.0000,3.0000) line(97.0000,3.0000) line(97.0000,27.0000)] +DrawPath fill=0xff000000 stroke=0x00000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,442.0000] points=[move(86.0000,1.0000) line(99.0000,1.0000) line(99.0000,29.0000) line(86.0000,29.0000) line(86.0000,1.0000,close) move(87.0000,2.0000) line(98.0000,2.0000) line(98.0000,28.0000) line(87.0000,28.0000) line(87.0000,2.0000,close)] +DrawPath fill=0xff000000 stroke=0x00000000 rule=winding stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,442.0000] points=[move(89.5000,16.5000) line(95.5000,16.5000) line(92.5000,13.5000) line(89.5000,16.5000)] +RestoreState +FillRect [70,442,170,412] color=0x64dde4ff diff --git a/testing/resources/embedder_tests/annots_page1_agg.png b/testing/resources/embedder_tests/annots_page1_agg.png deleted file mode 100644 index 3e75c59990..0000000000 Binary files a/testing/resources/embedder_tests/annots_page1_agg.png and /dev/null differ diff --git a/testing/resources/embedder_tests/annots_page1_agg_mac.png b/testing/resources/embedder_tests/annots_page1_agg_mac.png deleted file mode 100644 index b89971da77..0000000000 Binary files a/testing/resources/embedder_tests/annots_page1_agg_mac.png and /dev/null differ diff --git a/testing/resources/embedder_tests/annots_page1_focus_highlight.dump.txt b/testing/resources/embedder_tests/annots_page1_focus_highlight.dump.txt new file mode 100644 index 0000000000..63b631f720 --- /dev/null +++ b/testing/resources/embedder_tests/annots_page1_focus_highlight.dump.txt @@ -0,0 +1,28 @@ +SaveState +SetBaseClip [0,0,612,792] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,792.0000) line(0.0000,0.0000) line(612.0000,0.0000) line(612.0000,792.0000) line(0.0000,792.0000,close)] +SaveState +DrawDeviceText font="Tinos" size=18.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,92.0000] glyphs=[(idx=47,u=U+004C,origin=(0.0000,0.0000)) (idx=76,u=U+0069,origin=(10.9980,0.0000)) (idx=81,u=U+006E,origin=(16.0020,0.0000)) (idx=78,u=U+006B,origin=(25.0020,0.0000)) (idx=3,u=U+0020,origin=(34.0020,0.0000)) (idx=36,u=U+0041,origin=(38.5020,0.0000)) (idx=81,u=U+006E,origin=(51.4980,0.0000)) (idx=81,u=U+006E,origin=(60.4980,0.0000)) (idx=82,u=U+006F,origin=(69.4980,0.0000)) (idx=87,u=U+0074,origin=(78.4980,0.0000)) (idx=68,u=U+0061,origin=(83.5020,0.0000)) (idx=87,u=U+0074,origin=(91.4940,0.0000)) (idx=76,u=U+0069,origin=(96.4980,0.0000)) (idx=82,u=U+006F,origin=(101.5020,0.0000)) (idx=81,u=U+006E,origin=(110.5020,0.0000)) (idx=86,u=U+0073,origin=(119.5020,0.0000)) (idx=3,u=U+0020,origin=(126.5040,0.0000)) (idx=16,u=U+002D,origin=(131.0040,0.0000)) (idx=3,u=U+0020,origin=(136.9980,0.0000)) (idx=51,u=U+0050,origin=(141.4980,0.0000)) (idx=68,u=U+0061,origin=(151.5060,0.0000)) (idx=74,u=U+0067,origin=(159.4980,0.0000)) (idx=72,u=U+0065,origin=(168.4980,0.0000)) (idx=3,u=U+0020,origin=(176.4900,0.0000)) (idx=20,u=U+0031,origin=(180.9900,0.0000))] +DrawDeviceText font="Arimo" size=14.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,157.0000] glyphs=[(idx=20,u=U+0031,origin=(0.0000,0.0000)) (idx=17,u=U+002E,origin=(7.7840,0.0000)) (idx=3,u=U+0020,origin=(11.6760,0.0000)) (idx=47,u=U+004C,origin=(15.5680,0.0000)) (idx=76,u=U+0069,origin=(23.3520,0.0000)) (idx=81,u=U+006E,origin=(26.4600,0.0000)) (idx=78,u=U+006B,origin=(34.2440,0.0000)) (idx=3,u=U+0020,origin=(41.2440,0.0000)) (idx=90,u=U+0077,origin=(45.1360,0.0000)) (idx=76,u=U+0069,origin=(55.2440,0.0000)) (idx=87,u=U+0074,origin=(58.3520,0.0000)) (idx=75,u=U+0068,origin=(62.2440,0.0000)) (idx=3,u=U+0020,origin=(70.0280,0.0000)) (idx=71,u=U+0064,origin=(73.9200,0.0000)) (idx=72,u=U+0065,origin=(81.7040,0.0000)) (idx=86,u=U+0073,origin=(89.4880,0.0000)) (idx=87,u=U+0074,origin=(96.4880,0.0000)) (idx=76,u=U+0069,origin=(100.3800,0.0000)) (idx=81,u=U+006E,origin=(103.4880,0.0000)) (idx=68,u=U+0061,origin=(111.2720,0.0000)) (idx=87,u=U+0074,origin=(119.0560,0.0000)) (idx=76,u=U+0069,origin=(122.9480,0.0000)) (idx=82,u=U+006F,origin=(126.0560,0.0000)) (idx=81,u=U+006E,origin=(133.8400,0.0000)) (idx=3,u=U+0020,origin=(141.6240,0.0000)) (idx=87,u=U+0074,origin=(145.5160,0.0000)) (idx=82,u=U+006F,origin=(149.4080,0.0000)) (idx=3,u=U+0020,origin=(157.1920,0.0000)) (idx=73,u=U+0066,origin=(161.0840,0.0000)) (idx=76,u=U+0069,origin=(164.9760,0.0000)) (idx=85,u=U+0072,origin=(168.0840,0.0000)) (idx=86,u=U+0073,origin=(172.7460,0.0000)) (idx=87,u=U+0074,origin=(179.7460,0.0000)) (idx=3,u=U+0020,origin=(183.6380,0.0000)) (idx=83,u=U+0070,origin=(187.5300,0.0000)) (idx=68,u=U+0061,origin=(195.3140,0.0000)) (idx=74,u=U+0067,origin=(203.0980,0.0000)) (idx=72,u=U+0065,origin=(210.8820,0.0000))] +DrawDeviceText font="Arimo" size=14.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,80.0000,177.0000] glyphs=[(idx=21,u=U+0032,origin=(0.0000,0.0000)) (idx=17,u=U+002E,origin=(7.7840,0.0000)) (idx=3,u=U+0020,origin=(11.6760,0.0000)) (idx=47,u=U+004C,origin=(15.5680,0.0000)) (idx=76,u=U+0069,origin=(23.3520,0.0000)) (idx=81,u=U+006E,origin=(26.4600,0.0000)) (idx=78,u=U+006B,origin=(34.2440,0.0000)) (idx=3,u=U+0020,origin=(41.2440,0.0000)) (idx=90,u=U+0077,origin=(45.1360,0.0000)) (idx=76,u=U+0069,origin=(55.2440,0.0000)) (idx=87,u=U+0074,origin=(58.3520,0.0000)) (idx=75,u=U+0068,origin=(62.2440,0.0000)) (idx=3,u=U+0020,origin=(70.0280,0.0000)) (idx=71,u=U+0064,origin=(73.9200,0.0000)) (idx=72,u=U+0065,origin=(81.7040,0.0000)) (idx=86,u=U+0073,origin=(89.4880,0.0000)) (idx=87,u=U+0074,origin=(96.4880,0.0000)) (idx=76,u=U+0069,origin=(100.3800,0.0000)) (idx=81,u=U+006E,origin=(103.4880,0.0000)) (idx=68,u=U+0061,origin=(111.2720,0.0000)) (idx=87,u=U+0074,origin=(119.0560,0.0000)) (idx=76,u=U+0069,origin=(122.9480,0.0000)) (idx=82,u=U+006F,origin=(126.0560,0.0000)) (idx=81,u=U+006E,origin=(133.8400,0.0000)) (idx=3,u=U+0020,origin=(141.6240,0.0000)) (idx=87,u=U+0074,origin=(145.5160,0.0000)) (idx=82,u=U+006F,origin=(149.4080,0.0000)) (idx=3,u=U+0020,origin=(157.1920,0.0000)) (idx=86,u=U+0073,origin=(161.0840,0.0000)) (idx=72,u=U+0065,origin=(168.0840,0.0000)) (idx=70,u=U+0063,origin=(175.8680,0.0000)) (idx=82,u=U+006F,origin=(182.8680,0.0000)) (idx=81,u=U+006E,origin=(190.6520,0.0000)) (idx=71,u=U+0064,origin=(198.4360,0.0000)) (idx=3,u=U+0020,origin=(206.2200,0.0000)) (idx=83,u=U+0070,origin=(210.1120,0.0000)) (idx=68,u=U+0061,origin=(217.8960,0.0000)) (idx=74,u=U+0067,origin=(225.6799,0.0000)) (idx=72,u=U+0065,origin=(233.4639,0.0000))] +DrawDeviceText font="Arimo" size=10.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,68.0000,261.0000] glyphs=[(idx=51,u=U+0050,origin=(0.0000,0.0000)) (idx=39,u=U+0044,origin=(6.6700,0.0000)) (idx=41,u=U+0046,origin=(13.8900,0.0000)) (idx=3,u=U+0020,origin=(20.0000,0.0000)) (idx=53,u=U+0052,origin=(22.7800,0.0000)) (idx=72,u=U+0065,origin=(30.0000,0.0000)) (idx=73,u=U+0066,origin=(35.5600,0.0000)) (idx=72,u=U+0065,origin=(38.3400,0.0000)) (idx=85,u=U+0072,origin=(43.9000,0.0000)) (idx=72,u=U+0065,origin=(47.2300,0.0000)) (idx=81,u=U+006E,origin=(52.7900,0.0000)) (idx=70,u=U+0063,origin=(58.3500,0.0000)) (idx=72,u=U+0065,origin=(63.3500,0.0000)) (idx=15,u=U+002C,origin=(68.9100,0.0000)) (idx=3,u=U+0020,origin=(71.6900,0.0000)) (idx=57,u=U+0056,origin=(74.4700,0.0000)) (idx=72,u=U+0065,origin=(81.1400,0.0000)) (idx=85,u=U+0072,origin=(86.7000,0.0000)) (idx=86,u=U+0073,origin=(90.0300,0.0000)) (idx=76,u=U+0069,origin=(95.0300,0.0000)) (idx=82,u=U+006F,origin=(97.2500,0.0000)) (idx=81,u=U+006E,origin=(102.8100,0.0000)) (idx=3,u=U+0020,origin=(108.3700,0.0000)) (idx=20,u=U+0031,origin=(111.1500,0.0000)) (idx=17,u=U+002E,origin=(116.7100,0.0000)) (idx=26,u=U+0037,origin=(119.4900,0.0000)) (idx=15,u=U+002C,origin=(125.0500,0.0000)) (idx=3,u=U+0020,origin=(127.8300,0.0000)) (idx=54,u=U+0053,origin=(130.6100,0.0000)) (idx=72,u=U+0065,origin=(137.2800,0.0000)) (idx=70,u=U+0063,origin=(142.8400,0.0000)) (idx=87,u=U+0074,origin=(147.8400,0.0000)) (idx=76,u=U+0069,origin=(150.6200,0.0000)) (idx=82,u=U+006F,origin=(152.8400,0.0000)) (idx=81,u=U+006E,origin=(158.4000,0.0000)) (idx=3,u=U+0020,origin=(163.9600,0.0000)) (idx=27,u=U+0038,origin=(166.7400,0.0000)) (idx=17,u=U+002E,origin=(172.3000,0.0000)) (idx=23,u=U+0034,origin=(175.0800,0.0000)) (idx=17,u=U+002E,origin=(180.6400,0.0000)) (idx=24,u=U+0035,origin=(183.4200,0.0000)) (idx=3,u=U+0020,origin=(188.9800,0.0000)) (idx=71,u=U+0064,origin=(191.7600,0.0000)) (idx=72,u=U+0065,origin=(197.3200,0.0000)) (idx=73,u=U+0066,origin=(202.8800,0.0000)) (idx=76,u=U+0069,origin=(205.6600,0.0000)) (idx=81,u=U+006E,origin=(207.8800,0.0000)) (idx=72,u=U+0065,origin=(213.4400,0.0000)) (idx=86,u=U+0073,origin=(219.0000,0.0000)) (idx=3,u=U+0020,origin=(224.0000,0.0000)) (idx=36,u=U+0041,origin=(226.7800,0.0000)) (idx=81,u=U+006E,origin=(233.4500,0.0000)) (idx=81,u=U+006E,origin=(239.0099,0.0000)) (idx=82,u=U+006F,origin=(244.5699,0.0000)) (idx=87,u=U+0074,origin=(250.1299,0.0000)) (idx=68,u=U+0061,origin=(252.9099,0.0000)) (idx=87,u=U+0074,origin=(258.4699,0.0000)) (idx=76,u=U+0069,origin=(261.2499,0.0000)) (idx=82,u=U+006F,origin=(263.4699,0.0000)) (idx=81,u=U+006E,origin=(269.0299,0.0000)) (idx=86,u=U+0073,origin=(274.5899,0.0000))] +DrawDeviceText font="Arimo" size=10.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,314.0000] glyphs=[(idx=22,u=U+0033,origin=(0.0000,0.0000)) (idx=17,u=U+002E,origin=(5.5600,0.0000)) (idx=3,u=U+0020,origin=(8.3400,0.0000)) (idx=3,u=U+0020,origin=(11.1200,0.0000)) (idx=36,u=U+0041,origin=(13.9000,0.0000)) (idx=81,u=U+006E,origin=(20.5700,0.0000)) (idx=3,u=U+0020,origin=(26.1300,0.0000)) (idx=72,u=U+0065,origin=(28.9100,0.0000)) (idx=91,u=U+0078,origin=(34.4700,0.0000)) (idx=68,u=U+0061,origin=(39.4700,0.0000)) (idx=80,u=U+006D,origin=(45.0300,0.0000)) (idx=83,u=U+0070,origin=(53.3600,0.0000)) (idx=79,u=U+006C,origin=(58.9200,0.0000)) (idx=72,u=U+0065,origin=(61.1400,0.0000)) (idx=3,u=U+0020,origin=(66.7000,0.0000)) (idx=82,u=U+006F,origin=(69.4800,0.0000)) (idx=73,u=U+0066,origin=(75.0400,0.0000)) (idx=3,u=U+0020,origin=(77.8200,0.0000)) (idx=43,u=U+0048,origin=(80.6000,0.0000)) (idx=76,u=U+0069,origin=(87.8200,0.0000)) (idx=74,u=U+0067,origin=(90.0400,0.0000)) (idx=75,u=U+0068,origin=(95.6000,0.0000)) (idx=79,u=U+006C,origin=(101.1600,0.0000)) (idx=76,u=U+0069,origin=(103.3800,0.0000)) (idx=74,u=U+0067,origin=(105.6000,0.0000)) (idx=75,u=U+0068,origin=(111.1600,0.0000)) (idx=87,u=U+0074,origin=(116.7200,0.0000)) (idx=3,u=U+0020,origin=(119.5000,0.0000)) (idx=90,u=U+0077,origin=(122.2800,0.0000)) (idx=76,u=U+0069,origin=(129.5000,0.0000)) (idx=87,u=U+0074,origin=(131.7200,0.0000)) (idx=75,u=U+0068,origin=(134.5000,0.0000)) (idx=3,u=U+0020,origin=(140.0600,0.0000)) (idx=87,u=U+0074,origin=(142.8400,0.0000)) (idx=72,u=U+0065,origin=(145.6200,0.0000)) (idx=91,u=U+0078,origin=(151.1800,0.0000)) (idx=87,u=U+0074,origin=(156.1800,0.0000)) (idx=3,u=U+0020,origin=(158.9600,0.0000)) (idx=81,u=U+006E,origin=(161.7400,0.0000)) (idx=82,u=U+006F,origin=(167.3000,0.0000)) (idx=87,u=U+0074,origin=(172.8600,0.0000)) (idx=72,u=U+0065,origin=(175.6400,0.0000)) (idx=86,u=U+0073,origin=(181.2000,0.0000))] +DrawDeviceText font="Arimo" size=10.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,332.0000] glyphs=[(idx=75,u=U+0068,origin=(0.0000,0.0000)) (idx=87,u=U+0074,origin=(5.5600,0.0000)) (idx=87,u=U+0074,origin=(8.3400,0.0000)) (idx=83,u=U+0070,origin=(11.1200,0.0000)) (idx=86,u=U+0073,origin=(16.6800,0.0000)) (idx=29,u=U+003A,origin=(21.6800,0.0000)) (idx=18,u=U+002F,origin=(24.4600,0.0000)) (idx=18,u=U+002F,origin=(27.2400,0.0000)) (idx=83,u=U+0070,origin=(30.0200,0.0000)) (idx=71,u=U+0064,origin=(35.5800,0.0000)) (idx=73,u=U+0066,origin=(41.1400,0.0000)) (idx=76,u=U+0069,origin=(43.9200,0.0000)) (idx=88,u=U+0075,origin=(46.1400,0.0000)) (idx=80,u=U+006D,origin=(51.7000,0.0000)) (idx=17,u=U+002E,origin=(60.0300,0.0000)) (idx=74,u=U+0067,origin=(62.8100,0.0000)) (idx=82,u=U+006F,origin=(68.3700,0.0000)) (idx=82,u=U+006F,origin=(73.9300,0.0000)) (idx=74,u=U+0067,origin=(79.4900,0.0000)) (idx=79,u=U+006C,origin=(85.0500,0.0000)) (idx=72,u=U+0065,origin=(87.2700,0.0000)) (idx=86,u=U+0073,origin=(92.8300,0.0000)) (idx=82,u=U+006F,origin=(97.8300,0.0000)) (idx=88,u=U+0075,origin=(103.3900,0.0000)) (idx=85,u=U+0072,origin=(108.9500,0.0000)) (idx=70,u=U+0063,origin=(112.2800,0.0000)) (idx=72,u=U+0065,origin=(117.2800,0.0000)) (idx=17,u=U+002E,origin=(122.8400,0.0000)) (idx=70,u=U+0063,origin=(125.6200,0.0000)) (idx=82,u=U+006F,origin=(130.6200,0.0000)) (idx=80,u=U+006D,origin=(136.1800,0.0000)) (idx=18,u=U+002F,origin=(144.5100,0.0000)) (idx=83,u=U+0070,origin=(147.2900,0.0000)) (idx=71,u=U+0064,origin=(152.8500,0.0000)) (idx=73,u=U+0066,origin=(158.4100,0.0000)) (idx=76,u=U+0069,origin=(161.1900,0.0000)) (idx=88,u=U+0075,origin=(163.4100,0.0000)) (idx=80,u=U+006D,origin=(168.9700,0.0000)) (idx=3,u=U+0020,origin=(177.3000,0.0000)) (idx=76,u=U+0069,origin=(180.0800,0.0000)) (idx=86,u=U+0073,origin=(182.3000,0.0000)) (idx=3,u=U+0020,origin=(187.3000,0.0000)) (idx=79,u=U+006C,origin=(190.0800,0.0000)) (idx=76,u=U+0069,origin=(192.3000,0.0000)) (idx=81,u=U+006E,origin=(194.5200,0.0000)) (idx=78,u=U+006B,origin=(200.0800,0.0000)) (idx=3,u=U+0020,origin=(205.0800,0.0000)) (idx=76,u=U+0069,origin=(207.8600,0.0000)) (idx=81,u=U+006E,origin=(210.0800,0.0000)) (idx=3,u=U+0020,origin=(215.6400,0.0000)) (idx=83,u=U+0070,origin=(218.4200,0.0000)) (idx=79,u=U+006C,origin=(223.9800,0.0000)) (idx=68,u=U+0061,origin=(226.2000,0.0000)) (idx=76,u=U+0069,origin=(231.7600,0.0000)) (idx=81,u=U+006E,origin=(233.9800,0.0000)) (idx=3,u=U+0020,origin=(239.5400,0.0000)) (idx=87,u=U+0074,origin=(242.3200,0.0000)) (idx=72,u=U+0065,origin=(245.1000,0.0000)) (idx=91,u=U+0078,origin=(250.6600,0.0000)) (idx=87,u=U+0074,origin=(255.6600,0.0000)) (idx=15,u=U+002C,origin=(258.4400,0.0000)) (idx=3,u=U+0020,origin=(261.2200,0.0000)) (idx=81,u=U+006E,origin=(264.0000,0.0000)) (idx=82,u=U+006F,origin=(269.5600,0.0000)) (idx=87,u=U+0074,origin=(275.1200,0.0000)) (idx=3,u=U+0020,origin=(277.9000,0.0000)) (idx=79,u=U+006C,origin=(280.6800,0.0000)) (idx=76,u=U+0069,origin=(282.9000,0.0000)) (idx=81,u=U+006E,origin=(285.1200,0.0000)) (idx=78,u=U+006B,origin=(290.6800,0.0000)) (idx=3,u=U+0020,origin=(295.6800,0.0000)) (idx=68,u=U+0061,origin=(298.4600,0.0000)) (idx=81,u=U+006E,origin=(304.0200,0.0000)) (idx=81,u=U+006E,origin=(309.5800,0.0000)) (idx=82,u=U+006F,origin=(315.1400,0.0000)) (idx=87,u=U+0074,origin=(320.7000,0.0000)) (idx=68,u=U+0061,origin=(323.4799,0.0000)) (idx=87,u=U+0074,origin=(329.0399,0.0000)) (idx=76,u=U+0069,origin=(331.8199,0.0000)) (idx=82,u=U+006F,origin=(334.0399,0.0000)) (idx=81,u=U+006E,origin=(339.5999,0.0000)) (idx=17,u=U+002E,origin=(345.1599,0.0000)) (idx=3,u=U+0020,origin=(347.9399,0.0000)) (idx=55,u=U+0054,origin=(350.7199,0.0000)) (idx=75,u=U+0068,origin=(356.8299,0.0000)) (idx=72,u=U+0065,origin=(362.3899,0.0000)) (idx=86,u=U+0073,origin=(367.9499,0.0000)) (idx=72,u=U+0065,origin=(372.9499,0.0000)) (idx=3,u=U+0020,origin=(378.5099,0.0000)) (idx=68,u=U+0061,origin=(381.2899,0.0000)) (idx=85,u=U+0072,origin=(386.8499,0.0000)) (idx=72,u=U+0065,origin=(390.1799,0.0000)) (idx=3,u=U+0020,origin=(395.7399,0.0000)) (idx=85,u=U+0072,origin=(398.5199,0.0000)) (idx=72,u=U+0065,origin=(401.8499,0.0000)) (idx=73,u=U+0066,origin=(407.4099,0.0000)) (idx=72,u=U+0065,origin=(410.1899,0.0000)) (idx=85,u=U+0072,origin=(415.7499,0.0000)) (idx=85,u=U+0072,origin=(419.0799,0.0000)) (idx=72,u=U+0065,origin=(422.4099,0.0000)) (idx=71,u=U+0064,origin=(427.9698,0.0000)) (idx=3,u=U+0020,origin=(433.5298,0.0000)) (idx=87,u=U+0074,origin=(436.3098,0.0000)) (idx=82,u=U+006F,origin=(439.0898,0.0000))] +DrawDeviceText font="Arimo" size=10.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,349.0000] glyphs=[(idx=68,u=U+0061,origin=(0.0000,0.0000)) (idx=86,u=U+0073,origin=(5.5600,0.0000)) (idx=3,u=U+0020,origin=(10.5600,0.0000)) (idx=58,u=U+0057,origin=(13.3400,0.0000)) (idx=72,u=U+0065,origin=(22.7800,0.0000)) (idx=69,u=U+0062,origin=(28.3400,0.0000)) (idx=47,u=U+004C,origin=(33.9000,0.0000)) (idx=76,u=U+0069,origin=(39.4600,0.0000)) (idx=81,u=U+006E,origin=(41.6800,0.0000)) (idx=78,u=U+006B,origin=(47.2400,0.0000)) (idx=86,u=U+0073,origin=(52.2400,0.0000)) (idx=3,u=U+0020,origin=(57.2400,0.0000)) (idx=76,u=U+0069,origin=(60.0200,0.0000)) (idx=81,u=U+006E,origin=(62.2400,0.0000)) (idx=3,u=U+0020,origin=(67.8000,0.0000)) (idx=51,u=U+0050,origin=(70.5800,0.0000)) (idx=39,u=U+0044,origin=(77.2500,0.0000)) (idx=41,u=U+0046,origin=(84.4700,0.0000)) (idx=76,u=U+0069,origin=(90.5800,0.0000)) (idx=88,u=U+0075,origin=(92.8000,0.0000)) (idx=80,u=U+006D,origin=(98.3600,0.0000)) (idx=17,u=U+002E,origin=(106.6900,0.0000))] +RestoreState +SaveState +RestoreState +SaveState +RestoreState +SaveState +RestoreState +RestoreState +SaveState +FillRect [156,413,169,441] color=0xffdcdcdc +DrawPath fill=0xffffffff stroke=0x00000000 rule=winding stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,442.0000] points=[move(87.0000,2.0000) line(87.0000,28.0000) line(98.0000,28.0000) line(97.0000,27.0000) line(88.0000,27.0000) line(88.0000,3.0000)] +DrawPath fill=0xff808080 stroke=0x00000000 rule=winding stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,442.0000] points=[move(98.0000,28.0000) line(98.0000,2.0000) line(87.0000,2.0000) line(88.0000,3.0000) line(97.0000,3.0000) line(97.0000,27.0000)] +DrawPath fill=0xff000000 stroke=0x00000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,442.0000] points=[move(86.0000,1.0000) line(99.0000,1.0000) line(99.0000,29.0000) line(86.0000,29.0000) line(86.0000,1.0000,close) move(87.0000,2.0000) line(98.0000,2.0000) line(98.0000,28.0000) line(87.0000,28.0000) line(87.0000,2.0000,close)] +DrawPath fill=0xff000000 stroke=0x00000000 rule=winding stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,442.0000] points=[move(89.5000,16.5000) line(95.5000,16.5000) line(92.5000,13.5000) line(89.5000,16.5000)] +RestoreState +FillRect [70,442,170,412] color=0x64dde4ff +DrawPath fill=0x00000000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,792.0000] points=[move(293.0000,542.0000) line(293.0000,530.0000) line(349.0000,530.0000) line(349.0000,542.0000) line(293.0000,542.0000)] diff --git a/testing/resources/embedder_tests/annots_page1_focus_highlight_agg.png b/testing/resources/embedder_tests/annots_page1_focus_highlight_agg.png deleted file mode 100644 index a97c5be3e6..0000000000 Binary files a/testing/resources/embedder_tests/annots_page1_focus_highlight_agg.png and /dev/null differ diff --git a/testing/resources/embedder_tests/annots_page1_focus_highlight_agg_mac.png b/testing/resources/embedder_tests/annots_page1_focus_highlight_agg_mac.png deleted file mode 100644 index f0c4eabd52..0000000000 Binary files a/testing/resources/embedder_tests/annots_page1_focus_highlight_agg_mac.png and /dev/null differ diff --git a/testing/resources/embedder_tests/annots_page1_focus_highlight_skia_linux.png b/testing/resources/embedder_tests/annots_page1_focus_highlight_skia_linux.png deleted file mode 100644 index 8d587ab07c..0000000000 Binary files a/testing/resources/embedder_tests/annots_page1_focus_highlight_skia_linux.png and /dev/null differ diff --git a/testing/resources/embedder_tests/annots_page1_focus_highlight_skia_mac.png b/testing/resources/embedder_tests/annots_page1_focus_highlight_skia_mac.png deleted file mode 100644 index 10abc115bf..0000000000 Binary files a/testing/resources/embedder_tests/annots_page1_focus_highlight_skia_mac.png and /dev/null differ diff --git a/testing/resources/embedder_tests/annots_page1_focus_highlight_skia_win.png b/testing/resources/embedder_tests/annots_page1_focus_highlight_skia_win.png deleted file mode 100644 index d8fd1a803f..0000000000 Binary files a/testing/resources/embedder_tests/annots_page1_focus_highlight_skia_win.png and /dev/null differ diff --git a/testing/resources/embedder_tests/annots_page1_focus_link.dump.txt b/testing/resources/embedder_tests/annots_page1_focus_link.dump.txt new file mode 100644 index 0000000000..e1507328f9 --- /dev/null +++ b/testing/resources/embedder_tests/annots_page1_focus_link.dump.txt @@ -0,0 +1,28 @@ +SaveState +SetBaseClip [0,0,612,792] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,792.0000) line(0.0000,0.0000) line(612.0000,0.0000) line(612.0000,792.0000) line(0.0000,792.0000,close)] +SaveState +DrawDeviceText font="Tinos" size=18.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,92.0000] glyphs=[(idx=47,u=U+004C,origin=(0.0000,0.0000)) (idx=76,u=U+0069,origin=(10.9980,0.0000)) (idx=81,u=U+006E,origin=(16.0020,0.0000)) (idx=78,u=U+006B,origin=(25.0020,0.0000)) (idx=3,u=U+0020,origin=(34.0020,0.0000)) (idx=36,u=U+0041,origin=(38.5020,0.0000)) (idx=81,u=U+006E,origin=(51.4980,0.0000)) (idx=81,u=U+006E,origin=(60.4980,0.0000)) (idx=82,u=U+006F,origin=(69.4980,0.0000)) (idx=87,u=U+0074,origin=(78.4980,0.0000)) (idx=68,u=U+0061,origin=(83.5020,0.0000)) (idx=87,u=U+0074,origin=(91.4940,0.0000)) (idx=76,u=U+0069,origin=(96.4980,0.0000)) (idx=82,u=U+006F,origin=(101.5020,0.0000)) (idx=81,u=U+006E,origin=(110.5020,0.0000)) (idx=86,u=U+0073,origin=(119.5020,0.0000)) (idx=3,u=U+0020,origin=(126.5040,0.0000)) (idx=16,u=U+002D,origin=(131.0040,0.0000)) (idx=3,u=U+0020,origin=(136.9980,0.0000)) (idx=51,u=U+0050,origin=(141.4980,0.0000)) (idx=68,u=U+0061,origin=(151.5060,0.0000)) (idx=74,u=U+0067,origin=(159.4980,0.0000)) (idx=72,u=U+0065,origin=(168.4980,0.0000)) (idx=3,u=U+0020,origin=(176.4900,0.0000)) (idx=20,u=U+0031,origin=(180.9900,0.0000))] +DrawDeviceText font="Arimo" size=14.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,157.0000] glyphs=[(idx=20,u=U+0031,origin=(0.0000,0.0000)) (idx=17,u=U+002E,origin=(7.7840,0.0000)) (idx=3,u=U+0020,origin=(11.6760,0.0000)) (idx=47,u=U+004C,origin=(15.5680,0.0000)) (idx=76,u=U+0069,origin=(23.3520,0.0000)) (idx=81,u=U+006E,origin=(26.4600,0.0000)) (idx=78,u=U+006B,origin=(34.2440,0.0000)) (idx=3,u=U+0020,origin=(41.2440,0.0000)) (idx=90,u=U+0077,origin=(45.1360,0.0000)) (idx=76,u=U+0069,origin=(55.2440,0.0000)) (idx=87,u=U+0074,origin=(58.3520,0.0000)) (idx=75,u=U+0068,origin=(62.2440,0.0000)) (idx=3,u=U+0020,origin=(70.0280,0.0000)) (idx=71,u=U+0064,origin=(73.9200,0.0000)) (idx=72,u=U+0065,origin=(81.7040,0.0000)) (idx=86,u=U+0073,origin=(89.4880,0.0000)) (idx=87,u=U+0074,origin=(96.4880,0.0000)) (idx=76,u=U+0069,origin=(100.3800,0.0000)) (idx=81,u=U+006E,origin=(103.4880,0.0000)) (idx=68,u=U+0061,origin=(111.2720,0.0000)) (idx=87,u=U+0074,origin=(119.0560,0.0000)) (idx=76,u=U+0069,origin=(122.9480,0.0000)) (idx=82,u=U+006F,origin=(126.0560,0.0000)) (idx=81,u=U+006E,origin=(133.8400,0.0000)) (idx=3,u=U+0020,origin=(141.6240,0.0000)) (idx=87,u=U+0074,origin=(145.5160,0.0000)) (idx=82,u=U+006F,origin=(149.4080,0.0000)) (idx=3,u=U+0020,origin=(157.1920,0.0000)) (idx=73,u=U+0066,origin=(161.0840,0.0000)) (idx=76,u=U+0069,origin=(164.9760,0.0000)) (idx=85,u=U+0072,origin=(168.0840,0.0000)) (idx=86,u=U+0073,origin=(172.7460,0.0000)) (idx=87,u=U+0074,origin=(179.7460,0.0000)) (idx=3,u=U+0020,origin=(183.6380,0.0000)) (idx=83,u=U+0070,origin=(187.5300,0.0000)) (idx=68,u=U+0061,origin=(195.3140,0.0000)) (idx=74,u=U+0067,origin=(203.0980,0.0000)) (idx=72,u=U+0065,origin=(210.8820,0.0000))] +DrawDeviceText font="Arimo" size=14.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,80.0000,177.0000] glyphs=[(idx=21,u=U+0032,origin=(0.0000,0.0000)) (idx=17,u=U+002E,origin=(7.7840,0.0000)) (idx=3,u=U+0020,origin=(11.6760,0.0000)) (idx=47,u=U+004C,origin=(15.5680,0.0000)) (idx=76,u=U+0069,origin=(23.3520,0.0000)) (idx=81,u=U+006E,origin=(26.4600,0.0000)) (idx=78,u=U+006B,origin=(34.2440,0.0000)) (idx=3,u=U+0020,origin=(41.2440,0.0000)) (idx=90,u=U+0077,origin=(45.1360,0.0000)) (idx=76,u=U+0069,origin=(55.2440,0.0000)) (idx=87,u=U+0074,origin=(58.3520,0.0000)) (idx=75,u=U+0068,origin=(62.2440,0.0000)) (idx=3,u=U+0020,origin=(70.0280,0.0000)) (idx=71,u=U+0064,origin=(73.9200,0.0000)) (idx=72,u=U+0065,origin=(81.7040,0.0000)) (idx=86,u=U+0073,origin=(89.4880,0.0000)) (idx=87,u=U+0074,origin=(96.4880,0.0000)) (idx=76,u=U+0069,origin=(100.3800,0.0000)) (idx=81,u=U+006E,origin=(103.4880,0.0000)) (idx=68,u=U+0061,origin=(111.2720,0.0000)) (idx=87,u=U+0074,origin=(119.0560,0.0000)) (idx=76,u=U+0069,origin=(122.9480,0.0000)) (idx=82,u=U+006F,origin=(126.0560,0.0000)) (idx=81,u=U+006E,origin=(133.8400,0.0000)) (idx=3,u=U+0020,origin=(141.6240,0.0000)) (idx=87,u=U+0074,origin=(145.5160,0.0000)) (idx=82,u=U+006F,origin=(149.4080,0.0000)) (idx=3,u=U+0020,origin=(157.1920,0.0000)) (idx=86,u=U+0073,origin=(161.0840,0.0000)) (idx=72,u=U+0065,origin=(168.0840,0.0000)) (idx=70,u=U+0063,origin=(175.8680,0.0000)) (idx=82,u=U+006F,origin=(182.8680,0.0000)) (idx=81,u=U+006E,origin=(190.6520,0.0000)) (idx=71,u=U+0064,origin=(198.4360,0.0000)) (idx=3,u=U+0020,origin=(206.2200,0.0000)) (idx=83,u=U+0070,origin=(210.1120,0.0000)) (idx=68,u=U+0061,origin=(217.8960,0.0000)) (idx=74,u=U+0067,origin=(225.6799,0.0000)) (idx=72,u=U+0065,origin=(233.4639,0.0000))] +DrawDeviceText font="Arimo" size=10.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,68.0000,261.0000] glyphs=[(idx=51,u=U+0050,origin=(0.0000,0.0000)) (idx=39,u=U+0044,origin=(6.6700,0.0000)) (idx=41,u=U+0046,origin=(13.8900,0.0000)) (idx=3,u=U+0020,origin=(20.0000,0.0000)) (idx=53,u=U+0052,origin=(22.7800,0.0000)) (idx=72,u=U+0065,origin=(30.0000,0.0000)) (idx=73,u=U+0066,origin=(35.5600,0.0000)) (idx=72,u=U+0065,origin=(38.3400,0.0000)) (idx=85,u=U+0072,origin=(43.9000,0.0000)) (idx=72,u=U+0065,origin=(47.2300,0.0000)) (idx=81,u=U+006E,origin=(52.7900,0.0000)) (idx=70,u=U+0063,origin=(58.3500,0.0000)) (idx=72,u=U+0065,origin=(63.3500,0.0000)) (idx=15,u=U+002C,origin=(68.9100,0.0000)) (idx=3,u=U+0020,origin=(71.6900,0.0000)) (idx=57,u=U+0056,origin=(74.4700,0.0000)) (idx=72,u=U+0065,origin=(81.1400,0.0000)) (idx=85,u=U+0072,origin=(86.7000,0.0000)) (idx=86,u=U+0073,origin=(90.0300,0.0000)) (idx=76,u=U+0069,origin=(95.0300,0.0000)) (idx=82,u=U+006F,origin=(97.2500,0.0000)) (idx=81,u=U+006E,origin=(102.8100,0.0000)) (idx=3,u=U+0020,origin=(108.3700,0.0000)) (idx=20,u=U+0031,origin=(111.1500,0.0000)) (idx=17,u=U+002E,origin=(116.7100,0.0000)) (idx=26,u=U+0037,origin=(119.4900,0.0000)) (idx=15,u=U+002C,origin=(125.0500,0.0000)) (idx=3,u=U+0020,origin=(127.8300,0.0000)) (idx=54,u=U+0053,origin=(130.6100,0.0000)) (idx=72,u=U+0065,origin=(137.2800,0.0000)) (idx=70,u=U+0063,origin=(142.8400,0.0000)) (idx=87,u=U+0074,origin=(147.8400,0.0000)) (idx=76,u=U+0069,origin=(150.6200,0.0000)) (idx=82,u=U+006F,origin=(152.8400,0.0000)) (idx=81,u=U+006E,origin=(158.4000,0.0000)) (idx=3,u=U+0020,origin=(163.9600,0.0000)) (idx=27,u=U+0038,origin=(166.7400,0.0000)) (idx=17,u=U+002E,origin=(172.3000,0.0000)) (idx=23,u=U+0034,origin=(175.0800,0.0000)) (idx=17,u=U+002E,origin=(180.6400,0.0000)) (idx=24,u=U+0035,origin=(183.4200,0.0000)) (idx=3,u=U+0020,origin=(188.9800,0.0000)) (idx=71,u=U+0064,origin=(191.7600,0.0000)) (idx=72,u=U+0065,origin=(197.3200,0.0000)) (idx=73,u=U+0066,origin=(202.8800,0.0000)) (idx=76,u=U+0069,origin=(205.6600,0.0000)) (idx=81,u=U+006E,origin=(207.8800,0.0000)) (idx=72,u=U+0065,origin=(213.4400,0.0000)) (idx=86,u=U+0073,origin=(219.0000,0.0000)) (idx=3,u=U+0020,origin=(224.0000,0.0000)) (idx=36,u=U+0041,origin=(226.7800,0.0000)) (idx=81,u=U+006E,origin=(233.4500,0.0000)) (idx=81,u=U+006E,origin=(239.0099,0.0000)) (idx=82,u=U+006F,origin=(244.5699,0.0000)) (idx=87,u=U+0074,origin=(250.1299,0.0000)) (idx=68,u=U+0061,origin=(252.9099,0.0000)) (idx=87,u=U+0074,origin=(258.4699,0.0000)) (idx=76,u=U+0069,origin=(261.2499,0.0000)) (idx=82,u=U+006F,origin=(263.4699,0.0000)) (idx=81,u=U+006E,origin=(269.0299,0.0000)) (idx=86,u=U+0073,origin=(274.5899,0.0000))] +DrawDeviceText font="Arimo" size=10.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,314.0000] glyphs=[(idx=22,u=U+0033,origin=(0.0000,0.0000)) (idx=17,u=U+002E,origin=(5.5600,0.0000)) (idx=3,u=U+0020,origin=(8.3400,0.0000)) (idx=3,u=U+0020,origin=(11.1200,0.0000)) (idx=36,u=U+0041,origin=(13.9000,0.0000)) (idx=81,u=U+006E,origin=(20.5700,0.0000)) (idx=3,u=U+0020,origin=(26.1300,0.0000)) (idx=72,u=U+0065,origin=(28.9100,0.0000)) (idx=91,u=U+0078,origin=(34.4700,0.0000)) (idx=68,u=U+0061,origin=(39.4700,0.0000)) (idx=80,u=U+006D,origin=(45.0300,0.0000)) (idx=83,u=U+0070,origin=(53.3600,0.0000)) (idx=79,u=U+006C,origin=(58.9200,0.0000)) (idx=72,u=U+0065,origin=(61.1400,0.0000)) (idx=3,u=U+0020,origin=(66.7000,0.0000)) (idx=82,u=U+006F,origin=(69.4800,0.0000)) (idx=73,u=U+0066,origin=(75.0400,0.0000)) (idx=3,u=U+0020,origin=(77.8200,0.0000)) (idx=43,u=U+0048,origin=(80.6000,0.0000)) (idx=76,u=U+0069,origin=(87.8200,0.0000)) (idx=74,u=U+0067,origin=(90.0400,0.0000)) (idx=75,u=U+0068,origin=(95.6000,0.0000)) (idx=79,u=U+006C,origin=(101.1600,0.0000)) (idx=76,u=U+0069,origin=(103.3800,0.0000)) (idx=74,u=U+0067,origin=(105.6000,0.0000)) (idx=75,u=U+0068,origin=(111.1600,0.0000)) (idx=87,u=U+0074,origin=(116.7200,0.0000)) (idx=3,u=U+0020,origin=(119.5000,0.0000)) (idx=90,u=U+0077,origin=(122.2800,0.0000)) (idx=76,u=U+0069,origin=(129.5000,0.0000)) (idx=87,u=U+0074,origin=(131.7200,0.0000)) (idx=75,u=U+0068,origin=(134.5000,0.0000)) (idx=3,u=U+0020,origin=(140.0600,0.0000)) (idx=87,u=U+0074,origin=(142.8400,0.0000)) (idx=72,u=U+0065,origin=(145.6200,0.0000)) (idx=91,u=U+0078,origin=(151.1800,0.0000)) (idx=87,u=U+0074,origin=(156.1800,0.0000)) (idx=3,u=U+0020,origin=(158.9600,0.0000)) (idx=81,u=U+006E,origin=(161.7400,0.0000)) (idx=82,u=U+006F,origin=(167.3000,0.0000)) (idx=87,u=U+0074,origin=(172.8600,0.0000)) (idx=72,u=U+0065,origin=(175.6400,0.0000)) (idx=86,u=U+0073,origin=(181.2000,0.0000))] +DrawDeviceText font="Arimo" size=10.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,332.0000] glyphs=[(idx=75,u=U+0068,origin=(0.0000,0.0000)) (idx=87,u=U+0074,origin=(5.5600,0.0000)) (idx=87,u=U+0074,origin=(8.3400,0.0000)) (idx=83,u=U+0070,origin=(11.1200,0.0000)) (idx=86,u=U+0073,origin=(16.6800,0.0000)) (idx=29,u=U+003A,origin=(21.6800,0.0000)) (idx=18,u=U+002F,origin=(24.4600,0.0000)) (idx=18,u=U+002F,origin=(27.2400,0.0000)) (idx=83,u=U+0070,origin=(30.0200,0.0000)) (idx=71,u=U+0064,origin=(35.5800,0.0000)) (idx=73,u=U+0066,origin=(41.1400,0.0000)) (idx=76,u=U+0069,origin=(43.9200,0.0000)) (idx=88,u=U+0075,origin=(46.1400,0.0000)) (idx=80,u=U+006D,origin=(51.7000,0.0000)) (idx=17,u=U+002E,origin=(60.0300,0.0000)) (idx=74,u=U+0067,origin=(62.8100,0.0000)) (idx=82,u=U+006F,origin=(68.3700,0.0000)) (idx=82,u=U+006F,origin=(73.9300,0.0000)) (idx=74,u=U+0067,origin=(79.4900,0.0000)) (idx=79,u=U+006C,origin=(85.0500,0.0000)) (idx=72,u=U+0065,origin=(87.2700,0.0000)) (idx=86,u=U+0073,origin=(92.8300,0.0000)) (idx=82,u=U+006F,origin=(97.8300,0.0000)) (idx=88,u=U+0075,origin=(103.3900,0.0000)) (idx=85,u=U+0072,origin=(108.9500,0.0000)) (idx=70,u=U+0063,origin=(112.2800,0.0000)) (idx=72,u=U+0065,origin=(117.2800,0.0000)) (idx=17,u=U+002E,origin=(122.8400,0.0000)) (idx=70,u=U+0063,origin=(125.6200,0.0000)) (idx=82,u=U+006F,origin=(130.6200,0.0000)) (idx=80,u=U+006D,origin=(136.1800,0.0000)) (idx=18,u=U+002F,origin=(144.5100,0.0000)) (idx=83,u=U+0070,origin=(147.2900,0.0000)) (idx=71,u=U+0064,origin=(152.8500,0.0000)) (idx=73,u=U+0066,origin=(158.4100,0.0000)) (idx=76,u=U+0069,origin=(161.1900,0.0000)) (idx=88,u=U+0075,origin=(163.4100,0.0000)) (idx=80,u=U+006D,origin=(168.9700,0.0000)) (idx=3,u=U+0020,origin=(177.3000,0.0000)) (idx=76,u=U+0069,origin=(180.0800,0.0000)) (idx=86,u=U+0073,origin=(182.3000,0.0000)) (idx=3,u=U+0020,origin=(187.3000,0.0000)) (idx=79,u=U+006C,origin=(190.0800,0.0000)) (idx=76,u=U+0069,origin=(192.3000,0.0000)) (idx=81,u=U+006E,origin=(194.5200,0.0000)) (idx=78,u=U+006B,origin=(200.0800,0.0000)) (idx=3,u=U+0020,origin=(205.0800,0.0000)) (idx=76,u=U+0069,origin=(207.8600,0.0000)) (idx=81,u=U+006E,origin=(210.0800,0.0000)) (idx=3,u=U+0020,origin=(215.6400,0.0000)) (idx=83,u=U+0070,origin=(218.4200,0.0000)) (idx=79,u=U+006C,origin=(223.9800,0.0000)) (idx=68,u=U+0061,origin=(226.2000,0.0000)) (idx=76,u=U+0069,origin=(231.7600,0.0000)) (idx=81,u=U+006E,origin=(233.9800,0.0000)) (idx=3,u=U+0020,origin=(239.5400,0.0000)) (idx=87,u=U+0074,origin=(242.3200,0.0000)) (idx=72,u=U+0065,origin=(245.1000,0.0000)) (idx=91,u=U+0078,origin=(250.6600,0.0000)) (idx=87,u=U+0074,origin=(255.6600,0.0000)) (idx=15,u=U+002C,origin=(258.4400,0.0000)) (idx=3,u=U+0020,origin=(261.2200,0.0000)) (idx=81,u=U+006E,origin=(264.0000,0.0000)) (idx=82,u=U+006F,origin=(269.5600,0.0000)) (idx=87,u=U+0074,origin=(275.1200,0.0000)) (idx=3,u=U+0020,origin=(277.9000,0.0000)) (idx=79,u=U+006C,origin=(280.6800,0.0000)) (idx=76,u=U+0069,origin=(282.9000,0.0000)) (idx=81,u=U+006E,origin=(285.1200,0.0000)) (idx=78,u=U+006B,origin=(290.6800,0.0000)) (idx=3,u=U+0020,origin=(295.6800,0.0000)) (idx=68,u=U+0061,origin=(298.4600,0.0000)) (idx=81,u=U+006E,origin=(304.0200,0.0000)) (idx=81,u=U+006E,origin=(309.5800,0.0000)) (idx=82,u=U+006F,origin=(315.1400,0.0000)) (idx=87,u=U+0074,origin=(320.7000,0.0000)) (idx=68,u=U+0061,origin=(323.4799,0.0000)) (idx=87,u=U+0074,origin=(329.0399,0.0000)) (idx=76,u=U+0069,origin=(331.8199,0.0000)) (idx=82,u=U+006F,origin=(334.0399,0.0000)) (idx=81,u=U+006E,origin=(339.5999,0.0000)) (idx=17,u=U+002E,origin=(345.1599,0.0000)) (idx=3,u=U+0020,origin=(347.9399,0.0000)) (idx=55,u=U+0054,origin=(350.7199,0.0000)) (idx=75,u=U+0068,origin=(356.8299,0.0000)) (idx=72,u=U+0065,origin=(362.3899,0.0000)) (idx=86,u=U+0073,origin=(367.9499,0.0000)) (idx=72,u=U+0065,origin=(372.9499,0.0000)) (idx=3,u=U+0020,origin=(378.5099,0.0000)) (idx=68,u=U+0061,origin=(381.2899,0.0000)) (idx=85,u=U+0072,origin=(386.8499,0.0000)) (idx=72,u=U+0065,origin=(390.1799,0.0000)) (idx=3,u=U+0020,origin=(395.7399,0.0000)) (idx=85,u=U+0072,origin=(398.5199,0.0000)) (idx=72,u=U+0065,origin=(401.8499,0.0000)) (idx=73,u=U+0066,origin=(407.4099,0.0000)) (idx=72,u=U+0065,origin=(410.1899,0.0000)) (idx=85,u=U+0072,origin=(415.7499,0.0000)) (idx=85,u=U+0072,origin=(419.0799,0.0000)) (idx=72,u=U+0065,origin=(422.4099,0.0000)) (idx=71,u=U+0064,origin=(427.9698,0.0000)) (idx=3,u=U+0020,origin=(433.5298,0.0000)) (idx=87,u=U+0074,origin=(436.3098,0.0000)) (idx=82,u=U+006F,origin=(439.0898,0.0000))] +DrawDeviceText font="Arimo" size=10.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,349.0000] glyphs=[(idx=68,u=U+0061,origin=(0.0000,0.0000)) (idx=86,u=U+0073,origin=(5.5600,0.0000)) (idx=3,u=U+0020,origin=(10.5600,0.0000)) (idx=58,u=U+0057,origin=(13.3400,0.0000)) (idx=72,u=U+0065,origin=(22.7800,0.0000)) (idx=69,u=U+0062,origin=(28.3400,0.0000)) (idx=47,u=U+004C,origin=(33.9000,0.0000)) (idx=76,u=U+0069,origin=(39.4600,0.0000)) (idx=81,u=U+006E,origin=(41.6800,0.0000)) (idx=78,u=U+006B,origin=(47.2400,0.0000)) (idx=86,u=U+0073,origin=(52.2400,0.0000)) (idx=3,u=U+0020,origin=(57.2400,0.0000)) (idx=76,u=U+0069,origin=(60.0200,0.0000)) (idx=81,u=U+006E,origin=(62.2400,0.0000)) (idx=3,u=U+0020,origin=(67.8000,0.0000)) (idx=51,u=U+0050,origin=(70.5800,0.0000)) (idx=39,u=U+0044,origin=(77.2500,0.0000)) (idx=41,u=U+0046,origin=(84.4700,0.0000)) (idx=76,u=U+0069,origin=(90.5800,0.0000)) (idx=88,u=U+0075,origin=(92.8000,0.0000)) (idx=80,u=U+006D,origin=(98.3600,0.0000)) (idx=17,u=U+002E,origin=(106.6900,0.0000))] +RestoreState +SaveState +RestoreState +SaveState +RestoreState +SaveState +RestoreState +RestoreState +SaveState +FillRect [156,413,169,441] color=0xffdcdcdc +DrawPath fill=0xffffffff stroke=0x00000000 rule=winding stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,442.0000] points=[move(87.0000,2.0000) line(87.0000,28.0000) line(98.0000,28.0000) line(97.0000,27.0000) line(88.0000,27.0000) line(88.0000,3.0000)] +DrawPath fill=0xff808080 stroke=0x00000000 rule=winding stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,442.0000] points=[move(98.0000,28.0000) line(98.0000,2.0000) line(87.0000,2.0000) line(88.0000,3.0000) line(97.0000,3.0000) line(97.0000,27.0000)] +DrawPath fill=0xff000000 stroke=0x00000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,442.0000] points=[move(86.0000,1.0000) line(99.0000,1.0000) line(99.0000,29.0000) line(86.0000,29.0000) line(86.0000,1.0000,close) move(87.0000,2.0000) line(98.0000,2.0000) line(98.0000,28.0000) line(87.0000,28.0000) line(87.0000,2.0000,close)] +DrawPath fill=0xff000000 stroke=0x00000000 rule=winding stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,70.0000,442.0000] points=[move(89.5000,16.5000) line(95.5000,16.5000) line(92.5000,13.5000) line(89.5000,16.5000)] +RestoreState +FillRect [70,442,170,412] color=0x64dde4ff +DrawPath fill=0x00000000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,792.0000] points=[move(69.0000,653.0000) line(69.0000,633.0000) line(542.0000,633.0000) line(542.0000,653.0000) line(69.0000,653.0000)] diff --git a/testing/resources/embedder_tests/annots_page1_focus_link_agg.png b/testing/resources/embedder_tests/annots_page1_focus_link_agg.png deleted file mode 100644 index a8e708cb4c..0000000000 Binary files a/testing/resources/embedder_tests/annots_page1_focus_link_agg.png and /dev/null differ diff --git a/testing/resources/embedder_tests/annots_page1_focus_link_agg_mac.png b/testing/resources/embedder_tests/annots_page1_focus_link_agg_mac.png deleted file mode 100644 index f45ee84496..0000000000 Binary files a/testing/resources/embedder_tests/annots_page1_focus_link_agg_mac.png and /dev/null differ diff --git a/testing/resources/embedder_tests/annots_page1_focus_link_skia_linux.png b/testing/resources/embedder_tests/annots_page1_focus_link_skia_linux.png deleted file mode 100644 index bc18976b2b..0000000000 Binary files a/testing/resources/embedder_tests/annots_page1_focus_link_skia_linux.png and /dev/null differ diff --git a/testing/resources/embedder_tests/annots_page1_focus_link_skia_mac.png b/testing/resources/embedder_tests/annots_page1_focus_link_skia_mac.png deleted file mode 100644 index d8de4a350c..0000000000 Binary files a/testing/resources/embedder_tests/annots_page1_focus_link_skia_mac.png and /dev/null differ diff --git a/testing/resources/embedder_tests/annots_page1_focus_link_skia_win.png b/testing/resources/embedder_tests/annots_page1_focus_link_skia_win.png deleted file mode 100644 index c93d2f0bdd..0000000000 Binary files a/testing/resources/embedder_tests/annots_page1_focus_link_skia_win.png and /dev/null differ diff --git a/testing/resources/embedder_tests/annots_page1_skia_linux.png b/testing/resources/embedder_tests/annots_page1_skia_linux.png deleted file mode 100644 index 7df1cd9f1b..0000000000 Binary files a/testing/resources/embedder_tests/annots_page1_skia_linux.png and /dev/null differ diff --git a/testing/resources/embedder_tests/annots_page1_skia_mac.png b/testing/resources/embedder_tests/annots_page1_skia_mac.png deleted file mode 100644 index 785e39bcc5..0000000000 Binary files a/testing/resources/embedder_tests/annots_page1_skia_mac.png and /dev/null differ diff --git a/testing/resources/embedder_tests/annots_page1_skia_win.png b/testing/resources/embedder_tests/annots_page1_skia_win.png deleted file mode 100644 index a07e2a7f0e..0000000000 Binary files a/testing/resources/embedder_tests/annots_page1_skia_win.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bad_page_type_new_page1.dump.txt b/testing/resources/embedder_tests/bad_page_type_new_page1.dump.txt new file mode 100644 index 0000000000..b2d23ce470 --- /dev/null +++ b/testing/resources/embedder_tests/bad_page_type_new_page1.dump.txt @@ -0,0 +1,14 @@ +SaveState +SetBaseClip [0,0,200,300] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,300.0000) line(0.0000,0.0000) line(200.0000,0.0000) line(200.0000,300.0000) line(0.0000,300.0000,close)] +SaveState +DrawPath fill=0xff000000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,300.0000] points=[move(0.0000,290.0000) line(10.0000,290.0000) line(10.0000,300.0000) line(0.0000,300.0000) line(0.0000,290.0000,close)] +DrawPath fill=0xff000000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,300.0000] points=[move(10.0000,150.0000) line(60.0000,150.0000) line(60.0000,180.0000) line(10.0000,180.0000) line(10.0000,150.0000,close)] +DrawPath fill=0xff0000ff stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,300.0000] points=[move(190.0000,290.0000) line(200.0000,290.0000) line(200.0000,300.0000) line(190.0000,300.0000) line(190.0000,290.0000,close)] +DrawPath fill=0xff0000ff stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,300.0000] points=[move(70.0000,232.0000) line(120.0000,232.0000) line(120.0000,262.0000) line(70.0000,262.0000) line(70.0000,232.0000,close)] +DrawPath fill=0xff00ff00 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,300.0000] points=[move(190.0000,0.0000) line(200.0000,0.0000) line(200.0000,10.0000) line(190.0000,10.0000) line(190.0000,0.0000,close)] +DrawPath fill=0xff00ff00 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,300.0000] points=[move(130.0000,150.0000) line(180.0000,150.0000) line(180.0000,180.0000) line(130.0000,180.0000) line(130.0000,150.0000,close)] +DrawPath fill=0xffff0000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,300.0000] points=[move(0.0000,0.0000) line(10.0000,0.0000) line(10.0000,10.0000) line(0.0000,10.0000) line(0.0000,0.0000,close)] +DrawPath fill=0xffff0000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,300.0000] points=[move(70.0000,67.0000) line(120.0000,67.0000) line(120.0000,97.0000) line(70.0000,97.0000) line(70.0000,67.0000,close)] +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/bad_page_type_new_page1_agg.png b/testing/resources/embedder_tests/bad_page_type_new_page1_agg.png deleted file mode 100644 index ee652fa5ae..0000000000 Binary files a/testing/resources/embedder_tests/bad_page_type_new_page1_agg.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bad_page_type_new_page1_skia.png b/testing/resources/embedder_tests/bad_page_type_new_page1_skia.png deleted file mode 100644 index cc2399dced..0000000000 Binary files a/testing/resources/embedder_tests/bad_page_type_new_page1_skia.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bad_page_type_new_page2.dump.txt b/testing/resources/embedder_tests/bad_page_type_new_page2.dump.txt new file mode 100644 index 0000000000..c082270ce4 --- /dev/null +++ b/testing/resources/embedder_tests/bad_page_type_new_page2.dump.txt @@ -0,0 +1,7 @@ +SaveState +SetBaseClip [0,0,200,100] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,100.0000) line(0.0000,0.0000) line(200.0000,0.0000) line(200.0000,100.0000) line(0.0000,100.0000,close)] +SaveState +FillRect [50,30,60,40] color=0xffff0000 +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/bad_page_type_new_page2.png b/testing/resources/embedder_tests/bad_page_type_new_page2.png deleted file mode 100644 index fee6eaf3bc..0000000000 Binary files a/testing/resources/embedder_tests/bad_page_type_new_page2.png and /dev/null differ diff --git a/testing/resources/embedder_tests/blank_100x120.dump.txt b/testing/resources/embedder_tests/blank_100x120.dump.txt new file mode 100644 index 0000000000..55fbc7cbf0 --- /dev/null +++ b/testing/resources/embedder_tests/blank_100x120.dump.txt @@ -0,0 +1,8 @@ +SaveState +SetBaseClip [0,0,100,120] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,120.0000) line(0.0000,0.0000) line(100.0000,0.0000) line(100.0000,120.0000) line(0.0000,120.0000,close)] +SaveState +SaveState +RestoreState +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/blank_100x120.png b/testing/resources/embedder_tests/blank_100x120.png deleted file mode 100644 index 84a43f0cb2..0000000000 Binary files a/testing/resources/embedder_tests/blank_100x120.png and /dev/null differ diff --git a/testing/resources/embedder_tests/blank_100x120_agg_mac.png b/testing/resources/embedder_tests/blank_100x120_agg_mac.png deleted file mode 100644 index fca1702dc8..0000000000 Binary files a/testing/resources/embedder_tests/blank_100x120_agg_mac.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_1229106_rect.dump.txt b/testing/resources/embedder_tests/bug_1229106_rect.dump.txt new file mode 100644 index 0000000000..77eebe1a76 --- /dev/null +++ b/testing/resources/embedder_tests/bug_1229106_rect.dump.txt @@ -0,0 +1,11 @@ +SaveState +SetBaseClip [0,0,792,612] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,612.0000) line(0.0000,0.0000) line(792.0000,0.0000) line(792.0000,612.0000) line(0.0000,612.0000,close)] +SaveState +FillRect [100,342,250,392] color=0xff000000 +FillRect [0,562,100,612] color=0xffff0000 +FillRect [0,0,100,50] color=0xff00ff00 +FillRect [692,0,792,50] color=0xff0000ff +FillRect [692,562,792,612] color=0xffff00ff +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/bug_1229106_rect.png b/testing/resources/embedder_tests/bug_1229106_rect.png deleted file mode 100644 index 9fa2f2cbf6..0000000000 Binary files a/testing/resources/embedder_tests/bug_1229106_rect.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_1229106_two_up.dump.txt b/testing/resources/embedder_tests/bug_1229106_two_up.dump.txt new file mode 100644 index 0000000000..056a7da689 --- /dev/null +++ b/testing/resources/embedder_tests/bug_1229106_two_up.dump.txt @@ -0,0 +1,20 @@ +SaveState +SetBaseClip [0,0,612,792] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,792.0000) line(0.0000,0.0000) line(612.0000,0.0000) line(612.0000,792.0000) line(0.0000,792.0000,close)] +SaveState +SaveState +FillRect [114,221,212,254] color=0xff000000 +FillRect [50,363,115,396] color=0xffff0000 +FillRect [50,0,115,33] color=0xff00ff00 +FillRect [497,0,562,33] color=0xff0000ff +FillRect [497,363,562,396] color=0xffff00ff +RestoreState +SaveState +FillRect [114,617,212,650] color=0xff000000 +FillRect [50,759,115,792] color=0xffff0000 +FillRect [50,396,115,429] color=0xff00ff00 +FillRect [497,396,562,429] color=0xff0000ff +FillRect [497,759,562,792] color=0xffff00ff +RestoreState +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/bug_1229106_two_up.png b/testing/resources/embedder_tests/bug_1229106_two_up.png deleted file mode 100644 index 4dce79da5d..0000000000 Binary files a/testing/resources/embedder_tests/bug_1229106_two_up.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_40162073.dump.txt b/testing/resources/embedder_tests/bug_40162073.dump.txt new file mode 100644 index 0000000000..430809fc5e --- /dev/null +++ b/testing/resources/embedder_tests/bug_40162073.dump.txt @@ -0,0 +1,8 @@ +SaveState +SetBaseClip [0,0,200,200] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,200.0000) line(0.0000,0.0000) line(200.0000,0.0000) line(200.0000,200.0000) line(0.0000,200.0000,close)] +SaveState +FillRect [50,125,150,175] color=0xff0000ff +FillRect [50,75,150,125] color=0xff00ff00 +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/bug_40162073.png b/testing/resources/embedder_tests/bug_40162073.png deleted file mode 100644 index b37b0ce7a6..0000000000 Binary files a/testing/resources/embedder_tests/bug_40162073.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_40162073_wrong.dump.txt b/testing/resources/embedder_tests/bug_40162073_wrong.dump.txt new file mode 100644 index 0000000000..6e99c9f157 --- /dev/null +++ b/testing/resources/embedder_tests/bug_40162073_wrong.dump.txt @@ -0,0 +1,9 @@ +SaveState +SetBaseClip [0,0,200,200] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,200.0000) line(0.0000,0.0000) line(200.0000,0.0000) line(200.0000,200.0000) line(0.0000,200.0000,close)] +SaveState +FillRect [50,125,150,175] color=0xff0000ff +FillRect [50,75,150,125] color=0xff00ff00 +FillRect [50,25,150,75] color=0xffff0000 +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/bug_40162073_wrong.png b/testing/resources/embedder_tests/bug_40162073_wrong.png deleted file mode 100644 index 71b259a555..0000000000 Binary files a/testing/resources/embedder_tests/bug_40162073_wrong.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_555784.dump.txt b/testing/resources/embedder_tests/bug_555784.dump.txt new file mode 100644 index 0000000000..94ebba5e82 --- /dev/null +++ b/testing/resources/embedder_tests/bug_555784.dump.txt @@ -0,0 +1,7 @@ +SaveState +SetBaseClip [0,0,612,792] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,792.0000) line(0.0000,0.0000) line(612.0000,0.0000) line(612.0000,792.0000) line(0.0000,792.0000,close)] +SaveState +StartDIBits size=[81915,1] bpp=24 matrix=[4178.0000,0.0000,0.0000,-1.0000,0.0000,792.0000] alpha=1.0000 color=0x00000000 +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/bug_555784.png b/testing/resources/embedder_tests/bug_555784.png deleted file mode 100644 index 038433d90f..0000000000 Binary files a/testing/resources/embedder_tests/bug_555784.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_750568_page1.dump.txt b/testing/resources/embedder_tests/bug_750568_page1.dump.txt new file mode 100644 index 0000000000..458479e7a8 --- /dev/null +++ b/testing/resources/embedder_tests/bug_750568_page1.dump.txt @@ -0,0 +1,7 @@ +SaveState +SetBaseClip [0,0,200,200] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,200.0000) line(0.0000,0.0000) line(200.0000,0.0000) line(200.0000,200.0000) line(0.0000,200.0000,close)] +SaveState +DrawPath fill=0xff000000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,200.0000] points=[move(10.0000,80.0000) line(60.0000,80.0000) line(60.0000,110.0000) line(10.0000,110.0000) line(10.0000,80.0000,close)] +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/bug_750568_page1_agg.png b/testing/resources/embedder_tests/bug_750568_page1_agg.png deleted file mode 100644 index 0af7a20dd7..0000000000 Binary files a/testing/resources/embedder_tests/bug_750568_page1_agg.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_750568_page1_skia.png b/testing/resources/embedder_tests/bug_750568_page1_skia.png deleted file mode 100644 index a2795b6723..0000000000 Binary files a/testing/resources/embedder_tests/bug_750568_page1_skia.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_750568_page2.dump.txt b/testing/resources/embedder_tests/bug_750568_page2.dump.txt new file mode 100644 index 0000000000..0453beab65 --- /dev/null +++ b/testing/resources/embedder_tests/bug_750568_page2.dump.txt @@ -0,0 +1,7 @@ +SaveState +SetBaseClip [0,0,200,200] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,200.0000) line(0.0000,0.0000) line(200.0000,0.0000) line(200.0000,200.0000) line(0.0000,200.0000,close)] +SaveState +DrawPath fill=0xff0000ff stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,200.0000] points=[move(70.0000,135.0000) line(120.0000,135.0000) line(120.0000,165.0000) line(70.0000,165.0000) line(70.0000,135.0000,close)] +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/bug_750568_page2_agg.png b/testing/resources/embedder_tests/bug_750568_page2_agg.png deleted file mode 100644 index 4bf3b870f0..0000000000 Binary files a/testing/resources/embedder_tests/bug_750568_page2_agg.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_750568_page2_skia.png b/testing/resources/embedder_tests/bug_750568_page2_skia.png deleted file mode 100644 index 0d1eace71f..0000000000 Binary files a/testing/resources/embedder_tests/bug_750568_page2_skia.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_750568_page3.dump.txt b/testing/resources/embedder_tests/bug_750568_page3.dump.txt new file mode 100644 index 0000000000..7144cdc245 --- /dev/null +++ b/testing/resources/embedder_tests/bug_750568_page3.dump.txt @@ -0,0 +1,7 @@ +SaveState +SetBaseClip [0,0,200,200] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,200.0000) line(0.0000,0.0000) line(200.0000,0.0000) line(200.0000,200.0000) line(0.0000,200.0000,close)] +SaveState +DrawPath fill=0xff00ff00 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,200.0000] points=[move(130.0000,80.0000) line(180.0000,80.0000) line(180.0000,110.0000) line(130.0000,110.0000) line(130.0000,80.0000,close)] +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/bug_750568_page3_agg.png b/testing/resources/embedder_tests/bug_750568_page3_agg.png deleted file mode 100644 index 4e39179676..0000000000 Binary files a/testing/resources/embedder_tests/bug_750568_page3_agg.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_750568_page3_skia.png b/testing/resources/embedder_tests/bug_750568_page3_skia.png deleted file mode 100644 index 6c815ee643..0000000000 Binary files a/testing/resources/embedder_tests/bug_750568_page3_skia.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_750568_page4.dump.txt b/testing/resources/embedder_tests/bug_750568_page4.dump.txt new file mode 100644 index 0000000000..a6750ff539 --- /dev/null +++ b/testing/resources/embedder_tests/bug_750568_page4.dump.txt @@ -0,0 +1,7 @@ +SaveState +SetBaseClip [0,0,200,200] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,200.0000) line(0.0000,0.0000) line(200.0000,0.0000) line(200.0000,200.0000) line(0.0000,200.0000,close)] +SaveState +DrawPath fill=0xffff0000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,200.0000] points=[move(70.0000,25.0000) line(120.0000,25.0000) line(120.0000,55.0000) line(70.0000,55.0000) line(70.0000,25.0000,close)] +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/bug_750568_page4_agg.png b/testing/resources/embedder_tests/bug_750568_page4_agg.png deleted file mode 100644 index c20d4a024a..0000000000 Binary files a/testing/resources/embedder_tests/bug_750568_page4_agg.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_750568_page4_skia.png b/testing/resources/embedder_tests/bug_750568_page4_skia.png deleted file mode 100644 index b73cec2643..0000000000 Binary files a/testing/resources/embedder_tests/bug_750568_page4_skia.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_861842.dump.txt b/testing/resources/embedder_tests/bug_861842.dump.txt new file mode 100644 index 0000000000..05579cf881 --- /dev/null +++ b/testing/resources/embedder_tests/bug_861842.dump.txt @@ -0,0 +1,10 @@ +SaveState +SetBaseClip [0,0,100,120] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,120.0000) line(0.0000,0.0000) line(100.0000,0.0000) line(100.0000,120.0000) line(0.0000,120.0000,close)] +SaveState +RestoreState +RestoreState +SaveState +DrawDeviceText font="Chrom Dingbats OTF" size=25.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,40.0000,70.0000] glyphs=[(idx=109,u=U+2714,origin=(0.0000,0.0000))] +RestoreState +FillRect [40,70,60,50] color=0x64dde4ff diff --git a/testing/resources/embedder_tests/bug_861842_agg.png b/testing/resources/embedder_tests/bug_861842_agg.png deleted file mode 100644 index 5bed304380..0000000000 Binary files a/testing/resources/embedder_tests/bug_861842_agg.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_861842_agg_mac.png b/testing/resources/embedder_tests/bug_861842_agg_mac.png deleted file mode 100644 index 29201bfaec..0000000000 Binary files a/testing/resources/embedder_tests/bug_861842_agg_mac.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_861842_skia.png b/testing/resources/embedder_tests/bug_861842_skia.png deleted file mode 100644 index 24b2452fe2..0000000000 Binary files a/testing/resources/embedder_tests/bug_861842_skia.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_861842_skia_mac.png b/testing/resources/embedder_tests/bug_861842_skia_mac.png deleted file mode 100644 index 37d51e1d4e..0000000000 Binary files a/testing/resources/embedder_tests/bug_861842_skia_mac.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_889099.dump.txt b/testing/resources/embedder_tests/bug_889099.dump.txt new file mode 100644 index 0000000000..8e2be3b5aa --- /dev/null +++ b/testing/resources/embedder_tests/bug_889099.dump.txt @@ -0,0 +1,10 @@ +SaveState +SetBaseClip [0,0,300,400] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,400.0000) line(0.0000,0.0000) line(300.0000,0.0000) line(300.0000,400.0000) line(0.0000,400.0000,close)] +SaveState +RestoreState +RestoreState +SaveState +DrawDeviceText font="Arimo" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,101.0000,19.1640] glyphs=[(idx=42,u=U+0047,origin=(0.0000,0.0000)) (idx=82,u=U+006F,origin=(9.3360,0.0000)) (idx=82,u=U+006F,origin=(16.0080,0.0000)) (idx=71,u=U+0064,origin=(22.6800,0.0000)) (idx=3,u=U+0020,origin=(29.3520,0.0000)) (idx=29,u=U+003A,origin=(32.6880,0.0000)) (idx=64,u=U+005D,origin=(36.0240,0.0000))] +RestoreState +FillRect [100,130,200,-100] color=0x64dde4ff diff --git a/testing/resources/embedder_tests/bug_889099_agg.png b/testing/resources/embedder_tests/bug_889099_agg.png deleted file mode 100644 index be9ddecc4c..0000000000 Binary files a/testing/resources/embedder_tests/bug_889099_agg.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_889099_agg_mac.png b/testing/resources/embedder_tests/bug_889099_agg_mac.png deleted file mode 100644 index dc057f22b9..0000000000 Binary files a/testing/resources/embedder_tests/bug_889099_agg_mac.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_889099_flattened.dump.txt b/testing/resources/embedder_tests/bug_889099_flattened.dump.txt new file mode 100644 index 0000000000..5b76d18c15 --- /dev/null +++ b/testing/resources/embedder_tests/bug_889099_flattened.dump.txt @@ -0,0 +1,11 @@ +SaveState +SetBaseClip [0,0,300,400] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,400.0000) line(0.0000,0.0000) line(300.0000,0.0000) line(300.0000,400.0000) line(0.0000,400.0000,close)] +SaveState +SaveState +SaveState +DrawDeviceText font="Arimo" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,101.0000,19.1640] glyphs=[(idx=42,u=U+0047,origin=(0.0000,0.0000)) (idx=82,u=U+006F,origin=(9.3360,0.0000)) (idx=82,u=U+006F,origin=(16.0080,0.0000)) (idx=71,u=U+0064,origin=(22.6800,0.0000)) (idx=3,u=U+0020,origin=(29.3520,0.0000)) (idx=29,u=U+003A,origin=(32.6880,0.0000)) (idx=64,u=U+005D,origin=(36.0240,0.0000))] +RestoreState +RestoreState +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/bug_889099_flattened_agg.png b/testing/resources/embedder_tests/bug_889099_flattened_agg.png deleted file mode 100644 index 239fb9ef33..0000000000 Binary files a/testing/resources/embedder_tests/bug_889099_flattened_agg.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_889099_flattened_agg_mac.png b/testing/resources/embedder_tests/bug_889099_flattened_agg_mac.png deleted file mode 100644 index f6ecae44b8..0000000000 Binary files a/testing/resources/embedder_tests/bug_889099_flattened_agg_mac.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_889099_flattened_skia.png b/testing/resources/embedder_tests/bug_889099_flattened_skia.png deleted file mode 100644 index 349b9a6ce4..0000000000 Binary files a/testing/resources/embedder_tests/bug_889099_flattened_skia.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_889099_flattened_skia_mac.png b/testing/resources/embedder_tests/bug_889099_flattened_skia_mac.png deleted file mode 100644 index 90fd86f98b..0000000000 Binary files a/testing/resources/embedder_tests/bug_889099_flattened_skia_mac.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_889099_flattened_skia_win.png b/testing/resources/embedder_tests/bug_889099_flattened_skia_win.png deleted file mode 100644 index 1b1a3ee389..0000000000 Binary files a/testing/resources/embedder_tests/bug_889099_flattened_skia_win.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_889099_skia.png b/testing/resources/embedder_tests/bug_889099_skia.png deleted file mode 100644 index 4f2bb18889..0000000000 Binary files a/testing/resources/embedder_tests/bug_889099_skia.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_889099_skia_mac.png b/testing/resources/embedder_tests/bug_889099_skia_mac.png deleted file mode 100644 index 46fab79cd8..0000000000 Binary files a/testing/resources/embedder_tests/bug_889099_skia_mac.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_889099_skia_win.png b/testing/resources/embedder_tests/bug_889099_skia_win.png deleted file mode 100644 index 74db7febf2..0000000000 Binary files a/testing/resources/embedder_tests/bug_889099_skia_win.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_890322.dump.txt b/testing/resources/embedder_tests/bug_890322.dump.txt new file mode 100644 index 0000000000..65900bdb9f --- /dev/null +++ b/testing/resources/embedder_tests/bug_890322.dump.txt @@ -0,0 +1,11 @@ +SaveState +SetBaseClip [0,0,200,200] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,200.0000) line(0.0000,0.0000) line(200.0000,0.0000) line(200.0000,200.0000) line(0.0000,200.0000,close)] +SaveState +RestoreState +RestoreState +SaveState +RestoreState +SetClip_PathFill rule=winding matrix=[1.0000,0.0000,0.0000,-1.0000,75.0000,120.0000] points=[move(0.0000,40.0000) line(0.0000,0.0000) line(50.0000,0.0000) line(50.0000,40.0000) line(0.0000,40.0000,close)] +DrawPath fill=0xff0000ff stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,75.0000,120.0000] points=[move(0.0000,0.0000) line(50.0000,0.0000) line(50.0000,40.0000) line(0.0000,40.0000) line(0.0000,0.0000,close)] +RestoreState diff --git a/testing/resources/embedder_tests/bug_890322_saved.dump.txt b/testing/resources/embedder_tests/bug_890322_saved.dump.txt new file mode 100644 index 0000000000..30b4713a2b --- /dev/null +++ b/testing/resources/embedder_tests/bug_890322_saved.dump.txt @@ -0,0 +1,13 @@ +SaveState +SetBaseClip [0,0,200,200] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,200.0000) line(0.0000,0.0000) line(200.0000,0.0000) line(200.0000,200.0000) line(0.0000,200.0000,close)] +SaveState +SaveState +SaveState +RestoreState +SetClip_PathFill rule=winding matrix=[1.0000,0.0000,0.0000,-1.0000,75.0000,120.0000] points=[move(0.0000,40.0000) line(0.0000,0.0000) line(50.0000,0.0000) line(50.0000,40.0000) line(0.0000,40.0000,close)] +DrawPath fill=0xff0000ff stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,75.0000,120.0000] points=[move(0.0000,0.0000) line(50.0000,0.0000) line(50.0000,40.0000) line(0.0000,40.0000) line(0.0000,0.0000,close)] +RestoreState +RestoreState +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/bug_896366.dump.txt b/testing/resources/embedder_tests/bug_896366.dump.txt new file mode 100644 index 0000000000..47cbbcee80 --- /dev/null +++ b/testing/resources/embedder_tests/bug_896366.dump.txt @@ -0,0 +1,11 @@ +SaveState +SetBaseClip [0,0,612,792] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,792.0000) line(0.0000,0.0000) line(612.0000,0.0000) line(612.0000,792.0000) line(0.0000,792.0000,close)] +SaveState +RestoreState +RestoreState +SaveState +RestoreState +SetClip_PathFill rule=winding matrix=[1.0000,0.0000,0.0000,-1.0000,75.0000,712.0000] points=[move(0.0000,40.0000) line(0.0000,0.0000) line(50.0000,0.0000) line(50.0000,40.0000) line(0.0000,40.0000,close)] +DrawPath fill=0xff0000ff stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,75.0000,712.0000] points=[move(0.0000,0.0000) line(50.0000,0.0000) line(50.0000,40.0000) line(0.0000,40.0000) line(0.0000,0.0000,close)] +RestoreState diff --git a/testing/resources/embedder_tests/bug_896366_agg.png b/testing/resources/embedder_tests/bug_896366_agg.png deleted file mode 100644 index f24bb14b78..0000000000 Binary files a/testing/resources/embedder_tests/bug_896366_agg.png and /dev/null differ diff --git a/testing/resources/embedder_tests/bug_896366_saved.dump.txt b/testing/resources/embedder_tests/bug_896366_saved.dump.txt new file mode 100644 index 0000000000..6ca2a7ac9b --- /dev/null +++ b/testing/resources/embedder_tests/bug_896366_saved.dump.txt @@ -0,0 +1,13 @@ +SaveState +SetBaseClip [0,0,612,792] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,792.0000) line(0.0000,0.0000) line(612.0000,0.0000) line(612.0000,792.0000) line(0.0000,792.0000,close)] +SaveState +SaveState +SaveState +RestoreState +SetClip_PathFill rule=winding matrix=[1.0000,0.0000,0.0000,-1.0000,75.0000,712.0000] points=[move(0.0000,40.0000) line(0.0000,0.0000) line(50.0000,0.0000) line(50.0000,40.0000) line(0.0000,40.0000,close)] +DrawPath fill=0xff0000ff stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,75.0000,712.0000] points=[move(0.0000,0.0000) line(50.0000,0.0000) line(50.0000,40.0000) line(0.0000,40.0000) line(0.0000,0.0000,close)] +RestoreState +RestoreState +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/bug_896366_skia.png b/testing/resources/embedder_tests/bug_896366_skia.png deleted file mode 100644 index 8542758762..0000000000 Binary files a/testing/resources/embedder_tests/bug_896366_skia.png and /dev/null differ diff --git a/testing/resources/embedder_tests/fpdf_annot_render_annot_with_only_rollover_ap.dump.txt b/testing/resources/embedder_tests/fpdf_annot_render_annot_with_only_rollover_ap.dump.txt new file mode 100644 index 0000000000..0541a9b4eb --- /dev/null +++ b/testing/resources/embedder_tests/fpdf_annot_render_annot_with_only_rollover_ap.dump.txt @@ -0,0 +1,8 @@ +SaveState +SetBaseClip [0,0,612,792] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,792.0000) line(0.0000,0.0000) line(612.0000,0.0000) line(612.0000,792.0000) line(0.0000,792.0000,close)] +SaveState +RestoreState +SaveState +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/fpdf_annot_render_annot_with_only_rollover_ap.png b/testing/resources/embedder_tests/fpdf_annot_render_annot_with_only_rollover_ap.png deleted file mode 100644 index 8f9d480a05..0000000000 Binary files a/testing/resources/embedder_tests/fpdf_annot_render_annot_with_only_rollover_ap.png and /dev/null differ diff --git a/testing/resources/embedder_tests/import_page_to_xobject.dump.txt b/testing/resources/embedder_tests/import_page_to_xobject.dump.txt new file mode 100644 index 0000000000..98a898bcb3 --- /dev/null +++ b/testing/resources/embedder_tests/import_page_to_xobject.dump.txt @@ -0,0 +1,28 @@ +SaveState +SetBaseClip [0,0,612,792] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,792.0000) line(0.0000,0.0000) line(612.0000,0.0000) line(612.0000,792.0000) line(0.0000,792.0000,close)] +SaveState +SaveState +RestoreState +SetClip_PathFill rule=winding matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,792.0000] points=[move(0.0000,0.0000) line(0.0000,300.0000) line(200.0000,300.0000) line(200.0000,0.0000) line(0.0000,0.0000,close)] +DrawPath fill=0xff000000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,792.0000] points=[move(0.0000,290.0000) line(10.0000,290.0000) line(10.0000,300.0000) line(0.0000,300.0000) line(0.0000,290.0000,close)] +RestoreState +DrawPath fill=0xff000000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,792.0000] points=[move(10.0000,150.0000) line(60.0000,150.0000) line(60.0000,180.0000) line(10.0000,180.0000) line(10.0000,150.0000,close)] +RestoreState +SetClip_PathFill rule=winding matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,792.0000] points=[move(0.0000,0.0000) line(0.0000,300.0000) line(200.0000,300.0000) line(200.0000,0.0000) line(0.0000,0.0000,close)] +DrawPath fill=0xff0000ff stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,792.0000] points=[move(190.0000,290.0000) line(200.0000,290.0000) line(200.0000,300.0000) line(190.0000,300.0000) line(190.0000,290.0000,close)] +RestoreState +DrawPath fill=0xff0000ff stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,792.0000] points=[move(70.0000,232.0000) line(120.0000,232.0000) line(120.0000,262.0000) line(70.0000,262.0000) line(70.0000,232.0000,close)] +RestoreState +SetClip_PathFill rule=winding matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,792.0000] points=[move(0.0000,0.0000) line(0.0000,300.0000) line(200.0000,300.0000) line(200.0000,0.0000) line(0.0000,0.0000,close)] +DrawPath fill=0xff00ff00 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,792.0000] points=[move(190.0000,0.0000) line(200.0000,0.0000) line(200.0000,10.0000) line(190.0000,10.0000) line(190.0000,0.0000,close)] +RestoreState +DrawPath fill=0xff00ff00 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,792.0000] points=[move(130.0000,150.0000) line(180.0000,150.0000) line(180.0000,180.0000) line(130.0000,180.0000) line(130.0000,150.0000,close)] +RestoreState +SetClip_PathFill rule=winding matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,792.0000] points=[move(0.0000,0.0000) line(0.0000,300.0000) line(200.0000,300.0000) line(200.0000,0.0000) line(0.0000,0.0000,close)] +DrawPath fill=0xffff0000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,792.0000] points=[move(0.0000,0.0000) line(10.0000,0.0000) line(10.0000,10.0000) line(0.0000,10.0000) line(0.0000,0.0000,close)] +RestoreState +DrawPath fill=0xffff0000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,792.0000] points=[move(70.0000,67.0000) line(120.0000,67.0000) line(120.0000,97.0000) line(70.0000,97.0000) line(70.0000,67.0000,close)] +RestoreState +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/import_page_to_xobject_agg.png b/testing/resources/embedder_tests/import_page_to_xobject_agg.png deleted file mode 100644 index 08ff04d6e8..0000000000 Binary files a/testing/resources/embedder_tests/import_page_to_xobject_agg.png and /dev/null differ diff --git a/testing/resources/embedder_tests/import_page_to_xobject_skia.png b/testing/resources/embedder_tests/import_page_to_xobject_skia.png deleted file mode 100644 index 5ddcd98f0a..0000000000 Binary files a/testing/resources/embedder_tests/import_page_to_xobject_skia.png and /dev/null differ diff --git a/testing/resources/embedder_tests/import_page_to_xobject_with_same_doc.dump.txt b/testing/resources/embedder_tests/import_page_to_xobject_with_same_doc.dump.txt new file mode 100644 index 0000000000..9965e3fb6a --- /dev/null +++ b/testing/resources/embedder_tests/import_page_to_xobject_with_same_doc.dump.txt @@ -0,0 +1,36 @@ +SaveState +SetBaseClip [0,0,200,300] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,300.0000) line(0.0000,0.0000) line(200.0000,0.0000) line(200.0000,300.0000) line(0.0000,300.0000,close)] +SaveState +DrawPath fill=0xff000000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,300.0000] points=[move(0.0000,290.0000) line(10.0000,290.0000) line(10.0000,300.0000) line(0.0000,300.0000) line(0.0000,290.0000,close)] +DrawPath fill=0xff000000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,300.0000] points=[move(10.0000,150.0000) line(60.0000,150.0000) line(60.0000,180.0000) line(10.0000,180.0000) line(10.0000,150.0000,close)] +DrawPath fill=0xff0000ff stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,300.0000] points=[move(190.0000,290.0000) line(200.0000,290.0000) line(200.0000,300.0000) line(190.0000,300.0000) line(190.0000,290.0000,close)] +DrawPath fill=0xff0000ff stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,300.0000] points=[move(70.0000,232.0000) line(120.0000,232.0000) line(120.0000,262.0000) line(70.0000,262.0000) line(70.0000,232.0000,close)] +DrawPath fill=0xff00ff00 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,300.0000] points=[move(190.0000,0.0000) line(200.0000,0.0000) line(200.0000,10.0000) line(190.0000,10.0000) line(190.0000,0.0000,close)] +DrawPath fill=0xff00ff00 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,300.0000] points=[move(130.0000,150.0000) line(180.0000,150.0000) line(180.0000,180.0000) line(130.0000,180.0000) line(130.0000,150.0000,close)] +DrawPath fill=0xffff0000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,300.0000] points=[move(0.0000,0.0000) line(10.0000,0.0000) line(10.0000,10.0000) line(0.0000,10.0000) line(0.0000,0.0000,close)] +DrawPath fill=0xffff0000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,300.0000] points=[move(70.0000,67.0000) line(120.0000,67.0000) line(120.0000,97.0000) line(70.0000,97.0000) line(70.0000,67.0000,close)] +SaveState +RestoreState +SetClip_PathFill rule=winding matrix=[0.5000,0.0000,0.0000,-0.5000,0.0000,300.0000] points=[move(0.0000,0.0000) line(0.0000,300.0000) line(200.0000,300.0000) line(200.0000,0.0000) line(0.0000,0.0000,close)] +DrawPath fill=0xff000000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[0.5000,0.0000,0.0000,-0.5000,0.0000,300.0000] points=[move(0.0000,290.0000) line(10.0000,290.0000) line(10.0000,300.0000) line(0.0000,300.0000) line(0.0000,290.0000,close)] +RestoreState +DrawPath fill=0xff000000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[0.5000,0.0000,0.0000,-0.5000,0.0000,300.0000] points=[move(10.0000,150.0000) line(60.0000,150.0000) line(60.0000,180.0000) line(10.0000,180.0000) line(10.0000,150.0000,close)] +RestoreState +SetClip_PathFill rule=winding matrix=[0.5000,0.0000,0.0000,-0.5000,0.0000,300.0000] points=[move(0.0000,0.0000) line(0.0000,300.0000) line(200.0000,300.0000) line(200.0000,0.0000) line(0.0000,0.0000,close)] +DrawPath fill=0xff0000ff stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[0.5000,0.0000,0.0000,-0.5000,0.0000,300.0000] points=[move(190.0000,290.0000) line(200.0000,290.0000) line(200.0000,300.0000) line(190.0000,300.0000) line(190.0000,290.0000,close)] +RestoreState +DrawPath fill=0xff0000ff stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[0.5000,0.0000,0.0000,-0.5000,0.0000,300.0000] points=[move(70.0000,232.0000) line(120.0000,232.0000) line(120.0000,262.0000) line(70.0000,262.0000) line(70.0000,232.0000,close)] +RestoreState +SetClip_PathFill rule=winding matrix=[0.5000,0.0000,0.0000,-0.5000,0.0000,300.0000] points=[move(0.0000,0.0000) line(0.0000,300.0000) line(200.0000,300.0000) line(200.0000,0.0000) line(0.0000,0.0000,close)] +DrawPath fill=0xff00ff00 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[0.5000,0.0000,0.0000,-0.5000,0.0000,300.0000] points=[move(190.0000,0.0000) line(200.0000,0.0000) line(200.0000,10.0000) line(190.0000,10.0000) line(190.0000,0.0000,close)] +RestoreState +DrawPath fill=0xff00ff00 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[0.5000,0.0000,0.0000,-0.5000,0.0000,300.0000] points=[move(130.0000,150.0000) line(180.0000,150.0000) line(180.0000,180.0000) line(130.0000,180.0000) line(130.0000,150.0000,close)] +RestoreState +SetClip_PathFill rule=winding matrix=[0.5000,0.0000,0.0000,-0.5000,0.0000,300.0000] points=[move(0.0000,0.0000) line(0.0000,300.0000) line(200.0000,300.0000) line(200.0000,0.0000) line(0.0000,0.0000,close)] +DrawPath fill=0xffff0000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[0.5000,0.0000,0.0000,-0.5000,0.0000,300.0000] points=[move(0.0000,0.0000) line(10.0000,0.0000) line(10.0000,10.0000) line(0.0000,10.0000) line(0.0000,0.0000,close)] +RestoreState +DrawPath fill=0xffff0000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[0.5000,0.0000,0.0000,-0.5000,0.0000,300.0000] points=[move(70.0000,67.0000) line(120.0000,67.0000) line(120.0000,97.0000) line(70.0000,97.0000) line(70.0000,67.0000,close)] +RestoreState +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/import_page_to_xobject_with_same_doc_agg.png b/testing/resources/embedder_tests/import_page_to_xobject_with_same_doc_agg.png deleted file mode 100644 index 7522d81664..0000000000 Binary files a/testing/resources/embedder_tests/import_page_to_xobject_with_same_doc_agg.png and /dev/null differ diff --git a/testing/resources/embedder_tests/import_page_to_xobject_with_same_doc_skia.png b/testing/resources/embedder_tests/import_page_to_xobject_with_same_doc_skia.png deleted file mode 100644 index dd2cd5763d..0000000000 Binary files a/testing/resources/embedder_tests/import_page_to_xobject_with_same_doc_skia.png and /dev/null differ diff --git a/testing/resources/embedder_tests/rectangles_multi_pages_1.dump.txt b/testing/resources/embedder_tests/rectangles_multi_pages_1.dump.txt new file mode 100644 index 0000000000..a602342d9d --- /dev/null +++ b/testing/resources/embedder_tests/rectangles_multi_pages_1.dump.txt @@ -0,0 +1,8 @@ +SaveState +SetBaseClip [0,0,200,250] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,250.0000) line(0.0000,0.0000) line(200.0000,0.0000) line(200.0000,250.0000) line(0.0000,250.0000,close)] +SaveState +DrawPath fill=0xffffff00 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,250.0000] points=[move(100.0000,0.0000) line(130.0000,0.0000) line(130.0000,50.0000) line(100.0000,50.0000) line(100.0000,0.0000,close)] +DrawPath fill=0xffffff00 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,250.0000] points=[move(70.0000,67.0000) line(120.0000,67.0000) line(120.0000,97.0000) line(70.0000,97.0000) line(70.0000,67.0000,close)] +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/rectangles_multi_pages_1_agg.png b/testing/resources/embedder_tests/rectangles_multi_pages_1_agg.png deleted file mode 100644 index 42e3a2a9aa..0000000000 Binary files a/testing/resources/embedder_tests/rectangles_multi_pages_1_agg.png and /dev/null differ diff --git a/testing/resources/embedder_tests/rectangles_multi_pages_1_skia.png b/testing/resources/embedder_tests/rectangles_multi_pages_1_skia.png deleted file mode 100644 index 9a0c989a73..0000000000 Binary files a/testing/resources/embedder_tests/rectangles_multi_pages_1_skia.png and /dev/null differ diff --git a/testing/resources/embedder_tests/rectangles_multi_pages_2.dump.txt b/testing/resources/embedder_tests/rectangles_multi_pages_2.dump.txt new file mode 100644 index 0000000000..0ec4fadeb6 --- /dev/null +++ b/testing/resources/embedder_tests/rectangles_multi_pages_2.dump.txt @@ -0,0 +1,8 @@ +SaveState +SetBaseClip [0,0,250,200] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,200.0000) line(0.0000,0.0000) line(250.0000,0.0000) line(250.0000,200.0000) line(0.0000,200.0000,close)] +SaveState +DrawPath fill=0xff00ffff stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[0.0000,1.0000,1.0000,0.0000,0.0000,0.0000] points=[move(100.0000,0.0000) line(130.0000,0.0000) line(130.0000,50.0000) line(100.0000,50.0000) line(100.0000,0.0000,close)] +DrawPath fill=0xff00ffff stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[0.0000,1.0000,1.0000,0.0000,0.0000,0.0000] points=[move(70.0000,67.0000) line(120.0000,67.0000) line(120.0000,97.0000) line(70.0000,97.0000) line(70.0000,67.0000,close)] +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/rectangles_multi_pages_2_agg.png b/testing/resources/embedder_tests/rectangles_multi_pages_2_agg.png deleted file mode 100644 index a1a3aa060e..0000000000 Binary files a/testing/resources/embedder_tests/rectangles_multi_pages_2_agg.png and /dev/null differ diff --git a/testing/resources/embedder_tests/rectangles_multi_pages_2_in_1.dump.txt b/testing/resources/embedder_tests/rectangles_multi_pages_2_in_1.dump.txt new file mode 100644 index 0000000000..cef9953dea --- /dev/null +++ b/testing/resources/embedder_tests/rectangles_multi_pages_2_in_1.dump.txt @@ -0,0 +1,20 @@ +SaveState +SetBaseClip [0,0,792,612] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,612.0000) line(0.0000,0.0000) line(792.0000,0.0000) line(792.0000,612.0000) line(0.0000,612.0000,close)] +SaveState +SaveState +RestoreState +SetClip_PathFill rule=winding matrix=[1.3200,0.0000,0.0000,-1.3200,0.0000,471.0000] points=[move(0.0000,0.0000) line(0.0000,250.0000) line(200.0000,250.0000) line(200.0000,0.0000) line(0.0000,0.0000,close)] +DrawPath fill=0xff00ff00 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.3200,0.0000,0.0000,-1.3200,0.0000,471.0000] points=[move(100.0000,0.0000) line(130.0000,0.0000) line(130.0000,50.0000) line(100.0000,50.0000) line(100.0000,0.0000,close)] +RestoreState +DrawPath fill=0xff00ff00 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.3200,0.0000,0.0000,-1.3200,0.0000,471.0000] points=[move(100.0000,150.0000) line(150.0000,150.0000) line(150.0000,180.0000) line(100.0000,180.0000) line(100.0000,150.0000,close)] +RestoreState +SaveState +RestoreState +SetClip_PathFill rule=winding matrix=[1.3200,0.0000,0.0000,-1.3200,264.0000,471.0000] points=[move(0.0000,0.0000) line(0.0000,250.0000) line(200.0000,250.0000) line(200.0000,0.0000) line(0.0000,0.0000,close)] +DrawPath fill=0xff000000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.3200,0.0000,0.0000,-1.3200,264.0000,471.0000] points=[move(0.0000,90.0000) line(80.0000,90.0000) line(80.0000,150.0000) line(0.0000,150.0000) line(0.0000,90.0000,close)] +RestoreState +DrawPath fill=0xff000000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.3200,0.0000,0.0000,-1.3200,264.0000,471.0000] points=[move(100.0000,150.0000) line(150.0000,150.0000) line(150.0000,180.0000) line(100.0000,180.0000) line(100.0000,150.0000,close)] +RestoreState +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/rectangles_multi_pages_2_in_1_agg.png b/testing/resources/embedder_tests/rectangles_multi_pages_2_in_1_agg.png deleted file mode 100644 index 799af56255..0000000000 Binary files a/testing/resources/embedder_tests/rectangles_multi_pages_2_in_1_agg.png and /dev/null differ diff --git a/testing/resources/embedder_tests/rectangles_multi_pages_2_in_1_skia.png b/testing/resources/embedder_tests/rectangles_multi_pages_2_in_1_skia.png deleted file mode 100644 index a494c68eb9..0000000000 Binary files a/testing/resources/embedder_tests/rectangles_multi_pages_2_in_1_skia.png and /dev/null differ diff --git a/testing/resources/embedder_tests/rectangles_multi_pages_2_skia.png b/testing/resources/embedder_tests/rectangles_multi_pages_2_skia.png deleted file mode 100644 index d61d97f2dd..0000000000 Binary files a/testing/resources/embedder_tests/rectangles_multi_pages_2_skia.png and /dev/null differ diff --git a/testing/resources/embedder_tests/rectangles_multi_pages_3.dump.txt b/testing/resources/embedder_tests/rectangles_multi_pages_3.dump.txt new file mode 100644 index 0000000000..5ceee94a7c --- /dev/null +++ b/testing/resources/embedder_tests/rectangles_multi_pages_3.dump.txt @@ -0,0 +1,8 @@ +SaveState +SetBaseClip [0,0,200,250] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,250.0000) line(0.0000,0.0000) line(200.0000,0.0000) line(200.0000,250.0000) line(0.0000,250.0000,close)] +SaveState +DrawPath fill=0xffff0000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,250.0000] points=[move(100.0000,0.0000) line(130.0000,0.0000) line(130.0000,50.0000) line(100.0000,50.0000) line(100.0000,0.0000,close)] +DrawPath fill=0xffff0000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,250.0000] points=[move(70.0000,67.0000) line(120.0000,67.0000) line(120.0000,97.0000) line(70.0000,97.0000) line(70.0000,67.0000,close)] +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/rectangles_multi_pages_3_agg.png b/testing/resources/embedder_tests/rectangles_multi_pages_3_agg.png deleted file mode 100644 index b2d37c9514..0000000000 Binary files a/testing/resources/embedder_tests/rectangles_multi_pages_3_agg.png and /dev/null differ diff --git a/testing/resources/embedder_tests/rectangles_multi_pages_3_in_1.dump.txt b/testing/resources/embedder_tests/rectangles_multi_pages_3_in_1.dump.txt new file mode 100644 index 0000000000..743aa5eb2c --- /dev/null +++ b/testing/resources/embedder_tests/rectangles_multi_pages_3_in_1.dump.txt @@ -0,0 +1,27 @@ +SaveState +SetBaseClip [0,0,792,612] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,612.0000) line(0.0000,0.0000) line(792.0000,0.0000) line(792.0000,612.0000) line(0.0000,612.0000,close)] +SaveState +SaveState +RestoreState +SetClip_PathFill rule=winding matrix=[1.3200,0.0000,0.0000,-1.3200,0.0000,471.0000] points=[move(0.0000,0.0000) line(0.0000,250.0000) line(200.0000,250.0000) line(200.0000,0.0000) line(0.0000,0.0000,close)] +DrawPath fill=0xffffff00 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.3200,0.0000,0.0000,-1.3200,0.0000,471.0000] points=[move(100.0000,0.0000) line(130.0000,0.0000) line(130.0000,50.0000) line(100.0000,50.0000) line(100.0000,0.0000,close)] +RestoreState +DrawPath fill=0xffffff00 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.3200,0.0000,0.0000,-1.3200,0.0000,471.0000] points=[move(70.0000,67.0000) line(120.0000,67.0000) line(120.0000,97.0000) line(70.0000,97.0000) line(70.0000,67.0000,close)] +RestoreState +SaveState +RestoreState +SetClip_PathFill rule=winding matrix=[1.0560,0.0000,0.0000,-1.0560,264.0000,411.6000] points=[move(0.0000,200.0000) line(250.0000,200.0000) line(250.0000,0.0000) line(0.0000,0.0000) line(0.0000,200.0000,close)] +DrawPath fill=0xff00ffff stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[0.0000,1.0560,1.0560,0.0000,264.0000,200.4000] points=[move(100.0000,0.0000) line(130.0000,0.0000) line(130.0000,50.0000) line(100.0000,50.0000) line(100.0000,0.0000,close)] +RestoreState +DrawPath fill=0xff00ffff stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[0.0000,1.0560,1.0560,0.0000,264.0000,200.4000] points=[move(70.0000,67.0000) line(120.0000,67.0000) line(120.0000,97.0000) line(70.0000,97.0000) line(70.0000,67.0000,close)] +RestoreState +SaveState +RestoreState +SetClip_PathFill rule=winding matrix=[1.3200,0.0000,0.0000,-1.3200,528.0000,471.0000] points=[move(0.0000,0.0000) line(0.0000,250.0000) line(200.0000,250.0000) line(200.0000,0.0000) line(0.0000,0.0000,close)] +DrawPath fill=0xffff0000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.3200,0.0000,0.0000,-1.3200,528.0000,471.0000] points=[move(100.0000,0.0000) line(130.0000,0.0000) line(130.0000,50.0000) line(100.0000,50.0000) line(100.0000,0.0000,close)] +RestoreState +DrawPath fill=0xffff0000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.3200,0.0000,0.0000,-1.3200,528.0000,471.0000] points=[move(70.0000,67.0000) line(120.0000,67.0000) line(120.0000,97.0000) line(70.0000,97.0000) line(70.0000,67.0000,close)] +RestoreState +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/rectangles_multi_pages_3_in_1_agg.png b/testing/resources/embedder_tests/rectangles_multi_pages_3_in_1_agg.png deleted file mode 100644 index 828d76cbf2..0000000000 Binary files a/testing/resources/embedder_tests/rectangles_multi_pages_3_in_1_agg.png and /dev/null differ diff --git a/testing/resources/embedder_tests/rectangles_multi_pages_3_in_1_skia.png b/testing/resources/embedder_tests/rectangles_multi_pages_3_in_1_skia.png deleted file mode 100644 index 3bb8009249..0000000000 Binary files a/testing/resources/embedder_tests/rectangles_multi_pages_3_in_1_skia.png and /dev/null differ diff --git a/testing/resources/embedder_tests/rectangles_multi_pages_3_skia.png b/testing/resources/embedder_tests/rectangles_multi_pages_3_skia.png deleted file mode 100644 index 2655ae1037..0000000000 Binary files a/testing/resources/embedder_tests/rectangles_multi_pages_3_skia.png and /dev/null differ diff --git a/testing/resources/embedder_tests/rectangles_multi_pages_4.dump.txt b/testing/resources/embedder_tests/rectangles_multi_pages_4.dump.txt new file mode 100644 index 0000000000..217334b3b5 --- /dev/null +++ b/testing/resources/embedder_tests/rectangles_multi_pages_4.dump.txt @@ -0,0 +1,8 @@ +SaveState +SetBaseClip [0,0,200,250] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,250.0000) line(0.0000,0.0000) line(200.0000,0.0000) line(200.0000,250.0000) line(0.0000,250.0000,close)] +SaveState +DrawPath fill=0xff00ff00 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,250.0000] points=[move(100.0000,0.0000) line(130.0000,0.0000) line(130.0000,50.0000) line(100.0000,50.0000) line(100.0000,0.0000,close)] +DrawPath fill=0xff00ff00 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,250.0000] points=[move(100.0000,150.0000) line(150.0000,150.0000) line(150.0000,180.0000) line(100.0000,180.0000) line(100.0000,150.0000,close)] +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/rectangles_multi_pages_4_agg.png b/testing/resources/embedder_tests/rectangles_multi_pages_4_agg.png deleted file mode 100644 index 14a4ad9768..0000000000 Binary files a/testing/resources/embedder_tests/rectangles_multi_pages_4_agg.png and /dev/null differ diff --git a/testing/resources/embedder_tests/rectangles_multi_pages_4_skia.png b/testing/resources/embedder_tests/rectangles_multi_pages_4_skia.png deleted file mode 100644 index a5222ac5c5..0000000000 Binary files a/testing/resources/embedder_tests/rectangles_multi_pages_4_skia.png and /dev/null differ diff --git a/testing/resources/embedder_tests/rectangles_multi_pages_5.dump.txt b/testing/resources/embedder_tests/rectangles_multi_pages_5.dump.txt new file mode 100644 index 0000000000..a477c21e9e --- /dev/null +++ b/testing/resources/embedder_tests/rectangles_multi_pages_5.dump.txt @@ -0,0 +1,8 @@ +SaveState +SetBaseClip [0,0,200,250] +SetClip_PathFill rule=winding matrix=none points=[move(0.0000,250.0000) line(0.0000,0.0000) line(200.0000,0.0000) line(200.0000,250.0000) line(0.0000,250.0000,close)] +SaveState +DrawPath fill=0xff000000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,250.0000] points=[move(0.0000,90.0000) line(80.0000,90.0000) line(80.0000,150.0000) line(0.0000,150.0000) line(0.0000,90.0000,close)] +DrawPath fill=0xff000000 stroke=0xff000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,0.0000,250.0000] points=[move(100.0000,150.0000) line(150.0000,150.0000) line(150.0000,180.0000) line(100.0000,180.0000) line(100.0000,150.0000,close)] +RestoreState +RestoreState diff --git a/testing/resources/embedder_tests/rectangles_multi_pages_5_agg.png b/testing/resources/embedder_tests/rectangles_multi_pages_5_agg.png deleted file mode 100644 index 47042bd480..0000000000 Binary files a/testing/resources/embedder_tests/rectangles_multi_pages_5_agg.png and /dev/null differ diff --git a/testing/resources/embedder_tests/rectangles_multi_pages_5_skia.png b/testing/resources/embedder_tests/rectangles_multi_pages_5_skia.png deleted file mode 100644 index 0074f8131a..0000000000 Binary files a/testing/resources/embedder_tests/rectangles_multi_pages_5_skia.png and /dev/null differ diff --git a/third_party/lcms/0000-cmserr-changes.patch b/third_party/lcms/0000-cmserr-changes.patch index 0283b529d2..5389fc8167 100644 --- a/third_party/lcms/0000-cmserr-changes.patch +++ b/third_party/lcms/0000-cmserr-changes.patch @@ -1,293 +1,3 @@ -diff --git a/third_party/lcms/0000-cmserr-changes.patch b/third_party/lcms/0000-cmserr-changes.patch -index 13a854a29..e69de29bb 100644 ---- a/third_party/lcms/0000-cmserr-changes.patch -+++ b/third_party/lcms/0000-cmserr-changes.patch -@@ -1,285 +0,0 @@ --diff --git a/third_party/lcms/src/cmserr.c b/third_party/lcms/src/cmserr.c --index 700152ee3..3c3848b2a 100644 ----- a/third_party/lcms/src/cmserr.c --+++ b/third_party/lcms/src/cmserr.c --@@ -25,6 +25,8 @@ -- -- #include "lcms2_internal.h" -- --+#include "core/fxcrt/fx_memory.h" --+#include "core/fxcrt/fx_system.h" -- -- // This function is here to help applications to prevent mixing lcms versions on header and shared objects. -- int CMSEXPORT cmsGetEncodedCMMversion(void) --@@ -67,140 +67,75 @@ long int CMSEXPORT cmsfilelength(FILE* f) -- return n; -- } -- --- ---// Memory handling ------------------------------------------------------------------ ---// ---// This is the interface to low-level memory management routines. By default a simple ---// wrapping to malloc/free/realloc is provided, although there is a limit on the max ---// amount of memoy that can be reclaimed. This is mostly as a safety feature to prevent ---// bogus or evil code to allocate huge blocks that otherwise lcms would never need. --- ---#define MAX_MEMORY_FOR_ALLOC ((cmsUInt32Number)(1024U*1024U*512U)) --- ---// User may override this behaviour by using a memory plug-in, which basically replaces ---// the default memory management functions. In this case, no check is performed and it ---// is up to the plug-in writer to keep in the safe side. There are only three functions ---// required to be implemented: malloc, realloc and free, although the user may want to ---// replace the optional mallocZero, calloc and dup as well. --- ---cmsBool _cmsRegisterMemHandlerPlugin(cmsContext ContextID, cmsPluginBase* Plugin); --- ---// ********************************************************************************* --- ---// This is the default memory allocation function. It does a very coarse ---// check of amount of memory, just to prevent exploits ---static ---void* _cmsMallocDefaultFn(cmsContext ContextID, cmsUInt32Number size) --+cmsBool _cmsRegisterMemHandlerPlugin(cmsContext ContextID, cmsPluginBase* Plugin) -- { --- if (size > MAX_MEMORY_FOR_ALLOC) return NULL; // Never allow over maximum --- --- return (void*) malloc(size); --+ return TRUE; --+} -- --- cmsUNUSED_PARAMETER(ContextID); --+// Generic allocate --+void* CMSEXPORT _cmsMalloc(cmsContext ContextID, cmsUInt32Number size) --+{ --+ return FXMEM_DefaultAlloc(size); -- } -- -- // Generic allocate & zero ---static ---void* _cmsMallocZeroDefaultFn(cmsContext ContextID, cmsUInt32Number size) --+void* CMSEXPORT _cmsMallocZero(cmsContext ContextID, cmsUInt32Number size) -- { --- void *pt = _cmsMalloc(ContextID, size); --- if (pt == NULL) return NULL; --- --- memset(pt, 0, size); --- return pt; --+ void* p = FXMEM_DefaultAlloc(size); --+ if (p) memset(p, 0, size); --+ return p; -- } -- --- ---// The default free function. The only check proformed is against NULL pointers ---static ---void _cmsFreeDefaultFn(cmsContext ContextID, void *Ptr) --+// Generic calloc --+void* CMSEXPORT _cmsCalloc(cmsContext ContextID, cmsUInt32Number num, cmsUInt32Number size) -- { --- // free(NULL) is defined a no-op by C99, therefore it is safe to --- // avoid the check, but it is here just in case... --- --- if (Ptr) free(Ptr); --+ cmsUInt32Number total = num * size; --+ if (total == 0 || total / size != num || total >= 512 * 1024 * 1024) --+ return NULL; -- --- cmsUNUSED_PARAMETER(ContextID); --+ return _cmsMallocZero(ContextID, num * size); -- } -- ---// The default realloc function. Again it checks for exploits. If Ptr is NULL, ---// realloc behaves the same way as malloc and allocates a new block of size bytes. ---static ---void* _cmsReallocDefaultFn(cmsContext ContextID, void* Ptr, cmsUInt32Number size) --+// Generic reallocate --+void* CMSEXPORT _cmsRealloc(cmsContext ContextID, void* Ptr, cmsUInt32Number size) -- { --- --- if (size > MAX_MEMORY_FOR_ALLOC) return NULL; // Never realloc over 512Mb --- --- return realloc(Ptr, size); --- --- cmsUNUSED_PARAMETER(ContextID); --+ return FXMEM_DefaultRealloc(Ptr, size); -- } -- --- ---// The default calloc function. Allocates an array of num elements, each one of size bytes ---// all memory is initialized to zero. ---static ---void* _cmsCallocDefaultFn(cmsContext ContextID, cmsUInt32Number num, cmsUInt32Number size) --+// Generic free memory --+void CMSEXPORT _cmsFree(cmsContext ContextID, void* Ptr) -- { --- cmsUInt32Number Total = num * size; --- --- // Preserve calloc behaviour --- if (Total == 0) return NULL; --- --- // Safe check for overflow. --- if (num >= UINT_MAX / size) return NULL; --- --- // Check for overflow --- if (Total < num || Total < size) { --- return NULL; --- } --- --- if (Total > MAX_MEMORY_FOR_ALLOC) return NULL; // Never alloc over 512Mb --- --- return _cmsMallocZero(ContextID, Total); --+ if (Ptr != NULL) FXMEM_DefaultFree(Ptr); -- } -- -- // Generic block duplication ---static ---void* _cmsDupDefaultFn(cmsContext ContextID, const void* Org, cmsUInt32Number size) --+void* CMSEXPORT _cmsDupMem(cmsContext ContextID, const void* Org, cmsUInt32Number size) -- { --- void* mem; --- --- if (size > MAX_MEMORY_FOR_ALLOC) return NULL; // Never dup over 512Mb --- --- mem = _cmsMalloc(ContextID, size); --- --- if (mem != NULL && Org != NULL) --- memmove(mem, Org, size); --- --- return mem; --+ void* p = FXMEM_DefaultAlloc(size); --+ memmove(p, Org, size); --+ return p; -- } -- --- ---// Pointers to memory manager functions in Context0 ---_cmsMemPluginChunkType _cmsMemPluginChunk = { _cmsMallocDefaultFn, _cmsMallocZeroDefaultFn, _cmsFreeDefaultFn, --- _cmsReallocDefaultFn, _cmsCallocDefaultFn, _cmsDupDefaultFn --+_cmsMemPluginChunkType _cmsMemPluginChunk = {_cmsMalloc, _cmsMallocZero, _cmsFree, --+ _cmsRealloc, _cmsCalloc, _cmsDupMem -- }; -- --- ---// Reset and duplicate memory manager -- void _cmsAllocMemPluginChunk(struct _cmsContext_struct* ctx, const struct _cmsContext_struct* src) -- { -- _cmsAssert(ctx != NULL); -- --- if (src != NULL) { --+ if (src != NULL) { -- -- // Duplicate --- ctx ->chunks[MemPlugin] = _cmsSubAllocDup(ctx ->MemPool, src ->chunks[MemPlugin], sizeof(_cmsMemPluginChunkType)); --+ ctx ->chunks[MemPlugin] = _cmsSubAllocDup(ctx ->MemPool, src ->chunks[MemPlugin], sizeof(_cmsMemPluginChunkType)); -- } -- else { -- -- // To reset it, we use the default allocators, which cannot be overridden -- ctx ->chunks[MemPlugin] = &ctx ->DefaultMemoryManager; --- } --+ } -- } -- ---// Auxiliary to fill memory management functions from plugin (or context 0 defaults) -- void _cmsInstallAllocFunctions(cmsPluginMemHandler* Plugin, _cmsMemPluginChunkType* ptr) -- { -- if (Plugin == NULL) { --@@ -214,94 +149,15 @@ void _cmsInstallAllocFunctions(cmsPluginMemHandler* Plugin, _cmsMemPluginChunkTy -- ptr ->ReallocPtr = Plugin -> ReallocPtr; -- -- // Make sure we revert to defaults --- ptr ->MallocZeroPtr= _cmsMallocZeroDefaultFn; --- ptr ->CallocPtr = _cmsCallocDefaultFn; --- ptr ->DupPtr = _cmsDupDefaultFn; --- --+ ptr ->MallocZeroPtr= _cmsMallocZero; --+ ptr ->CallocPtr = _cmsCalloc; --+ ptr ->DupPtr = _cmsDupMem; --+ -- if (Plugin ->MallocZeroPtr != NULL) ptr ->MallocZeroPtr = Plugin -> MallocZeroPtr; -- if (Plugin ->CallocPtr != NULL) ptr ->CallocPtr = Plugin -> CallocPtr; -- if (Plugin ->DupPtr != NULL) ptr ->DupPtr = Plugin -> DupPtr; --- --- } ---} --- -- ---// Plug-in replacement entry ---cmsBool _cmsRegisterMemHandlerPlugin(cmsContext ContextID, cmsPluginBase *Data) ---{ --- cmsPluginMemHandler* Plugin = (cmsPluginMemHandler*) Data; --- _cmsMemPluginChunkType* ptr; --- --- // NULL forces to reset to defaults. In this special case, the defaults are stored in the context structure. --- // Remaining plug-ins does NOT have any copy in the context structure, but this is somehow special as the --- // context internal data should be malloce'd by using those functions. --- if (Data == NULL) { --- --- struct _cmsContext_struct* ctx = ( struct _cmsContext_struct*) ContextID; --- --- // Return to the default allocators --- if (ContextID != NULL) { --- ctx->chunks[MemPlugin] = (void*) &ctx->DefaultMemoryManager; --- } --- return TRUE; -- } --- --- // Check for required callbacks --- if (Plugin -> MallocPtr == NULL || --- Plugin -> FreePtr == NULL || --- Plugin -> ReallocPtr == NULL) return FALSE; --- --- // Set replacement functions --- ptr = (_cmsMemPluginChunkType*) _cmsContextGetClientChunk(ContextID, MemPlugin); --- if (ptr == NULL) --- return FALSE; --- --- _cmsInstallAllocFunctions(Plugin, ptr); --- return TRUE; ---} --- ---// Generic allocate ---void* CMSEXPORT _cmsMalloc(cmsContext ContextID, cmsUInt32Number size) ---{ --- _cmsMemPluginChunkType* ptr = (_cmsMemPluginChunkType*) _cmsContextGetClientChunk(ContextID, MemPlugin); --- return ptr ->MallocPtr(ContextID, size); ---} --- ---// Generic allocate & zero ---void* CMSEXPORT _cmsMallocZero(cmsContext ContextID, cmsUInt32Number size) ---{ --- _cmsMemPluginChunkType* ptr = (_cmsMemPluginChunkType*) _cmsContextGetClientChunk(ContextID, MemPlugin); --- return ptr->MallocZeroPtr(ContextID, size); ---} --- ---// Generic calloc ---void* CMSEXPORT _cmsCalloc(cmsContext ContextID, cmsUInt32Number num, cmsUInt32Number size) ---{ --- _cmsMemPluginChunkType* ptr = (_cmsMemPluginChunkType*) _cmsContextGetClientChunk(ContextID, MemPlugin); --- return ptr->CallocPtr(ContextID, num, size); ---} --- ---// Generic reallocate ---void* CMSEXPORT _cmsRealloc(cmsContext ContextID, void* Ptr, cmsUInt32Number size) ---{ --- _cmsMemPluginChunkType* ptr = (_cmsMemPluginChunkType*) _cmsContextGetClientChunk(ContextID, MemPlugin); --- return ptr->ReallocPtr(ContextID, Ptr, size); ---} --- ---// Generic free memory ---void CMSEXPORT _cmsFree(cmsContext ContextID, void* Ptr) ---{ --- if (Ptr != NULL) { --- _cmsMemPluginChunkType* ptr = (_cmsMemPluginChunkType*) _cmsContextGetClientChunk(ContextID, MemPlugin); --- ptr ->FreePtr(ContextID, Ptr); --- } ---} --- ---// Generic block duplication ---void* CMSEXPORT _cmsDupMem(cmsContext ContextID, const void* Org, cmsUInt32Number size) ---{ --- _cmsMemPluginChunkType* ptr = (_cmsMemPluginChunkType*) _cmsContextGetClientChunk(ContextID, MemPlugin); --- return ptr ->DupPtr(ContextID, Org, size); -- } -- -- // ******************************************************************************************** diff --git a/third_party/lcms/src/cmserr.c b/third_party/lcms/src/cmserr.c index ac89811a9..902b7762a 100644 --- a/third_party/lcms/src/cmserr.c