Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 73ac947f authored by Yohei Yukawa's avatar Yohei Yukawa
Browse files

Fix a race in spell checker session handling

This is a follow up CL to my previous CL [1] that eliminated
synchronous IPCs from TextServicesManagerService (TSMS) to
SpellCheckerService (SCS).

One thing I missed was that even while TSMS is waiting for the
response from SCS pending sessions can be terminated from the client
application side (e.g. SpellCheckerSession#close() is explicitly
called or the client application process gets killed).

With this CL, SpellCheckerBindGroup#removeListener() can work even in
such situations.

 [1]: I92e7aa40dc9ea14f67d355f0bfa15325b775d27b
      7fa65eef

Fix: 79082580
Test: Manually done as follows.
  1. Create a custom spell checker service that can emulate the
     scenarios where following methods are blocked
     * SpellCheckerService#onCreate()
     * SpellCheckerService#createSession()
     * SpellCheckerService.Session#onGetSuggestions()
     * SpellCheckerService.Session#onGetSentenceSuggestionsMultiple()
  2. By using such a test spell checker service, make sure that TSMS
     cleans up ISpellCheckerSessionListener and
     ITextServicesSessionListener binder proxies when either
     SpellCheckerSession#close() is called or the target app process
     is killed.
Change-Id: Ie373095f20dd58273c764f1f732631bcfee758d7
parent 39bd7925
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment