docs(windows): README/CHANGELOG + prebuilt cef_host distribution scaffolding - #28
Open
wenkaifan0720 wants to merge 2 commits into
Open
docs(windows): README/CHANGELOG + prebuilt cef_host distribution scaffolding#28wenkaifan0720 wants to merge 2 commits into
wenkaifan0720 wants to merge 2 commits into
Conversation
…istribution Docs: - README status line: macOS-only -> "macOS 12+ and Windows 10+", with an honest parity summary and what's still pending (per-tile CDP, sandbox, signing). - How-it-works diagram now shows both host paths (IOSurface/Unix-socket vs DXGI-shared-texture/named-pipe) and the one shared opcode protocol. - Building: added the Windows path (flutter run -d windows drives fetch+compile). - Roadmap: Windows marked landed with a precise hardening-not-features list; Linux noted as not-started. - CHANGELOG: an Unreleased entry (no version bump — a federation publish decision). Windows prebuilt distribution scaffolding (packages/flutter_cef_windows/tool/, mirrors the macOS GCS/fetch model; signing STUBBED pending an Authenticode cert): - cef_host_hash.ps1: deterministic 64-hex content hash of the 5 build inputs (CR-stripped so autocrlf can't perturb it) = the GCS object key. - fetch_cef_host.ps1: consumer fetch — fail-OPEN on missing (build from source), fail-CLOSED on sha mismatch and on Authenticode verification. The signature gate is real (Get-AuthenticodeSignature, Status=Valid + thumbprint/subject pin) but accepts UNSIGNED only with FLUTTER_CEF_ALLOW_UNSIGNED_HOST=1 until the cert lands. - publish-cef-host.ps1: build -> signtool (only when FLUTTER_CEF_SIGN_THUMBPRINT set, else skip) -> zip + .sha256 -> idempotent gsutil upload keyed by hash. - windows/CMakeLists.txt: prefer a fetched prebuilt (only when its stamp matches this tree's hash — guards a stale prebuilt/), else the unchanged from-source build; a fail-closed fetch result FATALs rather than silently building. - Makefile: publish-cef-host-windows target; .gitignore: prebuilt/. Verified (my own runs): hash deterministic (57ba6732...); all 3 .ps1 ASCII/no-BOM/parse-clean; from-source build still succeeds via fetch fail-open (real 404 -> build from source -> Built); macOS zero-diff. Stubbed/untestable without infra: signtool signing and gsutil upload/download (no cert, no GCS creds) — logic verified by dry-runs + AST-extracted branch tests. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…terFlow EV cert) publish-cef-host.ps1 gains a GOOGLECLOUD signing mode that reuses the SAME EV code-signing cert + GCloud KMS key the FlutterFlow desktop app already signs with (flutterflow/windows/Makefile): jsign --storetype GOOGLECLOUD against projects/flutterflow-cicd/.../windows-code-sign, auth via 'gcloud auth print-access-token', verified with Get-AuthenticodeSignature. So cef_host is signed by 'FlutterFlow, Inc.' with no new cert to procure and no key material on disk. signtool/thumbprint stays as mode 2; unsigned as mode 3. Set FLUTTER_CEF_SIGN_GCLOUD_KEYSTORE + FLUTTER_CEF_SIGN_CERTFILE to enable. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Follow-up to the Windows port merge (#24): documentation + the prebuilt-
cef_hostdistribution scaffolding.Docs
Unreleasedentry. No version bump — that is a federation-wide publish decision left to the maintainer.Windows prebuilt distribution (
packages/flutter_cef_windows/tool/)Mirrors the macOS GCS/content-hash/fetch model so Campus can eventually fetch a prebuilt
cef_hostinstead of compiling it. Signing is stubbed pending an Authenticode certificate.cef_host_hash.ps1— deterministic 64-hex content hash of the build inputs (the GCS object key).fetch_cef_host.ps1— fail-open on missing (build from source), fail-closed on checksum + Authenticode verification. The signature gate is real but accepts unsigned only withFLUTTER_CEF_ALLOW_UNSIGNED_HOST=1until the cert lands.publish-cef-host.ps1— build → signtool (only when a cert is configured) → zip +.sha256→ idempotentgsutilupload keyed by hash.windows/CMakeLists.txt— prefers a fetched prebuilt (only when its stamp matches this tree hash), else the unchanged from-source build.Verified (my own runs)
57ba6732…); all.ps1ASCII/no-BOM/parse-clean.flutter build windowsstill succeeds via fetch fail-open (real 404 → build from source → Built).packages/flutter_cef_macoszero diffs.Not exercised (needs your infra)
🤖 Generated with Claude Code