PRInt32 aModType,
nsHTMLFrameOuterFrame::AttributeChanged(nsIPresContext* aPresContext,                                        nsIContent* aChild,                                        PRInt32 aNameSpaceID,                                        nsIAtom* aAttribute,                                        PRInt32 aHint){  if (nsHTMLAtoms::src == aAttribute) {    nsHTMLFrameInnerFrame* firstChild = NS_STATIC_CAST(nsHTMLFrameInnerFrame*,                                        mFrames.FirstChild());    if (firstChild) {      firstChild->ReloadURL(aPresContext);    }  }  // If the noResize attribute changes, dis/allow frame to be resized  else if (nsHTMLAtoms::noresize == aAttribute) {    nsCOMPtr<nsIContent> parentContent;    mContent->GetParent(*getter_AddRefs(parentContent));    nsCOMPtr<nsIAtom> parentTag;    parentContent->GetTag(*getter_AddRefs(parentTag));    if (nsHTMLAtoms::frameset == parentTag) {      nsIFrame* parentFrame = nsnull;      GetParent(&parentFrame);      if (parentFrame) {        // There is no interface for kIFramesetFrameIID        // so QI'ing to concrete class, yay!        nsHTMLFramesetFrame* framesetFrame = nsnull;        parentFrame->QueryInterface(kIFramesetFrameIID, (void **)&framesetFrame);        if (framesetFrame) {          framesetFrame->RecalculateBorderResize();        }      }    }  }  return NS_OK;}