Adds a "fallback" ime engine registered to Ash when IMM switches to an IME that the corresponding ime engine is not ready/loaded yet.

For example, in the linux_chromeos environment where the IME extension is not deployed correctly, the extension will fail to load.
Then ImeEngine is never created and registered to Ash.
Therefore, the client connection request is pending on Ash so that the key events are queued in the Mojo pipe forever.

This cl tries to avoid the case of "no engine". In case of IMM cannot get a real engine, using a fallback engine so that the key events can flow.

Bug: 953154,937167
Change-Id: I1127458b78bde809688baf496c4ee598477314c0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1569365
Commit-Queue: Shu Chen <shuchen@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#655103}
8 files changed