Make JS dialogs app modal

Bug #1568296 reported by Chris Coulson on 2016-04-09
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Oxide
Medium
Chris Coulson
webbrowser-app (Ubuntu)
Medium
Unassigned

Bug Description

Chrome only supports app-modal JS dialogs, and so does Blink (window.alert blocks the calling process).

Oxide pretends to support tab-modal JS dialogs by having a per-WebContents dispatch queue. However, the behaviour is quite broken:
- It's really app-modal in single process because there's only a single RenderThread.
- In multi-process it's not really tab-modal - it's render-process modal (ie, only a single tab in a render process can show a JS dialog). So, if 2 tabs live in separate processes then they can display JS dialogs at the same time. But if they're from the same SiteInstance and live in the same process, they can't.

We should just change the dispatch of JS dialogs to be application modal instead, so it behaves consistently in all configurations.

Changed in oxide:
importance: Undecided → Medium
status: New → Triaged
Olivier Tilloy (osomon) on 2016-04-10
Changed in webbrowser-app (Ubuntu):
status: New → Triaged
importance: Undecided → Medium
Changed in oxide:
milestone: none → branch-1.21
assignee: nobody → Chris Coulson (chrisccoulson)
Changed in oxide:
status: Triaged → In Progress
Changed in oxide:
status: In Progress → Fix Released
Chris Coulson (chrisccoulson) wrote :

I should point out that the change which landed for this doesn't actually make dialogs application modal, as the dialog implementation is window modal at best. But we only ever display 1 script opened dialog at a time now.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers