Even more clear in code(*):
function successCallback(pos)
{
   // you can test timestamp to see
   // if pos is stale or not.
   // do something geofantastic
}
function errorCallback(error)
{
   switch(error.code)
   {
      case POSITION_UNAVAILABLE:
         alert("position not available (cached or otherwise)");
         break;
      case PERMISSION_DENIED:
         alert("the page has no permission");
         break;
      case TIMEOUT:
         alert("timeout");
	break;
      default:
         alert("no idea");
   }
}
(*) the error codes should be something like  
"navigator.geolocation.PositionError.<NAME>".
Doug
On Nov 19, 2008, at 10:06 AM, Greg Bolsinga wrote:
> +1, very nice and clear. -- Greg
>
> On Nov 19, 2008, at 10:03 AM, Andrei Popescu wrote:
>
>> Ok, so for the following call
>>
>> geolocation.getCurrentPermission(successCallback, errorCallback,
>> {modifiedSince:600, timeout:0});
>>
>> the new behavior is the following:
>>
>> - if the page has no permission, errorCallback is invoked with
>> PERMISSION_DENIED.
>> - else
>> * if it doesn't have any cached position, errorCallback is invoked
>> with POSITION_UNAVAILABLE.
>> * else
>>    ** if the cached position is older than 10 mins, errorCallback is
>> invoked with POSITION_UNAVAILABLE
>>    ** else successCallback is immediately invoked with the cached  
>> position
>