Closed
Bug 848692
Opened 11 years ago
Closed 11 years ago
Progress bar animations on OS X stutter badly on HiDPI displays (<html:progress> and <xul:progressmeter>)
Categories
(Core :: Widget: Cocoa, defect)
Tracking
()
RESOLVED
FIXED
mozilla22
People
(Reporter: fryn, Assigned: mstange)
References
(Blocks 1 open bug, )
Details
Attachments
(2 files)
289.43 KB,
video/webm
|
Details | |
2.20 KB,
patch
|
jaas
:
review+
|
Details | Diff | Splinter Review |
On OS X, the animations in both <html:progress> and <xul:progressmeter> stutter every second or two. It is perceived as jumping ahead or skipping frames. I believe it happens, because in HiDPI mode, the animations move half as fast as they should, and the animation restarts before they have moved the full width of the animation. This stutter only occurs for <html:progress> in HiDPI mode, whereas it occurs for <xul:progressmeter> regardless of the value of "gfx.hidpi.enabled". This bug affects the progress bars in the downloads panel and also the download progress bar in the Firefox application dock icon. See the URL for a testcase of <html:progress>.
Comment 1•11 years ago
|
||
That's odd; I can definitely see what you're describing in your screen recording, but I'm not seeing it in local testing, either using the URL testcase or watching the download progress bar on the dock icon.
Assignee | ||
Comment 2•11 years ago
|
||
Here's an HTML progressbar testcase that also stutters in non-HiDPI, because it uses small progressbars instead of large ones: data:text/html,<progress style="height:12px"></progress><br/><br/><progress value=".8" style="height:12px"></progress>
Assignee | ||
Comment 3•11 years ago
|
||
The " % 32" was responsible for the skipping. Small progress bars doubled their animation cycle time starting with 10.7 to 64 steps instead of 32. This patch ups the value to 256, i.e. all possible values of uint8_t.
Assignee | ||
Comment 4•11 years ago
|
||
The type of the phase field is defined as UInt8 in Appearance.h: struct ProgressTrackInfo { /* * A UInt8 indicating the current phase of the track fill. */ UInt8 phase; /* phase for indeterminate progress */ }; Let me know if I should rather cast to UInt8 instead of uint8_t.
Attachment #722169 -
Flags: review?(joshmoz) → review+
Assignee | ||
Comment 5•11 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/b20599257ae7
Comment 6•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/b20599257ae7
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla22
You need to log in
before you can comment on or make changes to this bug.
Description
•