firstChild->ReloadURL(aPresContext);
firstChild->ReloadURL();
nsHTMLFrameOuterFrame::AttributeChanged(nsIPresContext* aPresContext,                                        nsIContent* aChild,                                        PRInt32 aNameSpaceID,                                        nsIAtom* aAttribute,                                        PRInt32 aModType,                                         PRInt32 aHint){  nsCOMPtr<nsIAtom> type;  aChild->GetTag(*getter_AddRefs(type));  if (((nsHTMLAtoms::src == aAttribute) && (nsHTMLAtoms::object != type)) ||     ((nsHTMLAtoms::data == aAttribute) && (nsHTMLAtoms::object == type))) {    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();        }      }    }  }  else if (aAttribute == nsHTMLAtoms::type) {    nsHTMLFrameInnerFrame* firstChild = NS_STATIC_CAST(nsHTMLFrameInnerFrame*,                                        mFrames.FirstChild());    if (!firstChild)      return NS_OK;    nsAutoString value;    aChild->GetAttr(kNameSpaceID_None, nsHTMLAtoms::type, value);        // Notify our enclosing chrome that the primary content shell    // has changed.    nsCOMPtr<nsIDocShell> docShell(do_QueryInterface(firstChild->mSubShell));    nsCOMPtr<nsIDocShellTreeItem> docShellAsItem(do_QueryInterface(firstChild->mSubShell));      // If our container is a web-shell, inform it that it has a new    // child. If it's not a web-shell then some things will not operate    // properly.    nsCOMPtr<nsISupports> container;    aPresContext->GetContainer(getter_AddRefs(container));    if (container) {      nsCOMPtr<nsIDocShellTreeNode> parentAsNode(do_QueryInterface(container));      if (parentAsNode) {        nsCOMPtr<nsIDocShellTreeItem> parentAsItem(do_QueryInterface(parentAsNode));                nsCOMPtr<nsIDocShellTreeOwner> parentTreeOwner;        parentAsItem->GetTreeOwner(getter_AddRefs(parentTreeOwner));        if (parentTreeOwner)          parentTreeOwner->ContentShellAdded(docShellAsItem,             value.EqualsIgnoreCase("content-primary") ? PR_TRUE : PR_FALSE,             value.get());      }    }  }  return NS_OK;}