mDocument->AttributeChanged(this, aName, NS_STYLE_HINT_UNKNOWN);
mDocument->AttributeChanged(NS_STATIC_CAST(nsIStyledContent*, this), aName, NS_STYLE_HINT_UNKNOWN);
RDFElementImpl::UnsetAttribute(PRInt32 aNameSpaceID, nsIAtom* aName, PRBool aNotify){    NS_ASSERTION(nsnull != aName, "must have attribute name");    if (nsnull == aName) {        return NS_ERROR_NULL_POINTER;    }    // Check to see if the CLASS attribute is being unset.  If so, we need to delete our    // class list.    if (mDocument && (aNameSpaceID == kNameSpaceID_None) && aName == kClassAtom) {      mAttributes->UpdateClassList("");    }        if (mDocument && (aNameSpaceID == kNameSpaceID_None) && aName == kStyleAtom) {        nsIURL* docURL = nsnull;        if (nsnull != mDocument) {            mDocument->GetBaseURL(docURL);        }        mAttributes->UpdateStyleRule(docURL, "");        // XXX Some kind of special document update might need to happen here.    }    nsresult rv = NS_OK;    PRBool successful = PR_FALSE;    if (nsnull != mAttributes) {        PRInt32 count = mAttributes->Count();        PRInt32 index;        for (index = 0; index < count; index++) {            nsXULAttribute* attr = (nsXULAttribute*)mAttributes->ElementAt(index);            if ((attr->mNameSpaceID == aNameSpaceID) && (attr->mName == aName)) {                mAttributes->RemoveElementAt(index);                NS_RELEASE(attr);                successful = PR_TRUE;                break;            }        }    }    // XUL Only. Find out if we have a broadcast listener for this element.    if (successful) {      if (mBroadcastListeners != nsnull) {        PRInt32 count = mBroadcastListeners->Count();        for (PRInt32 i = 0; i < count; i++)        {            XULBroadcastListener* xulListener = (XULBroadcastListener*)mBroadcastListeners->ElementAt(i);            nsString aString;            aName->ToString(aString);            if (xulListener->mAttribute == aString) {                // Unset the attribute in the broadcast listener.                nsCOMPtr<nsIDOMElement> element;                element = do_QueryInterface(xulListener->mListener);                if (element)                  element->RemoveAttribute(aString);            }        }      }         // Notify document      if (NS_SUCCEEDED(rv) && aNotify && (nsnull != mDocument)) {          mDocument->AttributeChanged(this, aName, NS_STYLE_HINT_UNKNOWN);      }    }    // End XUL Only Code    return rv;}