Emoji/character picker doesn't work in PWAs |
||
Issue descriptionChrome Version: 73.0.3660.0 OS: macOS 10.14.2 What steps will reproduce the problem? (1) Install and launch a PWA or shortcut (instructions in other UI>Browser>WebAppInstalls bugs). (2) Try to use the character picker (cmd+ctrl+space) to input text. What is the expected result? The character picker is usable. What happens instead? The character picker doesn't appear.
,
Jan 14
The emoji picker is also not available via the right click menu (as indicated by [1] in #1).
,
Jan 15
Here is when it does/doesn't work for PWA windows:
WebContents:
Ctrl-cmd-space: ❌
Context menu: ❌
Edit menu: ✅
Views:
Ctrl-cmd-space: ✅
Context menu: ❌
Edit menu: ✅
,
Jan 15
Screenshots for WIP CL: https://chromium-review.googlesource.com/c/chromium/src/+/1410406
,
Jan 16
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d0daef0dc485855ed768878c0d3d574597f64920 commit d0daef0dc485855ed768878c0d3d574597f64920 Author: Alan Cutter <alancutter@chromium.org> Date: Wed Jan 16 05:43:48 2019 Plumb ShowEmojiPanel call through to app shim process on Mac This CL moves the call to ui::ShowEmojiPanel from the browser process to the app shim process for PWA windows on Mac via the following path: RenderViewContextMenu::ExecuteCommand -> BrowserWindow/BrowserView -> Widget -> NativeWidgetMac --mojo--> BridgedNativeWidget/BridgedNativeWidgetImpl -> ui::ShowEmojiPanel() All other platforms will continue to call ui::ShowEmojiPanel() from the browser process. This fixes the "Emoji & Symbols" context menu entry for PWA text fields (in views and the web) on Mac. Web contents text field: https://bugs.chromium.org/p/chromium/issues/attachment?aid=375066&signed_aid=lq0pCXn7JRKe2K7sB--yMg==&inline=1 https://bugs.chromium.org/p/chromium/issues/attachment?aid=375067&signed_aid=zWSSoCeJA0cCWd9UqEC1-g==&inline=1 Views text field: https://bugs.chromium.org/p/chromium/issues/attachment?aid=375068&signed_aid=7zm-2jnWqB1UCPCk3XbQMA==&inline=1 https://bugs.chromium.org/p/chromium/issues/attachment?aid=375069&signed_aid=l5rcTwTlu-Kk2lKjYW2GyQ==&inline=1 Bug: 919167 Change-Id: Ia080e1bb13979d1cca920407d5a4e8ecacca791e Reviewed-on: https://chromium-review.googlesource.com/c/1410406 Reviewed-by: Dominick Ng <dominickn@chromium.org> Reviewed-by: ccameron <ccameron@chromium.org> Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org> Reviewed-by: Avi Drissman <avi@chromium.org> Commit-Queue: Alan Cutter <alancutter@chromium.org> Cr-Commit-Position: refs/heads/master@{#623125} [modify] https://crrev.com/d0daef0dc485855ed768878c0d3d574597f64920/chrome/browser/renderer_context_menu/render_view_context_menu.cc [modify] https://crrev.com/d0daef0dc485855ed768878c0d3d574597f64920/chrome/browser/ui/browser_window.h [modify] https://crrev.com/d0daef0dc485855ed768878c0d3d574597f64920/chrome/browser/ui/views/frame/browser_view.cc [modify] https://crrev.com/d0daef0dc485855ed768878c0d3d574597f64920/chrome/browser/ui/views/frame/browser_view.h [modify] https://crrev.com/d0daef0dc485855ed768878c0d3d574597f64920/chrome/test/base/test_browser_window.h [modify] https://crrev.com/d0daef0dc485855ed768878c0d3d574597f64920/ui/views/controls/views_text_services_context_menu_base.cc [modify] https://crrev.com/d0daef0dc485855ed768878c0d3d574597f64920/ui/views/widget/native_widget_mac.h [modify] https://crrev.com/d0daef0dc485855ed768878c0d3d574597f64920/ui/views/widget/native_widget_mac.mm [modify] https://crrev.com/d0daef0dc485855ed768878c0d3d574597f64920/ui/views/widget/native_widget_private.cc [modify] https://crrev.com/d0daef0dc485855ed768878c0d3d574597f64920/ui/views/widget/native_widget_private.h [modify] https://crrev.com/d0daef0dc485855ed768878c0d3d574597f64920/ui/views/widget/widget.cc [modify] https://crrev.com/d0daef0dc485855ed768878c0d3d574597f64920/ui/views/widget/widget.h [modify] https://crrev.com/d0daef0dc485855ed768878c0d3d574597f64920/ui/views_bridge_mac/bridged_native_widget_impl.h [modify] https://crrev.com/d0daef0dc485855ed768878c0d3d574597f64920/ui/views_bridge_mac/bridged_native_widget_impl.mm [modify] https://crrev.com/d0daef0dc485855ed768878c0d3d574597f64920/ui/views_bridge_mac/mojo/bridged_native_widget.mojom
,
Jan 16
Now that d0daef0dc485855ed768878c0d3d574597f64920 has landed the status is: WebContents: Ctrl-cmd-space: ❌ Context menu: ✅ Edit menu: ✅ Views: Ctrl-cmd-space: ✅ Context menu: ✅ Edit menu: ✅
,
Jan 18
(5 days ago)
This appears to be the stack trace for opening the emoji panel via pressing ctrl+cmd+space in a views text field in a PWA window: libdyld.dylib 6.0 start app_mode_loader 6.0 main libchrome_dll.dylib 6.0 ChromeAppModeStart_v4 libbase.dylib 6.0 base::RunLoop::Run() libbase.dylib 6.0 base::MessageLoopImpl::Run(bool) libbase.dylib 6.0 base::MessagePumpCFRunLoopBase::Run(base::MessagePump::Delegate*) libbase.dylib 6.0 base::MessagePumpNSApplication::DoRun(base::MessagePump::Delegate*) AppKit 6.0 -[NSApplication run] AppKit 5.0 -[NSApplication(NSEvent) sendEvent:] AppKit 5.0 routeKeyEquivalent AppKit 5.0 -[NSMenu performKeyEquivalent:] AppKit 5.0 -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] AppKit 5.0 -[NSMenuItem _corePerformAction] AppKit 5.0 -[NSApplication(NSResponder) sendAction:to:from:] HIToolbox 5.0 TSMLaunchCharacterPalette There doesn't seem to be any Chromium code in between the key routing and the launching of the emoji panel.
,
Jan 18
(5 days ago)
My mistake, there is Chromium code in there, I just wasn't running debug. #0 TSMLaunchCharacterPalette () #1 -[NSApplication(NSResponder) sendAction:to:from:] () #2 ::__43-[BrowserCrApplication sendAction:to:from:]_block_invoke() #3 base::mac::CallWithEHFrame(void () block_pointer) #4 ::-[BrowserCrApplication sendAction:to:from:](SEL, id, id) #5 -[NSMenuItem _corePerformAction] () #6 -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] () #7 -[NSMenu performKeyEquivalent:] () #8 routeKeyEquivalent () #9 -[NSApplication(NSEvent) sendEvent:] () #10 ::__34-[BrowserCrApplication sendEvent:]_block_invoke() #11 base::mac::CallWithEHFrame(void () block_pointer) #12 ::-[BrowserCrApplication sendEvent:](NSEvent *) #13 -[NSApplication run] () #14 base::MessagePumpNSApplication::DoRun(base::MessagePump::Delegate*) #15 base::MessagePumpCFRunLoopBase::Run(base::MessagePump::Delegate*) #16 base::MessageLoopImpl::Run(bool) #17 base::RunLoop::Run() #18 ChromeBrowserMainParts::MainMessageLoopRun(int*) #19 content::BrowserMainLoop::RunMainMessageLoopParts() #20 content::BrowserMainRunnerImpl::Run() #21 content::BrowserMain(content::MainFunctionParams const&)
,
Yesterday
(28 hours ago)
For some reason the NSEvent that comes through BrowserFrameMac::HandleKeyboardEvent() has type NSEventTypeFlagsChanged instead of NSEventTypeKeyDown (resulting in ShouldHandleKeyboardEvent(event) being false) on the final space key down of ctrl+cmd+space when performed in a PWA WebContents but not in a main browser WebContents. |
||
►
Sign in to add a comment |
||
Comment 1 by ccameron@chromium.org
, Jan 5