[Problem/Bug]: PDF viewer fails on inline page dictionaries in /Kids; standalone WPF reproduction

オープン
#5,795 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
25/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
領域
desktop

調査の方向性

Start by inspecting the attached WebView2Probe WPF project and the two generated PDFs, then compare the page-tree root object's /Kids entries and the reported qpdf structural warnings. The report asks for investigation of PDF recovery behavior or a more actionable diagnostic; done means the inline-page variant renders when recovery is possible or the rejection gives a useful diagnostic.

索引モデルが issue の本文から書いたものです。

説明

bug
What happened?

The built-in PDF viewer rejects a generated 16-page PDF when the page-tree /Kids array contains inline page dictionaries for pages 7-10. A matched dummy PDF with the same page content and indirect page references renders correctly.

This reproduces in the attached standalone WebView2Probe WPF project using a fresh browser profile. The variant fails both after the control and as the first navigation in a fresh profile. Matching Microsoft Edge 156.0.4314.58 also displays the control and rejects the same variant.

Actual result: the PDF viewer shows "We can't open this file" and "Something went wrong", with 0 of 0 pages.

Native WebView2 log:
"Uncaught (in promise) Document Load Failed", source: chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/edge_pdf/index.html (0)

Initialization succeeds and NavigationCompleted reports IsSuccess = true and WebErrorStatus = Unknown. No ProcessFailed event or unhandled managed exception was observed. Successful top-level navigation is not being treated as proof of successful PDF rendering.

The paired dummy PDFs have identical decoded page content. The only intentional PDF object change is the /Kids representation in page-tree root object 2 0 R. The variant has direct dictionaries at zero-based indexes 6-9; qpdf reports exactly four corresponding structural warnings. The control has no qpdf syntax warnings. Standalone PDFium 156.0.8076.0 renders all 16 pages of both files; this is a separate build, not a claim about the internal renderer used by WebView2.

The inline /Kids entries are nonconforming PDF structure. Please investigate compatibility/recovery behavior or provide a more actionable diagnostic for rejected documents. This report does not claim that readers are required by the PDF specification to accept the structure, and is not a browser-process crash or NavigationCompleted contract failure.

The attachment contains only generated dummy PDFs, the standalone project, screenshots, selected sanitized native logs, console output, and structural validation. No original documents or browser profiles are needed.

Importance

Moderate. My app's user experience is affected, but still usable.

Runtime Channel

Stable release (WebView2 Runtime)

Runtime Version

156.0.4314.58

SDK Version

1.0.3912.50

Framework

WPF

Operating System

Windows 11

OS Version

10.0.26100 (Windows 11 Enterprise, x64)

Repro steps
  1. Open and build the supplied WebView2Probe WPF project.
  2. Run the project with the supplied generated control PDF and inline-page variant PDF.
  3. Compare the PDF viewer results for the two documents.

Expected: render the supplied document when recovery is possible, or provide an actionable diagnostic if the nonconforming page-tree structure is rejected.

Actual: the control displays page 1 of 16. The inline-page variant displays "We can't open this file" / "Something went wrong", even though top-level navigation reports success.

Dummy files: 01-control-16pages-indirect.pdf and 02-variant-16pages-direct-kids-7-10.pdf.

The issue also reproduces when the variant is the first document opened with a fresh profile. The same dummy variant fails in Microsoft Edge 156.0.4314.58, while its matched control opens.

WebView2-PDF-Repro.zip

Repros in Edge Browser

Yes, issue can be reproduced in the corresponding Edge version

Regression

Don't know

Last working version (if regression)

Unknown; no last working SDK or Runtime version has been established.

主要言語
PowerShell
スター
526
フォーク
70
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

MicrosoftEdge/WebView2Feedback のほかの issue

MicrosoftEdge/WebView2Feedback の issue をすべて見る

似ている issue

Desktop Dev の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。