NS_ERROR_FAILURE with absent property

595 views Asked by At

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?

3

There are 3 answers

0
sdwilsh On

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.

0
Neil On

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.

0
Lupanov Evgeny On

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