Skip to content

[embedlite] Port embedlite components to Gecko ESR153. JB#64963 - #111

Open
abranson wants to merge 11 commits into
masterfrom
sailfishos-esr153
Open

abranson wants to merge 11 commits into
masterfrom
sailfishos-esr153

Conversation

@abranson

@abranson abranson commented Sep 4, 2026

Copy link
Copy Markdown
Member
  • Port components from legacy JavaScript modules to ESR153 ES modules and remote-content actors.
  • Adapt prompts, permissions, login handling, downloads, desktop user agents and certificate/network error pages to hosted tabs.
  • Bind selection and clipboard requests to their originating documents; reject stale replies after navigation or BFCache restoration.
  • Update WebRTC permission handling and report active capture across content processes.
  • Remove obsolete local-view, favicon, orientation and bookmark-sync helpers.
  • Suppress cancelled-download prompts and migrate saved touch thresholds to Gecko's default.

@abranson abranson changed the title Port embedlite components to Gecko ESR153 [embedlite] Port embedlite components to Gecko ESR153. JB#64963 Sep 4, 2026
abranson and others added 8 commits September 5, 2026 14:42
Convert privileged scripts and component entry points to ES modules for Gecko
ESR153.

Route hosted frame, prompt, permission, selection, search, and media work
through current actor APIs. Preserve tab identity for downloads and harden
native select handling.

Adapt XPCOM services, login storage, session history, media-device handling,
and user-agent update paths to current APIs. Raise the runtime bridge
requirements and keep the compatibility frame script idempotent.

Co-authored-by: Sebastian Matkovich <38816871+smatkovi@users.noreply.github.com>
Hosted tabs are not present in the legacy per-window table.

Use their BrowsingContext when choosing the request User-Agent.

Honor an explicit override first, then the hosted desktop viewport state.
Modern about: protocol security rejects remote pages unless their module
flags explicitly allow child-process loading.

Match Gecko's per-page flags, implement getChromeURI(), and preserve the
principal of external redirects.
Keep only scripts used by hosted remote chrome and route content work through
standard parent actors. Remove helpers that depended on the deleted local
EmbedLite view backend.

Update remaining DOM type checks and the speculative-connect call for current
Gecko APIs, and simplify the system-link installation list.
Handle indexed confirmEx responses and native select menus in the parent actor.
Fail malformed indices and cancellations closed instead of applying an invalid
choice.
Register a window actor for hosted network and certificate error documents.
Inject the mobile viewport and EmbedLite stylesheet without relying on the
removed local-view helper.
Handle Gecko's cancellation observer hook and keep active downloads when the
browser exits. EmbedLite owns download lifecycle and does not expose Gecko's
cancellation prompt.
Track camera and microphone capture per content window and aggregate it across
content processes.

Publish changes through the process actor so browser chrome can keep the
display awake only while video capture is active.
Clear the threshold previously saved by WebView when the Gecko default
becomes 0.06 inches. Run from the existing profile-startup hook so each
embedding application's profile adopts the new default independently.
Persist a migration marker so later user changes are preserved.

The old automatic override has no provenance marker, so an existing
manual override is also cleared by this one-time migration. Pair this
with removal of WebView's first-run assignment to prevent new overrides.
Use unique request IDs so replies cannot reach a different document after
navigation or a process switch, or a recreated helper after BFCache
restoration. Match select responses and cancellation by ID, and remove
aborted response listeners. Cover stale replies across helper recreation.

Keep document-actor hit testing within its own frame; the actor bridge
handles remote-frame routing and coordinate conversion.
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