Remove nsChangeHint_ReconstructDoc. b=230945 r+sr=bzbarsky

git-svn-id: svn://10.0.0.236/trunk@151356 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
dbaron%dbaron.org 2004-01-15 03:32:06 +00:00
parent f1d1cb19d8
commit 36435245d2
11 changed files with 30 additions and 108 deletions

View File

@ -70,9 +70,6 @@ public:
// nsIDOMHTMLMapElement
NS_DECL_NSIDOMHTMLMAPELEMENT
NS_IMETHOD GetAttributeChangeHint(const nsIAtom* aAttribute,
PRInt32 aModType,
nsChangeHint& aHint) const;
virtual void SetDocument(nsIDocument* aDocument, PRBool aDeep,
PRBool aCompileEventHandlers);
@ -213,18 +210,3 @@ nsHTMLMapElement::GetAreas(nsIDOMHTMLCollection** aAreas)
NS_IMPL_STRING_ATTR(nsHTMLMapElement, Name, name)
NS_IMETHODIMP
nsHTMLMapElement::GetAttributeChangeHint(const nsIAtom* aAttribute,
PRInt32 aModType,
nsChangeHint& aHint) const
{
nsresult rv =
nsGenericHTMLContainerElement::GetAttributeChangeHint(aAttribute,
aModType, aHint);
if (aAttribute == nsHTMLAtoms::name) {
NS_UpdateHint(aHint, NS_STYLE_HINT_RECONSTRUCT_ALL);
}
return rv;
}

View File

@ -45,12 +45,8 @@ enum nsChangeHint {
nsChangeHint_RepaintFrame = 0x01, // change was visual only (e.g., COLOR=)
nsChangeHint_ReflowFrame = 0x02, // change requires reflow (e.g., WIDTH=)
nsChangeHint_SyncFrameView = 0x04, // change requires view to be updated, if there is one (e.g., clip:)
nsChangeHint_ReconstructFrame = 0x08, // change requires frame change (e.g., display:)
nsChangeHint_ReconstructFrame = 0x08 // change requires frame change (e.g., display:)
// This subsumes all the above
nsChangeHint_ReconstructDoc = 0x10
// change requires reconstruction of entire document (e.g., style sheet change)
// This subsumes all the above
// TBD: add nsChangeHint_ForceFrameView to force frame reconstruction if the frame doesn't yet
// have a view
};
@ -102,8 +98,6 @@ inline PRBool NS_IsHintSubset(nsChangeHint aSubset, nsChangeHint aSuperSet) {
nsChangeHint(NS_STYLE_HINT_VISUAL | nsChangeHint_ReflowFrame)
#define NS_STYLE_HINT_FRAMECHANGE \
nsChangeHint(NS_STYLE_HINT_REFLOW | nsChangeHint_ReconstructFrame)
#define NS_STYLE_HINT_RECONSTRUCT_ALL \
nsChangeHint(NS_STYLE_HINT_FRAMECHANGE | nsChangeHint_ReconstructDoc)
/**

View File

@ -9872,9 +9872,6 @@ nsCSSFrameConstructor::ProcessRestyledFrames(nsStyleChangeList& aChangeList,
continue;
}
if (hint & nsChangeHint_ReconstructDoc) {
NS_ERROR("This shouldn't happen");
}
if (hint & nsChangeHint_ReconstructFrame) {
RecreateFramesForContent(aPresContext, content);
} else {
@ -9946,11 +9943,7 @@ nsCSSFrameConstructor::RestyleLaterSiblings(nsIPresContext *aPresContext,
changeList, NS_STYLE_HINT_NONE,
frameChange);
if (frameChange & nsChangeHint_ReconstructDoc) {
ReconstructDocElementHierarchy(aPresContext);
return; // No need to worry about anything else.
}
else if (frameChange & nsChangeHint_ReconstructFrame) {
if (frameChange & nsChangeHint_ReconstructFrame) {
RecreateFramesForContent(aPresContext, child);
changeList.Clear();
} else {
@ -10020,11 +10013,7 @@ nsCSSFrameConstructor::DoContentStateChanged(nsIPresContext* aPresContext,
changeList, NS_STYLE_HINT_NONE,
frameChange);
if (frameChange & nsChangeHint_ReconstructDoc) {
return ReconstructDocElementHierarchy(aPresContext);
// No need to worry about anything else.
}
else if (frameChange & nsChangeHint_ReconstructFrame) {
if (frameChange & nsChangeHint_ReconstructFrame) {
result = RecreateFramesForContent(aPresContext, aContent);
changeList.Clear();
} else {
@ -10075,8 +10064,7 @@ nsCSSFrameConstructor::AttributeChanged(nsIPresContext* aPresContext,
styledContent->GetAttributeChangeHint(aAttribute, aModType, hint);
}
PRBool reconstruct = (hint & nsChangeHint_ReconstructDoc) != 0;
PRBool reframe = (hint & (nsChangeHint_ReconstructDoc | nsChangeHint_ReconstructFrame)) != 0;
PRBool reframe = (hint & nsChangeHint_ReconstructFrame) != 0;
#ifdef MOZ_XUL
// The following listbox widget trap prevents offscreen listbox widget
@ -10127,11 +10115,6 @@ nsCSSFrameConstructor::AttributeChanged(nsIPresContext* aPresContext,
}
}
// apply changes
if (reconstruct) {
return ReconstructDocElementHierarchy(aPresContext);
}
nsIFrameManager *frameManager = shell->GetFrameManager();
nsReStyleHint rshint = nsReStyleHint(0);
frameManager->HasAttributeDependentStyle(aContent,
@ -10151,10 +10134,7 @@ nsCSSFrameConstructor::AttributeChanged(nsIPresContext* aPresContext,
}
// hint is for primary only
if (hint & nsChangeHint_ReconstructDoc) {
return ReconstructDocElementHierarchy(aPresContext);
// No need to worry about anything else.
} else if (hint & nsChangeHint_ReconstructFrame) {
if (hint & nsChangeHint_ReconstructFrame) {
result = RecreateFramesForContent(aPresContext, aContent);
changeList.Clear();
} else {

View File

@ -45,12 +45,8 @@ enum nsChangeHint {
nsChangeHint_RepaintFrame = 0x01, // change was visual only (e.g., COLOR=)
nsChangeHint_ReflowFrame = 0x02, // change requires reflow (e.g., WIDTH=)
nsChangeHint_SyncFrameView = 0x04, // change requires view to be updated, if there is one (e.g., clip:)
nsChangeHint_ReconstructFrame = 0x08, // change requires frame change (e.g., display:)
nsChangeHint_ReconstructFrame = 0x08 // change requires frame change (e.g., display:)
// This subsumes all the above
nsChangeHint_ReconstructDoc = 0x10
// change requires reconstruction of entire document (e.g., style sheet change)
// This subsumes all the above
// TBD: add nsChangeHint_ForceFrameView to force frame reconstruction if the frame doesn't yet
// have a view
};
@ -102,8 +98,6 @@ inline PRBool NS_IsHintSubset(nsChangeHint aSubset, nsChangeHint aSuperSet) {
nsChangeHint(NS_STYLE_HINT_VISUAL | nsChangeHint_ReflowFrame)
#define NS_STYLE_HINT_FRAMECHANGE \
nsChangeHint(NS_STYLE_HINT_REFLOW | nsChangeHint_ReconstructFrame)
#define NS_STYLE_HINT_RECONSTRUCT_ALL \
nsChangeHint(NS_STYLE_HINT_FRAMECHANGE | nsChangeHint_ReconstructDoc)
/**

View File

@ -1698,7 +1698,7 @@ FrameManager::ReResolveStyleContext(nsIPresContext* aPresContext,
if (newContext != oldContext) {
aMinChange = CaptureChange(oldContext, newContext, aFrame, content, aChangeList, aMinChange);
if (!(aMinChange & (nsChangeHint_ReconstructFrame | nsChangeHint_ReconstructDoc))) {
if (!(aMinChange & nsChangeHint_ReconstructFrame)) {
// if frame gets regenerated, let it keep old context
aFrame->SetStyleContext(aPresContext, newContext);
}
@ -1721,8 +1721,7 @@ FrameManager::ReResolveStyleContext(nsIPresContext* aPresContext,
if (pseudoTag && pseudoTag != nsCSSAnonBoxes::mozNonElement &&
aAttribute &&
(!(aMinChange &
(nsChangeHint_ReflowFrame | nsChangeHint_ReconstructFrame
| nsChangeHint_ReconstructDoc))) &&
(nsChangeHint_ReflowFrame | nsChangeHint_ReconstructFrame))) &&
HasAttributeContent(oldContext, aAttrNameSpaceID, aAttribute)) {
aChangeList.AppendChange(aFrame, content, NS_STYLE_HINT_REFLOW);
}
@ -1753,7 +1752,7 @@ FrameManager::ReResolveStyleContext(nsIPresContext* aPresContext,
if (oldExtraContext != newExtraContext) {
aMinChange = CaptureChange(oldExtraContext, newExtraContext, aFrame,
content, aChangeList, aMinChange);
if (!(aMinChange & (nsChangeHint_ReconstructFrame | nsChangeHint_ReconstructDoc))) {
if (!(aMinChange & nsChangeHint_ReconstructFrame)) {
aFrame->SetAdditionalStyleContext(contextIndex, newExtraContext);
}
}
@ -1818,7 +1817,7 @@ FrameManager::ReResolveStyleContext(nsIPresContext* aPresContext,
aResultChange = aMinChange;
if (!(aMinChange & (nsChangeHint_ReconstructFrame | nsChangeHint_ReconstructDoc))) {
if (!(aMinChange & nsChangeHint_ReconstructFrame)) {
// Make sure not to do this for pseudo-frames -- those can't have :before
// or :after content.
if (!pseudoTag && localContent &&
@ -1844,7 +1843,7 @@ FrameManager::ReResolveStyleContext(nsIPresContext* aPresContext,
}
if (!(aMinChange & (nsChangeHint_ReconstructFrame | nsChangeHint_ReconstructDoc))) {
if (!(aMinChange & nsChangeHint_ReconstructFrame)) {
// Make sure not to do this for pseudo-frames -- those can't have :before
// or :after content.
if (!pseudoTag && localContent &&
@ -1870,7 +1869,7 @@ FrameManager::ReResolveStyleContext(nsIPresContext* aPresContext,
}
}
if (!(aMinChange & (nsChangeHint_ReconstructFrame | nsChangeHint_ReconstructDoc))) {
if (!(aMinChange & nsChangeHint_ReconstructFrame)) {
// There is no need to waste time crawling into a frame's children on a frame change.
// The act of reconstructing frames will force new style contexts to be resolved on all
@ -1964,7 +1963,7 @@ FrameManager::ComputeStyleChangeFor(nsIFrame* aFrame,
aChangeList, aTopLevelChange, frameChange);
NS_UpdateHint(aTopLevelChange, frameChange);
if (aTopLevelChange & (nsChangeHint_ReconstructDoc | nsChangeHint_ReconstructFrame)) {
if (aTopLevelChange & nsChangeHint_ReconstructFrame) {
// If it's going to cause a framechange, then don't bother
// with the continuations or special siblings since they'll be
// clobbered by the frame reconstruct anyway.

View File

@ -5361,10 +5361,7 @@ PresShell::ReconstructStyleData()
changeList, NS_STYLE_HINT_NONE,
frameChange);
if (frameChange & nsChangeHint_ReconstructDoc)
mFrameConstructor->ReconstructDocElementHierarchy(mPresContext);
else
mFrameConstructor->ProcessRestyledFrames(changeList, mPresContext);
mFrameConstructor->ProcessRestyledFrames(changeList, mPresContext);
VERIFY_STYLE_TREE;

View File

@ -85,9 +85,9 @@ nsStyleChangeList::ChangeAt(PRInt32 aIndex, const nsStyleChangeData** aChangeDat
nsresult
nsStyleChangeList::AppendChange(nsIFrame* aFrame, nsIContent* aContent, nsChangeHint aHint)
{
NS_ASSERTION(aFrame || (aHint & (nsChangeHint_ReconstructFrame | nsChangeHint_ReconstructDoc)),
NS_ASSERTION(aFrame || (aHint & nsChangeHint_ReconstructFrame),
"must have frame");
NS_ASSERTION(aContent || !(aHint & (nsChangeHint_ReconstructFrame | nsChangeHint_ReconstructDoc)),
NS_ASSERTION(aContent || !(aHint & nsChangeHint_ReconstructFrame),
"must have content");
if ((0 < mCount) && (aHint & nsChangeHint_ReconstructFrame)) { // filter out all other changes for same content

View File

@ -85,9 +85,9 @@ nsStyleChangeList::ChangeAt(PRInt32 aIndex, const nsStyleChangeData** aChangeDat
nsresult
nsStyleChangeList::AppendChange(nsIFrame* aFrame, nsIContent* aContent, nsChangeHint aHint)
{
NS_ASSERTION(aFrame || (aHint & (nsChangeHint_ReconstructFrame | nsChangeHint_ReconstructDoc)),
NS_ASSERTION(aFrame || (aHint & nsChangeHint_ReconstructFrame),
"must have frame");
NS_ASSERTION(aContent || !(aHint & (nsChangeHint_ReconstructFrame | nsChangeHint_ReconstructDoc)),
NS_ASSERTION(aContent || !(aHint & nsChangeHint_ReconstructFrame),
"must have content");
if ((0 < mCount) && (aHint & nsChangeHint_ReconstructFrame)) { // filter out all other changes for same content

View File

@ -1698,7 +1698,7 @@ FrameManager::ReResolveStyleContext(nsIPresContext* aPresContext,
if (newContext != oldContext) {
aMinChange = CaptureChange(oldContext, newContext, aFrame, content, aChangeList, aMinChange);
if (!(aMinChange & (nsChangeHint_ReconstructFrame | nsChangeHint_ReconstructDoc))) {
if (!(aMinChange & nsChangeHint_ReconstructFrame)) {
// if frame gets regenerated, let it keep old context
aFrame->SetStyleContext(aPresContext, newContext);
}
@ -1721,8 +1721,7 @@ FrameManager::ReResolveStyleContext(nsIPresContext* aPresContext,
if (pseudoTag && pseudoTag != nsCSSAnonBoxes::mozNonElement &&
aAttribute &&
(!(aMinChange &
(nsChangeHint_ReflowFrame | nsChangeHint_ReconstructFrame
| nsChangeHint_ReconstructDoc))) &&
(nsChangeHint_ReflowFrame | nsChangeHint_ReconstructFrame))) &&
HasAttributeContent(oldContext, aAttrNameSpaceID, aAttribute)) {
aChangeList.AppendChange(aFrame, content, NS_STYLE_HINT_REFLOW);
}
@ -1753,7 +1752,7 @@ FrameManager::ReResolveStyleContext(nsIPresContext* aPresContext,
if (oldExtraContext != newExtraContext) {
aMinChange = CaptureChange(oldExtraContext, newExtraContext, aFrame,
content, aChangeList, aMinChange);
if (!(aMinChange & (nsChangeHint_ReconstructFrame | nsChangeHint_ReconstructDoc))) {
if (!(aMinChange & nsChangeHint_ReconstructFrame)) {
aFrame->SetAdditionalStyleContext(contextIndex, newExtraContext);
}
}
@ -1818,7 +1817,7 @@ FrameManager::ReResolveStyleContext(nsIPresContext* aPresContext,
aResultChange = aMinChange;
if (!(aMinChange & (nsChangeHint_ReconstructFrame | nsChangeHint_ReconstructDoc))) {
if (!(aMinChange & nsChangeHint_ReconstructFrame)) {
// Make sure not to do this for pseudo-frames -- those can't have :before
// or :after content.
if (!pseudoTag && localContent &&
@ -1844,7 +1843,7 @@ FrameManager::ReResolveStyleContext(nsIPresContext* aPresContext,
}
if (!(aMinChange & (nsChangeHint_ReconstructFrame | nsChangeHint_ReconstructDoc))) {
if (!(aMinChange & nsChangeHint_ReconstructFrame)) {
// Make sure not to do this for pseudo-frames -- those can't have :before
// or :after content.
if (!pseudoTag && localContent &&
@ -1870,7 +1869,7 @@ FrameManager::ReResolveStyleContext(nsIPresContext* aPresContext,
}
}
if (!(aMinChange & (nsChangeHint_ReconstructFrame | nsChangeHint_ReconstructDoc))) {
if (!(aMinChange & nsChangeHint_ReconstructFrame)) {
// There is no need to waste time crawling into a frame's children on a frame change.
// The act of reconstructing frames will force new style contexts to be resolved on all
@ -1964,7 +1963,7 @@ FrameManager::ComputeStyleChangeFor(nsIFrame* aFrame,
aChangeList, aTopLevelChange, frameChange);
NS_UpdateHint(aTopLevelChange, frameChange);
if (aTopLevelChange & (nsChangeHint_ReconstructDoc | nsChangeHint_ReconstructFrame)) {
if (aTopLevelChange & nsChangeHint_ReconstructFrame) {
// If it's going to cause a framechange, then don't bother
// with the continuations or special siblings since they'll be
// clobbered by the frame reconstruct anyway.

View File

@ -5361,10 +5361,7 @@ PresShell::ReconstructStyleData()
changeList, NS_STYLE_HINT_NONE,
frameChange);
if (frameChange & nsChangeHint_ReconstructDoc)
mFrameConstructor->ReconstructDocElementHierarchy(mPresContext);
else
mFrameConstructor->ProcessRestyledFrames(changeList, mPresContext);
mFrameConstructor->ProcessRestyledFrames(changeList, mPresContext);
VERIFY_STYLE_TREE;

View File

@ -9872,9 +9872,6 @@ nsCSSFrameConstructor::ProcessRestyledFrames(nsStyleChangeList& aChangeList,
continue;
}
if (hint & nsChangeHint_ReconstructDoc) {
NS_ERROR("This shouldn't happen");
}
if (hint & nsChangeHint_ReconstructFrame) {
RecreateFramesForContent(aPresContext, content);
} else {
@ -9946,11 +9943,7 @@ nsCSSFrameConstructor::RestyleLaterSiblings(nsIPresContext *aPresContext,
changeList, NS_STYLE_HINT_NONE,
frameChange);
if (frameChange & nsChangeHint_ReconstructDoc) {
ReconstructDocElementHierarchy(aPresContext);
return; // No need to worry about anything else.
}
else if (frameChange & nsChangeHint_ReconstructFrame) {
if (frameChange & nsChangeHint_ReconstructFrame) {
RecreateFramesForContent(aPresContext, child);
changeList.Clear();
} else {
@ -10020,11 +10013,7 @@ nsCSSFrameConstructor::DoContentStateChanged(nsIPresContext* aPresContext,
changeList, NS_STYLE_HINT_NONE,
frameChange);
if (frameChange & nsChangeHint_ReconstructDoc) {
return ReconstructDocElementHierarchy(aPresContext);
// No need to worry about anything else.
}
else if (frameChange & nsChangeHint_ReconstructFrame) {
if (frameChange & nsChangeHint_ReconstructFrame) {
result = RecreateFramesForContent(aPresContext, aContent);
changeList.Clear();
} else {
@ -10075,8 +10064,7 @@ nsCSSFrameConstructor::AttributeChanged(nsIPresContext* aPresContext,
styledContent->GetAttributeChangeHint(aAttribute, aModType, hint);
}
PRBool reconstruct = (hint & nsChangeHint_ReconstructDoc) != 0;
PRBool reframe = (hint & (nsChangeHint_ReconstructDoc | nsChangeHint_ReconstructFrame)) != 0;
PRBool reframe = (hint & nsChangeHint_ReconstructFrame) != 0;
#ifdef MOZ_XUL
// The following listbox widget trap prevents offscreen listbox widget
@ -10127,11 +10115,6 @@ nsCSSFrameConstructor::AttributeChanged(nsIPresContext* aPresContext,
}
}
// apply changes
if (reconstruct) {
return ReconstructDocElementHierarchy(aPresContext);
}
nsIFrameManager *frameManager = shell->GetFrameManager();
nsReStyleHint rshint = nsReStyleHint(0);
frameManager->HasAttributeDependentStyle(aContent,
@ -10151,10 +10134,7 @@ nsCSSFrameConstructor::AttributeChanged(nsIPresContext* aPresContext,
}
// hint is for primary only
if (hint & nsChangeHint_ReconstructDoc) {
return ReconstructDocElementHierarchy(aPresContext);
// No need to worry about anything else.
} else if (hint & nsChangeHint_ReconstructFrame) {
if (hint & nsChangeHint_ReconstructFrame) {
result = RecreateFramesForContent(aPresContext, aContent);
changeList.Clear();
} else {