New issue
Advanced search Search tips

Issue 852386 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Use MTA for InputPane Access

Project Member Reported by dtapu...@chromium.org, Jun 13 2018

Issue description

STA is used with WinRT which isn't explicitly allowed. WinRT APIs really should be MTA.

The OnScreenKeyboardDisplayManagerInputPane objects really should use the TaskScheduler to interact with the WinRT APIs since that is MTA.

However there is one synchronous use of the API,
OnScreenKeyboardDisplayManagerInputPane::IsKeyboardVisible.

The Omnibox code uses this explicitly to determine what mode it should be in.

We should be able to provide this API not by calling an InputPane2 API but by only listening to the callbacks of showing vs hiding caching the value ourselves.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jun 13 2018

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

commit e77004194f84481a2dcf131c939761b1b010b312
Author: Dave Tapuska <dtapuska@chromium.org>
Date: Wed Jun 13 18:02:23 2018

Fix OnScreenKeyboard crash on windows ASAN debug build

Change Assert to STA from MTA. Add comment and bug describing that
WinRT use really should be in a MTA, but currently is on the UI thread
which is STA.

BUG=852317,852386

Change-Id: I3a284010638ae848b1e9b5ee6c92646a5a9a1dea
Reviewed-on: https://chromium-review.googlesource.com/1099184
Reviewed-by: Robert Liao <robliao@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566910}
[modify] https://crrev.com/e77004194f84481a2dcf131c939761b1b010b312/ui/base/ime/win/on_screen_keyboard_display_manager_input_pane.cc

Cc: dtapu...@chromium.org
Owner: nzolghadr@chromium.org
Cc: nzolghadr@chromium.org
Owner: lanwei@chromium.org
Lan, could you take a look at this one as well?
This is also related to the change that I landed to disable using input_pane in 70 for issue 873649. I guess we can re-enable that flag as well with the fix for this issue.
Sure, I will.
Labels: Hotlist-DesktopUIValid Hotlist-DesktopUIChecked
***UI Mass Triage*** 

As per comment #4, adding related labels.

Thanks
Labels: -Hotlist-DesktopUIValid Hotlist-DesktopUIToolingRequired
Project Member

Comment 7 by bugdroid1@chromium.org, Jan 16

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

commit 5c9ee8393d8b53fd823c2362912f8eb964e733e7
Author: lanwei <lanwei@chromium.org>
Date: Wed Jan 16 00:00:32 2019

Moving the COM processing to a background thread

Avoid to process COM events when the input method class for windows is
in the process of been destructed, we should create an inner class that
moves the COM processing to a background thread, which controls the
lifetime of all the COM objects.

Bug: 852386, 497381
Change-Id: Ia2517fb8ad813924d45ce58535b09360114d2f30
Reviewed-on: https://chromium-review.googlesource.com/c/1258182
Commit-Queue: Lan Wei <lanwei@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Navid Zolghadr <nzolghadr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622887}
[modify] https://crrev.com/5c9ee8393d8b53fd823c2362912f8eb964e733e7/ui/base/ime/win/on_screen_keyboard_display_manager_input_pane.cc
[modify] https://crrev.com/5c9ee8393d8b53fd823c2362912f8eb964e733e7/ui/base/ime/win/on_screen_keyboard_display_manager_input_pane.h
[modify] https://crrev.com/5c9ee8393d8b53fd823c2362912f8eb964e733e7/ui/base/ime/win/on_screen_keyboard_display_manager_unittest.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Jan 16

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

commit 5c9ee8393d8b53fd823c2362912f8eb964e733e7
Author: lanwei <lanwei@chromium.org>
Date: Wed Jan 16 00:00:32 2019

Moving the COM processing to a background thread

Avoid to process COM events when the input method class for windows is
in the process of been destructed, we should create an inner class that
moves the COM processing to a background thread, which controls the
lifetime of all the COM objects.

Bug: 852386, 497381
Change-Id: Ia2517fb8ad813924d45ce58535b09360114d2f30
Reviewed-on: https://chromium-review.googlesource.com/c/1258182
Commit-Queue: Lan Wei <lanwei@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Navid Zolghadr <nzolghadr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622887}
[modify] https://crrev.com/5c9ee8393d8b53fd823c2362912f8eb964e733e7/ui/base/ime/win/on_screen_keyboard_display_manager_input_pane.cc
[modify] https://crrev.com/5c9ee8393d8b53fd823c2362912f8eb964e733e7/ui/base/ime/win/on_screen_keyboard_display_manager_input_pane.h
[modify] https://crrev.com/5c9ee8393d8b53fd823c2362912f8eb964e733e7/ui/base/ime/win/on_screen_keyboard_display_manager_unittest.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Jan 17 (6 days ago)

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

commit 756e195fe4708fb63c7f75bddf9ee8208e20d5f1
Author: Lan Wei <lanwei@chromium.org>
Date: Thu Jan 17 02:44:19 2019

Enable “InputPaneOnScreenKeyboard” flag

Since we have submitted a fix for the crash of using
"OnScreenKeyboardDisplayManagerInputPane" for virtual keyboard on
higher version of Windows 10, we should enable
“InputPaneOnScreenKeyboard” flag.

Bug: 852386, 497381
Change-Id: Ideb1aa831d7d433df80838b652d71b6b839388b8
Reviewed-on: https://chromium-review.googlesource.com/c/1410173
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Lan Wei <lanwei@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623531}
[modify] https://crrev.com/756e195fe4708fb63c7f75bddf9ee8208e20d5f1/ui/base/ui_base_features.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Yesterday (39 hours ago)

Labels: merge-merged-3626
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cd533a88a972496e1d811331ed9c030884fe1432

commit cd533a88a972496e1d811331ed9c030884fe1432
Author: Lan Wei <lanwei@chromium.org>
Date: Mon Jan 21 20:20:08 2019

Moving the COM processing to a background thread

Avoid to process COM events when the input method class for windows is
in the process of been destructed, we should create an inner class that
moves the COM processing to a background thread, which controls the
lifetime of all the COM objects.

TBR=lanwei@chromium.org

(cherry picked from commit 5c9ee8393d8b53fd823c2362912f8eb964e733e7)

Bug: 852386, 497381
Change-Id: Ia2517fb8ad813924d45ce58535b09360114d2f30
Reviewed-on: https://chromium-review.googlesource.com/c/1258182
Commit-Queue: Lan Wei <lanwei@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Navid Zolghadr <nzolghadr@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#622887}
Reviewed-on: https://chromium-review.googlesource.com/c/1425965
Reviewed-by: Lan Wei <lanwei@chromium.org>
Cr-Commit-Position: refs/branch-heads/3626@{#745}
Cr-Branched-From: d897fb137fbaaa9355c0c93124cc048824eb1e65-refs/heads/master@{#612437}
[modify] https://crrev.com/cd533a88a972496e1d811331ed9c030884fe1432/ui/base/ime/win/on_screen_keyboard_display_manager_input_pane.cc
[modify] https://crrev.com/cd533a88a972496e1d811331ed9c030884fe1432/ui/base/ime/win/on_screen_keyboard_display_manager_input_pane.h
[modify] https://crrev.com/cd533a88a972496e1d811331ed9c030884fe1432/ui/base/ime/win/on_screen_keyboard_display_manager_unittest.cc

Project Member

Comment 11 by cr-audit...@appspot.gserviceaccount.com, Yesterday (39 hours ago)

Labels: Merge-Merged-72-3626
The following revision refers to this bug: 
https://chromium.googlesource.com/chromium/src.git/+/cd533a88a972496e1d811331ed9c030884fe1432

Commit: cd533a88a972496e1d811331ed9c030884fe1432
Author: lanwei@chromium.org
Commiter: lanwei@chromium.org
Date: 2019-01-21 20:20:08 +0000 UTC

Moving the COM processing to a background thread

Avoid to process COM events when the input method class for windows is
in the process of been destructed, we should create an inner class that
moves the COM processing to a background thread, which controls the
lifetime of all the COM objects.

TBR=lanwei@chromium.org

(cherry picked from commit 5c9ee8393d8b53fd823c2362912f8eb964e733e7)

Bug: 852386, 497381
Change-Id: Ia2517fb8ad813924d45ce58535b09360114d2f30
Reviewed-on: https://chromium-review.googlesource.com/c/1258182
Commit-Queue: Lan Wei <lanwei@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Navid Zolghadr <nzolghadr@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#622887}
Reviewed-on: https://chromium-review.googlesource.com/c/1425965
Reviewed-by: Lan Wei <lanwei@chromium.org>
Cr-Commit-Position: refs/branch-heads/3626@{#745}
Cr-Branched-From: d897fb137fbaaa9355c0c93124cc048824eb1e65-refs/heads/master@{#612437}

Sign in to add a comment