Bug 906643. Part 5: Add nsIPresShell::AddPostRefreshObserver/RemovePostRefreshObserver. r=mats

This commit is contained in:
Robert O'Callahan 2013-08-26 11:57:45 +12:00
parent e75649fb2d
commit b123a36604
3 changed files with 36 additions and 11 deletions

View File

@ -77,6 +77,7 @@ struct nsRect;
class nsRegion;
class nsRefreshDriver;
class nsARefreshObserver;
class nsAPostRefreshObserver;
#ifdef ACCESSIBILITY
class nsAccessibilityService;
namespace mozilla {
@ -1363,13 +1364,13 @@ public:
*/
protected:
virtual bool AddRefreshObserverExternal(nsARefreshObserver* aObserver,
mozFlushType aFlushType);
mozFlushType aFlushType);
bool AddRefreshObserverInternal(nsARefreshObserver* aObserver,
mozFlushType aFlushType);
mozFlushType aFlushType);
virtual bool RemoveRefreshObserverExternal(nsARefreshObserver* aObserver,
mozFlushType aFlushType);
mozFlushType aFlushType);
bool RemoveRefreshObserverInternal(nsARefreshObserver* aObserver,
mozFlushType aFlushType);
mozFlushType aFlushType);
/**
* Do computations necessary to determine if font size inflation is enabled.
@ -1380,7 +1381,7 @@ protected:
public:
bool AddRefreshObserver(nsARefreshObserver* aObserver,
mozFlushType aFlushType) {
mozFlushType aFlushType) {
#ifdef MOZILLA_INTERNAL_API
return AddRefreshObserverInternal(aObserver, aFlushType);
#else
@ -1389,7 +1390,7 @@ public:
}
bool RemoveRefreshObserver(nsARefreshObserver* aObserver,
mozFlushType aFlushType) {
mozFlushType aFlushType) {
#ifdef MOZILLA_INTERNAL_API
return RemoveRefreshObserverInternal(aObserver, aFlushType);
#else
@ -1397,6 +1398,9 @@ public:
#endif
}
virtual bool AddPostRefreshObserver(nsAPostRefreshObserver* aObserver);
virtual bool RemovePostRefreshObserver(nsAPostRefreshObserver* aObserver);
/**
* Initialize and shut down static variables.
*/

View File

@ -8221,8 +8221,8 @@ nsIPresShell::AddRefreshObserverInternal(nsARefreshObserver* aObserver,
mozFlushType aFlushType)
{
nsPresContext* presContext = GetPresContext();
return presContext ? presContext->RefreshDriver()->
AddRefreshObserver(aObserver, aFlushType) : false;
return presContext &&
presContext->RefreshDriver()->AddRefreshObserver(aObserver, aFlushType);
}
/* virtual */ bool
@ -8237,8 +8237,8 @@ nsIPresShell::RemoveRefreshObserverInternal(nsARefreshObserver* aObserver,
mozFlushType aFlushType)
{
nsPresContext* presContext = GetPresContext();
return presContext ? presContext->RefreshDriver()->
RemoveRefreshObserver(aObserver, aFlushType) : false;
return presContext &&
presContext->RefreshDriver()->RemoveRefreshObserver(aObserver, aFlushType);
}
/* virtual */ bool
@ -8248,6 +8248,28 @@ nsIPresShell::RemoveRefreshObserverExternal(nsARefreshObserver* aObserver,
return RemoveRefreshObserverInternal(aObserver, aFlushType);
}
/* virtual */ bool
nsIPresShell::AddPostRefreshObserver(nsAPostRefreshObserver* aObserver)
{
nsPresContext* presContext = GetPresContext();
if (!presContext) {
return false;
}
presContext->RefreshDriver()->AddPostRefreshObserver(aObserver);
return true;
}
/* virtual */ bool
nsIPresShell::RemovePostRefreshObserver(nsAPostRefreshObserver* aObserver)
{
nsPresContext* presContext = GetPresContext();
if (!presContext) {
return false;
}
presContext->RefreshDriver()->RemovePostRefreshObserver(aObserver);
return true;
}
//------------------------------------------------------
// End of protected and private methods on the PresShell
//------------------------------------------------------

View File

@ -323,7 +323,6 @@ public:
virtual void AddInvalidateHiddenPresShellObserver(nsRefreshDriver *aDriver) MOZ_OVERRIDE;
// This data is stored as a content property (nsGkAtoms::scrolling) on
// mContentToScrollTo when we have a pending ScrollIntoView.
struct ScrollIntoViewData {