New issue
Advanced search Search tips

Issue 837156 link

Starred by 7 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Feature

Blocked on:
issue 880659


Show other hotlists

Hotlists containing this issue:
Hotlist-1
Hotlist-2


Sign in to add a comment

Mojoify IME Engine for Chrome OS

Project Member Reported by goog...@chromium.org, Apr 26 2018

Issue description

Current IMEs on ChromeOS are extension-based. And for the first-party (closed source) IME extensions, “input engines” are NaCl based. Soon NaCl is going to be deprecated and the Gboard team has a strong motivation to migrate these IMEs from extension-based to Mojo-based. 

As an initial and important step, we want to move these decoders and their input logic (input engine) into a Mojo service, so the extensions will communicate with these decoders over Mojo message pipes instead of embedding NaCl module.

DD: go/cros-ime-decoders-mojo

 
Project Member

Comment 1 by bugdroid1@chromium.org, Jul 17

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

commit dfd670743e9f3e3b6bb05e8d2a170ea4fed1bf98
Author: Leo Zhang <googleo@chromium.org>
Date: Tue Jul 17 06:39:32 2018

Initial implementation of IME service on CrOS.

In order to get rid of NaCl dependency and take advantage of Mojo
to provide a better user typing experience, we plan to create an IME
service for ChromeOS.

See go/mojo-ime-cros-interface for the interface design doc.

More about the project, read go/cros-ime-decoders-mojo for an outline
Please check out crrev.com/c/1015148 for an prototype of this service.

Tested on local by enabling build flags (enable_cros_ime_service and
enable_cros_ime_decoder), then build and run
chromeos/services:chromeos_services_unittests

Bug: 837156
Change-Id: Ib99380ba3fa17f1d93c6ce16da20604afbc24c84
Reviewed-on: https://chromium-review.googlesource.com/1029792
Reviewed-by: Satoru Takabayashi <satorux@google.com>
Reviewed-by: Leo Zhang <googleo@chromium.org>
Reviewed-by: Satoru Takabayashi <satorux@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Shu Chen <shuchen@chromium.org>
Commit-Queue: Leo Zhang <googleo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575562}
[modify] https://crrev.com/dfd670743e9f3e3b6bb05e8d2a170ea4fed1bf98/chromeos/services/BUILD.gn
[add] https://crrev.com/dfd670743e9f3e3b6bb05e8d2a170ea4fed1bf98/chromeos/services/ime/BUILD.gn
[add] https://crrev.com/dfd670743e9f3e3b6bb05e8d2a170ea4fed1bf98/chromeos/services/ime/DEPS
[add] https://crrev.com/dfd670743e9f3e3b6bb05e8d2a170ea4fed1bf98/chromeos/services/ime/OWNERS
[add] https://crrev.com/dfd670743e9f3e3b6bb05e8d2a170ea4fed1bf98/chromeos/services/ime/README.md
[add] https://crrev.com/dfd670743e9f3e3b6bb05e8d2a170ea4fed1bf98/chromeos/services/ime/decoder/decoder_engine.cc
[add] https://crrev.com/dfd670743e9f3e3b6bb05e8d2a170ea4fed1bf98/chromeos/services/ime/decoder/decoder_engine.h
[add] https://crrev.com/dfd670743e9f3e3b6bb05e8d2a170ea4fed1bf98/chromeos/services/ime/ime_service.cc
[add] https://crrev.com/dfd670743e9f3e3b6bb05e8d2a170ea4fed1bf98/chromeos/services/ime/ime_service.h
[add] https://crrev.com/dfd670743e9f3e3b6bb05e8d2a170ea4fed1bf98/chromeos/services/ime/ime_service_unittest.cc
[add] https://crrev.com/dfd670743e9f3e3b6bb05e8d2a170ea4fed1bf98/chromeos/services/ime/input_engine.cc
[add] https://crrev.com/dfd670743e9f3e3b6bb05e8d2a170ea4fed1bf98/chromeos/services/ime/input_engine.h
[add] https://crrev.com/dfd670743e9f3e3b6bb05e8d2a170ea4fed1bf98/chromeos/services/ime/manifest.json
[add] https://crrev.com/dfd670743e9f3e3b6bb05e8d2a170ea4fed1bf98/chromeos/services/ime/public/cpp/BUILD.gn
[add] https://crrev.com/dfd670743e9f3e3b6bb05e8d2a170ea4fed1bf98/chromeos/services/ime/public/features.gni
[add] https://crrev.com/dfd670743e9f3e3b6bb05e8d2a170ea4fed1bf98/chromeos/services/ime/public/mojom/BUILD.gn
[add] https://crrev.com/dfd670743e9f3e3b6bb05e8d2a170ea4fed1bf98/chromeos/services/ime/public/mojom/OWNERS
[add] https://crrev.com/dfd670743e9f3e3b6bb05e8d2a170ea4fed1bf98/chromeos/services/ime/public/mojom/constants.mojom
[add] https://crrev.com/dfd670743e9f3e3b6bb05e8d2a170ea4fed1bf98/chromeos/services/ime/public/mojom/input_engine.mojom
[add] https://crrev.com/dfd670743e9f3e3b6bb05e8d2a170ea4fed1bf98/chromeos/services/ime/test_manifest.json

Project Member

Comment 2 by bugdroid1@chromium.org, Jul 24

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

commit e834abd81a1d3a7627eb36b5b24b27b5853390ef
Author: Leo Zhang <googleo@chromium.org>
Date: Tue Jul 24 01:16:08 2018

More Impl and fix testing for IME service.

Add more logic and make the service testing really works.

Tested locally by enabling build flags (enable_cros_ime_service and
enable_cros_ime_decoder), then pass the testings
chromeos/services:chromeos_services_unittests

Bug: 837156
Change-Id: I05f557f808c210e788630ce4749b5c261ed19b44
Reviewed-on: https://chromium-review.googlesource.com/1146537
Commit-Queue: Leo Zhang <googleo@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577386}
[modify] https://crrev.com/e834abd81a1d3a7627eb36b5b24b27b5853390ef/chromeos/services/ime/BUILD.gn
[modify] https://crrev.com/e834abd81a1d3a7627eb36b5b24b27b5853390ef/chromeos/services/ime/decoder/decoder_engine.cc
[modify] https://crrev.com/e834abd81a1d3a7627eb36b5b24b27b5853390ef/chromeos/services/ime/decoder/decoder_engine.h
[modify] https://crrev.com/e834abd81a1d3a7627eb36b5b24b27b5853390ef/chromeos/services/ime/ime_service.cc
[modify] https://crrev.com/e834abd81a1d3a7627eb36b5b24b27b5853390ef/chromeos/services/ime/ime_service.h
[modify] https://crrev.com/e834abd81a1d3a7627eb36b5b24b27b5853390ef/chromeos/services/ime/ime_service_unittest.cc
[modify] https://crrev.com/e834abd81a1d3a7627eb36b5b24b27b5853390ef/chromeos/services/ime/input_engine.cc
[modify] https://crrev.com/e834abd81a1d3a7627eb36b5b24b27b5853390ef/chromeos/services/ime/input_engine.h
[modify] https://crrev.com/e834abd81a1d3a7627eb36b5b24b27b5853390ef/chromeos/services/ime/manifest.json
[modify] https://crrev.com/e834abd81a1d3a7627eb36b5b24b27b5853390ef/chromeos/services/ime/public/mojom/constants.mojom
[modify] https://crrev.com/e834abd81a1d3a7627eb36b5b24b27b5853390ef/chromeos/services/ime/test_manifest.json

Components: UI>Input>VirtualKeyboard
Project Member

Comment 4 by bugdroid1@chromium.org, Aug 25

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

commit 84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a
Author: Leo Zhang <googleo@chromium.org>
Date: Sat Aug 25 01:55:36 2018

Create a private Mojo bindings for CrOS IME.

This change will make the 1st-party IME extension be able to access
our IME service on ChromeOS, which includes:
  * create a customized Mojo bindings for the IME extension, and it's
    only accessible by mojoPrivate API with private permission.
  * register the service request in renderer process and forward it to
    the service manager via connector.
  * Service manager will launch the IME service in Utility process
    on demand and bind it to the request from extension.

See go/cros-ime-decoders-mojo for an outline of this IME service.

Test locally on my workstation and verified all the basic functions.

Bug: 837156
Change-Id: I1b75e9c807816156676c5da26d828968ad902f40
Reviewed-on: https://chromium-review.googlesource.com/1151084
Commit-Queue: Leo Zhang <googleo@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#586105}
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chrome/app/BUILD.gn
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chrome/app/generated_resources.grd
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chrome/browser/BUILD.gn
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chrome/browser/chrome_content_browser_manifest_overlay.json
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chrome/browser/extensions/BUILD.gn
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chrome/browser/extensions/chrome_extensions_interface_registration.cc
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chrome/renderer/BUILD.gn
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chrome/renderer/resources/extensions/OWNERS
[add] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chrome/renderer/resources/extensions/chromeos_ime_service_bindings.js
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chrome/renderer/resources/renderer_resources.grd
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chrome/utility/BUILD.gn
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chrome/utility/DEPS
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chrome/utility/chrome_content_utility_client.cc
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chromeos/services/BUILD.gn
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chromeos/services/ime/BUILD.gn
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chromeos/services/ime/decoder/decoder_engine.cc
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chromeos/services/ime/ime_service.cc
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chromeos/services/ime/ime_service.h
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chromeos/services/ime/manifest.json
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chromeos/services/ime/public/cpp/BUILD.gn
[modify] https://crrev.com/84ce09e94c4e54ab94c40d1263eb5dc5a1f4890a/chromeos/services/ime/public/features.gni

Project Member

Comment 6 by bugdroid1@chromium.org, Sep 4

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

commit fb97b393de11a4f7c2e2745d8ef5de77d8ceaad4
Author: Leo Zhang <googleo@chromium.org>
Date: Tue Sep 04 04:59:00 2018

Add imeservice into the feature list.

Expose kImeServiceConnectable to IME private clients, which is used
for checking whether it should load IME Mojo Service bundles.

Bug: 837156
Change-Id: Id2889577616823cef99e3a3cfea16b5e33a9147c
Reviewed-on: https://chromium-review.googlesource.com/1203515
Reviewed-by: Darren Shen <shend@chromium.org>
Commit-Queue: Leo Zhang <googleo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588453}
[modify] https://crrev.com/fb97b393de11a4f7c2e2745d8ef5de77d8ceaad4/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/fb97b393de11a4f7c2e2745d8ef5de77d8ceaad4/ui/keyboard/BUILD.gn
[modify] https://crrev.com/fb97b393de11a4f7c2e2745d8ef5de77d8ceaad4/ui/keyboard/DEPS
[modify] https://crrev.com/fb97b393de11a4f7c2e2745d8ef5de77d8ceaad4/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/fb97b393de11a4f7c2e2745d8ef5de77d8ceaad4/ui/keyboard/keyboard_util.h

Project Member

Comment 7 by bugdroid1@chromium.org, Sep 4

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

commit 9d1de57833ed7638965ccdc5ca184970858e44ec
Author: Samuel Huang <huangs@chromium.org>
Date: Tue Sep 04 14:23:35 2018

Revert "Add imeservice into the feature list."

This reverts commit fb97b393de11a4f7c2e2745d8ef5de77d8ceaad4.

Reason for revert:  https://crbug.com/880245 
This seems to cause VirtualKeyboardAppWindowTest.DisableOverscrollForImeWindow to fail on linux-chromeos-dbg (and similar Keyboard tests): 

https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/linux-chromeos-dbg/7640

Original change's description:
> Add imeservice into the feature list.
> 
> Expose kImeServiceConnectable to IME private clients, which is used
> for checking whether it should load IME Mojo Service bundles.
> 
> Bug: 837156
> Change-Id: Id2889577616823cef99e3a3cfea16b5e33a9147c
> Reviewed-on: https://chromium-review.googlesource.com/1203515
> Reviewed-by: Darren Shen <shend@chromium.org>
> Commit-Queue: Leo Zhang <googleo@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588453}

TBR=wuyingbing@chromium.org,shend@chromium.org,googleo@chromium.org

Change-Id: I686a7a2eee36cfffacee956bbc063d3c835dab54
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 837156
Reviewed-on: https://chromium-review.googlesource.com/1203880
Reviewed-by: Samuel Huang <huangs@chromium.org>
Commit-Queue: Samuel Huang <huangs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588509}
[modify] https://crrev.com/9d1de57833ed7638965ccdc5ca184970858e44ec/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/9d1de57833ed7638965ccdc5ca184970858e44ec/ui/keyboard/BUILD.gn
[modify] https://crrev.com/9d1de57833ed7638965ccdc5ca184970858e44ec/ui/keyboard/DEPS
[modify] https://crrev.com/9d1de57833ed7638965ccdc5ca184970858e44ec/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/9d1de57833ed7638965ccdc5ca184970858e44ec/ui/keyboard/keyboard_util.h

Project Member

Comment 8 by bugdroid1@chromium.org, Sep 4

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

commit fb97b393de11a4f7c2e2745d8ef5de77d8ceaad4
Author: Leo Zhang <googleo@chromium.org>
Date: Tue Sep 04 04:59:00 2018

Add imeservice into the feature list.

Expose kImeServiceConnectable to IME private clients, which is used
for checking whether it should load IME Mojo Service bundles.

Bug: 837156
Change-Id: Id2889577616823cef99e3a3cfea16b5e33a9147c
Reviewed-on: https://chromium-review.googlesource.com/1203515
Reviewed-by: Darren Shen <shend@chromium.org>
Commit-Queue: Leo Zhang <googleo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588453}
[modify] https://crrev.com/fb97b393de11a4f7c2e2745d8ef5de77d8ceaad4/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/fb97b393de11a4f7c2e2745d8ef5de77d8ceaad4/ui/keyboard/BUILD.gn
[modify] https://crrev.com/fb97b393de11a4f7c2e2745d8ef5de77d8ceaad4/ui/keyboard/DEPS
[modify] https://crrev.com/fb97b393de11a4f7c2e2745d8ef5de77d8ceaad4/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/fb97b393de11a4f7c2e2745d8ef5de77d8ceaad4/ui/keyboard/keyboard_util.h

Project Member

Comment 9 by bugdroid1@chromium.org, Sep 4

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

commit 9d1de57833ed7638965ccdc5ca184970858e44ec
Author: Samuel Huang <huangs@chromium.org>
Date: Tue Sep 04 14:23:35 2018

Revert "Add imeservice into the feature list."

This reverts commit fb97b393de11a4f7c2e2745d8ef5de77d8ceaad4.

Reason for revert:  https://crbug.com/880245 
This seems to cause VirtualKeyboardAppWindowTest.DisableOverscrollForImeWindow to fail on linux-chromeos-dbg (and similar Keyboard tests): 

https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/linux-chromeos-dbg/7640

Original change's description:
> Add imeservice into the feature list.
> 
> Expose kImeServiceConnectable to IME private clients, which is used
> for checking whether it should load IME Mojo Service bundles.
> 
> Bug: 837156
> Change-Id: Id2889577616823cef99e3a3cfea16b5e33a9147c
> Reviewed-on: https://chromium-review.googlesource.com/1203515
> Reviewed-by: Darren Shen <shend@chromium.org>
> Commit-Queue: Leo Zhang <googleo@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588453}

TBR=wuyingbing@chromium.org,shend@chromium.org,googleo@chromium.org

Change-Id: I686a7a2eee36cfffacee956bbc063d3c835dab54
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 837156
Reviewed-on: https://chromium-review.googlesource.com/1203880
Reviewed-by: Samuel Huang <huangs@chromium.org>
Commit-Queue: Samuel Huang <huangs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588509}
[modify] https://crrev.com/9d1de57833ed7638965ccdc5ca184970858e44ec/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/9d1de57833ed7638965ccdc5ca184970858e44ec/ui/keyboard/BUILD.gn
[modify] https://crrev.com/9d1de57833ed7638965ccdc5ca184970858e44ec/ui/keyboard/DEPS
[modify] https://crrev.com/9d1de57833ed7638965ccdc5ca184970858e44ec/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/9d1de57833ed7638965ccdc5ca184970858e44ec/ui/keyboard/keyboard_util.h

Project Member

Comment 10 by bugdroid1@chromium.org, Sep 4

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

commit fb97b393de11a4f7c2e2745d8ef5de77d8ceaad4
Author: Leo Zhang <googleo@chromium.org>
Date: Tue Sep 04 04:59:00 2018

Add imeservice into the feature list.

Expose kImeServiceConnectable to IME private clients, which is used
for checking whether it should load IME Mojo Service bundles.

Bug: 837156
Change-Id: Id2889577616823cef99e3a3cfea16b5e33a9147c
Reviewed-on: https://chromium-review.googlesource.com/1203515
Reviewed-by: Darren Shen <shend@chromium.org>
Commit-Queue: Leo Zhang <googleo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588453}
[modify] https://crrev.com/fb97b393de11a4f7c2e2745d8ef5de77d8ceaad4/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/fb97b393de11a4f7c2e2745d8ef5de77d8ceaad4/ui/keyboard/BUILD.gn
[modify] https://crrev.com/fb97b393de11a4f7c2e2745d8ef5de77d8ceaad4/ui/keyboard/DEPS
[modify] https://crrev.com/fb97b393de11a4f7c2e2745d8ef5de77d8ceaad4/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/fb97b393de11a4f7c2e2745d8ef5de77d8ceaad4/ui/keyboard/keyboard_util.h

Project Member

Comment 11 by bugdroid1@chromium.org, Sep 4

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

commit 9d1de57833ed7638965ccdc5ca184970858e44ec
Author: Samuel Huang <huangs@chromium.org>
Date: Tue Sep 04 14:23:35 2018

Revert "Add imeservice into the feature list."

This reverts commit fb97b393de11a4f7c2e2745d8ef5de77d8ceaad4.

Reason for revert:  https://crbug.com/880245 
This seems to cause VirtualKeyboardAppWindowTest.DisableOverscrollForImeWindow to fail on linux-chromeos-dbg (and similar Keyboard tests): 

https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/linux-chromeos-dbg/7640

Original change's description:
> Add imeservice into the feature list.
> 
> Expose kImeServiceConnectable to IME private clients, which is used
> for checking whether it should load IME Mojo Service bundles.
> 
> Bug: 837156
> Change-Id: Id2889577616823cef99e3a3cfea16b5e33a9147c
> Reviewed-on: https://chromium-review.googlesource.com/1203515
> Reviewed-by: Darren Shen <shend@chromium.org>
> Commit-Queue: Leo Zhang <googleo@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588453}

TBR=wuyingbing@chromium.org,shend@chromium.org,googleo@chromium.org

Change-Id: I686a7a2eee36cfffacee956bbc063d3c835dab54
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 837156
Reviewed-on: https://chromium-review.googlesource.com/1203880
Reviewed-by: Samuel Huang <huangs@chromium.org>
Commit-Queue: Samuel Huang <huangs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588509}
[modify] https://crrev.com/9d1de57833ed7638965ccdc5ca184970858e44ec/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/9d1de57833ed7638965ccdc5ca184970858e44ec/ui/keyboard/BUILD.gn
[modify] https://crrev.com/9d1de57833ed7638965ccdc5ca184970858e44ec/ui/keyboard/DEPS
[modify] https://crrev.com/9d1de57833ed7638965ccdc5ca184970858e44ec/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/9d1de57833ed7638965ccdc5ca184970858e44ec/ui/keyboard/keyboard_util.h

Blockedon: 880659
Project Member

Comment 13 by bugdroid1@chromium.org, Sep 10

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

commit b5ad005bbf38388596ac7f93bcb3c4d6aae41d8a
Author: Leo Zhang <googleo@chromium.org>
Date: Mon Sep 10 06:27:27 2018

Add a ChromeOS feature for IME service.

The feature was previously created under the IME service, I refactored
it by moving it to ChromeOS features for a simple structure and
passing it to the IME extension. This feature is used for switching
whether the IME component extension is able to connect to IME service.

Bug: 837156, 880245 
Change-Id: I832b60e1bcc90708771a935dc9f3172067eb8544
Reviewed-on: https://chromium-review.googlesource.com/1209131
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Commit-Queue: Leo Zhang <googleo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589835}
[modify] https://crrev.com/b5ad005bbf38388596ac7f93bcb3c4d6aae41d8a/chrome/browser/extensions/BUILD.gn
[modify] https://crrev.com/b5ad005bbf38388596ac7f93bcb3c4d6aae41d8a/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/b5ad005bbf38388596ac7f93bcb3c4d6aae41d8a/chrome/browser/extensions/chrome_extensions_interface_registration.cc
[modify] https://crrev.com/b5ad005bbf38388596ac7f93bcb3c4d6aae41d8a/chromeos/chromeos_features.cc
[modify] https://crrev.com/b5ad005bbf38388596ac7f93bcb3c4d6aae41d8a/chromeos/chromeos_features.h
[modify] https://crrev.com/b5ad005bbf38388596ac7f93bcb3c4d6aae41d8a/chromeos/services/ime/public/cpp/BUILD.gn
[delete] https://crrev.com/4ecb0a89f46ad7412ae19cc5d7417c23d8b61fab/chromeos/services/ime/public/cpp/features.cc
[delete] https://crrev.com/4ecb0a89f46ad7412ae19cc5d7417c23d8b61fab/chromeos/services/ime/public/cpp/features.h
[modify] https://crrev.com/b5ad005bbf38388596ac7f93bcb3c4d6aae41d8a/ui/keyboard/BUILD.gn
[modify] https://crrev.com/b5ad005bbf38388596ac7f93bcb3c4d6aae41d8a/ui/keyboard/DEPS
[modify] https://crrev.com/b5ad005bbf38388596ac7f93bcb3c4d6aae41d8a/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/b5ad005bbf38388596ac7f93bcb3c4d6aae41d8a/ui/keyboard/keyboard_util.h

Components: -UI>Input>VirtualKeyboard
Project Member

Comment 15 by bugdroid1@chromium.org, Sep 26

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

commit 63277c219ae3b102f094decb1b7e8e3afc649a8f
Author: Leo Zhang <googleo@chromium.org>
Date: Wed Sep 26 01:35:24 2018

Cleanup for IME service testings.

Bug: 837156
Change-Id: I25d67b6fd0c4ba6f61b935ce314a5b00d7a4fc0f
Reviewed-on: https://chromium-review.googlesource.com/1243873
Reviewed-by: Shu Chen <shuchen@chromium.org>
Commit-Queue: Leo Zhang <googleo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#594175}
[modify] https://crrev.com/63277c219ae3b102f094decb1b7e8e3afc649a8f/chromeos/services/ime/ime_service_unittest.cc

Project Member

Comment 16 by bugdroid1@chromium.org, Oct 8

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

commit 65458c262d34fe58bd99a7c506393917d7fa93f3
Author: Leo Zhang <googleo@chromium.org>
Date: Mon Oct 08 05:45:43 2018

Restructure the rulebased engine code.

1, Move the rulebased logic to public cpp.
2, Rename the cpp header caused by folder changes.
3, Rename controller to engine and fix deps

Bug: 837156
Change-Id: Id0d09e86494ef0c2346a324fcef247ff14604740
Reviewed-on: https://chromium-review.googlesource.com/c/1256322
Commit-Queue: Leo Zhang <googleo@chromium.org>
Reviewed-by: Shu Chen <shuchen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#597485}
[modify] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/BUILD.gn
[modify] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/input_engine.cc
[modify] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/input_engine.h
[modify] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/public/cpp/BUILD.gn
[rename] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/public/cpp/rulebased/def/ar.h
[rename] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/public/cpp/rulebased/def/ckb_ar.h
[rename] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/public/cpp/rulebased/def/ckb_en.h
[rename] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/public/cpp/rulebased/def/fa.h
[rename] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/public/cpp/rulebased/def/km.h
[rename] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/public/cpp/rulebased/def/lo.h
[rename] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/public/cpp/rulebased/def/ne_inscript.h
[rename] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/public/cpp/rulebased/def/ru_phone_aatseel.h
[rename] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/public/cpp/rulebased/def/ru_phone_yazhert.h
[rename] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/public/cpp/rulebased/def/ta_inscript.h
[rename] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/public/cpp/rulebased/def/ta_typewriter.h
[rename] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/public/cpp/rulebased/def/th.h
[rename] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/public/cpp/rulebased/def/th_pattajoti.h
[rename] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/public/cpp/rulebased/def/th_tis.h
[rename] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/public/cpp/rulebased/engine.cc
[rename] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/public/cpp/rulebased/engine.h
[rename] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/public/cpp/rulebased/rulebased_unittest.cc
[rename] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/public/cpp/rulebased/rules_data.cc
[rename] https://crrev.com/65458c262d34fe58bd99a7c506393917d7fa93f3/chromeos/services/ime/public/cpp/rulebased/rules_data.h

Project Member

Comment 17 by bugdroid1@chromium.org, Oct 10

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

commit 9046d152df1d17cdf7bd338dca675dc1f5b38dec
Author: Leo Zhang <googleo@chromium.org>
Date: Wed Oct 10 07:24:00 2018

Add error handler for IME serivce bindings.

Let client set error handler on both service and engine ptr level.
So the client is able to run some init tasks on connectioin or cleanup
on dissconnection.

Bug: 837156
Change-Id: I46b17df8a163eba4573eb7717b65fd8dbc25d377
Reviewed-on: https://chromium-review.googlesource.com/c/1267896
Commit-Queue: Leo Zhang <googleo@chromium.org>
Reviewed-by: Shu Chen <shuchen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598240}
[modify] https://crrev.com/9046d152df1d17cdf7bd338dca675dc1f5b38dec/chrome/renderer/resources/extensions/chromeos_ime_service_bindings.js

Project Member

Comment 18 by bugdroid1@chromium.org, Oct 19

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

commit f686f9fe9b6cfcf917f79a074e85dfd5b196291e
Author: Leo Zhang <googleo@chromium.org>
Date: Fri Oct 19 06:54:18 2018

Fix the IME JS style and param.

Bug: 837156
Change-Id: I226459175c995b029f30932327f19124f33ac1d5
Reviewed-on: https://chromium-review.googlesource.com/c/1288152
Reviewed-by: Shu Chen <shuchen@chromium.org>
Commit-Queue: Leo Zhang <googleo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601066}
[modify] https://crrev.com/f686f9fe9b6cfcf917f79a074e85dfd5b196291e/chrome/renderer/resources/extensions/chromeos_ime_service_bindings.js

Project Member

Comment 19 by bugdroid1@chromium.org, Nov 23

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

commit e3fa023349c9393f006bbe2654c7c2d9ce8adf6e
Author: Leo Zhang <googleo@chromium.org>
Date: Fri Nov 23 09:19:46 2018

Close IME Mojo service on disconneciton.

We should release the Utility process when the last client is gone.

Bug: 837156
Change-Id: I66dc753d45a43455dc8cd4a8e759436ec330624a
Reviewed-on: https://chromium-review.googlesource.com/c/1349159
Reviewed-by: Shu Chen <shuchen@chromium.org>
Commit-Queue: Shu Chen <shuchen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610552}
[modify] https://crrev.com/e3fa023349c9393f006bbe2654c7c2d9ce8adf6e/chromeos/services/ime/ime_service.cc

Project Member

Comment 20 by bugdroid1@chromium.org, Dec 21

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

commit ef023234a5646ec136d46f2ff83f6fa1e7c43bca
Author: Li Zhao <iloahz@chromium.org>
Date: Fri Dec 21 06:44:31 2018

Add sandbox type for IME service.

IME service is an utility process which supports all the input methods
for both physical keyboard and virtual keyboard.

Some input methods are rule-based, which does not need any file access.

While other input methods are decoder based, which needs to:
1. Load pre-installed dicts from application bundle.
2. Download/load/update dicts in shared folder for all users.
3. Load/save user dict in user profile folder.

Decoder is maintained in 3rd party and will be built as a shared library.
It will be loaded by IME service when a decoder based input method is
chosen.

Bug: 837156
Change-Id: I2ae58f6f136e45cd3e22226ee7ad2e6abc5d0c08
Reviewed-on: https://chromium-review.googlesource.com/c/1349409
Commit-Queue: Li Zhao <iloahz@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Leo Zhang <googleo@chromium.org>
Reviewed-by: Mattias Nissler <mnissler@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#618469}
[modify] https://crrev.com/ef023234a5646ec136d46f2ff83f6fa1e7c43bca/chromeos/services/ime/BUILD.gn
[modify] https://crrev.com/ef023234a5646ec136d46f2ff83f6fa1e7c43bca/chromeos/services/ime/DEPS
[modify] https://crrev.com/ef023234a5646ec136d46f2ff83f6fa1e7c43bca/chromeos/services/ime/OWNERS
[add] https://crrev.com/ef023234a5646ec136d46f2ff83f6fa1e7c43bca/chromeos/services/ime/ime_sandbox_hook.cc
[add] https://crrev.com/ef023234a5646ec136d46f2ff83f6fa1e7c43bca/chromeos/services/ime/ime_sandbox_hook.h
[modify] https://crrev.com/ef023234a5646ec136d46f2ff83f6fa1e7c43bca/content/browser/utility_process_host.cc
[modify] https://crrev.com/ef023234a5646ec136d46f2ff83f6fa1e7c43bca/content/utility/BUILD.gn
[modify] https://crrev.com/ef023234a5646ec136d46f2ff83f6fa1e7c43bca/content/utility/DEPS
[modify] https://crrev.com/ef023234a5646ec136d46f2ff83f6fa1e7c43bca/content/utility/utility_main.cc
[modify] https://crrev.com/ef023234a5646ec136d46f2ff83f6fa1e7c43bca/services/service_manager/sandbox/BUILD.gn
[add] https://crrev.com/ef023234a5646ec136d46f2ff83f6fa1e7c43bca/services/service_manager/sandbox/linux/bpf_ime_policy_linux.cc
[add] https://crrev.com/ef023234a5646ec136d46f2ff83f6fa1e7c43bca/services/service_manager/sandbox/linux/bpf_ime_policy_linux.h
[modify] https://crrev.com/ef023234a5646ec136d46f2ff83f6fa1e7c43bca/services/service_manager/sandbox/linux/sandbox_seccomp_bpf_linux.cc
[modify] https://crrev.com/ef023234a5646ec136d46f2ff83f6fa1e7c43bca/services/service_manager/sandbox/sandbox_type.cc
[modify] https://crrev.com/ef023234a5646ec136d46f2ff83f6fa1e7c43bca/services/service_manager/sandbox/sandbox_type.h
[modify] https://crrev.com/ef023234a5646ec136d46f2ff83f6fa1e7c43bca/services/service_manager/sandbox/switches.cc
[modify] https://crrev.com/ef023234a5646ec136d46f2ff83f6fa1e7c43bca/services/service_manager/sandbox/switches.h

Sign in to add a comment