Closed Bug 845837 Opened 7 years ago Closed 7 years ago

Drag and Drop features in Blackboard Learn 9.1 SP9 broken after updating to Firefox 19

Categories

(Core :: Layout, defect)

19 Branch
x86_64
Windows 7
defect
Not set

Tracking

()

VERIFIED FIXED
mozilla22
Tracking Status
firefox19 --- wontfix
firefox20 + fixed
firefox21 + verified
firefox22 + verified
firefox-esr17 --- unaffected

People

(Reporter: kevin.lowey, Assigned: dbaron)

References

Details

(Keywords: regression, Whiteboard: STR: Comment#6)

Attachments

(2 files)

User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0
Build ID: 20130215130331

Steps to reproduce:

See the example video at http://www.youtube.com/watch?v=XamjCihmDN0

This problem started happening after I installed Firefox 19. I had no problems with Firefox 18. So I am certain this is a bug in Firefox. 

I logged into Blackboard Learn 9.1 SP9 and as the instructor went to the page that lets me drag discussion forum topics to reorder them. 


Actual results:

The drag works, but when I release the mouse after reaching the new location, the dragged item is redrawn in its original location, not the new location. If I then re-enter the discussion forums page I do see everything in the correct "new" location. It's just not rendering the dragged item in the correct location after the drag.


Expected results:

In Firefox 18, when I released the mouse after dragging the discussion topic appeared in the correct location.
I have also reported this bug to Blackboard. But I am certain that the culprit is Firefox 19 as we never had problems with this before and no other web browser is showing this problem.
This is the response from Blackboard:

Dear Kevin,
Thank you for contacting Blackboard Technical Support. This is a known issue on with Firefox 19 known as LRN-65553. Currently there are two workarounds that are known for this issue so far. The first workaround is to use a previous version of Firefox, or another browser such as IE or Chrome. The other workaround is to use the reorder menu (double arrow icon on the right) to reorder columns. At this time there is not currently a patch to fix this issue.
I have contacted Blackboard and asked them to also report this issue in bugzilla. They should be able to provide more details about exactly what javascript calls are failing, etc.  When they get back to me with their Bugzilla tracking number I will note the number here to join the issues.
We need a testcase attached or as URL.
I can find the exact change in Firefox that caused this issue with a testcase.
Unfortunately I am a user of the Blackboard system, not the developers. So I don't have access to the exact javascript code they were using in order to set up the test case. 

I have reported this issue to Blackboard and requested that they identify exactly what javascript code is no longer behaving correctly, then report that as a Bugzilla issue themselves. I have also asked them to contact me when they do that so I can tie this issue to their bug report.

In the mean time I can try to reverse-engineer exactly what javascript they are using. Or if it would help, I could set you up with an account on our Blackboard system and a test course so that you can try it yourself and use your own diagnostic tools to see what is happening.

I will also try installing individual Firefox daily releases between the official version 18 and the Version 19 release to try and identify exactly which build introduced the error.
Blackboard operates a free service where you can log in and create courses. I just checked. They are using a slightly newer version of the discussion system than on our site but they are also experiencing the same problem. So here is a test case for you.

1. Visit https://coursesites.blackboard.com

2. Select the "Sign Up" button and sign up as an instructor. It will ask for a form to create your account. You can either complete the form or sign in using facebook,etc.

3. Once your account is set up and you have logged in, click the "Create a Course" button then select "Create New Course". Give the course a name and a one-word course ID. then submit.

4. It will say "creating your course" then eventually return to the main page, but now this new course is listed in your course list.

5, Enter that test course. It may have a "quick setup guide" displayed. Just hit "cancel". 

6. In the left-hand course menu if "Discussions" is listed, click on it. If it is not listed, hit the "+" in theupper left, pick "tool link", then for "Name" enter "Discussions" and for "type" select "Discussion Board". Then click "Discussions".

7. Click the "Create Forum" button at the top of the page and create a forum called "Forum 1". you can leave the rest blank.

8. Do that again, making a forum called "Forum 2".  You may want to create three or four forums. 

9. You now see a list of forums. If you hover your mouse over a forum you will see editing widgets appear including a "up/down arrow" for dragging that forum. Select that and drag a forum up.

If you are in Firefox 18 all should work well.

If you are in Firefox 19, you will see the behaviour I identified in my video. 

the only difference in this newer version of Blackboard's discussion forum is that after the problem occurs, if you move your mouse to where the two forums overlap, they will suddenly correct themselves. (it looks like this implementation does a refresh on a mouseover). But older versions of Blackboard don't have this easy fix.

In any event, the overlapping of the forum titles is definitely a Firefox 19 bug that doesn't occur in any other browser or in Firefox 18.  It also isn't limited to just Blackboard (I have seen problems in other CSS3 based web sites too).
I tried to do a regression range search but i have a small problem.

There is an empty area if you move a forum that corrects itself only if I move my mouse around and this also happens with Firefox16,17,18.

For example ftp://ftp.mozilla.org/pub/firefox/nightly/2012/07/2012-07-31-03-05-41-mozilla-central/firefox-17.0a1.en-US.win32.zip shows exactly the same issue as your video except that there the refresh fixes it.
Matthias says you are seeing the same behavior in all versions of firefox, which is confusing because I see different behaviour.

Please see my video at http://youtu.be/07azhjxpkVE which shows the exact same course and exact same actions using Firefox 18.0.2, and firefox 19.0. There is clearly different behaviour. 18.0.2 works correctly. 19.0 shows a problem after dragging (the dragged item is displayed in the incorrect location).

I am assuming this is a Firefox 19 bug. Either that, or in Firefox 19 something was deprecated which Blackboard was using when implementing the drag and drop capabilities. 

(Note in the video I said I was using Firefox 18. Technically it was 18.0.2
This is a screenshot from a Firefox18 build, it's a nightly developer version and not the later release.

There are 3 Forum entries and i dragged "Forum 2" to the "Forum 3" at the top and you can see the empty area. Moving the mouse around will refresh the area.

The difference between our observations could be that you are using a different blackboard version.
Wow, that's really strange. 

I am using the exact same Blackboard site as you, so the Blackboard version should be identical.

I was using Firefox 18.0.2 and Firefox 19.0 running on Windows 7. Are you possibly using it on Linux or Mac or something? 

In any case you are seeing the problem (just in more browser versions than me). I suggest you now try the same procedure using MSIE, Google Chrome, Safari, etc. I suspect that those will work fine, confirming that this bug is only occurring in Firefox and not in other browsers.
If necessary, I can also set you up with an account on our Blackboard system at the University of Saskatchewan for testing. This is using an older version of Blackboard which corresponds to what you saw in my first video.

This could be a major issue for Firefox adoption at universities. Blackboard is the main LMS used in thousands of universities. If this issue continues, then we will be forced to tell people not to use firefox, tell the managers of our computer labs not to upgrade to Firefox 19, and instead recommend different web browsers like Safari or Chrome.

This may be a bug in Firefox. Or it may be a bug in Blackboard (perhaps using something that Firefox 19 deprecated in their code). In either case I am hoping to identify exactly where things are breaking and contact both you and Blackboard to get this fixed asap.
I know blackboard from previous bug reports (I'm doing bug triage here since ~2000) :-)

There are 2 ways to proceed with a bug report like this. 
a) Identify the change in the Firefox source that caused this.
I have the tools for this task and can compile Firefox myself.
b) Analyze the html/js code and try to find the error.

I can only do a)
b) is complicated, can take several hours and is sometimes only possible for the vendor due to obfuscated JS and things that happen only on the server side.

There is one last thing that I will check. There are 1-2 (?) features that are enabled in nightly builds that i used for my tests. This features are disabled in release builds until the feature got enough testing in the nightly builds.
Last good nightly: 2012-06-06
First bad nightly: 2012-06-07

Pushlog:
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=6338a8988917&tochange=7e4c2abb9fc9

Bisecting down to the exact changeset will take a while...
Thanks Matthias.

I did report this to blackboard. They indicated it is a "known issue with Firefox". I then asked them to give me the bugzilla tracking number for when they reported this "known issue" in bugzilla. They hemmed and hawed and told me "well we didn't really do that".  So I suggested maybe it would be a good idea for them to work with Firefox to report and fix the bug.  Still hoping they will do that and identify exactly what code in js is causing the problem.
The first bad revision is:
changeset:   95967:df6702c41ddd
user:        Ehsan Akhgari <ehsan@mozilla.com>
date:        Wed Jun 06 00:53:48 2012 -0400
summary:     Bug 157681 - Part 2: Optimize positioned frame offset changes by moving the frame as opposed to reflowing it in case we know that the size of the frame will not change; r=dbaron

And the bug status of bug 157681 explains why it doesn't happen in Firefox18:
 	status-firefox16: 	disabled
  	status-firefox17: 	disabled
  	status-firefox18: 	disabled
Blocks: 157681
Status: UNCONFIRMED → NEW
Component: Untriaged → Layout
Ever confirmed: true
Keywords: regression
Product: Firefox → Core
Whiteboard: STR: Comment#6
Thanks Matthias.

Just some clarification of what to do next. Have you verified this is a Firefox bug which will be addressed in a future release, or have you identified that this is correct behaviour in which case Blackboard will have to modify their product?

I just need to know who to pester next :)
My knowledge about html/js/c/c++/English language is very limited and that limits my bug triage capabilities but I do it anyway... :-)
Based on my knowledge i would say that this bug is caused by a Layout code change to optimize the performance. This issue can only be fixed on the Firefox side but
I can't tell you when this will be fixed due to limited available developers.
I requested that this bug blocks the next release and that's all what I can do.
Thanks Matthias, you've been great. You've narrowed this down to the specific code change that introduced the problem and made sure that the developers will at least consider this issue before the next Firefox release.

I have updated my Blackboard problem report to point them to this bugzilla issue so they should now be able to see exactly what you told me. I think they are also considering a patch for their product to work around this issue. This bugzilla issue should help them to do that.
Jet, we need an owner for this...
Assignee: nobody → bugs
I'll poke at this briefly to at least see which case we're hitting and what might be going wrong.
So it's hitting the relative positioning case, for a table row.  Haven't found anything obviously wrong yet.
OK, so the basic problem is this:  we don't currently support relative positioning on inner table elements (table row groups, rows, or cells (bug 35168)).  I'm not sure about the exact set there, but it definitely includes rows.

Bug 157681 caused us to start supporting it, but only as a result of some dynamic changes.

I'm not sure what used to make the site work, but the end result is that what breaks it is that it animates relative positioning, but then right at the end of the drag, there's a reflow before the position is restored, which resets the current effective relative position to 0, which we then undo when the 'top' is animated back.

I think in the short term we should just suppress relative inner table elements in this code; in the longer term we should fix relative positioning of inner table elements.
Assignee: bugs → dbaron
(In reply to comment #22)
> I think in the short term we should just suppress relative inner table elements
> in this code; in the longer term we should fix relative positioning of inner
> table elements.

This makes sense to me.  Thanks for investigating this!
(In reply to Kevin from comment #0)

> Expected results:
> 
> In Firefox 18, when I released the mouse after dragging the discussion topic
> appeared in the correct location.

I also presume that in Firefox 18, you didn't see any feedback while dragging, either.  That's the state this patch will restore us to.
This is somewhat evil, but should get us back into the state we were in
before.  There are probably other bugs lurking here as well, though,
related to other cases where we don't support relative positioning.  We
really just need to make our relative positioning support more general.
Attachment #721993 - Flags: review?(ehsan)
(In reply to David Baron [:dbaron] (don't cc:, use needinfo? instead) from comment #24)

> I also presume that in Firefox 18, you didn't see any feedback while
> dragging, either.  That's the state this patch will restore us to.

That is correct. When I drag in Firefox 18, it does not show the table row moving as I drag.  The visual indicator they use instead is to change the row background colour in the table as I drag to indicate where the item will be dropped.

Thanks - Kevin
Attachment #721993 - Flags: review?(ehsan) → review+
Comment on attachment 721993 [details] [diff] [review]
Don't use our dynamic updating for relative positioning on inner table frames, which don't do relative positioning at all.

[Approval Request Comment]
Bug caused by (feature/regressing bug #): bug 157681
User impact if declined: Incorrectly positioned elements that break site functionality.
Testing completed (on m-c, etc.): on mozilla-inbound
Risk to taking this patch (and alternatives if risky): low risk; it restores the old behavior by disabling in the optimization codepath behavior that doesn't work in the primary codepath
String or UUID changes made by this patch: none
Attachment #721993 - Flags: approval-mozilla-beta?
Attachment #721993 - Flags: approval-mozilla-aurora?
Comment on attachment 721993 [details] [diff] [review]
Don't use our dynamic updating for relative positioning on inner table frames, which don't do relative positioning at all.

 FF19 regression,we have seen the impact of this regression on users using drag/drop on blackboard .Patch is low risk so approving for uplift.

In addition request for QA verification.
Attachment #721993 - Flags: approval-mozilla-beta?
Attachment #721993 - Flags: approval-mozilla-beta+
Attachment #721993 - Flags: approval-mozilla-aurora?
Attachment #721993 - Flags: approval-mozilla-aurora+
Keywords: verifyme
(In reply to Kevin from comment #18)
> Thanks Matthias, you've been great. You've narrowed this down to the
> specific code change that introduced the problem and made sure that the
> developers will at least consider this issue before the next Firefox release.
> 
> I have updated my Blackboard problem report to point them to this bugzilla
> issue so they should now be able to see exactly what you told me. I think
> they are also considering a patch for their product to work around this
> issue. This bugzilla issue should help them to do that.

Hi Kevin, this issue has been fixed on our nightly builds and it should soon be landing on aurora/beta.

Can you please help us verify that the problem you reported is fixed by trying our latest nightly or aurora/beta once the patch lands ?Thanks in advance for your time
Hi,

I would be happy to test this.  

Where do I download the updated nightly build from? 

- Kevin

(In reply to bhavana bajaj [:bajaj] from comment #30)
> (In reply to Kevin from comment #18)
> > Thanks Matthias, you've been great. You've narrowed this down to the
> > specific code change that introduced the problem and made sure that the
> > developers will at least consider this issue before the next Firefox release.
> > 
> > I have updated my Blackboard problem report to point them to this bugzilla
> > issue so they should now be able to see exactly what you told me. I think
> > they are also considering a patch for their product to work around this
> > issue. This bugzilla issue should help them to do that.
> 
> Hi Kevin, this issue has been fixed on our nightly builds and it should soon
> be landing on aurora/beta.
> 
> Can you please help us verify that the problem you reported is fixed by
> trying our latest nightly or aurora/beta once the patch lands ?Thanks in
> advance for your time
Kevin: http://nightly.mozilla.org/
Note: You have to wait up to 24h until the fix appears in the nightly build after the checkin (comment#c27)
https://hg.mozilla.org/mozilla-central/rev/7ebd5b1fa3c3
Status: NEW → RESOLVED
Closed: 7 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → mozilla22
(In reply to bhavana bajaj [:bajaj] from comment #30)
 
> Can you please help us verify that the problem you reported is fixed by
> trying our latest nightly or aurora/beta once the patch lands ?Thanks in
> advance for your time

Hi,

Just tested both on our older Learn 9.1 SP9 system and the 9.1 SP11 system at coursesites.com and the problem appears to be fixed. It is now working as it did in the production SP18 and earlier.  

I admit I did like seeing the actual text moving around while I dragged (instead of just having it redraw after I reach the new location). But maybe in the future :)

This problem was occuring both when dragging "discussion forums" around, and when dragging to reorganize columns in the grade center. The issue is fixed in both places.

I assume this will be officially released in Firefox 20 right? Not in 19.03?
(In reply to Kevin from comment #35)
> (In reply to bhavana bajaj [:bajaj] from comment #30)
>  
> > Can you please help us verify that the problem you reported is fixed by
> > trying our latest nightly or aurora/beta once the patch lands ?Thanks in
> > advance for your time

I also tested in Aurora 21.0a2 (2013-03-10) and it also is fixed there.
(In reply to Kevin from comment #35)
> I assume this will be officially released in Firefox 20 right? Not in 19.03?

Correct.  (At least based on current plans.)
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0

Verified as fixed using STR from comment 6 on Firefox 21 beta 1 (buildID: 20130401192816).
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:24.0) Gecko/20130523 Firefox/24.0

Verified as fixed on Firefox 22 beta 2 (buildID: 20130521223249) and latest Nightly (buildID: 20130523030935).
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.