Bug 30386

Summary: Regression: StreamedMediaChannel::streamAdded is not emitted when one requests a new stream using a StreamedMedia channel type
Product: Telepathy Reporter: George Kiagiadakis <gkiagia>
Component: tp-qtAssignee: Andre Moreira Magalhaes <andrunko>
Status: RESOLVED FIXED QA Contact: Telepathy bugs list <telepathy-bugs>
Severity: normal    
Priority: medium CC: ollisal
Version: git master   
Hardware: All   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description George Kiagiadakis 2010-09-26 11:11:07 UTC
When a new stream is requested on a Tp::StreamedMediaChannel that wraps a StreamedMedia channel type, the PendingMediaStreams object internally adds a content for this stream (in PendingMediaStreams::gotSMStreams) but never emits any signal that the stream and the content were added. Later, the StreamedMedia.StreamAdded signal arrives from the connection manager, but the corresponding Qt signal is not emitted because the stream already exists in the StreamedMediaChannel's internal data (StreamedMediaChannel::onSMStreamAdded prints "Received StreamedMedia.StreamAdded for an existing stream, ignoring").

This is a regression compared to older versions, where the streamAdded() signal was emitted correctly in this case, complying with the spec.
Comment 1 Olli Salli 2010-10-13 07:28:17 UTC
Andre has a prospective patch.
Comment 2 Olli Salli 2010-10-13 08:09:47 UTC
Review:

Good catch about the RequestDirection bug. However, currently there's always a group self contact (can be faked from the connection self contact) whenever a Channel is ready - so instead of conditionalizing on whether there is a group self contact, just make requestDirection early-fail (PendingFailure) if the Channel on which it's called on doesn't have Channel::FeatureCore ready. We need that to be ready to know our real groupSelfHandle, if any, anyway.

Added tests seem OK - through due to the complexity/clutter of the API, it's a bit hard to tell for sure :(

So OK to merge with that requestDirection being-ready change.
Comment 3 Olli Salli 2010-10-13 08:10:51 UTC
Review:

Good catch about the RequestDirection bug. However, currently there's always a group self contact (can be faked from the connection self contact) whenever a Channel is ready - so instead of conditionalizing on whether there is a group self contact, just make requestDirection early-fail (PendingFailure) if the Channel on which it's called on doesn't have Channel::FeatureCore ready. We need that to be ready to know our real groupSelfHandle, if any, anyway.

Added tests seem OK - through due to the complexity/clutter of the API, it's a bit hard to tell for sure :(

So OK to merge with that requestDirection being-ready change.
Comment 4 Andre Moreira Magalhaes 2010-10-14 04:32:05 UTC
Merged upstream. It will be in next release 0.3.12.

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.