Take the 2-minute tour ×

I trying to capture pageLoad event in progressListener, in onLocationChange i check URI of fresh page, and in case URI = about:blank i got

Error: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIURI.host]

As i understand this URI don't have host at all.

How can i check that host is available without raw parsing and exception catching? Is there any conventional way to check that atribute is present?

share|improve this question
add comment

3 Answers

Your best bet is to filter certain protocols (filter on scheme). It's best to use a whitelist in this case of the protocols you care about.

share|improve this answer
add comment

In general there's no way to know for sure without doing a try/catch, but currently an nsIStandardURL is the only sort of URI that will have a host.

share|improve this answer
add comment

When I faced this problem my solution was: To indicate an observer flag aWebProgress.NOTIFY_LOCATION

aWebProgress.addProgressListener(this.listener, aWebProgress.NOTIFY_LOCATION);

Before I had aWebProgress.NOTIFY_LOCATION and there was an exception you desc

share|improve this answer
add comment

Your Answer


