kIXULFocusTrackerIID, (void**) &mFocusTracker))) {
kIXULCommandDispatcherIID, (void**) &mCommandDispatcher))) {
XULDocumentImpl::Init(void){    nsresult rv;    if (NS_FAILED(rv = NS_NewHeapArena(getter_AddRefs(mArena), nsnull)))        return rv;    // Create a namespace manager so we can manage tags    if (NS_FAILED(rv = nsComponentManager::CreateInstance(kNameSpaceManagerCID,                                                    nsnull,                                                    kINameSpaceManagerIID,                                                    (void**) &mNameSpaceManager)))        return rv;    // Create our focus tracker and hook it up.    if (NS_FAILED(rv = nsComponentManager::CreateInstance(kXULFocusTrackerCID,                                                    nsnull,                                                    kIXULFocusTrackerIID,                                                    (void**) &mFocusTracker))) {        NS_ERROR("unable to create a focus tracker");        return rv;    }    nsCOMPtr<nsIDOMEventListener> focusTracker = do_QueryInterface(mFocusTracker);    if (focusTracker) {      // Take the focus tracker and add it as an event listener for focus and blur events.        AddEventListener("focus", focusTracker, PR_TRUE);        AddEventListener("blur", focusTracker, PR_TRUE);    }    return NS_OK;}