Bug 21090 - Approver: Specify that approvers see CDOs where not all channels match
Summary: Approver: Specify that approvers see CDOs where not all channels match
Alias: None
Product: Telepathy
Classification: Unclassified
Component: tp-spec (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Simon McVittie
QA Contact: Telepathy bugs list
URL: http://git.collabora.co.uk/?p=user/sm...
Keywords: patch
Depends on:
Blocks: 21148
  Show dependency treegraph
Reported: 2009-04-07 10:01 UTC by Simon McVittie
Modified: 2009-04-28 05:45 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


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.