NS_IMETHODIMP nsDSURIContentListener::IsPreferred(const char* aContentType, char ** aDesiredContentType, bool* aCanHandle) { NS_ENSURE_ARG_POINTER(aCanHandle); NS_ENSURE_ARG_POINTER(aDesiredContentType); // the docshell has no idea if it is the preferred content provider or not. // It needs to ask its parent if it is the preferred content handler or not... nsCOMPtr<nsIURIContentListener> parentListener; GetParentContentListener(getter_AddRefs(parentListener)); if (parentListener) { return parentListener->IsPreferred(aContentType, aDesiredContentType, aCanHandle); } // we used to return false here if we didn't have a parent properly // registered at the top of the docshell hierarchy to dictate what // content types this docshell should be a preferred handler for. But // this really makes it hard for developers using iframe or browser tags // because then they need to make sure they implement // nsIURIContentListener otherwise all link clicks would get sent to // another window because we said we weren't the preferred handler type. // I'm going to change the default now...if we can handle the content, // and someone didn't EXPLICITLY set a nsIURIContentListener at the top // of our docshell chain, then we'll now always attempt to process the // content ourselves... return CanHandleContent(aContentType, PR_TRUE, aDesiredContentType, aCanHandle); }
NS_IMETHODIMP PSMContentListener::IsPreferred(const char * aContentType, char ** aDesiredContentType, bool * aCanHandleContent) { return CanHandleContent(aContentType, true, aDesiredContentType, aCanHandleContent); }
NS_IMETHODIMP EmbedContentListener::IsPreferred(const char *aContentType, char **aDesiredContentType, PRBool *aCanHandleContent) { return CanHandleContent(aContentType, PR_TRUE, aDesiredContentType, aCanHandleContent); }
/* boolean isPreferred (in string aContentType, out string aDesiredContentType); */ NS_IMETHODIMP CWebBrowserContainer::IsPreferred(const char *aContentType, char **aDesiredContentType, PRBool *_retval) { return CanHandleContent(aContentType, PR_TRUE, aDesiredContentType, _retval); }