Bug 21090

Summary: Approver: Specify that approvers see CDOs where not all channels match
Product: Telepathy Reporter: Simon McVittie <smcv>
Component: tp-specAssignee: Simon McVittie <smcv>
Status: RESOLVED FIXED QA Contact: Telepathy bugs list <telepathy-bugs>
Severity: normal    
Priority: medium Keywords: patch
Version: unspecified   
Hardware: Other   
OS: All   
URL: http://git.collabora.co.uk/?p=user/smcv/telepathy-spec-smcv.git;a=shortlog;h=refs/heads/approver-partial-match
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 21148    

Description Simon McVittie 2009-04-07 10:01:34 UTC
Imagine that Empathy is an approver for text and tube channels, and Kopete is an approver for text channels only. A NewChannels signal announces a text channel and a tube channel simultaneously; obviously, Empathy gets AddDispatchOperation called.

telepathy-spec does not specify whether Kopete gets AddDispatchOperation too.

(In MC 5, it does.)

The decision should take into account this use case: imagine that Andre has Kopete but not Empathy, and also has Abiword (which is a Handler for text and Abiword-tube channels). Will opens an Abiword-tube to him, which causes a Text channel to open too, as a side-effect of the Tubes implementation.

If Kopete does not get AddDispatchOperation in this situation, then the incoming bundle is handled via error fallback: since there is no suitable approver, the handler is launched directly. Abiword runs with no prompting, and Andre is annoyed by a resource-hungry application starting without warning.

If Kopete does get AddDispatchOperation, Andre sees "Will has invited you to a chatroom". He clicks Accept. Abiword opens, due to the inclusion of a tube that the approver couldn't usefully tell him about; this violates least-astonishment but is probably better than the alternative.
Comment 1 Simon McVittie 2009-04-10 10:02:09 UTC
A better version of the "Kopete doesn't see it" option would be: if there is no Approver that can cope with the whole NewChannels signal, break it up into individual channels and create one CDO per channel (as we do if there is no Handler that can cope with the whole thing).
Comment 2 Simon McVittie 2009-04-13 11:05:46 UTC
Provisional resolution: Kopete does get the CDO that it partially matches. We can always alter the semantics or add more methods or something when we have actually implemented some channel bundles (at the moment, this is a bit hypothetical).
Comment 3 Simon McVittie 2009-04-14 07:22:13 UTC
I need to write a branch for this. This matches the current behaviour of MC, so no MC changes are needed.
Comment 5 Simon McVittie 2009-04-20 10:40:00 UTC
Rob and Sjoerd give spec cabal approval
Comment 6 Simon McVittie 2009-04-28 05:45:25 UTC
Was fixed in 0.17.23

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.