Closed
Bug 1210091
Opened 9 years ago
Closed 9 years ago
New Tab Page Drag&Drop Causes Overlapping Tiles
Categories
(Firefox :: New Tab Page, defect, P1)
Tracking
()
People
(Reporter: tspurway, Assigned: mzhilyaev)
References
Details
Attachments
(3 files, 1 obsolete file)
2.81 MB,
video/mp4
|
Details | |
1.75 KB,
patch
|
Details | Diff | Splinter Review | |
1.47 KB,
patch
|
lizzard
:
approval-mozilla-aurora+
|
Details | Diff | Splinter Review |
With the introduction of scrollbars in about:newtab, we can easily reproduce a bunch of inconsistent behaviour while dragging and dropping tiles.
The first problem is that the page does not 'hot scroll', which is a typical behaviour when dragging off/near a scrollable boundary. The expected behaviour would be that scrolling would automatically be activated when a tile is dragged close to the edge of a scrollable region. That is, a tile dragged to the bottom of the window should cause the window's contents to 'scroll up'.
When a tile is dropped onto a partially visible tile on the bottom of the screen, it causes inconsistent overlapping of tiles, where one tile sits on top of another. Resizing the window while in this state causes the obscured tile (and the search text entry box) to move incorrectly. In addition, there is a 'hole' in the tileset where (one would presume) the obscured tile is *supposed* to be.
Also, once the newtab is in this state, drag & drop does not work anymore.
(please see attachment movies)
Comment 1•9 years ago
|
||
Hey all,
Back out the regression on beta asap. Fix on nightly please.
Assignee | ||
Comment 2•9 years ago
|
||
This bug will be fixed by uplift of the fix to 1196437.
I am requesting the uplift for beta/aurora right now.
Assignee | ||
Comment 3•9 years ago
|
||
I meant the fix to Bug 1196437 will fix this issue.
Assignee | ||
Comment 4•9 years ago
|
||
Bug 1196437 beta uplift request is here: https://bugzilla.mozilla.org/show_bug.cgi?id=1196437#c11
Assignee | ||
Comment 5•9 years ago
|
||
After talking to tspurway and watching him reproducing this bug, I managed to repro same behavior on current nightly build. So, following dougt requested suggest backing out scrollbar from beta until root cause could be identified.
Assignee | ||
Comment 6•9 years ago
|
||
apparently this behavior is not new: https://bugzilla.mozilla.org/show_bug.cgi?id=1000097
The scroll bar surfaces it badly, so we will backout the scrollbar per Bug 1211016.
Assignee | ||
Comment 7•9 years ago
|
||
[Tracking Requested - why for this release]:
Assignee: nobody → mzhilyaev
Iteration: --- → 44.2 - Oct 19
Points: --- → 13
Priority: -- → P1
Target Milestone: --- → Firefox 44
Assignee | ||
Comment 8•9 years ago
|
||
Root cause analysis:
This failure occurs when the mouse is released outside the viewport of the newtab window. In which case no drop event is generated, and the dragged tile moves back into its original position. However, the rest of tiles still handle dragend event and move into new positions. which is why the user sees overlapping tiles and empty spots.
The issue was present since the grid was introduced in 2013. However, addition of the scrollbar made it very easy for a user to slide past the bottom of the window when he drags top tile into the bottom row.
The fix:
Simply check if the drop event was seen inside dragend handler and abort the whole drag&drop operation if the drop never arrived. This assumes that drop event always precedes dragend event, which seems to be the case according to mdn documentation (https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Drag_and_drop) and manual testing
unit testing:
creating a mochitest for the failure is involved. Given that this code will become obsolete with introduction of remote newtab, suggest manual testing only.
Attachment #8672033 -
Flags: review?(mcaceres)
Comment 9•9 years ago
|
||
Comment on attachment 8672033 [details] [diff] [review]
1210091.v1.patch
Review of attachment 8672033 [details] [diff] [review]:
-----------------------------------------------------------------
R+, just minor nit.
::: browser/base/content/newtab/dropTargetShim.js
@@ +141,5 @@
> this._lastDropTarget = null;
> this._cellPositions = null;
> }
>
> + this._dropSeen = null;
Can you please set this to false instead?
Comment 10•9 years ago
|
||
Comment on attachment 8672033 [details] [diff] [review]
1210091.v1.patch
Review of attachment 8672033 [details] [diff] [review]:
-----------------------------------------------------------------
R+, just minor nit.
::: browser/base/content/newtab/dropTargetShim.js
@@ +141,5 @@
> this._lastDropTarget = null;
> this._cellPositions = null;
> }
>
> + this._dropSeen = null;
Can you please set this to false instead?
Attachment #8672033 -
Flags: review?(mcaceres) → review+
Comment 12•9 years ago
|
||
Assignee | ||
Comment 13•9 years ago
|
||
Attachment #8672033 -
Attachment is obsolete: true
Assignee | ||
Updated•9 years ago
|
Attachment #8672823 -
Attachment description: fixed reviewer comment → nightly patch v2. - fixed reviewer comment
Assignee | ||
Comment 14•9 years ago
|
||
Approval Request Comment
[Feature/regressing bug #]:
Bug 1210091 - New Tab Page Drag&Drop Causes Overlapping Tiles
[User impact if declined]:
Significant user impact. The bug existed in the code since 2013. Introduction of the scrollbar made releasing the drag outside the browser window easy. In which case the drop event would never be generated, and the failure case would surface (for details see https://bugzilla.mozilla.org/show_bug.cgi?id=1210091#c8).
Since 1180387 functionality was requested by community at large (note that it was backed out from beta in 1211016), we recommend the fix to be uplifted to aurora to then become beta.
[Describe test coverage new/current, TreeHerder]:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=bd03745d1eed
manually tested on linux, macos and windows
[Risks and why]:
Risks are minimal - fixing per-exsting flaw in code logic.
[String/UUID change made/needed]: None
Attachment #8672827 -
Flags: approval-mozilla-aurora?
Comment 15•9 years ago
|
||
Andrei can your team verify this fix on Nightly before we uplift to aurora? Thanks.
status-firefox42:
--- → affected
status-firefox43:
--- → affected
tracking-firefox42:
--- → ?
tracking-firefox43:
--- → +
tracking-firefox44:
--- → +
Flags: qe-verify+
Flags: needinfo?(andrei.vaida)
Comment 16•9 years ago
|
||
(In reply to Liz Henry (:lizzard) (needinfo? me) from comment #15)
> Andrei can your team verify this fix on Nightly before we uplift to aurora?
> Thanks.
Assigning Mihai for verification.
Flags: needinfo?(andrei.vaida)
QA Contact: mihai.boldan
Comment 17•9 years ago
|
||
42 is unaffected as we backout the patch causing this issue. See bug 1211016 for more information.
Comment 18•9 years ago
|
||
I was able to reproduce this issue on Windows 10 x86 using Firefox 43.0a2 (20151014004030).
The issue is no longer reproducible on Windows 10 x86, Mac OS X 10.11 and Ubuntu 14.04 x86, using Firefox 44.0a1 (20151014030223).
I'll keep an eye on this bug in order to verify it as soon as it lands in aurora build.
Status: RESOLVED → VERIFIED
Comment 19•9 years ago
|
||
Comment on attachment 8672827 [details] [diff] [review]
aurora patch
Fix verified in nightly; ok to uplift to aurora.
Attachment #8672827 -
Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Comment 20•9 years ago
|
||
Comment 21•9 years ago
|
||
The issue is no longer reproducible on Windows 10 x86, Mac OS X 10.11 and Ubuntu 14.04 x64, using Firefox 43.0 Beta 1.
Flags: qe-verify+
You need to log in
before you can comment on or make changes to this bug.
Description
•