2

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 Answers3

0

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

0

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.

sdwilsh
  • 4,674
  • 1
  • 22
  • 20
0

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.

Neil
  • 54,642
  • 8
  • 60
  • 72