[Bug 35341] Use Connection.Interface.ContactBlocking in Tp::ContactManager

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sun May 15 16:40:52 CEST 2011


https://bugs.freedesktop.org/show_bug.cgi?id=35341

Olli Salli <ollisal at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Status Whiteboard|review-                     |

--- Comment #16 from Olli Salli <ollisal at gmail.com> 2011-05-15 07:40:51 PDT ---
We now have set up the 0.6 stable branch, so we have an unstable master to
merge this work to. Please rebase on top of current master accordingly.

Other than that, observations from the current branch:

Your branch now seems to get the "removed from blocked, but still in other
lists" case right. However, removing from other lists but still in blocked
would still seem to be bugged and result in the contact being removed from
allKnownContacts although it's still blocked, as
ContactManager::Roster::onContactListNewContactsConstructed does this directly
for all removed contacts:

>        cachedAllKnownContacts.remove(contact);
>        contactListContacts.remove(contact);
>        removed << contact;

Please add a test for this case (e.g. contact is subscribed to, but also
blocked, and the subscription is then removed).

Fixing it would be IMO conceptually cleanest by making the aforementioned
method use computeKnownContactsChanges for committing and signaling the
changes, and making that utility function also check the blocked contacts set
(so that it then truly checks all contact lists, both old- and new-style) for
the contact still being present. cachedAllKnownContacts should then never have
contacts directly removed, always through that utility function which checks
the other contact sets.

Otherwise looks fine to me now.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.



More information about the telepathy-bugs mailing list