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

Issue 791920 link

Starred by 3 users

Issue metadata

Status: Verified
Owner: ----
Closed: Oct 3
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 3
Type: Feature

Blocked on:
issue 791970

Blocking:
issue 578890



Sign in to add a comment

IME for Wayland: Implement Wayland IME support

Project Member Reported by jani.hau...@lge.com, Dec 5 2017

Issue description

An umbrella task for implementing IME support for Wayland text input protocols.

This is going to be used by an external window mode, the effort which is currently done in the downstream (github.com/Igalia/ozone-wayland-dev). Upstreaming independent parts of it reduces the delta.

This relates to https://bugs.chromium.org/p/chromium/issues/detail?id=666958

Implementation steps for this issue:

- Generate text-input-v1 protocol headers
- Servicification of linux input method context
- Implement linux input method context mojo interface in ozone wayland backend

 
Labels: -Type-Bug Type-Feature
Description: Show this description
Blockedon: 791970
Description: Show this description
Components: -Internals>MUS Internals>Services>WindowService
Project Member

Comment 6 by sheriffbot@chromium.org, Jun 15 2018

Labels: Hotlist-Recharge-BouncingOwner
Owner: ----
The assigned owner "jani.hautakangas@lge.com" is not able to receive e-mails, please re-triage.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Cc: toniki...@igalia.com jani.hau...@lge.com je_julie.kim@chromium.org rjkroege@chromium.org msi...@igalia.com
 Issue 875165  has been merged into this issue.
Blocking: 820047
Status: Available (was: Untriaged)
Labels: Wayland Proj-Ozone
Blocking: -820047 578890
Project Member

Comment 11 by bugdroid1@chromium.org, Sep 10

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

commit 40a87fcf6141373674ddc53cb27fe7042f49410e
Author: Jani Hautakangas <jani.hautakangas@lge.com>
Date: Mon Sep 10 21:33:52 2018

[ozone/wayland] Refactor IME deps for ozone platform

Refactor base/ime components and dependencies for ozone
plaform integration to avoid cyclic dependencies.

- Groups ui/base/ime common types into their own GN component
  (ime_types) to break a dependency cycle that ozone ime context
  integration would cause on ChromeOS.
- Groups some of ui/base/ime/linux interfaces into their own GN
  component (ime_linux) to break a dependency cycle that ozone
  ime context integration would cause on ChromeOS.
- Move chromeos source files under is_chromeos flag to avoid
  depending them when chromeos is not used, but ime is needed
  (kudos to msisov@igalia.com).

Bug:  791920 
Change-Id: I0b1668564dde22c6e2b05ee1323ebbe4a1343475
Reviewed-on: https://chromium-review.googlesource.com/1193871
Commit-Queue: Jani Hautakangas <jani.hautakangas@lge.com>
Reviewed-by: Shu Chen <shuchen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590072}
[modify] https://crrev.com/40a87fcf6141373674ddc53cb27fe7042f49410e/ui/base/ime/BUILD.gn
[modify] https://crrev.com/40a87fcf6141373674ddc53cb27fe7042f49410e/ui/base/ime/candidate_window.h
[modify] https://crrev.com/40a87fcf6141373674ddc53cb27fe7042f49410e/ui/base/ime/composition_text.h
[modify] https://crrev.com/40a87fcf6141373674ddc53cb27fe7042f49410e/ui/base/ime/ime_text_span.h
[modify] https://crrev.com/40a87fcf6141373674ddc53cb27fe7042f49410e/ui/base/ime/infolist_entry.h
[modify] https://crrev.com/40a87fcf6141373674ddc53cb27fe7042f49410e/ui/base/ime/linux/fake_input_method_context_factory.h
[modify] https://crrev.com/40a87fcf6141373674ddc53cb27fe7042f49410e/ui/base/ime/linux/linux_input_method_context.h
[modify] https://crrev.com/40a87fcf6141373674ddc53cb27fe7042f49410e/ui/base/ime/linux/linux_input_method_context_factory.h
[add] https://crrev.com/40a87fcf6141373674ddc53cb27fe7042f49410e/ui/base/ime/linux/ui_base_ime_linux_export.h
[add] https://crrev.com/40a87fcf6141373674ddc53cb27fe7042f49410e/ui/base/ime/ui_base_ime_types_export.h

Project Member

Comment 12 by bugdroid1@chromium.org, Sep 10

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

commit 6e18cb2b9fff68df28bfc270a6fe27153f982840
Author: Yuly Novikov <ynovikov@chromium.org>
Date: Mon Sep 10 23:49:42 2018

Revert "[ozone/wayland] Refactor IME deps for ozone platform"

This reverts commit 40a87fcf6141373674ddc53cb27fe7042f49410e.

Reason for revert: Breaks "compile" in Debug and "compile confirm no-op" in Release

Original change's description:
> [ozone/wayland] Refactor IME deps for ozone platform
> 
> Refactor base/ime components and dependencies for ozone
> plaform integration to avoid cyclic dependencies.
> 
> - Groups ui/base/ime common types into their own GN component
>   (ime_types) to break a dependency cycle that ozone ime context
>   integration would cause on ChromeOS.
> - Groups some of ui/base/ime/linux interfaces into their own GN
>   component (ime_linux) to break a dependency cycle that ozone
>   ime context integration would cause on ChromeOS.
> - Move chromeos source files under is_chromeos flag to avoid
>   depending them when chromeos is not used, but ime is needed
>   (kudos to msisov@igalia.com).
> 
> Bug:  791920 
> Change-Id: I0b1668564dde22c6e2b05ee1323ebbe4a1343475
> Reviewed-on: https://chromium-review.googlesource.com/1193871
> Commit-Queue: Jani Hautakangas <jani.hautakangas@lge.com>
> Reviewed-by: Shu Chen <shuchen@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#590072}

TBR=shuchen@chromium.org,yhanada@chromium.org,tonikitoo@igalia.com,msisov@igalia.com,jani.hautakangas@lge.com

Change-Id: I5b032277b66ff9d5f6daca34425c5464736db77e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  791920 
Reviewed-on: https://chromium-review.googlesource.com/1217849
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590119}
[modify] https://crrev.com/6e18cb2b9fff68df28bfc270a6fe27153f982840/ui/base/ime/BUILD.gn
[modify] https://crrev.com/6e18cb2b9fff68df28bfc270a6fe27153f982840/ui/base/ime/candidate_window.h
[modify] https://crrev.com/6e18cb2b9fff68df28bfc270a6fe27153f982840/ui/base/ime/composition_text.h
[modify] https://crrev.com/6e18cb2b9fff68df28bfc270a6fe27153f982840/ui/base/ime/ime_text_span.h
[modify] https://crrev.com/6e18cb2b9fff68df28bfc270a6fe27153f982840/ui/base/ime/infolist_entry.h
[modify] https://crrev.com/6e18cb2b9fff68df28bfc270a6fe27153f982840/ui/base/ime/linux/fake_input_method_context_factory.h
[modify] https://crrev.com/6e18cb2b9fff68df28bfc270a6fe27153f982840/ui/base/ime/linux/linux_input_method_context.h
[modify] https://crrev.com/6e18cb2b9fff68df28bfc270a6fe27153f982840/ui/base/ime/linux/linux_input_method_context_factory.h
[delete] https://crrev.com/a9c4e1d4481e67dbfc550c19b04252a8839fa35d/ui/base/ime/linux/ui_base_ime_linux_export.h
[delete] https://crrev.com/a9c4e1d4481e67dbfc550c19b04252a8839fa35d/ui/base/ime/ui_base_ime_types_export.h

Project Member

Comment 13 by bugdroid1@chromium.org, Sep 14

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

commit f220c3449cb22b5ee91d81241c7df1e54b900827
Author: Jani Hautakangas <jani.hautakangas@lge.com>
Date: Fri Sep 14 06:04:50 2018

Reland "[ozone/wayland] Refactor IME deps for ozone platform"

This is a reland of 40a87fcf6141373674ddc53cb27fe7042f49410e

The patch was reverted due to fail in windows 'compile confirm no-op'.
Compile failed because of empty linux specific gn component which
resulted after applying sources_assignment_filters on windows builds.
Relanding patch now by refactoring ime_linux gn component.

Original change's description:
> [ozone/wayland] Refactor IME deps for ozone platform
>
> Refactor base/ime components and dependencies for ozone
> plaform integration to avoid cyclic dependencies.
>
> - Groups ui/base/ime common types into their own GN component
>   (ime_types) to break a dependency cycle that ozone ime context
>   integration would cause on ChromeOS.
> - Groups some of ui/base/ime/linux interfaces into their own GN
>   component (ime_linux) to break a dependency cycle that ozone
>   ime context integration would cause on ChromeOS.
> - Move chromeos source files under is_chromeos flag to avoid
>   depending them when chromeos is not used, but ime is needed
>   (kudos to msisov@igalia.com).
>
> Bug:  791920 
> Change-Id: I0b1668564dde22c6e2b05ee1323ebbe4a1343475
> Reviewed-on: https://chromium-review.googlesource.com/1193871
> Commit-Queue: Jani Hautakangas <jani.hautakangas@lge.com>
> Reviewed-by: Shu Chen <shuchen@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#590072}

Bug:  791920 
Change-Id: I16de600ac66eb53e4e925bc8b8ab292f89a787dc
Reviewed-on: https://chromium-review.googlesource.com/1224370
Reviewed-by: Shu Chen <shuchen@chromium.org>
Commit-Queue: Jani Hautakangas <jani.hautakangas@lge.com>
Cr-Commit-Position: refs/heads/master@{#591292}
[modify] https://crrev.com/f220c3449cb22b5ee91d81241c7df1e54b900827/ui/base/ime/BUILD.gn
[modify] https://crrev.com/f220c3449cb22b5ee91d81241c7df1e54b900827/ui/base/ime/candidate_window.h
[modify] https://crrev.com/f220c3449cb22b5ee91d81241c7df1e54b900827/ui/base/ime/composition_text.h
[modify] https://crrev.com/f220c3449cb22b5ee91d81241c7df1e54b900827/ui/base/ime/ime_text_span.h
[modify] https://crrev.com/f220c3449cb22b5ee91d81241c7df1e54b900827/ui/base/ime/infolist_entry.h
[add] https://crrev.com/f220c3449cb22b5ee91d81241c7df1e54b900827/ui/base/ime/linux/BUILD.gn
[modify] https://crrev.com/f220c3449cb22b5ee91d81241c7df1e54b900827/ui/base/ime/linux/fake_input_method_context_factory.h
[modify] https://crrev.com/f220c3449cb22b5ee91d81241c7df1e54b900827/ui/base/ime/linux/linux_input_method_context.h
[modify] https://crrev.com/f220c3449cb22b5ee91d81241c7df1e54b900827/ui/base/ime/linux/linux_input_method_context_factory.h
[add] https://crrev.com/f220c3449cb22b5ee91d81241c7df1e54b900827/ui/base/ime/linux/ui_base_ime_linux_export.h
[add] https://crrev.com/f220c3449cb22b5ee91d81241c7df1e54b900827/ui/base/ime/ui_base_ime_types_export.h

Project Member

Comment 14 by bugdroid1@chromium.org, Sep 25

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

commit 35c0d8a89c6376e81f40150d42b0984e8d1dc2a6
Author: Jani Hautakangas <jani.hautakangas@lge.com>
Date: Tue Sep 25 20:26:36 2018

[ozone/wayland] Ozone Wayland IME integration

Introduce Ozone Wayland IME integration.

Implements Ozone Wayland specific LinuxInputMethodContext
and adds possibility to integrate it with various Wayland
text input protocols.

Patch also introduces new SetSurroundingText function to
LinuxInputMethodContext that is internally called by
InputMethodAuraLinux on caret bounds change.

This CL:
- Implements Ozone wayland specific Linux input method
  context interface and integrates it with zwp_text_input_v1 protocol.
- Introduces new runtime flag --enable-wayland-ime to
  enable this feature (by default false).
- Makes Wayland IME working with InputMethodAuraLinux.
- Adds surrounding text support (kudos to msisov@igalia.com).

Bug:  791920 
Change-Id: I168d4a266bff6e62acce69edf943469e05e575ac
Reviewed-on: https://chromium-review.googlesource.com/1193872
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
Reviewed-by: Maksim Sisov <msisov@igalia.com>
Reviewed-by: Shu Chen <shuchen@chromium.org>
Commit-Queue: Jani Hautakangas <jani.hautakangas@lge.com>
Cr-Commit-Position: refs/heads/master@{#594082}
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/chrome/browser/ui/libgtkui/x11_input_method_context_impl_gtk.cc
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/chrome/browser/ui/libgtkui/x11_input_method_context_impl_gtk.h
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/base/BUILD.gn
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/base/ime/input_method_auralinux.cc
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/base/ime/input_method_auralinux.h
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/base/ime/input_method_auralinux_unittest.cc
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/base/ime/input_method_factory.cc
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/base/ime/linux/fake_input_method_context.cc
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/base/ime/linux/fake_input_method_context.h
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/base/ime/linux/linux_input_method_context.h
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/ozone/platform/wayland/BUILD.gn
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/ozone/platform/wayland/DEPS
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/ozone/platform/wayland/fake_server.cc
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/ozone/platform/wayland/fake_server.h
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/ozone/platform/wayland/ozone_platform_wayland.cc
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/ozone/platform/wayland/wayland_connection.cc
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/ozone/platform/wayland/wayland_connection.h
[add] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/ozone/platform/wayland/wayland_input_method_context.cc
[add] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/ozone/platform/wayland/wayland_input_method_context.h
[add] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/ozone/platform/wayland/wayland_input_method_context_factory.cc
[add] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/ozone/platform/wayland/wayland_input_method_context_factory.h
[add] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/ozone/platform/wayland/wayland_input_method_context_unittest.cc
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/ozone/platform/wayland/wayland_object.cc
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/ozone/platform/wayland/wayland_object.h
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/ozone/platform/wayland/wayland_window.cc
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/ozone/platform/wayland/wayland_window.h
[add] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/ozone/platform/wayland/zwp_text_input_wrapper.h
[add] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/ozone/platform/wayland/zwp_text_input_wrapper_v1.cc
[add] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/ozone/platform/wayland/zwp_text_input_wrapper_v1.h
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/ozone/public/ozone_switches.cc
[modify] https://crrev.com/35c0d8a89c6376e81f40150d42b0984e8d1dc2a6/ui/ozone/public/ozone_switches.h

Status: Verified (was: Available)
Project Member

Comment 16 by bugdroid1@chromium.org, Jan 16

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

commit 4460fdd4b40d96df2e0b42970d386da315b42f31
Author: Maksim Sisov <msisov@igalia.com>
Date: Wed Jan 16 07:14:29 2019

Fix ime linux export include and fix dtor.

This fixes the following error:

ERROR at //ui/base/ime/linux/fake_input_method_context_factory.h:10:11: Include not allowed.
          ^-------------------------------
It is not in any dependency of
  //ui/base/ime/linux:linux
The include file is in the target(s):
  //ui/base/ime:ime
which should somehow be reachable.

Also it overrides virtual dtor and uses "default" for
ctor and dtor.

Bug:  791920 
Change-Id: I93f0036c3df94123f83f3e77854fa6373344aee4
Reviewed-on: https://chromium-review.googlesource.com/c/1411333
Reviewed-by: Shu Chen <shuchen@chromium.org>
Commit-Queue: Maksim Sisov <msisov@igalia.com>
Cr-Commit-Position: refs/heads/master@{#623144}
[modify] https://crrev.com/4460fdd4b40d96df2e0b42970d386da315b42f31/ui/base/ime/linux/fake_input_method_context_factory.cc
[modify] https://crrev.com/4460fdd4b40d96df2e0b42970d386da315b42f31/ui/base/ime/linux/fake_input_method_context_factory.h

Sign in to add a comment