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 Desktop
Packages, which is subscribed to chromium-browser in Ubuntu.
https://bugs.launchpad.net/bugs/2098989

Title:
  Chromium looses keystrokes with ibus-engine-keyman

Status in chromium-browser package in Ubuntu:
  New

Bug description:
  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        
                    -

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


-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to