mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-02 01:48:05 +00:00
Bug 553359. Cache whether the PresContext is chrome or not. r=bzbarsky
This commit is contained in:
parent
3dc85cd318
commit
b696838d2e
@ -2415,6 +2415,12 @@ nsDocShell::SetItemType(PRInt32 aItemType)
|
||||
// disable auth prompting for anything but content
|
||||
mAllowAuth = mItemType == typeContent;
|
||||
|
||||
nsRefPtr<nsPresContext> presContext = nsnull;
|
||||
GetPresContext(getter_AddRefs(presContext));
|
||||
if (presContext) {
|
||||
presContext->UpdateIsChromeCache();
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
@ -1335,6 +1335,7 @@ nsPresContext::SetContainer(nsISupports* aHandler)
|
||||
if (mContainer) {
|
||||
GetDocumentColorPreferences();
|
||||
}
|
||||
UpdateIsChromeCacheInternal();
|
||||
}
|
||||
|
||||
already_AddRefed<nsISupports>
|
||||
@ -1645,8 +1646,8 @@ nsPresContext::CountReflows(const char * aName, nsIFrame * aFrame)
|
||||
}
|
||||
#endif
|
||||
|
||||
PRBool
|
||||
nsPresContext::IsChrome() const
|
||||
void
|
||||
nsPresContext::UpdateIsChromeCacheInternal()
|
||||
{
|
||||
PRBool isChrome = PR_FALSE;
|
||||
nsCOMPtr<nsISupports> container = GetContainer();
|
||||
@ -1661,7 +1662,13 @@ nsPresContext::IsChrome() const
|
||||
}
|
||||
}
|
||||
}
|
||||
return isChrome;
|
||||
mIsChrome = isChrome;
|
||||
}
|
||||
|
||||
void
|
||||
nsPresContext::UpdateIsChromeCacheExternal()
|
||||
{
|
||||
UpdateIsChromeCacheInternal();
|
||||
}
|
||||
|
||||
/* virtual */ PRBool
|
||||
|
@ -810,7 +810,17 @@ public:
|
||||
mType == eContext_PrintPreview); }
|
||||
|
||||
// Is this presentation in a chrome docshell?
|
||||
PRBool IsChrome() const;
|
||||
PRBool IsChrome() const { return mIsChrome; }
|
||||
|
||||
virtual void UpdateIsChromeCacheExternal();
|
||||
void UpdateIsChromeCacheInternal();
|
||||
#ifdef _IMPL_NS_LAYOUT
|
||||
void UpdateIsChromeCache()
|
||||
{ UpdateIsChromeCacheInternal(); }
|
||||
#else
|
||||
void UpdateIsChromeCache()
|
||||
{ UpdateIsChromeCacheExternal(); }
|
||||
#endif
|
||||
|
||||
// Public API for native theme code to get style internals.
|
||||
virtual PRBool HasAuthorSpecifiedRules(nsIFrame *aFrame, PRUint32 ruleTypeMask) const;
|
||||
@ -1115,6 +1125,9 @@ protected:
|
||||
unsigned mProcessingRestyles : 1;
|
||||
unsigned mProcessingAnimationStyleChange : 1;
|
||||
|
||||
// Cache whether we are chrome or not because it is expensive.
|
||||
unsigned mIsChrome : 1;
|
||||
|
||||
#ifdef DEBUG
|
||||
PRBool mInitialized;
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user