New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 772382 link

Starred by 3 users

Issue metadata

Status: Fixed
Merged: issue 738210
Owner:
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocking:
issue 672961
issue 738210



Sign in to add a comment

mash: Fix InputMethodManager access in exo

Project Member Reported by penghuang@chromium.org, Oct 6 2017

Issue description

exo crashes with --mash and --ash-enable-wayland-server, because the InputMethodManager is missing in ash process.


https://chromium-review.googlesource.com/c/chromium/src/+/703056 can workaround the issue.
 
Blocking: 672961
InputMethodManager (specifically InputMethodManagerImpl) only exists in the browser process, not in ash. That's probably not going to change -- it has a large number of chrome dependencies.

IME support in ash is via ash/ime/ime_controller.h, which might need to be extended. Also, the window server has IME mojo interfaces.

Comment 3 by xiy...@chromium.org, Jan 12 2018

Cc: xiy...@chromium.org
Can we land the workaround CL so that we can play with ARC on mash? We can put it as TODO in the CL and leave this bug open until we have a concrete solution.

It seems ARC is sort of working under mash with just this CL.
arc_under_mash.png
385 KB View Download
Components: -Internals>MUS Internals>Services>WindowService
Mergedinto: 738210
Status: Duplicate (was: Available)
Status: Untriaged (was: Duplicate)
Summary: mash: Fix InputMethodManager access in exo (was: InputMethodManager is missing in ash process for --mash)
Actually, let's keep this and use it for exo.

Blocking: 738210

Comment 8 by shend@chromium.org, Mar 14 2018

Owner: shend@chromium.org
Status: Assigned (was: Untriaged)
Project Member

Comment 9 by bugdroid1@chromium.org, Mar 18 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/29b26a4ba97065b4247debb2a5c759dacb8c5a88

commit 29b26a4ba97065b4247debb2a5c759dacb8c5a88
Author: Darren Shen <shend@chromium.org>
Date: Sun Mar 18 22:36:12 2018

mash: Remove use of InputMethodManager in Wayland server.

We're currently using InputMethodManager in the Wayland server to
observe changes in the keyboard layout. However, under mash, exo will be
in the ash process and InputMethodManager will be in the chrome process,
so we cannot depend on InputMethodManager from the Wayland server.

We remove the use of InputMethodManager in the Wayland server for
observing keyboard changes by using ImeController instead, which uses
Mojo for communication.

We also add a way of retrieving the current keyboard layout from
ImeController. This is a similar design to how ImeController handles
caps lock, but it's simpler because we never need to set the layout
from ash side. Changes to layout on the chrome side just propagate
to the ash side from ImeControllerClient to ImeController.

Bug:  772382 
Change-Id: I84df1ee1b7e0f54716125fec9d4cd49f3442ed79
Reviewed-on: https://chromium-review.googlesource.com/961505
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Oliver Chang <ochang@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#543958}
[modify] https://crrev.com/29b26a4ba97065b4247debb2a5c759dacb8c5a88/ash/ime/ime_controller.cc
[modify] https://crrev.com/29b26a4ba97065b4247debb2a5c759dacb8c5a88/ash/ime/ime_controller.h
[modify] https://crrev.com/29b26a4ba97065b4247debb2a5c759dacb8c5a88/ash/ime/ime_controller_unittest.cc
[modify] https://crrev.com/29b26a4ba97065b4247debb2a5c759dacb8c5a88/ash/ime/test_ime_controller.cc
[modify] https://crrev.com/29b26a4ba97065b4247debb2a5c759dacb8c5a88/ash/ime/test_ime_controller.h
[modify] https://crrev.com/29b26a4ba97065b4247debb2a5c759dacb8c5a88/ash/login/ui/login_password_view.h
[modify] https://crrev.com/29b26a4ba97065b4247debb2a5c759dacb8c5a88/ash/public/interfaces/ime_controller.mojom
[modify] https://crrev.com/29b26a4ba97065b4247debb2a5c759dacb8c5a88/ash/system/tray_caps_lock.h
[modify] https://crrev.com/29b26a4ba97065b4247debb2a5c759dacb8c5a88/chrome/browser/ui/ash/ime_controller_client.cc
[modify] https://crrev.com/29b26a4ba97065b4247debb2a5c759dacb8c5a88/chrome/browser/ui/ash/ime_controller_client_unittest.cc
[modify] https://crrev.com/29b26a4ba97065b4247debb2a5c759dacb8c5a88/components/exo/wayland/server.cc

Comment 10 by shend@chromium.org, Mar 19 2018

Status: Fixed (was: Assigned)
There should be no more references to InputMethodManager in //components/exo.

Sign in to add a comment