diff --git a/mozilla/layout/base/nsImageLoader.cpp b/mozilla/layout/base/nsImageLoader.cpp index ccd83d75193..0836daabf5a 100644 --- a/mozilla/layout/base/nsImageLoader.cpp +++ b/mozilla/layout/base/nsImageLoader.cpp @@ -35,6 +35,8 @@ #include "nsIContent.h" #include "nsIDocument.h" +#include "imgIContainer.h" + #include "nsIHTMLContent.h" #include "nsIViewManager.h" @@ -130,6 +132,18 @@ NS_IMETHODIMP nsImageLoader::OnStartDecode(imgIRequest *aRequest, nsISupports *a NS_IMETHODIMP nsImageLoader::OnStartContainer(imgIRequest *aRequest, nsISupports *aContext, imgIContainer *aImage) { + if (aImage) + { + /* Get requested animation policy from the pres context: + * normal = 0 + * one frame = 1 + * one loop = 2 + */ + PRUint16 animateMode = imgIContainer::kNormalAnimMode; //default value + nsresult rv = mPresContext->GetImageAnimationMode(&animateMode); + if (NS_SUCCEEDED(rv)) + aImage->SetAnimationMode(animateMode); + } return NS_OK; } diff --git a/mozilla/layout/base/src/nsImageLoader.cpp b/mozilla/layout/base/src/nsImageLoader.cpp index ccd83d75193..0836daabf5a 100644 --- a/mozilla/layout/base/src/nsImageLoader.cpp +++ b/mozilla/layout/base/src/nsImageLoader.cpp @@ -35,6 +35,8 @@ #include "nsIContent.h" #include "nsIDocument.h" +#include "imgIContainer.h" + #include "nsIHTMLContent.h" #include "nsIViewManager.h" @@ -130,6 +132,18 @@ NS_IMETHODIMP nsImageLoader::OnStartDecode(imgIRequest *aRequest, nsISupports *a NS_IMETHODIMP nsImageLoader::OnStartContainer(imgIRequest *aRequest, nsISupports *aContext, imgIContainer *aImage) { + if (aImage) + { + /* Get requested animation policy from the pres context: + * normal = 0 + * one frame = 1 + * one loop = 2 + */ + PRUint16 animateMode = imgIContainer::kNormalAnimMode; //default value + nsresult rv = mPresContext->GetImageAnimationMode(&animateMode); + if (NS_SUCCEEDED(rv)) + aImage->SetAnimationMode(animateMode); + } return NS_OK; }