Re: Why unhandled System Messages wait in queue

On 2013-04-04 17:43, Mounir Lamouri wrote:
> On 03/04/13 08:53, Janusz Majnert wrote:
>> I'm still curious how/if an application can "unregister" itself from
>> receiving system messages. Or maybe there is a way to flush the message
>> queue?
>
> setMessageHandler('foo', null) will make sure the application no longer
> receives system messages of type 'foo'.

I think that what the spec currently says is that setting the calback to 
null doesn't stop the application from receiving system messages:

"If callback is null, the current callback, if any, for the  type of 
message type must be reset and no callback should no longer be set for 
this type."

Then if you set the callback to some function, you will have to handle 
all the messages that arived when calback was null:

"If callback is not null and there was no message handler for the given 
type and there are messages in the pool of messages for the type, then 
the UA MUST start an asynchronous task that executes all the messages in 
the pool by the new handler in a FIFO basis and then remove all those 
messages from the pool of messages."


Also, the concept of "registering" for system messages is not clear. Is 
the first call to setMessageHandler("foo",valid_handler) or 
setMessageHandler("foo", invalid_handler) or setMessageHandler ("foo", 
null) registering an app for messages of type "foo"?

/Janusz

Received on Friday, 5 April 2013 07:37:48 UTC