Closed Bug 778333 Opened 14 years ago Closed 14 years ago

Unable to click on links on http://autosport.com/

Categories

(Firefox for Android Graveyard :: General, defect)

16 Branch
ARM
Android
defect
Not set
major

Tracking

(firefox15 unaffected, firefox16 verified, firefox17 verified)

VERIFIED FIXED
Tracking Status
firefox15 --- unaffected
firefox16 --- verified
firefox17 --- verified

People

(Reporter: mbrubeck, Assigned: mbrubeck)

References

()

Details

(Keywords: regression)

+++ This bug was initially created as a clone of Bug #775372 +++ Tapping links on http://autosport.com/ in Fennec does nothing; the tap highlight does not appear and the link is not opened. (However, long-press on a link does produce the correct context menu.) There are no errors logged. This page does not appear to have touch event listeners.
Something is preventing events from getting to this page for a long time. I think we end up receiving touchstart around the same time we receive SingleTap. With the timer stuff we're using to set our tapHighlight, we may have no taphighlight element when we receive SingleTap and so we just bail. In fact, SingleTap calls cancelTapHighlight, which kills our timer so that we never highlight anything. It would be good to kill this race, but I'd like to know what's making this page so slow to get events too.
I looked at our java->gecko event queue here, but things there look fine. At least the "sending event" and "done with event" messages for the touches and broadcast messages all seem to fly by very close to each other: I/Gecko ( 3273): nsAppShell: event 0x5fbef660 2 I/Gecko ( 3273): nsAppShell::ScheduleNativeEventCallback pth: 0x1c1918 thread: 0x5cc56fa0 main: 0 I/Gecko ( 3273): nsAppShell::PostEvent 0x5cc393d0 0 I/Gecko ( 3273): nsAppShell: -- done event 0x5fbef660 2 I/Gecko ( 3273): nsAppShell::ProcessNextNativeEvent 0 I/Gecko ( 3273): nsAppShell: event 0x5cc393d0 0 I/Gecko ( 3273): nsAppShell: -- done event 0x5cc393d0 0 ... I/Gecko ( 3273): nsAppShell: event 0x5cc393d0 0 I/Gecko ( 3273): nsAppShell: -- done event 0x5cc393d0 0 I/Gecko ( 3273): nsAppShell::ProcessNextNativeEvent 0 I/Gecko ( 3273): nsAppShell::PostEvent 0x5cc393d0 2 I/Gecko ( 3273): nsAppShell::ScheduleNativeEventCallback pth: 0x1c1918 thread: 0x5cc56fa0 main: 0 I/Gecko ( 3273): nsAppShell::PostEvent 0x5cc39530 0 I/Gecko ( 3273): nsAppShell::PostEvent 0x5cc39690 19 I/Gecko ( 3273): nsAppShell::ProcessNextNativeEvent 0 I/Gecko ( 3273): nsAppShell: event 0x5cc393d0 2 I/Gecko ( 3273): nsAppShell: -- done event 0x5cc393d0 2 I/Gecko ( 3273): nsAppShell::ProcessNextNativeEvent 0 I/Gecko ( 3273): nsAppShell: event 0x5cc39530 0 I/Gecko ( 3273): nsAppShell: -- done event 0x5cc39530 0 I/Gecko ( 3273): nsAppShell::ProcessNextNativeEvent 0 I/Gecko ( 3273): nsAppShell: event 0x5cc39690 19 I/Gecko ( 3273): nsAppShell: -- done event 0x5cc39690 19 I/Gecko ( 3273): nsAppShell::ProcessNextNativeEvent 0 I also grabbed a profile using the built in profiler: http://people.mozilla.com/%7Ebgirard/cleopatra/?report=fdb8e6900f04f16e2e3e9ae0c2c1e67338d78437 Looks like the page is doing tons of reflow/paint operations even though its fairly static. Need to figure out why.
autosport is running a tiny, not quite right, countdown timer at the top of the page: var eventdate = new Date("2 September 2012 12:00 GMT"); var startTime = (new Date()).getTime(); function countdown() { startTime+=500; count=Math.floor((eventdate.getTime()-(new Date(startTime)).getTime())/1000); if(count<=0) { document.getElementById("gpcountdown").innerHTML = "The "+gpname+" GP has already started!"; return; } document.getElementById("gpcountdown").innerHTML = <time until the gp!>; setTimeout("countdown()",500); } window.onload = countdown; Those constant innerHTML calls cause us to reflow and repaint, which is eating up time for taps and things to trigger. Removing the final setTimeout call or the innerHTML call causes the page to become responsive.
There' over a 100 changesets in that range, can you use tinderbox-builds?
(In reply to Aaron Train [:aaronmt] from comment #5) > There' over a 100 changesets in that range, can you use tinderbox-builds? No need; this pretty much confirms that this is a regression from bug 769857.
Blocks: 769857
Yeah. There are two bugs here. One is the taphighlight race making clicks not work at all. The other is that simple changes are causing way to much reflow. I guess we should split the reflow stuff off to another bug. I'm cc'ing ehsan to find out if there is a bug covering it already? or maybe to get advice on what further debugging to do?
Fixed for Fx17 by backing out bug 769857: https://hg.mozilla.org/integration/mozilla-inbound/rev/4ef483246388 In bug 775372 I requested Aurora approval for the backout.
Assignee: nobody → mbrubeck
Status: NEW → ASSIGNED
Blocks: 779339
(In reply to Matt Brubeck (:mbrubeck) from comment #8) > Fixed for Fx17 by backing out bug 769857: > https://hg.mozilla.org/integration/mozilla-inbound/rev/4ef483246388 > > In bug 775372 I requested Aurora approval for the backout. https://hg.mozilla.org/mozilla-central/rev/4ef483246388
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
(In reply to comment #7) > The other is that simple changes are causing way to much reflow. I guess we > should split the reflow stuff off to another bug. I'm cc'ing ehsan to find out > if there is a bug covering it already? or maybe to get advice on what further > debugging to do? I'm not sure what you mean here.
Status: RESOLVED → VERIFIED
tracking-fennec: ? → ---
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.