Keep the wheel axis step from cancelling the system scroll setting, validate present buffer stride and bounds before copying, and harden the PDFium source workflow with dispatch-only triggers, pinned actions and a checksum-verified SDK download.
The source port exposes FPDF_GetDocPermissions with user semantics but no separate FPDF_GetDocUserPermissions symbol required by pdfium-render 0.9.4. Apply a pinned source patch that adds the compatibility entry point, and rebuild the CI artifact.
The OHOS port's default GN configuration is a component build and emits libpdfium.cr.so plus sibling .cr.so dependencies. Stage all component libraries beside a stable libpdfium.so and upload/checksum the complete set.
workflow_dispatch inputs are empty for the temporary push trigger; fall back to the pinned source revision instead of passing an empty pathspec to git fetch.
GitHub registers workflow_dispatch only on the default branch. Add a narrow push trigger for the PDFium source branch so the first build can run from the fork before promoting the workflow.
Add a fork-only manual workflow that runs on a Linux x86_64 GitHub-hosted runner, installs the public OHOS SDK, builds the pinned OHOS PDFium source tree, strips the library and uploads the artifact with its license and checksum. No signing material is used.
fontique 0.11.1 already supports fontconfig-dlopen, which leaves an empty system collection when Fontconfig is absent. OHOS registers /system/fonts explicitly, so the local fontique copy, patch queue and quality verification are no longer needed; use the crates.io package and keep the lockfile pinned.
Remove the signing input and the GITHUB_ENV/command-line secret path. CI now always builds an unsigned hap; release signing remains a local explicit step.
Tier-3 community port (maintainer: springmin), rebased onto the merged
document-provider abstraction (#84) and the opener seam (#80).
- platform/ohos: Slint backend (XComponent window adapter, software renderer
with the experimental femtovg/wgpu path, input/IME, clipboard, system
fonts), the NAPI cdylib that builds a PlatformContext (app-private paths,
DocumentProvider over the ArkTS pickers, Asset Store credential store,
loopback OAuth broker, external URL opener, notification publisher) and
calls flectar_mail::run, the demo crate, the ArkTS shell and the build and
packaging scripts (bundle name configurable, defaults to
com.flectar.mail_ohos).
- src/platform/ohos.rs: PDFium directory, renderer name, thread priority,
preview lifecycle, email font directory; OpenHarmony stays under the
mobile capability alias.
- patches/fontique + crates/fontique: the Fontconfig opt-out as a patch queue
applied by the platform/ohos workspace, verified from quality.yml.
- .github/workflows/ohos.yml: manually dispatched tier-3 workflow, unsigned by
default, signing material only from the FLECTAR_OHOS_* secrets.
- src/documents.rs: run_request blocks the calling thread on mobile hosts;
the picker covers the window, and keeping the presentation thread idle is
what OpenHarmony needs (verified on device; desktop keeps the runtime
request for the native dialog).
- The email renderer and the compose editor load platform::email_font_dir()
and the Han fallback, so CJK mail bodies and composed text render with the
platform fonts.
- New-mail notifications: a publisher seam fed by CoreEvent::MailNew; the host
publishes through @kit.NotificationKit.