Closed Bug 605127 Opened 10 years ago Closed 10 years ago

Autoscroll stops unintentionally while page is scrolling


(Toolkit :: XUL Widgets, defect)

Not set



Tracking Status
blocking2.0 --- final+


(Reporter: alice0775, Assigned: smaug)




(Keywords: regression)


(3 files)

Build Identifier: 
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv: Gecko/20101016 Firefox/3.6.12pre ID:20101016044945

Autoscroll stops unintentionally while page is scrolling.

This happens on Linux build too.
Mozilla/5.0 (X11; Linux i686; rv:2.0b8pre) Gecko/20101018 Firefox/4.0b8pre ID:20101018030619

However, This does not happen on 3.6.10

Reproducible: Always

Steps to Reproduce:
1. Start Minefield with new profile
2. Open URL ( )
3. Wait till throbber of the tab stops
4. Start Autoscroll by middle button. and scroll to bottom

Actual Results:
 Autoscroll stops unintentionally.
 And autoscroll marker disappears.

Expected Results:
 Autoscroll should not stop,

Regression window for m-c build:
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b4pre) Gecko/20100806 Minefield/4.0b4pre ID:20100806224818
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b4pre) Gecko/20100806 Minefield/4.0b4pre ID:20100806235707

Regression window for TM build:
Mozilla/5.0 (Windows; Windows NT 6.1; WOW64; rv:2.0b3pre) Gecko/20100805 Minefield/4.0b3pre ID:20100805054905
Mozilla/5.0 (Windows; Windows NT 6.1; WOW64; rv:2.0b3pre) Gecko/20100806 Minefield/4.0b3pre ID:20100806043626
blocking2.0: --- → ?
Target Milestone: --- → Firefox 4.0
In loacl build, the following chagesets causes the problem.
6ea9b217883a	Blake Kaplan — Bug 546573 - EnsureInnerWindow from wrappers. r=jst sr=bzbarsky
Assignee: nobody → general
Component: General → JavaScript Engine
Product: Firefox → Core
QA Contact: general → general
Target Milestone: Firefox 4.0 → mozilla2.0
Keywords: regression
Blocks: 546573
Assignee: general → nobody
Component: JavaScript Engine → XPConnect
QA Contact: general → xpconnect
Blake, this was caused by your commit, assuming the blame in the previous comment is correct.
Assignee: nobody → mrbkap
blocking2.0: ? → final+
I can't reproduce on Linux.
Olli, can you help out here? mrbkap was able to reproduce this on Linux but doesn't have time to debug any time soon. We know this started with the compartments landing, but we need to figure out what goes wrong, and maybe at that point mrbkap can help fix it if it's not something someone else can do.
Assignee: mrbkap → Olli.Pettay
OK, if I read and debug this correctly, the problem is that browser.xml
handles pagehide event and it doesn't check the target of the event.
It just always hides the autoscroller when such event happens.

So bug 546573 seems to have changed the timing of some session history
operations, but in practice this bug does exist on branches too.
Attached file testcase
Assignee: Olli.Pettay → nobody
Component: XPConnect → XUL Widgets
Product: Core → Toolkit
QA Contact: xpconnect → xul.widgets
Attached patch patchSplinter Review
I'm not sure who should review this.
Assignee: nobody → Olli.Pettay
Attachment #500004 - Flags: review?(neil)
Comment on attachment 500004 [details] [diff] [review]

>+              var doc = this._scrollable.ownerDocument ?
>+                this._scrollable.ownerDocument : this._scrollable.document; 
I'd probably prefer it if you made an instanceof Window test to be consistent with autoScrollLoop. Or you could use || which works like Perl, not C++.
Attachment #500004 - Flags: review?(neil) → review+
comment 9 ++

I thought I edited the style guide to recommend writing a || b not a ? a : b, and a && b not a ? b : a. If I didn't or that edit was lost, feel free to fix.

Closed: 10 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.