implement the HTML5 pointer lock API

Bug #1544754 reported by Cris Dywan
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Oxide
In Progress
Medium
Santosh
webbrowser-app (Ubuntu)
In Progress
Medium
Santosh

Bug Description

The internet archive just released a collection of Win 3.1 games, using the DosBox emulator to run them on the website. On Chrome this triggers a "Allow/Deny archive.org to disable your mouse cursor" popup. Games are only playable using mouse or touch after accepting this.
In the browser app/ Oxide there's no such popup and mouse input doesn't work.

https://archive.org/details/win3_Mono3Dlx

Another (more lightweight) example page: https://mdn.github.io/pointer-lock-demo/

Cris Dywan (kalikiana)
description: updated
Revision history for this message
Olivier Tilloy (osomon) wrote :

This requires to implement the HTML5 pointer lock API in oxide (https://developer.mozilla.org/en-US/docs/Web/API/Pointer_Lock_API).

Changed in webbrowser-app (Ubuntu):
status: New → Confirmed
Changed in oxide:
milestone: none → branch-1.14
importance: Undecided → Medium
status: New → Triaged
Revision history for this message
Olivier Tilloy (osomon) wrote :

content::WebContentsDelegate::RequestToLockMouse(…) and content::WebContentsDelegate::LostMouseLock() need to be overridden in oxide::WebView (and ask the user to allow pointer lock), and oxide::RenderWidgetHostView::LockMouse() and oxide::RenderWidgetHostView::UnlockMouse() need to be implemented to do the work to actually hide/show the mouse cursor (we might want to have a look at how it’s implemented in RenderWidgetHostViewAura in chromium).

description: updated
Revision history for this message
Olivier Tilloy (osomon) wrote :

With a dummy implementation of the above (that silently accepts the pointer lock requests), I verified that https://mdn.github.io/pointer-lock-demo/ works.

summary: - HTML5 DosBox emulator can't grab mouse pointer
+ implement the HTML5 pointer lock API
Changed in oxide:
milestone: branch-1.14 → branch-1.15
David Barth (dbarth)
Changed in webbrowser-app (Ubuntu):
assignee: nobody → Santosh (santoshbit2007)
Changed in oxide:
assignee: nobody → Santosh (santoshbit2007)
Changed in oxide:
milestone: branch-1.15 → branch-1.16
Changed in oxide:
milestone: branch-1.16 → branch-1.17
David Barth (dbarth)
Changed in oxide:
status: Triaged → In Progress
Changed in webbrowser-app (Ubuntu):
status: Confirmed → In Progress
importance: Undecided → Medium
Changed in oxide:
milestone: branch-1.17 → branch-1.18
Changed in oxide:
milestone: branch-1.18 → branch-1.19
Changed in oxide:
milestone: branch-1.19 → branch-1.20
Changed in oxide:
milestone: branch-1.20 → branch-1.21
Changed in oxide:
milestone: branch-1.21 → branch-1.22
Changed in oxide:
milestone: branch-1.22 → none
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.