In \mozilla\layout\base\src\nsFrameList.cpp:
PRBool
nsFrameList:
estroyFrame(nsIPresContext* aPresContext, nsIFrame* aFrame)
{
NS_PRECONDITION(nsnull != aFrame, "null ptr");
if (RemoveFrame(aFrame)) {
aFrame->Destroy(aPresContext);
return PR_TRUE;
}
return PR_FALSE;
}
void
nsFrameList::InsertFrame(nsIFrame* aParent, nsIFrame* aPrevSibling, nsIFrame* aNewFrame)
NS_PRECONDITION(nsnull != aNewFrame, "null ptr");
if (nsnull != aNewFrame) {
if (nsnull == aPrevSibling) {
aNewFrame->SetNextSibling(mFirstChild);
mFirstChild = aNewFrame;
}
else {
nsIFrame* nextFrame;
aPrevSibling->GetNextSibling(&nextFrame);
aPrevSibling->SetNextSibling(aNewFrame);
aNewFrame->SetNextSibling(nextFrame);
}
if (nsnull != aParent) {
aNewFrame->SetParent(aParent);
}
}
}
========
Those look like the basic functions needed to do my second idea, just destroy the old frame, and insert a new one in the exact location as the old one with the exact same URI; effectively "refreshing" the frame.
But there should be an easier way, I would think...by just sending a particular frame a refresh message...but then again, mabye not.
I'm going for for awhile, but I'll try playing with it some when I get back and see what I can see.
Shelumi`El
Jordan
S.D.G