void nsHTMLSharedObjectElement::StartObjectLoad(PRBool aNotify) { nsCAutoString type; GetTypeAttrValue(type); nsAutoString uri; if (!GetAttr(kNameSpaceID_None, URIAttrName(), uri)) { // Be sure to call the nsIURI version if we have no attribute // That handles the case where no URI is specified. An empty string would // get interpreted as the page itself, instead of absence of URI. LoadObject(nsnull, aNotify, type); } else { LoadObject(uri, aNotify, type); } }
nsresult HTMLSharedObjectElement::SetAttr(int32_t aNameSpaceID, nsIAtom *aName, nsIAtom *aPrefix, const nsAString &aValue, bool aNotify) { nsresult rv = nsGenericHTMLElement::SetAttr(aNameSpaceID, aName, aPrefix, aValue, aNotify); NS_ENSURE_SUCCESS(rv, rv); // if aNotify is false, we are coming from the parser or some such place; // we'll get bound after all the attributes have been set, so we'll do the // object load from BindToTree/DoneAddingChildren. // Skip the LoadObject call in that case. // We also don't want to start loading the object when we're not yet in // a document, just in case that the caller wants to set additional // attributes before inserting the node into the document. if (aNotify && IsInComposedDoc() && mIsDoneAddingChildren && aNameSpaceID == kNameSpaceID_None && aName == URIAttrName()) { return LoadObject(aNotify, true); } return NS_OK; }
nsresult nsHTMLSharedObjectElement::SetAttr(PRInt32 aNameSpaceID, nsIAtom *aName, nsIAtom *aPrefix, const nsAString &aValue, PRBool aNotify) { // If we plan to call LoadObject, we want to do it first so that the // object load kicks off _before_ the reflow triggered by the SetAttr. But if // aNotify is false, we are coming from the parser or some such place; we'll // get bound after all the attributes have been set, so we'll do the // object load from BindToTree/DoneAddingChildren. // Skip the LoadObject call in that case. // We also don't want to start loading the object when we're not yet in // a document, just in case that the caller wants to set additional // attributes before inserting the node into the document. if (aNotify && IsInDoc() && mIsDoneAddingChildren && aNameSpaceID == kNameSpaceID_None && aName == URIAttrName()) { nsCAutoString type; GetTypeAttrValue(type); LoadObject(aValue, aNotify, type, PR_TRUE); } return nsGenericHTMLElement::SetAttr(aNameSpaceID, aName, aPrefix, aValue, aNotify); }