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

Issue 244688 link

Starred by 60 users

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Feature

Blocking:
issue 248482


Show other hotlists

Hotlists containing this issue:
Hotlist-1


Sign in to add a comment

Implement 'inputmode' attribute as per WHATWG spec

Project Member Reported by kochi@chromium.org, May 29 2013

Issue description

Comment 1 by tkent@chromium.org, May 29 2013

Labels: Cr-UI-Input-Text
Owner: yoichio@chromium.org
Status: Started

Comment 3 by kochi@chromium.org, Jun 27 2013

Blocking: chromium:248482
Project Member

Comment 4 by bugdroid1@chromium.org, Jun 28 2013

The following revision refers to this bug:
    http://src.chromium.org/viewvc/blink?view=rev&rev=153220

------------------------------------------------------------------------
r153220 | yoichio@chromium.org | 2013-06-28T08:17:12.325166Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/public/web/WebRuntimeFeatures.h?r1=153220&r2=153219&pathrev=153220
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/page/RuntimeEnabledFeatures.in?r1=153220&r2=153219&pathrev=153220
   M http://src.chromium.org/viewvc/blink/trunk/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp?r1=153220&r2=153219&pathrev=153220

Add runtime feature inputMode with status=test
This flag will be used to implement inputmode attribute.

BUG= 244688 

Review URL: https://chromiumcodereview.appspot.com/18034016
------------------------------------------------------------------------
Project Member

Comment 5 by bugdroid1@chromium.org, Jul 5 2013

The following revision refers to this bug:
    http://src.chromium.org/viewvc/blink?view=rev&rev=153609

------------------------------------------------------------------------
r153609 | yoichio@chromium.org | 2013-07-05T04:53:50.376896Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/WebKit/chromium/src/WebViewImpl.cpp?r1=153609&r2=153608&pathrev=153609
   D http://src.chromium.org/viewvc/blink/trunk/Source/WebKit/chromium/tests/data/input_mode_default_url.html?r1=153609&r2=153608&pathrev=153609
   M http://src.chromium.org/viewvc/blink/trunk/Source/WebKit/chromium/tests/data/input_mode_textarea_verbatim.html?r1=153609&r2=153608&pathrev=153609
   M http://src.chromium.org/viewvc/blink/trunk/public/web/WebTextInputInfo.h?r1=153609&r2=153608&pathrev=153609
   M http://src.chromium.org/viewvc/blink/trunk/Source/WebKit/chromium/tests/data/input_mode_default_verbatim.html?r1=153609&r2=153608&pathrev=153609

change WebViewImpl::inputModeOfFocusedElement to return lowered string.
This string casted to WebString is compared to string such as "kana", "verbatim".

The input mode attribute is enumerated attribute [1], which should be case-insensitive [2]. 
We had better normalize values in Blink because it's a web standard matter.

[1]
 http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#attr-fe-inputmode
[2]
 http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#enumerated-attribute

In this cl we decide to use lower case.

and delete an unused test case.

BUG= 244688 

Review URL: https://chromiumcodereview.appspot.com/18094004
------------------------------------------------------------------------
Project Member

Comment 6 by bugdroid1@chromium.org, Jul 31 2013

------------------------------------------------------------------------
r214577 | yoichio@chromium.org | 2013-07-31T05:36:03.776141Z

Changed paths:
   A http://src.chromium.org/viewvc/chrome/trunk/src/ui/base/ime/win/imm32_manager_unittest.cc?r1=214577&r2=214576&pathrev=214577
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/base/ime/win/imm32_manager.cc?r1=214577&r2=214576&pathrev=214577
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/base/ime/ime_unittests.gypi?r1=214577&r2=214576&pathrev=214577
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/base/ime/win/imm32_manager.h?r1=214577&r2=214576&pathrev=214577

add IMM32Manager::SetTextInputMode() function.
This function changes IME conversion status corresponding to |input_mode| such as "latin", "katakana".

BUG= 244688 

Review URL: https://chromiumcodereview.appspot.com/19690005
------------------------------------------------------------------------
Project Member

Comment 7 by bugdroid1@chromium.org, Aug 5 2013

------------------------------------------------------------------------
r215590 | yoichio@chromium.org | 2013-08-05T10:19:29.527832Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_win.cc?r1=215590&r2=215589&pathrev=215590
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_win.h?r1=215590&r2=215589&pathrev=215590

Change imm32_manager_ using scoped_ptr for mock testing.

We will add Imm32Manager mocking test.

BUG= 244688 

Review URL: https://chromiumcodereview.appspot.com/21835006
------------------------------------------------------------------------
Project Member

Comment 8 by bugdroid1@chromium.org, Aug 6 2013

------------------------------------------------------------------------
r215766 | yoichio@chromium.org | 2013-08-06T02:40:19.272303Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/base/ime/win/tsf_input_scope.cc?r1=215766&r2=215765&pathrev=215766

change TSFInputScope to have multiple InputScopes.

We will add TextInputMode to InputScope member.

BUG= 244688 

Review URL: https://chromiumcodereview.appspot.com/21130010
------------------------------------------------------------------------
Project Member

Comment 9 by bugdroid1@chromium.org, Aug 6 2013

------------------------------------------------------------------------
r215880 | yoichio@chromium.org | 2013-08-06T12:43:12.749469Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/base/ime/win/tsf_input_scope.cc?r1=215880&r2=215879&pathrev=215880
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/base/ime/win/tsf_input_scope.h?r1=215880&r2=215879&pathrev=215880
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_win.cc?r1=215880&r2=215879&pathrev=215880

change  tsf_input_scopes::SetInputScopeForTsfUnawareWindow to SetInputScopesForTsfUnawareWindow 
 function to set InputScopes representing both TextInputType and TextInputMode.

implementation:
 change GetSetInputScope to GetSetInputScopes function to get  SetInputScopes procedure address from msctf.dll.

BUG= 244688 
TEST=Manually done on Windows 8 with on-screen keyboard

Review URL: https://chromiumcodereview.appspot.com/21157006
------------------------------------------------------------------------
Project Member

Comment 11 by bugdroid1@chromium.org, Aug 9 2013

------------------------------------------------------------------------
r216671 | yoichio@chromium.org | 2013-08-09T12:45:18.311226Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/views/controls/prefix_selector.cc?r1=216671&r2=216670&pathrev=216671
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/views/controls/prefix_selector.h?r1=216671&r2=216670&pathrev=216671
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/keyboard/keyboard_controller_unittest.cc?r1=216671&r2=216670&pathrev=216671
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/views/ime/input_method_bridge.cc?r1=216671&r2=216670&pathrev=216671
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/views/controls/textfield/native_textfield_views.cc?r1=216671&r2=216670&pathrev=216671
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_aura.cc?r1=216671&r2=216670&pathrev=216671
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/base/ime/input_method_ibus_unittest.cc?r1=216671&r2=216670&pathrev=216671
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/views/ime/input_method_bridge.h?r1=216671&r2=216670&pathrev=216671
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/views/controls/textfield/native_textfield_views.h?r1=216671&r2=216670&pathrev=216671
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_aura.h?r1=216671&r2=216670&pathrev=216671
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/base/ime/text_input_client.h?r1=216671&r2=216670&pathrev=216671
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_win.cc?r1=216671&r2=216670&pathrev=216671
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_win.h?r1=216671&r2=216670&pathrev=216671
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/base/ime/win/tsf_text_store_unittest.cc?r1=216671&r2=216670&pathrev=216671

Add GetTextInputMode function to TextInputClient.

All implementation return TEXT_INPUT_MODE_DEFAULT for now.
RenderWidgetHostViewWin/Aura will change implementation.

This method will be used for Windows8 Metro inputscope.

BUG= 244688 

Review URL: https://chromiumcodereview.appspot.com/22401002
------------------------------------------------------------------------
Project Member

Comment 13 by bugdroid1@chromium.org, Aug 22 2013

The following revision refers to this bug:
    http://src.chromium.org/viewvc/blink?view=rev&rev=156548

------------------------------------------------------------------------
r156548 | yoichio@chromium.org | 2013-08-22T06:43:18.368657Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/public/web/WebRuntimeFeatures.h?r1=156548&r2=156547&pathrev=156548
   M http://src.chromium.org/viewvc/blink/trunk/Source/web/WebRuntimeFeatures.cpp?r1=156548&r2=156547&pathrev=156548

Add WebRuntimeFeatures::enableInputModeAttribute

Chromium will use this function to enable inputmode attribute of <input> or <text> Element.

BUG= 244688 

Review URL: https://chromiumcodereview.appspot.com/23112014
------------------------------------------------------------------------
Project Member

Comment 15 by bugdroid1@chromium.org, Aug 29 2013

------------------------------------------------------------------------
r220221 | yoichio@chromium.org | 2013-08-29T08:47:48.844887Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_win.cc?r1=220221&r2=220220&pathrev=220221

Support inputmode using InputScope for Windows8 desktop.

ImmSetConversionStatus doesn't work on Windows8:
http://msdn.microsoft.com/en-us/library/windows/desktop/hh994466.aspx

So we need to use InputScope to tell IME conversion modes(Hiragana, Katakana..).


BUG= 244688 
TEST=manually done with windows8 desktop using hardware keyboard and onscreen keyboard. Both MS-IME and GoogleJapaneseInput works with hardware keyboard. Unfortunately, onscreen keyboard with MS-IME doesn't work but with GoogleJapaneseIME works.

I wrote another CL to implement setting target InputScope(IS_KANA, IS_KATAKANA_FULLWIDTH  and IS_ALPHANUMERIC_FULLWIDTH) using COM interface, which is ITextStoreACP::RetrieveRequestedAttrs.
http://src.chromium.org/viewvc/chrome/trunk/src/ui/base/ime/win/tsf_text_store.cc
And try "chrome --enable-text-services-framework" on Windows8 desktop.
I found that
1. Both MS-IME and GoogleJapaneseInput work fine (changing conversion mode  "kana", "katakana" and "full-width-latin") with hardware keyboard input.
2. With onscreen keyboard, GoogleJapaneseInput works but MS-IME doesn't.
This behavior is same as this CL's try.

Additionally, I try to use CSS ime-mode property with IE10.
http://msdn.microsoft.com/en-us/library/ff521067.aspx
ime-mode property also sets IME status simply ON/OFF.
I got same result to above. So using IMEs with hardware keyboard works but only onscreenkeyboard-MSIME pair fails. 

In my conclusion, Windows8 onscreen keyboard with MS-IME takes a somewhat wrong with InputScope.

Review URL: https://chromiumcodereview.appspot.com/22794002
------------------------------------------------------------------------
Project Member

Comment 16 by bugdroid1@chromium.org, Aug 29 2013

Project Member

Comment 17 by bugdroid1@chromium.org, Aug 30 2013

------------------------------------------------------------------------
r220511 | yoichio@chromium.org | 2013-08-30T05:37:53.971525Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_win.cc?r1=220511&r2=220510&pathrev=220511
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/base/ime/win/tsf_text_store.cc?r1=220511&r2=220510&pathrev=220511

Support inputmode using InputScope for Windows8 metro.

Chrome runs in TSF mode at Windows8 metro.
We use COM interface ITextStoreACP::RetrieveRequestedAttrs to tell InputScope to IME in the mode.
TSFTextStore, which implements ITextStoreACP, knows target inputmode through TextInputClient::GetTextInputMode and get InputScope using tsf_inputscope::CreateInputScope appending to text input type.
RenderWidgetHostViewWin implements TextInputClient::GetTextInputMode.

BUG= 244688 
TEST=Run "chrome --enable-text-services-framework --enable-input-mode-attribute" at windows8 desktop and tests manually using hardware keyboard and onscreen keyboard. Both MS-IME and GoogleJapaneseInput works with hardware keyboard. Unfortunately, onscreen keyboard with MS-IME doesn't work but with GoogleJapaneseIME works. But there might be some issue in onscreen keyboard with MS-IME.

Review URL: https://chromiumcodereview.appspot.com/23542003
------------------------------------------------------------------------
Project Member

Comment 19 by bugdroid1@chromium.org, Sep 4 2013

------------------------------------------------------------------------
r221128 | yoichio@chromium.org | 2013-09-04T03:06:23.817255Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_win.cc?r1=221128&r2=221127&pathrev=221128
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_win.h?r1=221128&r2=221127&pathrev=221128
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_win_browsertest.cc?r1=221128&r2=221127&pathrev=221128
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_mac.h?r1=221128&r2=221127&pathrev=221128
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_impl.cc?r1=221128&r2=221127&pathrev=221128
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/port/browser/render_widget_host_view_port.h?r1=221128&r2=221127&pathrev=221128
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/test_render_view_host.h?r1=221128&r2=221127&pathrev=221128
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_android.cc?r1=221128&r2=221127&pathrev=221128
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_android.h?r1=221128&r2=221127&pathrev=221128
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_mac.mm?r1=221128&r2=221127&pathrev=221128
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_gtk.cc?r1=221128&r2=221127&pathrev=221128
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_gtk.h?r1=221128&r2=221127&pathrev=221128
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_guest.cc?r1=221128&r2=221127&pathrev=221128
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_aura.cc?r1=221128&r2=221127&pathrev=221128
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_guest.h?r1=221128&r2=221127&pathrev=221128
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_aura.h?r1=221128&r2=221127&pathrev=221128

reorder RenderWidgetHostViewPort::TextInputTypeChanged argument

This CL is to intent that we have two different fields that represent input field attributes.

BUG= 244688 

Review URL: https://chromiumcodereview.appspot.com/23604019
------------------------------------------------------------------------
Project Member

Comment 20 by bugdroid1@chromium.org, Sep 6 2013

------------------------------------------------------------------------
r221588 | yoichio@chromium.org | 2013-09-06T05:48:45.796722Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_aura.cc?r1=221588&r2=221587&pathrev=221588
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_aura.h?r1=221588&r2=221587&pathrev=221588
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/base/ime/input_method_imm32.cc?r1=221588&r2=221587&pathrev=221588

Support inputmode attribute for Windows Aura.

BUG= 244688 
TEST=Windows7 with MS-IME and GoogleJapaneseInput. Windows8 desktop using onscreen keyboard with MS-IME and GoogleJapaneseInput. The known issue about onscreenkeyboard and MS-IME still happens. https://src.chromium.org/viewvc/chrome?revision=220221&view=revision

Review URL: https://chromiumcodereview.appspot.com/23445020
------------------------------------------------------------------------
Project Member

Comment 21 by bugdroid1@chromium.org, Sep 24 2013

------------------------------------------------------------------------
r224954 | yukawa@chromium.org | 2013-09-24T08:16:59.249898Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/base/ime/input_method_imm32.cc?r1=224954&r2=224953&pathrev=224954

Add InputScope support into InputMethodIMM32

RWHVW has directly used InputScope APIs that are available
for IMM32 applications.
In order to migrate from RWHVW to RWHVA as Aura transition,
InputMethodIMM32 should also have InputScope support since
RWHVA delegates all the IME activities into InputMethodIMM32.

BUG= 296505 ,  244688 
TEST=manually done with Aura build on Windows 8.1

Review URL: https://chromiumcodereview.appspot.com/23537064
------------------------------------------------------------------------
Project Member

Comment 22 by bugdroid1@chromium.org, Nov 27 2013

Using the reflection support in https://code.google.com/p/chromium/issues/detail?id=331694 , this enumerated attribute can now be expressed in IDL.

Comment 24 by kochi@chromium.org, Feb 18 2014

Cc: -kochi@chromium.org
Owner: kochi@chromium.org
Changing owner.
Project Member

Comment 26 by bugdroid1@chromium.org, Feb 21 2014

The following revision refers to this bug:
    http://src.chromium.org/viewvc/blink?view=rev&rev=167567

------------------------------------------------------------------------
r167567 | kochi@chromium.org | 2014-02-21T04:19:37.058901Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/RuntimeEnabledFeatures.in?r1=167567&r2=167566&pathrev=167567
   M http://src.chromium.org/viewvc/blink/trunk/Source/web/WebRuntimeFeatures.cpp?r1=167567&r2=167566&pathrev=167567
   M http://src.chromium.org/viewvc/blink/trunk/public/web/WebRuntimeFeatures.h?r1=167567&r2=167566&pathrev=167567

Make 'inputmode' attribute experimental from test.

The chromium side of the change is the only user of programmatic
access to the flag, the interface (enableInputModeAttribute())
is also going to be unnecessary.

This change depends on Chromium side change:
https://codereview.chromium.org/170293002/

BUG= 244688 

Review URL: https://codereview.chromium.org/170233003
------------------------------------------------------------------------

Comment 27 by kochi@chromium.org, Apr 17 2014

Status: Assigned

Comment 28 by kochi@chromium.org, Jun 11 2014

Cc: kochi@chromium.org
Owner: mlamouri@chromium.org
Assigning to Mounir.
Moving me to cc.
Cc: -kenjibaheux@chromium.org
Cc: bcwh...@chromium.org
So this was implemented by never shipped?  bcwhite has an intent-to-ship here: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/ppKpYmZazlQ as part of  issue 303883 .
Cc: mlamouri@chromium.org
Owner: ----
Status: Available
We have implemented and shipped 'autocapitalize'. Unassigning myself given that I have no plans in implementing inputmode.
Thanks a lot!
This has fixed https://code.google.com/p/chromium/issues/detail?id=509922 and our bug in Translate Onebox!
Cc: jdduke@chromium.org aurimas@chromium.org yukawa@chromium.org
 Issue 509922  has been merged into this issue.

Comment 34 by tkent@chromium.org, Jul 27 2015

Labels: -Cr-Blink
Cc: -aurimas@chromium.org
Project Member

Comment 36 by sheriffbot@chromium.org, Jul 3 2016

Labels: Hotlist-OpenBugWithCL
A change has landed for this issue, but it's been open for over 6 months. Please review and close it if applicable. If this issue should remain open, remove the "Hotlist-OpenBugWithCL" label. If no action is taken, it will be archived in 30 days.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Hotlist-OpenBugWithCL
Labels: -Pri-2 Pri-3
Owner: dtapu...@chromium.org
Status: Assigned (was: Available)
Labels: Hotlist-Input-Dev

Comment 40 by tkent@chromium.org, Aug 30 2017

Cc: dtapu...@chromium.org
 Issue 248482  has been merged into this issue.

Comment 41 by tkent@chromium.org, Aug 30 2017

Components: Blink>Input
Labels: -Type-Bug Type-Feature
Status: Fixed (was: Assigned)

Sign in to add a comment