Skip to content

Wine Gecko without Wine's download window - #494

Open
insertfloppy wants to merge 1 commit into
willfaust:mainfrom
insertfloppy:upstream/wine-gecko
Open

insertfloppy wants to merge 1 commit into
willfaust:mainfrom
insertfloppy:upstream/wine-gecko

Conversation

@insertfloppy

Copy link
Copy Markdown
Contributor

Requested by Cameron · project thread

Problem

A program that shows web pages (an installer or launcher using Wine's mshtml,
Internet Explorer's web view) stops on Wine's "Wine Gecko Installer" window.
That window downloads through Wine's own networking and hung at 8%
(urlmon: Not handling error 997), so the program never got further.

Change

  • New app/Madeira/WineGecko.swift: Madeira downloads Wine's own Gecko 2.47.4
    MSIs (x86 and x86_64) from WineHQ with iOS networking, the same way it does
    Wine Mono. It runs on its own at app start on Wi-Fi only (not cellular or Low
    Data Mode), or from Settings › Web pages in programs (Download / Remove).
    Each file is checked against the SHA-256 in Wine's appwiz.cpl before it is
    kept. After Remove it isn't fetched again on its own.
  • WineProcessBridge.m: every session links the MSIs into the prefix's Wine
    download cache ($HOME/.cache/wine, HOME being the prefix), so appwiz's
    install_from_cache installs Gecko without the download window. A real file
    already there is left alone. ARM64EC defines __x86_64__, so 64-bit programs
    use the x86_64 MSI. Log lines: [wine-gecko].
  • THIRD-PARTY-NOTICES.md (Wine Gecko, MPL-2.0, downloaded not bundled) and
    docs/LIBRARY.md describe it.

Testing

  • On device (iPhone 17 Pro Max, sideloaded build): Wine's iexplore (Desktop
    › Start › Run) opens with no Gecko popup and renders pages.
  • Host check: tests/host/check-wine-gecko.py (new) passes: the pins match
    the pinned wine's appwiz.cpl, the link goes where appwiz looks, and the
    wiring (app start, Settings, Xcode project) is in place. Not compiled for iOS
    here; check-frontend.py needs a Swift toolchain this machine lacks.

🤖 Generated with Claude Code

https://claude.ai/code/session_01LiLQakAySboBR7FkqkJFKS

Wine's "Wine Gecko Installer" window downloaded Gecko through Wine's
networking and hung at 8% (urlmon: Not handling error 997), so a program
that shows web pages never got past it. Madeira now downloads Wine's own
x86 and x86_64 Gecko 2.47.4 MSIs from WineHQ with iOS networking, on its
own on Wi-Fi (not cellular or Low Data Mode) or from Settings > Web pages
in programs, checks them against the SHA-256s in appwiz.cpl, and every
session links them into the prefix's Wine download cache ($HOME/.cache/wine),
so appwiz installs Gecko from there instead of opening the window. ARM64EC
defines __x86_64__, so 64-bit programs use the x86_64 MSI. After Remove
Wine Gecko it is not fetched again on its own.

Tested on an iPhone 17 Pro Max: Wine's iexplore opens with no Gecko
window and renders pages. Host test check-wine-gecko.py (new) checks the
pins against the pinned wine's appwiz.cpl, the link location and the
wiring.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QwPPpuKJFjmUdhDqyKH7KR
Signed-off-by: ft7t8drgwf-wq <337626868+ft7t8drgwf-wq@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant