зеркало из https://github.com/mozilla/gecko-dev.git
Support for enabling / Disabling the timer. r=pierre b=25406
This commit is contained in:
Родитель
e3be9f19a1
Коммит
254d4b2ef3
|
@ -36,7 +36,14 @@
|
||||||
#include "nsLayoutAtoms.h"
|
#include "nsLayoutAtoms.h"
|
||||||
#include "nsTimer.h"
|
#include "nsTimer.h"
|
||||||
#ifdef MOZ_PERF_METRICS
|
#ifdef MOZ_PERF_METRICS
|
||||||
#include "nsITimeRecorder.h"
|
#include "nsITimeRecorder.h"
|
||||||
|
#define STYLESET_START_TIMER(a) \
|
||||||
|
StartTimer(a)
|
||||||
|
#define STYLESET_STOP_TIMER(a) \
|
||||||
|
StopTimer(a)
|
||||||
|
#else
|
||||||
|
#define STYLESET_START_TIMER(a) ((void)0)
|
||||||
|
#define STYLESET_STOP_TIMER(a) ((void)0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static NS_DEFINE_IID(kIStyleSetIID, NS_ISTYLE_SET_IID);
|
static NS_DEFINE_IID(kIStyleSetIID, NS_ISTYLE_SET_IID);
|
||||||
|
@ -201,6 +208,11 @@ protected:
|
||||||
nsIStyleFrameConstruction* mFrameConstructor;
|
nsIStyleFrameConstruction* mFrameConstructor;
|
||||||
|
|
||||||
MOZ_TIMER_DECLARE(mStyleResolutionWatch)
|
MOZ_TIMER_DECLARE(mStyleResolutionWatch)
|
||||||
|
|
||||||
|
#ifdef MOZ_PERF_METRICS
|
||||||
|
PRBool mTimerEnabled; // true if timing is enabled, false if disabled
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
StyleSetImpl::StyleSetImpl()
|
StyleSetImpl::StyleSetImpl()
|
||||||
|
@ -210,6 +222,9 @@ StyleSetImpl::StyleSetImpl()
|
||||||
mRuleProcessors(nsnull),
|
mRuleProcessors(nsnull),
|
||||||
mRecycler(nsnull),
|
mRecycler(nsnull),
|
||||||
mFrameConstructor(nsnull)
|
mFrameConstructor(nsnull)
|
||||||
|
#ifdef MOZ_PERF_METRICS
|
||||||
|
,mTimerEnabled(PR_FALSE)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
NS_INIT_REFCNT();
|
NS_INIT_REFCNT();
|
||||||
}
|
}
|
||||||
|
@ -620,7 +635,8 @@ nsIStyleContext* StyleSetImpl::ResolveStyleFor(nsIPresContext* aPresContext,
|
||||||
PRBool aForceUnique)
|
PRBool aForceUnique)
|
||||||
{
|
{
|
||||||
MOZ_TIMER_DEBUGLOG(("Start: StyleSetImpl::ResolveStyleFor(), this=%p\n", this));
|
MOZ_TIMER_DEBUGLOG(("Start: StyleSetImpl::ResolveStyleFor(), this=%p\n", this));
|
||||||
MOZ_TIMER_START(mStyleResolutionWatch);
|
STYLESET_START_TIMER(NS_TIMER_STYLE_RESOLUTION);
|
||||||
|
|
||||||
nsIStyleContext* result = nsnull;
|
nsIStyleContext* result = nsnull;
|
||||||
|
|
||||||
NS_ASSERTION(aContent, "must have content");
|
NS_ASSERTION(aContent, "must have content");
|
||||||
|
@ -664,7 +680,7 @@ nsIStyleContext* StyleSetImpl::ResolveStyleFor(nsIPresContext* aPresContext,
|
||||||
}
|
}
|
||||||
|
|
||||||
MOZ_TIMER_DEBUGLOG(("Stop: StyleSetImpl::ResolveStyleFor(), this=%p\n", this));
|
MOZ_TIMER_DEBUGLOG(("Stop: StyleSetImpl::ResolveStyleFor(), this=%p\n", this));
|
||||||
MOZ_TIMER_STOP(mStyleResolutionWatch);
|
STYLESET_STOP_TIMER(NS_TIMER_STYLE_RESOLUTION);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -710,7 +726,8 @@ nsIStyleContext* StyleSetImpl::ResolvePseudoStyleFor(nsIPresContext* aPresContex
|
||||||
PRBool aForceUnique)
|
PRBool aForceUnique)
|
||||||
{
|
{
|
||||||
MOZ_TIMER_DEBUGLOG(("Start: StyleSetImpl::ResolvePseudoStyleFor(), this=%p\n", this));
|
MOZ_TIMER_DEBUGLOG(("Start: StyleSetImpl::ResolvePseudoStyleFor(), this=%p\n", this));
|
||||||
MOZ_TIMER_START(mStyleResolutionWatch);
|
STYLESET_START_TIMER(NS_TIMER_STYLE_RESOLUTION);
|
||||||
|
|
||||||
nsIStyleContext* result = nsnull;
|
nsIStyleContext* result = nsnull;
|
||||||
|
|
||||||
NS_ASSERTION(aPseudoTag, "must have pseudo tag");
|
NS_ASSERTION(aPseudoTag, "must have pseudo tag");
|
||||||
|
@ -756,7 +773,7 @@ nsIStyleContext* StyleSetImpl::ResolvePseudoStyleFor(nsIPresContext* aPresContex
|
||||||
}
|
}
|
||||||
|
|
||||||
MOZ_TIMER_DEBUGLOG(("Stop: StyleSetImpl::ResolvePseudoStyleFor(), this=%p\n", this));
|
MOZ_TIMER_DEBUGLOG(("Stop: StyleSetImpl::ResolvePseudoStyleFor(), this=%p\n", this));
|
||||||
MOZ_TIMER_STOP(mStyleResolutionWatch);
|
STYLESET_STOP_TIMER(NS_TIMER_STYLE_RESOLUTION);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -767,7 +784,8 @@ nsIStyleContext* StyleSetImpl::ProbePseudoStyleFor(nsIPresContext* aPresContext,
|
||||||
PRBool aForceUnique)
|
PRBool aForceUnique)
|
||||||
{
|
{
|
||||||
MOZ_TIMER_DEBUGLOG(("Start: StyleSetImpl::ProbePseudoStyleFor(), this=%p\n", this));
|
MOZ_TIMER_DEBUGLOG(("Start: StyleSetImpl::ProbePseudoStyleFor(), this=%p\n", this));
|
||||||
MOZ_TIMER_START(mStyleResolutionWatch);
|
STYLESET_START_TIMER(NS_TIMER_STYLE_RESOLUTION);
|
||||||
|
|
||||||
nsIStyleContext* result = nsnull;
|
nsIStyleContext* result = nsnull;
|
||||||
|
|
||||||
NS_ASSERTION(aPseudoTag, "must have pseudo tag");
|
NS_ASSERTION(aPseudoTag, "must have pseudo tag");
|
||||||
|
@ -812,7 +830,7 @@ nsIStyleContext* StyleSetImpl::ProbePseudoStyleFor(nsIPresContext* aPresContext,
|
||||||
}
|
}
|
||||||
|
|
||||||
MOZ_TIMER_DEBUGLOG(("Stop: StyleSetImpl::ProbePseudoStyleFor(), this=%p\n", this));
|
MOZ_TIMER_DEBUGLOG(("Stop: StyleSetImpl::ProbePseudoStyleFor(), this=%p\n", this));
|
||||||
MOZ_TIMER_STOP(mStyleResolutionWatch);
|
STYLESET_STOP_TIMER(NS_TIMER_STYLE_RESOLUTION);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1105,6 +1123,52 @@ NS_NewStyleSet(nsIStyleSet** aInstancePtrResult)
|
||||||
// nsITimeRecorder implementation
|
// nsITimeRecorder implementation
|
||||||
|
|
||||||
#ifdef MOZ_PERF_METRICS
|
#ifdef MOZ_PERF_METRICS
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
StyleSetImpl::EnableTimer(PRUint32 aTimerID)
|
||||||
|
{
|
||||||
|
nsresult rv = NS_OK;
|
||||||
|
|
||||||
|
if (NS_TIMER_STYLE_RESOLUTION == aTimerID) {
|
||||||
|
mTimerEnabled = PR_TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
rv = NS_ERROR_NOT_IMPLEMENTED;
|
||||||
|
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
StyleSetImpl::DisableTimer(PRUint32 aTimerID)
|
||||||
|
{
|
||||||
|
nsresult rv = NS_OK;
|
||||||
|
|
||||||
|
if (NS_TIMER_STYLE_RESOLUTION == aTimerID) {
|
||||||
|
mTimerEnabled = PR_FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
rv = NS_ERROR_NOT_IMPLEMENTED;
|
||||||
|
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
StyleSetImpl::IsTimerEnabled(PRBool *aIsEnabled, PRUint32 aTimerID)
|
||||||
|
{
|
||||||
|
NS_ASSERTION(aIsEnabled != nsnull, "aIsEnabled paramter cannot be null" );
|
||||||
|
nsresult rv = NS_OK;
|
||||||
|
|
||||||
|
if (NS_TIMER_STYLE_RESOLUTION == aTimerID) {
|
||||||
|
if (*aIsEnabled != nsnull) {
|
||||||
|
*aIsEnabled = mTimerEnabled;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
rv = NS_ERROR_NOT_IMPLEMENTED;
|
||||||
|
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
StyleSetImpl::ResetTimer(PRUint32 aTimerID)
|
StyleSetImpl::ResetTimer(PRUint32 aTimerID)
|
||||||
{
|
{
|
||||||
|
@ -1125,7 +1189,14 @@ StyleSetImpl::StartTimer(PRUint32 aTimerID)
|
||||||
nsresult rv = NS_OK;
|
nsresult rv = NS_OK;
|
||||||
|
|
||||||
if (NS_TIMER_STYLE_RESOLUTION == aTimerID) {
|
if (NS_TIMER_STYLE_RESOLUTION == aTimerID) {
|
||||||
MOZ_TIMER_START(mStyleResolutionWatch);
|
// only do it if enabled
|
||||||
|
if (mTimerEnabled) {
|
||||||
|
MOZ_TIMER_START(mStyleResolutionWatch);
|
||||||
|
} else {
|
||||||
|
#ifdef _DEBUG
|
||||||
|
// printf( "Attempt to start timer while disabled - ignoring\n" );
|
||||||
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
rv = NS_ERROR_NOT_IMPLEMENTED;
|
rv = NS_ERROR_NOT_IMPLEMENTED;
|
||||||
|
@ -1139,7 +1210,14 @@ StyleSetImpl::StopTimer(PRUint32 aTimerID)
|
||||||
nsresult rv = NS_OK;
|
nsresult rv = NS_OK;
|
||||||
|
|
||||||
if (NS_TIMER_STYLE_RESOLUTION == aTimerID) {
|
if (NS_TIMER_STYLE_RESOLUTION == aTimerID) {
|
||||||
MOZ_TIMER_STOP(mStyleResolutionWatch);
|
// only do it if enabled
|
||||||
|
if (mTimerEnabled) {
|
||||||
|
MOZ_TIMER_STOP(mStyleResolutionWatch);
|
||||||
|
} else {
|
||||||
|
#ifdef _DEBUG
|
||||||
|
// printf( "Attempt to stop timer while disabled - ignoring\n" );
|
||||||
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
rv = NS_ERROR_NOT_IMPLEMENTED;
|
rv = NS_ERROR_NOT_IMPLEMENTED;
|
||||||
|
|
|
@ -36,7 +36,14 @@
|
||||||
#include "nsLayoutAtoms.h"
|
#include "nsLayoutAtoms.h"
|
||||||
#include "nsTimer.h"
|
#include "nsTimer.h"
|
||||||
#ifdef MOZ_PERF_METRICS
|
#ifdef MOZ_PERF_METRICS
|
||||||
#include "nsITimeRecorder.h"
|
#include "nsITimeRecorder.h"
|
||||||
|
#define STYLESET_START_TIMER(a) \
|
||||||
|
StartTimer(a)
|
||||||
|
#define STYLESET_STOP_TIMER(a) \
|
||||||
|
StopTimer(a)
|
||||||
|
#else
|
||||||
|
#define STYLESET_START_TIMER(a) ((void)0)
|
||||||
|
#define STYLESET_STOP_TIMER(a) ((void)0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static NS_DEFINE_IID(kIStyleSetIID, NS_ISTYLE_SET_IID);
|
static NS_DEFINE_IID(kIStyleSetIID, NS_ISTYLE_SET_IID);
|
||||||
|
@ -201,6 +208,11 @@ protected:
|
||||||
nsIStyleFrameConstruction* mFrameConstructor;
|
nsIStyleFrameConstruction* mFrameConstructor;
|
||||||
|
|
||||||
MOZ_TIMER_DECLARE(mStyleResolutionWatch)
|
MOZ_TIMER_DECLARE(mStyleResolutionWatch)
|
||||||
|
|
||||||
|
#ifdef MOZ_PERF_METRICS
|
||||||
|
PRBool mTimerEnabled; // true if timing is enabled, false if disabled
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
StyleSetImpl::StyleSetImpl()
|
StyleSetImpl::StyleSetImpl()
|
||||||
|
@ -210,6 +222,9 @@ StyleSetImpl::StyleSetImpl()
|
||||||
mRuleProcessors(nsnull),
|
mRuleProcessors(nsnull),
|
||||||
mRecycler(nsnull),
|
mRecycler(nsnull),
|
||||||
mFrameConstructor(nsnull)
|
mFrameConstructor(nsnull)
|
||||||
|
#ifdef MOZ_PERF_METRICS
|
||||||
|
,mTimerEnabled(PR_FALSE)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
NS_INIT_REFCNT();
|
NS_INIT_REFCNT();
|
||||||
}
|
}
|
||||||
|
@ -620,7 +635,8 @@ nsIStyleContext* StyleSetImpl::ResolveStyleFor(nsIPresContext* aPresContext,
|
||||||
PRBool aForceUnique)
|
PRBool aForceUnique)
|
||||||
{
|
{
|
||||||
MOZ_TIMER_DEBUGLOG(("Start: StyleSetImpl::ResolveStyleFor(), this=%p\n", this));
|
MOZ_TIMER_DEBUGLOG(("Start: StyleSetImpl::ResolveStyleFor(), this=%p\n", this));
|
||||||
MOZ_TIMER_START(mStyleResolutionWatch);
|
STYLESET_START_TIMER(NS_TIMER_STYLE_RESOLUTION);
|
||||||
|
|
||||||
nsIStyleContext* result = nsnull;
|
nsIStyleContext* result = nsnull;
|
||||||
|
|
||||||
NS_ASSERTION(aContent, "must have content");
|
NS_ASSERTION(aContent, "must have content");
|
||||||
|
@ -664,7 +680,7 @@ nsIStyleContext* StyleSetImpl::ResolveStyleFor(nsIPresContext* aPresContext,
|
||||||
}
|
}
|
||||||
|
|
||||||
MOZ_TIMER_DEBUGLOG(("Stop: StyleSetImpl::ResolveStyleFor(), this=%p\n", this));
|
MOZ_TIMER_DEBUGLOG(("Stop: StyleSetImpl::ResolveStyleFor(), this=%p\n", this));
|
||||||
MOZ_TIMER_STOP(mStyleResolutionWatch);
|
STYLESET_STOP_TIMER(NS_TIMER_STYLE_RESOLUTION);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -710,7 +726,8 @@ nsIStyleContext* StyleSetImpl::ResolvePseudoStyleFor(nsIPresContext* aPresContex
|
||||||
PRBool aForceUnique)
|
PRBool aForceUnique)
|
||||||
{
|
{
|
||||||
MOZ_TIMER_DEBUGLOG(("Start: StyleSetImpl::ResolvePseudoStyleFor(), this=%p\n", this));
|
MOZ_TIMER_DEBUGLOG(("Start: StyleSetImpl::ResolvePseudoStyleFor(), this=%p\n", this));
|
||||||
MOZ_TIMER_START(mStyleResolutionWatch);
|
STYLESET_START_TIMER(NS_TIMER_STYLE_RESOLUTION);
|
||||||
|
|
||||||
nsIStyleContext* result = nsnull;
|
nsIStyleContext* result = nsnull;
|
||||||
|
|
||||||
NS_ASSERTION(aPseudoTag, "must have pseudo tag");
|
NS_ASSERTION(aPseudoTag, "must have pseudo tag");
|
||||||
|
@ -756,7 +773,7 @@ nsIStyleContext* StyleSetImpl::ResolvePseudoStyleFor(nsIPresContext* aPresContex
|
||||||
}
|
}
|
||||||
|
|
||||||
MOZ_TIMER_DEBUGLOG(("Stop: StyleSetImpl::ResolvePseudoStyleFor(), this=%p\n", this));
|
MOZ_TIMER_DEBUGLOG(("Stop: StyleSetImpl::ResolvePseudoStyleFor(), this=%p\n", this));
|
||||||
MOZ_TIMER_STOP(mStyleResolutionWatch);
|
STYLESET_STOP_TIMER(NS_TIMER_STYLE_RESOLUTION);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -767,7 +784,8 @@ nsIStyleContext* StyleSetImpl::ProbePseudoStyleFor(nsIPresContext* aPresContext,
|
||||||
PRBool aForceUnique)
|
PRBool aForceUnique)
|
||||||
{
|
{
|
||||||
MOZ_TIMER_DEBUGLOG(("Start: StyleSetImpl::ProbePseudoStyleFor(), this=%p\n", this));
|
MOZ_TIMER_DEBUGLOG(("Start: StyleSetImpl::ProbePseudoStyleFor(), this=%p\n", this));
|
||||||
MOZ_TIMER_START(mStyleResolutionWatch);
|
STYLESET_START_TIMER(NS_TIMER_STYLE_RESOLUTION);
|
||||||
|
|
||||||
nsIStyleContext* result = nsnull;
|
nsIStyleContext* result = nsnull;
|
||||||
|
|
||||||
NS_ASSERTION(aPseudoTag, "must have pseudo tag");
|
NS_ASSERTION(aPseudoTag, "must have pseudo tag");
|
||||||
|
@ -812,7 +830,7 @@ nsIStyleContext* StyleSetImpl::ProbePseudoStyleFor(nsIPresContext* aPresContext,
|
||||||
}
|
}
|
||||||
|
|
||||||
MOZ_TIMER_DEBUGLOG(("Stop: StyleSetImpl::ProbePseudoStyleFor(), this=%p\n", this));
|
MOZ_TIMER_DEBUGLOG(("Stop: StyleSetImpl::ProbePseudoStyleFor(), this=%p\n", this));
|
||||||
MOZ_TIMER_STOP(mStyleResolutionWatch);
|
STYLESET_STOP_TIMER(NS_TIMER_STYLE_RESOLUTION);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1105,6 +1123,52 @@ NS_NewStyleSet(nsIStyleSet** aInstancePtrResult)
|
||||||
// nsITimeRecorder implementation
|
// nsITimeRecorder implementation
|
||||||
|
|
||||||
#ifdef MOZ_PERF_METRICS
|
#ifdef MOZ_PERF_METRICS
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
StyleSetImpl::EnableTimer(PRUint32 aTimerID)
|
||||||
|
{
|
||||||
|
nsresult rv = NS_OK;
|
||||||
|
|
||||||
|
if (NS_TIMER_STYLE_RESOLUTION == aTimerID) {
|
||||||
|
mTimerEnabled = PR_TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
rv = NS_ERROR_NOT_IMPLEMENTED;
|
||||||
|
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
StyleSetImpl::DisableTimer(PRUint32 aTimerID)
|
||||||
|
{
|
||||||
|
nsresult rv = NS_OK;
|
||||||
|
|
||||||
|
if (NS_TIMER_STYLE_RESOLUTION == aTimerID) {
|
||||||
|
mTimerEnabled = PR_FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
rv = NS_ERROR_NOT_IMPLEMENTED;
|
||||||
|
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
StyleSetImpl::IsTimerEnabled(PRBool *aIsEnabled, PRUint32 aTimerID)
|
||||||
|
{
|
||||||
|
NS_ASSERTION(aIsEnabled != nsnull, "aIsEnabled paramter cannot be null" );
|
||||||
|
nsresult rv = NS_OK;
|
||||||
|
|
||||||
|
if (NS_TIMER_STYLE_RESOLUTION == aTimerID) {
|
||||||
|
if (*aIsEnabled != nsnull) {
|
||||||
|
*aIsEnabled = mTimerEnabled;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
rv = NS_ERROR_NOT_IMPLEMENTED;
|
||||||
|
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
StyleSetImpl::ResetTimer(PRUint32 aTimerID)
|
StyleSetImpl::ResetTimer(PRUint32 aTimerID)
|
||||||
{
|
{
|
||||||
|
@ -1125,7 +1189,14 @@ StyleSetImpl::StartTimer(PRUint32 aTimerID)
|
||||||
nsresult rv = NS_OK;
|
nsresult rv = NS_OK;
|
||||||
|
|
||||||
if (NS_TIMER_STYLE_RESOLUTION == aTimerID) {
|
if (NS_TIMER_STYLE_RESOLUTION == aTimerID) {
|
||||||
MOZ_TIMER_START(mStyleResolutionWatch);
|
// only do it if enabled
|
||||||
|
if (mTimerEnabled) {
|
||||||
|
MOZ_TIMER_START(mStyleResolutionWatch);
|
||||||
|
} else {
|
||||||
|
#ifdef _DEBUG
|
||||||
|
// printf( "Attempt to start timer while disabled - ignoring\n" );
|
||||||
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
rv = NS_ERROR_NOT_IMPLEMENTED;
|
rv = NS_ERROR_NOT_IMPLEMENTED;
|
||||||
|
@ -1139,7 +1210,14 @@ StyleSetImpl::StopTimer(PRUint32 aTimerID)
|
||||||
nsresult rv = NS_OK;
|
nsresult rv = NS_OK;
|
||||||
|
|
||||||
if (NS_TIMER_STYLE_RESOLUTION == aTimerID) {
|
if (NS_TIMER_STYLE_RESOLUTION == aTimerID) {
|
||||||
MOZ_TIMER_STOP(mStyleResolutionWatch);
|
// only do it if enabled
|
||||||
|
if (mTimerEnabled) {
|
||||||
|
MOZ_TIMER_STOP(mStyleResolutionWatch);
|
||||||
|
} else {
|
||||||
|
#ifdef _DEBUG
|
||||||
|
// printf( "Attempt to stop timer while disabled - ignoring\n" );
|
||||||
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
rv = NS_ERROR_NOT_IMPLEMENTED;
|
rv = NS_ERROR_NOT_IMPLEMENTED;
|
||||||
|
|
|
@ -36,7 +36,14 @@
|
||||||
#include "nsLayoutAtoms.h"
|
#include "nsLayoutAtoms.h"
|
||||||
#include "nsTimer.h"
|
#include "nsTimer.h"
|
||||||
#ifdef MOZ_PERF_METRICS
|
#ifdef MOZ_PERF_METRICS
|
||||||
#include "nsITimeRecorder.h"
|
#include "nsITimeRecorder.h"
|
||||||
|
#define STYLESET_START_TIMER(a) \
|
||||||
|
StartTimer(a)
|
||||||
|
#define STYLESET_STOP_TIMER(a) \
|
||||||
|
StopTimer(a)
|
||||||
|
#else
|
||||||
|
#define STYLESET_START_TIMER(a) ((void)0)
|
||||||
|
#define STYLESET_STOP_TIMER(a) ((void)0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static NS_DEFINE_IID(kIStyleSetIID, NS_ISTYLE_SET_IID);
|
static NS_DEFINE_IID(kIStyleSetIID, NS_ISTYLE_SET_IID);
|
||||||
|
@ -201,6 +208,11 @@ protected:
|
||||||
nsIStyleFrameConstruction* mFrameConstructor;
|
nsIStyleFrameConstruction* mFrameConstructor;
|
||||||
|
|
||||||
MOZ_TIMER_DECLARE(mStyleResolutionWatch)
|
MOZ_TIMER_DECLARE(mStyleResolutionWatch)
|
||||||
|
|
||||||
|
#ifdef MOZ_PERF_METRICS
|
||||||
|
PRBool mTimerEnabled; // true if timing is enabled, false if disabled
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
StyleSetImpl::StyleSetImpl()
|
StyleSetImpl::StyleSetImpl()
|
||||||
|
@ -210,6 +222,9 @@ StyleSetImpl::StyleSetImpl()
|
||||||
mRuleProcessors(nsnull),
|
mRuleProcessors(nsnull),
|
||||||
mRecycler(nsnull),
|
mRecycler(nsnull),
|
||||||
mFrameConstructor(nsnull)
|
mFrameConstructor(nsnull)
|
||||||
|
#ifdef MOZ_PERF_METRICS
|
||||||
|
,mTimerEnabled(PR_FALSE)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
NS_INIT_REFCNT();
|
NS_INIT_REFCNT();
|
||||||
}
|
}
|
||||||
|
@ -620,7 +635,8 @@ nsIStyleContext* StyleSetImpl::ResolveStyleFor(nsIPresContext* aPresContext,
|
||||||
PRBool aForceUnique)
|
PRBool aForceUnique)
|
||||||
{
|
{
|
||||||
MOZ_TIMER_DEBUGLOG(("Start: StyleSetImpl::ResolveStyleFor(), this=%p\n", this));
|
MOZ_TIMER_DEBUGLOG(("Start: StyleSetImpl::ResolveStyleFor(), this=%p\n", this));
|
||||||
MOZ_TIMER_START(mStyleResolutionWatch);
|
STYLESET_START_TIMER(NS_TIMER_STYLE_RESOLUTION);
|
||||||
|
|
||||||
nsIStyleContext* result = nsnull;
|
nsIStyleContext* result = nsnull;
|
||||||
|
|
||||||
NS_ASSERTION(aContent, "must have content");
|
NS_ASSERTION(aContent, "must have content");
|
||||||
|
@ -664,7 +680,7 @@ nsIStyleContext* StyleSetImpl::ResolveStyleFor(nsIPresContext* aPresContext,
|
||||||
}
|
}
|
||||||
|
|
||||||
MOZ_TIMER_DEBUGLOG(("Stop: StyleSetImpl::ResolveStyleFor(), this=%p\n", this));
|
MOZ_TIMER_DEBUGLOG(("Stop: StyleSetImpl::ResolveStyleFor(), this=%p\n", this));
|
||||||
MOZ_TIMER_STOP(mStyleResolutionWatch);
|
STYLESET_STOP_TIMER(NS_TIMER_STYLE_RESOLUTION);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -710,7 +726,8 @@ nsIStyleContext* StyleSetImpl::ResolvePseudoStyleFor(nsIPresContext* aPresContex
|
||||||
PRBool aForceUnique)
|
PRBool aForceUnique)
|
||||||
{
|
{
|
||||||
MOZ_TIMER_DEBUGLOG(("Start: StyleSetImpl::ResolvePseudoStyleFor(), this=%p\n", this));
|
MOZ_TIMER_DEBUGLOG(("Start: StyleSetImpl::ResolvePseudoStyleFor(), this=%p\n", this));
|
||||||
MOZ_TIMER_START(mStyleResolutionWatch);
|
STYLESET_START_TIMER(NS_TIMER_STYLE_RESOLUTION);
|
||||||
|
|
||||||
nsIStyleContext* result = nsnull;
|
nsIStyleContext* result = nsnull;
|
||||||
|
|
||||||
NS_ASSERTION(aPseudoTag, "must have pseudo tag");
|
NS_ASSERTION(aPseudoTag, "must have pseudo tag");
|
||||||
|
@ -756,7 +773,7 @@ nsIStyleContext* StyleSetImpl::ResolvePseudoStyleFor(nsIPresContext* aPresContex
|
||||||
}
|
}
|
||||||
|
|
||||||
MOZ_TIMER_DEBUGLOG(("Stop: StyleSetImpl::ResolvePseudoStyleFor(), this=%p\n", this));
|
MOZ_TIMER_DEBUGLOG(("Stop: StyleSetImpl::ResolvePseudoStyleFor(), this=%p\n", this));
|
||||||
MOZ_TIMER_STOP(mStyleResolutionWatch);
|
STYLESET_STOP_TIMER(NS_TIMER_STYLE_RESOLUTION);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -767,7 +784,8 @@ nsIStyleContext* StyleSetImpl::ProbePseudoStyleFor(nsIPresContext* aPresContext,
|
||||||
PRBool aForceUnique)
|
PRBool aForceUnique)
|
||||||
{
|
{
|
||||||
MOZ_TIMER_DEBUGLOG(("Start: StyleSetImpl::ProbePseudoStyleFor(), this=%p\n", this));
|
MOZ_TIMER_DEBUGLOG(("Start: StyleSetImpl::ProbePseudoStyleFor(), this=%p\n", this));
|
||||||
MOZ_TIMER_START(mStyleResolutionWatch);
|
STYLESET_START_TIMER(NS_TIMER_STYLE_RESOLUTION);
|
||||||
|
|
||||||
nsIStyleContext* result = nsnull;
|
nsIStyleContext* result = nsnull;
|
||||||
|
|
||||||
NS_ASSERTION(aPseudoTag, "must have pseudo tag");
|
NS_ASSERTION(aPseudoTag, "must have pseudo tag");
|
||||||
|
@ -812,7 +830,7 @@ nsIStyleContext* StyleSetImpl::ProbePseudoStyleFor(nsIPresContext* aPresContext,
|
||||||
}
|
}
|
||||||
|
|
||||||
MOZ_TIMER_DEBUGLOG(("Stop: StyleSetImpl::ProbePseudoStyleFor(), this=%p\n", this));
|
MOZ_TIMER_DEBUGLOG(("Stop: StyleSetImpl::ProbePseudoStyleFor(), this=%p\n", this));
|
||||||
MOZ_TIMER_STOP(mStyleResolutionWatch);
|
STYLESET_STOP_TIMER(NS_TIMER_STYLE_RESOLUTION);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1105,6 +1123,52 @@ NS_NewStyleSet(nsIStyleSet** aInstancePtrResult)
|
||||||
// nsITimeRecorder implementation
|
// nsITimeRecorder implementation
|
||||||
|
|
||||||
#ifdef MOZ_PERF_METRICS
|
#ifdef MOZ_PERF_METRICS
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
StyleSetImpl::EnableTimer(PRUint32 aTimerID)
|
||||||
|
{
|
||||||
|
nsresult rv = NS_OK;
|
||||||
|
|
||||||
|
if (NS_TIMER_STYLE_RESOLUTION == aTimerID) {
|
||||||
|
mTimerEnabled = PR_TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
rv = NS_ERROR_NOT_IMPLEMENTED;
|
||||||
|
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
StyleSetImpl::DisableTimer(PRUint32 aTimerID)
|
||||||
|
{
|
||||||
|
nsresult rv = NS_OK;
|
||||||
|
|
||||||
|
if (NS_TIMER_STYLE_RESOLUTION == aTimerID) {
|
||||||
|
mTimerEnabled = PR_FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
rv = NS_ERROR_NOT_IMPLEMENTED;
|
||||||
|
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
StyleSetImpl::IsTimerEnabled(PRBool *aIsEnabled, PRUint32 aTimerID)
|
||||||
|
{
|
||||||
|
NS_ASSERTION(aIsEnabled != nsnull, "aIsEnabled paramter cannot be null" );
|
||||||
|
nsresult rv = NS_OK;
|
||||||
|
|
||||||
|
if (NS_TIMER_STYLE_RESOLUTION == aTimerID) {
|
||||||
|
if (*aIsEnabled != nsnull) {
|
||||||
|
*aIsEnabled = mTimerEnabled;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
rv = NS_ERROR_NOT_IMPLEMENTED;
|
||||||
|
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
StyleSetImpl::ResetTimer(PRUint32 aTimerID)
|
StyleSetImpl::ResetTimer(PRUint32 aTimerID)
|
||||||
{
|
{
|
||||||
|
@ -1125,7 +1189,14 @@ StyleSetImpl::StartTimer(PRUint32 aTimerID)
|
||||||
nsresult rv = NS_OK;
|
nsresult rv = NS_OK;
|
||||||
|
|
||||||
if (NS_TIMER_STYLE_RESOLUTION == aTimerID) {
|
if (NS_TIMER_STYLE_RESOLUTION == aTimerID) {
|
||||||
MOZ_TIMER_START(mStyleResolutionWatch);
|
// only do it if enabled
|
||||||
|
if (mTimerEnabled) {
|
||||||
|
MOZ_TIMER_START(mStyleResolutionWatch);
|
||||||
|
} else {
|
||||||
|
#ifdef _DEBUG
|
||||||
|
// printf( "Attempt to start timer while disabled - ignoring\n" );
|
||||||
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
rv = NS_ERROR_NOT_IMPLEMENTED;
|
rv = NS_ERROR_NOT_IMPLEMENTED;
|
||||||
|
@ -1139,7 +1210,14 @@ StyleSetImpl::StopTimer(PRUint32 aTimerID)
|
||||||
nsresult rv = NS_OK;
|
nsresult rv = NS_OK;
|
||||||
|
|
||||||
if (NS_TIMER_STYLE_RESOLUTION == aTimerID) {
|
if (NS_TIMER_STYLE_RESOLUTION == aTimerID) {
|
||||||
MOZ_TIMER_STOP(mStyleResolutionWatch);
|
// only do it if enabled
|
||||||
|
if (mTimerEnabled) {
|
||||||
|
MOZ_TIMER_STOP(mStyleResolutionWatch);
|
||||||
|
} else {
|
||||||
|
#ifdef _DEBUG
|
||||||
|
// printf( "Attempt to stop timer while disabled - ignoring\n" );
|
||||||
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
rv = NS_ERROR_NOT_IMPLEMENTED;
|
rv = NS_ERROR_NOT_IMPLEMENTED;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче