Public bug reported:

With Chromium backspaces generated by ibus-engine-keyman get lost.

For apps like Chromium that don't support surrounding text, ibus-engine-
keyman generates a backspace to delete a character from the context.
However, it appears that the version of `im-ibus.so` included in the
gnome-42-2204 snap package is too old and has a bug so that it appears
that Chromium would support surrounding text. Newer ibus versions have
this bug fixed.

Note: to properly work with apps that don't support surrounding text,
the version of ibus-engine-keyman included in the Ubuntu repos (Keyman
17) requires a patched version of ibus that didn't make it to the Ubuntu
repos. It can be installed from
https://launchpad.net/~keymanapp/+archive/ubuntu/keyman. Alternatively,
the upcoming Keyman 18 no longer needs a patched ibus and can be
installed from https://launchpad.net/~keymanapp/+archive/ubuntu/keyman-
beta.

To reproduce:
- install the beta version of Keyman 18 from 
https://launchpad.net/~keymanapp/+archive/ubuntu/keyman-beta, or Keyman 17 from 
the Ubuntu repos and the patched ibus from 
https://launchpad.net/~keymanapp/+archive/ubuntu/keyman
- install the "IPA (SIL)" keyboard from https://keyman.com/keyboards/sil_ipa by 
running: `km-package-install -p sil_ipa`
- open Chromium
- switch to the "Undetermined (IPA (SIL))" keyboard
- in a input field in Chromium, type n>

Expected output:
ŋ

Actual outputː
nŋ

(What's happening: after receiving the ">" keypress, ibus-engine-keyman
checks if the app that has the focus supports surrounding text. If it
does, it calls `ibus_engine_delete_surrounding_text` to delete the "n",
otherwise generates a backspace to delete the "n". This is followed by
outputting "ŋ". Since the im-ibus.so available in the Chromium snap
package contains a bug, ibus-engine-keyman gets the information that
Chromium supports surrounding text. However, Chromium doesn't implement
that and so doesn't actually delete the character. Ibus has already
fixed the bug, but that isn't yet available in the
Chromium/gnome-42-2204 snap package)

See issues in Ibus and Keyman:
- https://github.com/keymanapp/keyman/issues/13133
- https://github.com/ibus/ibus/issues/2539, particularly comment 
https://github.com/ibus/ibus/issues/2539#issuecomment-1816649698

Additional information:
0. uname -a; type -a chromium

Linux ubuntu24.10 6.11.0-18-generic #18-Ubuntu SMP PREEMPT_DYNAMIC Fri Feb  7 
22:34:25 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
chromium is /snap/bin/chromium

1. /snap/bin/chromium --enable-logging=stderr.

update.go:85: cannot change mount namespace according to change mount 
(/var/lib/snapd/hostfs/usr/local/share/doc /usr/local/share/doc none bind,ro 0 
0): cannot open directory "/usr/local/share": permission denied
update.go:85: cannot change mount namespace according to change mount 
(/var/lib/snapd/hostfs/usr/share/gimp/2.0/help /usr/share/gimp/2.0/help none 
bind,ro 0 0): cannot write to "/var/lib/snapd/hostfs/usr/share/gimp/2.0/help" 
because it would affect the host in "/var/lib/snapd"
update.go:85: cannot change mount namespace according to change mount 
(/var/lib/snapd/hostfs/usr/share/gtk-doc /usr/share/gtk-doc none bind,ro 0 0): 
cannot write to "/var/lib/snapd/hostfs/usr/share/gtk-doc" because it would 
affect the host in "/var/lib/snapd"
update.go:85: cannot change mount namespace according to change mount 
(/var/lib/snapd/hostfs/usr/share/javascript /usr/share/javascript none bind,ro 
0 0): cannot write to "/var/lib/snapd/hostfs/usr/share/javascript" because it 
would affect the host in "/var/lib/snapd"
update.go:85: cannot change mount namespace according to change mount 
(/var/lib/snapd/hostfs/usr/share/libreoffice/help /usr/share/libreoffice/help 
none bind,ro 0 0): cannot write to 
"/var/lib/snapd/hostfs/usr/share/libreoffice/help" because it would affect the 
host in "/var/lib/snapd"
update.go:85: cannot change mount namespace according to change mount 
(/var/lib/snapd/hostfs/usr/share/sphinx_rtd_theme /usr/share/sphinx_rtd_theme 
none bind,ro 0 0): cannot write to 
"/var/lib/snapd/hostfs/usr/share/sphinx_rtd_theme" because it would affect the 
host in "/var/lib/snapd"
update.go:85: cannot change mount namespace according to change mount 
(/var/lib/snapd/hostfs/usr/share/xubuntu-docs /usr/share/xubuntu-docs none 
bind,ro 0 0): cannot write to "/var/lib/snapd/hostfs/usr/share/xubuntu-docs" 
because it would affect the host in "/var/lib/snapd"
[0220/174807.016918:ERROR:logging_chrome.cc(214)] Invalid logging destination: 
stderr.
[0220/174807.078015:ERROR:logging_chrome.cc(214)] Invalid logging destination: 
stderr.
[0220/174807.079203:ERROR:logging_chrome.cc(214)] Invalid logging destination: 
stderr.
Gtk-Message: 17:48:07.210: Not loading module "atk-bridge": The functionality 
is provided by GTK natively. Please try to not load it.

(chrome:3747): Gtk-WARNING **: 17:48:07.289: GTK+ module 
/snap/chromium/3040/gnome-platform/usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so
 cannot be loaded.
GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not 
supported.
Gtk-Message: 17:48:07.289: Failed to load module "canberra-gtk-module"

(chrome:3747): Gtk-WARNING **: 17:48:07.290: GTK+ module 
/snap/chromium/3040/gnome-platform/usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so
 cannot be loaded.
GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not 
supported.
Gtk-Message: 17:48:07.290: Failed to load module "canberra-gtk-module"
[0220/174807.451311:ERROR:logging_chrome.cc(214)] Invalid logging destination: 
stderr.
[3747:3747:0220/174822.091864:ERROR:new_tab_page_handler.cc(1306)] NewTabPage 
loaded into a non-browser-tab context

2. snap info chromium; snap connections chromium

name:      chromium
summary:   Chromium web browser, open-source version of Chrome
publisher: Canonical✓
store-url: https://snapcraft.io/chromium
contact:   
https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+bugs?field.tag=snap
license:   unset
description: |
  An open-source browser project that aims to build a safer, faster, and more
  stable way for all Internet users to experience the web.
commands:
  - chromium.chromedriver
  - chromium
services:
  chromium.daemon: simple, disabled, inactive
snap-id:      XKEcBqPM06H1Z7zGOdG5fbICuf8NWK5R
tracking:     latest/stable/core24-lp2072395
refresh-date: today at 12:09 CET
channels:
  latest/stable:    133.0.6943.53 2025-02-10 (3040) 185MB -
  latest/candidate: 133.0.6943.98 2025-02-15 (3043) 185MB -
  latest/beta:      133.0.6943.35 2025-01-31 (3037) 184MB -
  latest/edge:      133.0.6905.0  2025-01-15 (3024) 186MB -
installed:          133.0.6943.53            (3040) 185MB -
Interface                 Plug                                    Slot          
                  Notes
audio-playback            chromium:audio-playback                 
:audio-playback                 -
audio-record              chromium:audio-record                   :audio-record 
                  -
bluez                     chromium:bluez                          :bluez        
                  -
browser-support           chromium:browser-sandbox                
:browser-support                -
camera                    chromium:camera                         :camera       
                  -
content                   chromium:foo-install-cups               -             
                  -
content[gnome-42-2204]    chromium:gnome-42-2204                  
gnome-42-2204:gnome-42-2204     -
content[gtk-3-themes]     chromium:gtk-3-themes                   
gtk-common-themes:gtk-3-themes  -
content[icon-themes]      chromium:icon-themes                    
gtk-common-themes:icon-themes   -
content[sound-themes]     chromium:sound-themes                   
gtk-common-themes:sound-themes  -
cups                      chromium:cups                           cups:cups     
                  -
desktop                   chromium:desktop                        :desktop      
                  -
desktop-legacy            chromium:desktop-legacy                 
:desktop-legacy                 -
gsettings                 chromium:gsettings                      :gsettings    
                  -
hardware-observe          chromium:hardware-observe               
:hardware-observe               -
hidraw                    chromium:hidraw                         -             
                  -
home                      chromium:home                           :home         
                  -
joystick                  chromium:joystick                       :joystick     
                  -
mount-observe             chromium:mount-observe                  -             
                  -
mpris                     -                                       
chromium:mpris                  -
network                   chromium:network                        :network      
                  -
network-bind              chromium:network-bind                   :network-bind 
                  -
network-manager           chromium:network-manager                -             
                  -
opengl                    chromium:opengl                         :opengl       
                  -
password-manager-service  chromium:password-manager-service       -             
                  -
pcscd                     chromium:pcscd                          -             
                  -
personal-files            chromium:chromium-config                
:personal-files                 -
personal-files            chromium:dot-local-share-applications   
:personal-files                 -
personal-files            chromium:dot-local-share-icons          
:personal-files                 -
pulseaudio                chromium:pulseaudio                     -             
                  -
raw-usb                   chromium:raw-usb                        -             
                  -
removable-media           chromium:removable-media                
:removable-media                -
screen-inhibit-control    chromium:screen-inhibit-control         
:screen-inhibit-control         -
system-files              chromium:etc-chromium-browser-policies  :system-files 
                  -
system-packages-doc       chromium:system-packages-doc            
:system-packages-doc            -
u2f-devices               chromium:u2f-devices                    :u2f-devices  
                  -
unity7                    chromium:unity7                         :unity7       
                  -
upower-observe            chromium:upower-observe                 
:upower-observe                 -
wayland                   chromium:wayland                        :wayland      
                  -
x11                       chromium:x11                            :x11          
                  -

** Affects: chromium-browser (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2098989

Title:
  Chromium looses keystrokes with ibus-engine-keyman

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+bug/2098989/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to