Closed Bug 21623 Opened 25 years ago Closed 14 years ago

Stop button should stop animations

Categories

(Core :: Graphics: ImageLib, defect, P2)

defect

Tracking

()

VERIFIED WONTFIX
Future

People

(Reporter: akkzilla, Unassigned)

References

Details

(Keywords: helpwanted, regression)

Attachments

(3 files)

On every past Netscape release that has supported animated images, the Stop
button would stop the animations.  Mozilla doesn't do this, and a lot of people
are going to miss it; I'm proposing that we should make this happen for beta.
Status: NEW → ASSIGNED
Target Milestone: M14
On past Windows releases the Stop button does not stop animations, but there is
a menu item "Stop Animations" under the view menu that does this.
*** Bug 21530 has been marked as a duplicate of this bug. ***
reassigning this to neeti
Assignee: pnunn → neeti
Status: ASSIGNED → NEW
Status: NEW → ASSIGNED
Keywords: beta1
Summary: [BETA] Stop button should stop animations → [BETA1] Stop button should stop animations
Putting on the PDT- radar for beta1. Will not stop ship beat for this.
Whiteboard: [PDT-]
Target Milestone: M14 → M15
Summary: [BETA1] Stop button should stop animations → Stop button should stop animations
If the page is still loading, the first "stop" hit shouldn't stop the 
animations. If "stop" is hit again (now that the page isn't loading), 
animations should stop.
In current builds, the stop button isn't clickable even though animations are
still running.  I haven't checked Mozilla, but on prior releases it was
important to be able to stop animations because they would suck down CPU cycles
even when the window was minimized.


Target Milestone: M15 → M16
Target Milestone: M16 → M17
Nominating for beta 2 by request of Seth Arnold.
Keywords: beta1beta2
Whiteboard: [PDT-]
Keywords: nsbeta2
Target Milestone: M17 → M18
Target Milestone: M18 → Future
If anyone could suggest what files I should be looking at to get started, I'd be

happy to take a stab at this.

Removing nsbeta2 nomination. We are not implementing this feature.
Keywords: nsbeta2
dp -- please clarify. Are you not implementing "nsbeta2", or not implementing
"Stop button should stop animations"? Please tell me it is the former. :)

Thanks.
hacksaw: this bug depends on the backend bug 33810, which is also blocking an
editor bug that's marked as nsbeta2, so one or the other of those bugs will have
to get reevaluated.  If 33810 gets fixed, then this bug should become fairly
trivial, just wire up the stop button to call the imglib API.

Incidentally, this will be a blocker for many people as far as adopting the
browser -- I'm sure I'm not the only person who finds animations a huge
distraction that make it almost impossible to think until they're stopped, not
to mention the CPU hit (noticable even on my fairly fast machine).  So I'm
putting dogfood back in the keywords even though I know it's going to be
minused.
Depends on: 33810
Keywords: dogfood, helpwanted
Currently, the stop button becomes disabled as soon as it finishes loading a 
page. This bug requires that the stop button is enabled even after loading the 
page, when there is an animated gif on the page. This will involve work on the 
xpfe side too.
Currently, the stop button becomes disabled as soon as it finishes loading a 
page. This bug requires that the stop button is enabled even after loading the 
page, when there is an animated gif on the page. This will involve work on the 
xpfe side too.
Putting on [dogfood-] radar for beta2.

Do you know code to be called to stop animations?  If it is minimal and low 
risk.  We might fix for beta2.  But would not hold for this bug.
Whiteboard: [dogfood-]
Reassign to pnunn.
Assignee: neeti → pnunn
Status: ASSIGNED → NEW
I volunteered earlier to work on this one, but having just made my first foray
into the tree this weekend, I'm afraid even this is over my head.

The only thing I did find that might be helpful is a fix-me line in <A
href=http://lxr.mozilla.org/seamonkey/source/docshell/base/nsDSWebProgressListener.cpp#101>docshell/base/nsDSWebProgressListener.cpp</A>
that suggests a good place to re-enable the Stop Button if animations are
present, but I have no idea how to go about getting at that data from there.

Incidentally, someone has added a working "stop" entry to the context-menu you
get by right-clicking on individual animations, so things are looking up.
Hmmm... I wonder if this is related to bug 39727. cc'ing rpotts.
Status: NEW → ASSIGNED
Let me start by saying that, on windows atleast, if you click
on the stop button, even though it is not hilighted (hilit?),
(which should mean the stop button is disabled)
animations stop.

There are about 3 diverse ways we can indicate animations should 
not animate or animate through one loop and then stop.
1> Context menu: right click menu would have animation options for 
the image
2> Preferences: set once for the whole browser 'experience'.
3> Additional buttons on the chrome.

The mechanism to control animations exists. You can specify
by way of the nsPresContext (and/or nsImageFrame):
1> normal animation,
2> no animation (display only first frame)
3> loop only once animation

Bill, would you like to add something to the context menu?
Hyatt, what about another button?
And who is doing prefs these days?????

Bill, I'm reassigning to you so its on your radar.
-P
Assignee: pnunn → law
Status: ASSIGNED → NEW
Status: NEW → ASSIGNED
on linux too, animations stop with a click on "disabled" looking stop-button.
(2000-072113)
Attached patch Proposed patch (deleted) — Splinter Review
I've just attached a much belated patch proposal which behaves for the most part
like Navigator/Communicator 4.xx did, ie. there's sometimes a delay in updating
the button after a page finishes loading, and it doesn't take advantage of any
of the new API features (I that pnunn's ideas for setting the
one-iteration/frame modes in pref's or with another button are the way to go for
that). 

It also fixes two minor (potential) bugs that were lurking in nsImageGroup.cpp.
As others mentioned, the stop-button works as expected regardless of whether
it's shaded, so this is now an entirely cosmetic issue.
Nominating for nsbeta3, since we have a patch waiting.

> there's sometimes a delay in updating the button after a page finishes loading

Why? Can that be fixed? Is it because it behaves the same as 4.x on Mac did, 
where the Stop button was only re-enabled after the slowest animated image on the 
page had gone through one complete loop?
Keywords: nsbeta3, patch, review
>> there's sometimes a delay in updating the button after a page finishes
>>loading
>
>Why? Can that be fixed? Is it because it behaves the same as 4.x on Mac did, 
>where the Stop button was only re-enabled after the slowest animated image on
>the page had gone through one complete loop?

Basically, except I would think it's the fastest animation, since it relies on
the IL_STARTED_LOOPING image-group notification that gets sent whenever any
animation completes its first iteration.

The best way to fix it would be to get the imglib code to send a notification as
soon as the fact that an image is an animation is determined.  This could
significantly simplify the fix, since we could probably guarantee that it's
determined *during* a load, and then could use the standard "nsProgressListener"
mechanism to talk to the front-end instead of the gross hack I've used.

I've looked through some of the imglib code, but it seems there are
several ways for animation status to be determined, netscape's GIF
extentions, "multipart-MIME" images, the new MNG stuff, etc.  There
is an "IL_FRAME_COMPLETE" notification sent to image-request obsevers,
but that gets sent even for single-frame images.  I'll take another
look tomorrow, but I haven't had any luck with that so far.
>I've looked through some of the imglib code, but it seems there are several
>ways for animation status to be determined, netscape's GIF extentions, ...

Sorry, I should clarify this.  What's been confusing is actually just in the
modules/libimg/gifcom/gif.cpp code.  I can't for the life of me figure out where
it decides for certain that it's dealing with an animation.  I'm fairly certain
that the place where it invokes the "ImgDCBHaveImageFrame()" callback is wrong,
since it gets sent even for non-animated images, but I'm not sure what to do
about it. :(
Nav triage team: [nsbeta3+] because Mcafee wants it.
Assignee: law → mcafee
Status: ASSIGNED → NEW
Whiteboard: [dogfood-] → [dogfood-][nsbeta3+]
Priority: P3 → P2
Talked with pnunn.
Summary: Stop button should stop animations → Delay for enabling stop button to stop animations
Attached patch patch, updated for current tree (deleted) — Splinter Review
tried the patch, stop button disappeared for me once on mouseover, ?
I also didn't see any noticable difference compared to non-patch build.
Maybe someone can clarify how I could test what's going on here?
The nsbeta3+ part of this bug looks like it's working to me,
off nsbeta3+ list.  Argue your way back on the beta list if you disagree.
Keywords: dogfood, nsbeta3
Whiteboard: [dogfood-][nsbeta3+] → [dogfood-][nsbeta3+][NEED INFO]
earlier comment with pnunn got truncated, using mozilla (heh)
Looks like the stop button is stopping animations: after loading,
hitting stop button stops the animation.
if you hit stop the animated gif does stop.
Just the UI does not update.
beta minus since we do not have any update on the patch.
Whiteboard: [dogfood-][nsbeta3+][NEED INFO] → [dogfood-][nsbeta3-][NEED INFO]
better summary
Summary: Delay for enabling stop button to stop animations → UI doesn't update when animations stopped with stop button
Taking QA. (Why are there still open bugs floating around with Eli as QA? The
person who replaced the person who used to be his manager, or the person who
used to be the manager of the person who used to be his manager, or ... or ...
or *somebody*, needs telling off.)

Build: 2000102008 trunk, Mac OS 9.0.
Steps to reproduce: Visit <http://salon.com/> and wait for it to load
completely. Click the disabled-looking Stop button.
What happens: All animations stop.

What should happen:
* While the page is loading, the Stop button looks like a stop sign, enabled.
  Clicking it stops the loading, but does not stop the animations which have
  been loaded so far (if any).
* When the page finishes loading (or has been stopped from loading), if there
  are any animations in progress, the Stop button takes on the appearance of a
  stop sign overlaid with representations of images (e.g. the triangle, circle,
  and square of `Load Images' fame), to make clear that it has a slightly
  different purpose from the usual one of stopping loading. Clicking it stops
  the animations, restores the button it to its original appearance, and then
  disables it.

I strongly suggest this particular problem get fixed before any tweaks are made
to the details of exactly when the UI is notified about animations existing on
the page or whatever. With this fixed, at least, it will be a lot easier to QA
any other bugs relating to stopping animations.
QA Contact: elig → mpt
mcafee@netscape.com - is this patch still relevant? Is it worth checking in?

Gerv
Keywords: mozilla0.9
*** Bug 74828 has been marked as a duplicate of this bug. ***
renominating...
Keywords: nsbeta1, nsCatFood
Whiteboard: [dogfood-][nsbeta3-][NEED INFO] → [NEED INFO]
Target Milestone: Future → ---
I suspect the recent regression is because libpr0n doesn't pay attention to the
pres context's animation state.  Pavlov has various bugs related to image
animation, though I didn't see one that explicitly covers the fact that the stop
button no longer works.  Agree with se's nomination -- we shouldn't ship with
this regression.
Keywords: nsbeta1nsbeta1-
*** Bug 76766 has been marked as a duplicate of this bug. ***
nav triage: the severity of this problem does not earn it an nsCatFood+ 
designation. reassigning to Pavlov as this is likely to have to be fixed in 
Image Lib code before it can surfaced in the UI. 
Assignee: mcafee → pavlov
Keywords: nsCatFoodnsCatFood-
Target Milestone: --- → mozilla0.9.3
removing patch and review since the patches here are obsolete.
Keywords: patch, review
Blocks: 81552
Depends on: 70030
*** Bug 85133 has been marked as a duplicate of this bug. ***
*** Bug 85425 has been marked as a duplicate of this bug. ***
The recent regression (pressing stop doesn't stop animations) is bug 70030.
-> 0.9.4
Target Milestone: mozilla0.9.3 → mozilla0.9.4
Target Milestone: mozilla0.9.4 → mozilla0.9.5
Target Milestone: mozilla0.9.5 → Future
Why not mark this bug duplicate of 70030?
Blocks: 119597
Not a dup, see comment 12.
Whiteboard: [NEED INFO] → Comment #12 explains the purpose of this bug
Jesse says the regression (that pressing stop does not stop animations) is
covered by bug 70030, but that bug is Product Camino and all the comments say it
applies only to Camino.  Resummarizing this bug back to the original purpose.
Keywords: regression
Summary: UI doesn't update when animations stopped with stop button → Stop button should stop animations
Whiteboard: Comment #12 explains the purpose of this bug
*** Bug 163708 has been marked as a duplicate of this bug. ***
Blocks: 163708
Blocks: 256062
*** Bug 348214 has been marked as a duplicate of this bug. ***
Assignee: pavlov → nobody
QA Contact: mpt → imagelib
Does this bug report solely concern applets like Flash, or does it include animated GIFs as well?

Here is an animated GIF of a cat. 

http://farm4.static.flickr.com/3197/2852605918_85b6a44c08_o.gif

The Esc keyboard button stops the animation in current trunk builds. The "Stop" button on the toolbar is grayed out and does not work. The Esc button does not stop the animation of Flash applets. 

Is that sufficient to mark this bug as WFM?
Keywords: 4xp
Andrew: if you read the comments, this bug has always applied to animated GIFs. Flash is a different issue (and there's a separate RFE on it somewhere).

Firefox folk might want to mark it WONTFIX but it's not WFM.
We now disable the stop button when the page is done loading, so this is no longer valid.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → INVALID
Except, you could re-enable the stop button... How is this RFE INVALID? Maybe it's WONTFIX, but I'd let a module owner/peer make that call.
Status: RESOLVED → REOPENED
Resolution: INVALID → ---
The stop button is unrelated to the status of animated images, and that's the way it's going to stay.
Status: REOPENED → RESOLVED
Closed: 14 years ago14 years ago
Resolution: --- → WONTFIX
That's more like it.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: