Closed
Bug 817876
Opened 10 years ago
Closed 10 years ago
Support multiple modal dialogs being requested from the same origin at the same time
Categories
(Firefox OS Graveyard :: Gaia::Browser, defect, P4)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: martijn.martijn, Assigned: cwiiis)
References
()
Details
(Keywords: testcase, Whiteboard: c=browser u=user)
Attachments
(1 file)
3.52 KB,
patch
|
benfrancis
:
review+
|
Details | Diff | Splinter Review |
See testcase. Expected result: - 3 alert dialogs should appear Actual result: - Only 1 dialog appears and the page never finishes loading
Comment 1•10 years ago
|
||
This is a very odd test case and I'm struggling to think of this would ever be reproduced in actual web content. I'm not actually sure why it doesn't work but I've created a test case here to demonstrate a more sane case where three alerts in a row are successfully displayed http://people.mozilla.org/~bfrancis/3alerts.html Martijn, can you explain the rationale behind this bug report? Is there a particular use case you have in mind where you would want to create multiple iframes firing alerts at the same time?
Flags: needinfo?(martijn.martijn)
Comment 2•10 years ago
|
||
Oh I think I know what the bug is and it's definitely in Gaia not Gecko. The mozbrowsershowmodalprompt events are all being fired by Gecko, but the browser app can only handle one event from a given origin at a time. In the working example, all three events are from the same origin but they're executed synchronously in the same thread so block each other and will only fire one at a time. By firing the alerts from different iframes in the non-working example, they don't block each other and so are all fired at the same time, or in other words modal dialogs may not always be modal. I'm not sure how important this is to fix, but it should be fixable in Gaia by creating a queue per origin. We might need to be careful not to allow content to DoS the browser this way though.
Summary: Only one alert dialog shown in this case, when 3 alert dialogs should appear → Support multiple modal dialogs being requested from the same origin at the same time
Whiteboard: c=browser u=user
Updated•10 years ago
|
Priority: -- → P4
Assignee | ||
Comment 3•10 years ago
|
||
This fixes the issue and provides what I see as the same behaviour as Firefox on desktop (each dialog is presented in the order in which they arrive). I'm not sure if the possibility of DoS'ing is different to the normal modal dialog handling - if it is, then this patch needs a part 2 to prevent that, but I'd have thought that the usual mechanisms would work in this case too (?) Assigning, but feel free to steal.
Assignee: nobody → chrislord.net
Status: NEW → ASSIGNED
Attachment #767198 -
Flags: review?(bfrancis)
Assignee | ||
Comment 4•10 years ago
|
||
Pull request: https://github.com/mozilla-b2g/gaia/pull/10608
Comment 5•10 years ago
|
||
Comment on attachment 767198 [details] [diff] [review] Handle multiple modal dialogs from the same origin r+me once it passes the JS linter (See pull request https://github.com/mozilla-b2g/gaia/pull/10608) Please be sure to squash into one commit before merging and add r=benfrancis to the merge commit message if you merge it yourself. Thanks!
Attachment #767198 -
Flags: review?(bfrancis) → review+
Comment 6•10 years ago
|
||
Merged into master https://github.com/mozilla-b2g/gaia/commit/2ee4b75497ffbd09a9ca085cdcc4fa2e561a0fd7
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Updated•9 years ago
|
Flags: needinfo?(martijn.martijn)
You need to log in
before you can comment on or make changes to this bug.
Description
•