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

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Feature



Sign in to add a comment

Chrome OS: Incognito window is not really incognito for IME users

Project Member Reported by yusukes@chromium.org, Oct 24 2013 Back to list

Issue description

Chrome Version       : 32.0.1678.0
OS Version: 4856.0.0

What steps will reproduce the problem?

1. Sign in
2. Press Ctrl+Shift+N to open an incognito window
3. Enable Japanese (or Chinese or whatever) IME
4. Click Omnibox
5. Type a sensitive or embarrassing word several times.
6. Switch back to a normal Chrome window.
7. Click Omnibox
8. Type a word whose prefix is the same as the sensitive word typed in 5.

What is the expected result?

In step 8, the word entered in 5 should never be suggested.

What happens instead of that?

It is suggested.

Please provide any additional information below. Attach a screenshot if
possible.

Please turn off the "learning" feature by default when in Incognito window. I feel like this is a privacy issue.

UserAgentString: Mozilla/5.0 (X11; CrOS x86_64 4856.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1678.0 Safari/537.36



 
I only tested nacl-mozc (for Japanese) but Chrome OS IMEs for other languages might have the same issue. Kenji, please cc: Input Tools folks if that is the case.

Labels: -Type-Bug Type-Feature
Owner: kenjibaheux@chromium.org
Status: Assigned (was: NULL)
Owner: xiangye@chromium.org
Status: Untriaged (was: NULL)
Assigning to Xiangye for triaging.
Status: Assigned (was: NULL)
Cc: -kenjibaheux@chromium.org
This bug is priority 1 or 2 and hasn't been touched in over 60 days.

Please do the following WITHIN THE NEXT 7 DAYS:
1: Repro the bug. If you can't repro, close it with a note to reopen if the problem still occurs.
2: If you CAN repro the problem please do one of the following
    A: Fix it.
    B: Find a new owner who is willing to fix it soon.
    C: Take yourself off of the bug and set the status to untriaged.

Thanks

Comment 8 by battre@chromium.org, Apr 11 2016

Components: Privacy

Comment 9 by yukawa@chromium.org, Aug 29 2017

Cc: wfh@chromium.org
Owner: rpop@chromium.org
rpop@: Can you find the right owner to work on this from Chrome team?  It's kinda disappointing that no progress has been made since this was filed roughly 4 years ago.
Cc: maajid@chromium.org tnagel@chromium.org glevin@chromium.org
Labels: Hotlist-Privacy
+some ChromeOS privacy folks
Cc: -yoichio@chromium.org

Comment 12 by rpop@chromium.org, Sep 7 2017

Cc: groby@chromium.org yyushkina@chromium.org rpop@chromium.org
Owner: ----
Hmm. I understand why this is unexpected from a user perspective. However, if you add a bookmark in incognito mode, it will persist in regular mode and this is by design.

I think the dividing principle is that bookmark add is an explicit action the user chose to take, while adding a sensitive word is happening implicitly without user intent.

Adding more people; I'm not sure who the correct owner is. Is this Blink input or browser spellcheck or something else?
The virtual keyboard on Android (gBoard) already has a concept of Incognito, we should definitely strive for the same on ChromeOS.

And yes, the difference w.r.t. bookmarks is definitely explicit user action.
> Is this Blink input or browser spellcheck or something else?

This is an issue of Chrome OS IME (input method editor) implementation. What has to be improved/modified I think are Chrome OS' IME extensions and the interface between Chrome browser and the extensions (which is probably https://developers.chrome.com/extensions/input_ime ).

The IMEs are component extensions, and are part of Chrome OS system image btw.

Comment 15 by rpop@chromium.org, Sep 7 2017

Cc: devlin@chromium.org tbuck...@chromium.org omrilio@chromium.org
+tbuckley for input and +omrilio for IME, and +devlin for extensions APIs
Cc: azurewei@chromium.org
Owner: shuchen@chromium.org
-> shuchen@ for IME triage; +azurewei@.
Cc: takaoka@chromium.org kinaba@chromium.org yhanada@chromium.org
+ARC IME and CrOS VK folks.
Owner: wuyingbing@chromium.org
Cc: rhalavati@chromium.org
Components: Privacy>Incognito
Hi,

Is this fixed?
Owner: iloahz@chromium.org
Hi,

Just did a quick look into this issue, and currently the IME extension lacks information of whether in incognito mode.

Hi Hanada, can you help implement this(i.e. add incognito info in onFocus event) on chrome side so we can fix this issue on extension side?

Thanks!
Thank you iloahz@ for checking.
Privacy-wise, this is a very important issue.
Cc: yangfan@chromium.org dvallet@chromium.org
Labels: -Pri-2 Pri-1
Wow, it's been 5 years...
While the dictionary is only on device, I do think we should keep information in incognito completely ephemeral with system apps. 

Fan/David, can we prioritize fixing this please, or at least get a plan to fix it within a quarter?
Cc: -tnagel@chromium.org
> Just did a quick look into this issue, and currently the IME extension lacks information of whether in incognito mode.

Would chrome.extension.inIncognitoContext work?
https://developer.chrome.com/extensions/extension#property-inIncognitoContext
Hi Devlin,

Thanks for providing the info!

I just had a try and found that the IME extension's instance runs in a normal tab and does not change with cursor's context change. Thanks for the help anyway.
As IME extension runs as a component extension and the suggested API is not to know whether focused textfield (which is in different window) is in incognito mode, simply using the API may not solve the problem.
Owner: yhanada@chromium.org
Adding a new field into InputContext object[1] looks primising to me. This is a change to public API and includes privacy related stuff, so we'll need privacy review for it.

[1]: https://developer.chrome.com/extensions/input_ime#type-InputContext
Owner: blakeo@chromium.org
Cc: -omrilio@chromium.org blakeo@chromium.org
Owner: shend@chromium.org
Does this new field have to be in the public API? I'm currently working on a change that exposes a private OnFocus event containing additional information, so maybe we can stash it there?
Cc: omrilio@chromium.org
oops, accidentally removed Omri :P
Project Member

Comment 33 by bugdroid1@chromium.org, May 15 (5 days ago)

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

commit ca53d5f8460c9d543fc49355ef87eaefc559224f
Author: Darren Shen <shend@chromium.org>
Date: Tue May 15 04:56:01 2018

[VK] Pass incognito information to IME API.

This patch adds a new attribute to the InputContext object in the IME
API called 'shouldDoLearning'. Textfields in incognito tabs will return
false for shouldDoLearning so that the IME can keep incognito and
non-incognito profiles separate.

To implement this, we add a new TextInputClient::ShouldDoLearning()
method that is implemented by various types of text fields. The most
interesting case is views::Textfield, which doesn't have any notion
of incognito, so it should be up to owner of the textfield to decide
if it's incognito or not. However, there are ~90 places where we
construct a views::Textfield, so to prevent this CL getting too large,
we default to 'false' for ShouldDoLearning and then we'll add support
for learning on all the different textfields as needed.

Bug: 311180
Change-Id: Id33b11505a2eb3154fed8c4747c05205c7bf7c77
Reviewed-on: https://chromium-review.googlesource.com/1049405
Reviewed-by: Yusuke Sato <yusukes@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: Michael Wasserman <msw@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: Shu Chen <shuchen@chromium.org>
Commit-Queue: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558615}
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ash/system/ime_menu/ime_menu_tray_unittest.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/chrome/browser/chromeos/input_method/input_method_engine_browsertests.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/chrome/browser/chromeos/input_method/input_method_engine_unittest.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/chrome/browser/extensions/api/input_ime/input_ime_api.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/chrome/browser/ui/input_method/input_method_engine_base.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/chrome/browser/ui/input_method/input_method_engine_unittest.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/chrome/browser/ui/views/ime_driver/remote_text_input_client.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/chrome/browser/ui/views/ime_driver/remote_text_input_client.h
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/chrome/browser/ui/views/omnibox/omnibox_view_views.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/chrome/browser/ui/views/omnibox/omnibox_view_views.h
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/chrome/common/extensions/api/input_ime.json
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/chrome/common/extensions/api/input_method_private.json
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/chrome/test/data/extensions/input_ime/main.js
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/components/arc/ime/arc_ime_service.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/components/arc/ime/arc_ime_service.h
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/content/browser/renderer_host/render_widget_host_view_aura.h
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/content/browser/renderer_host/text_input_manager.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/content/browser/renderer_host/text_input_manager.h
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/content/browser/web_contents/web_contents_impl.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/content/test/mock_render_widget_host_delegate.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ui/base/ime/chromeos/mock_ime_engine_handler.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ui/base/ime/dummy_input_method.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ui/base/ime/dummy_input_method.h
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ui/base/ime/dummy_text_input_client.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ui/base/ime/dummy_text_input_client.h
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ui/base/ime/ime_bridge.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ui/base/ime/ime_engine_handler_interface.h
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ui/base/ime/input_method.h
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ui/base/ime/input_method_auralinux.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ui/base/ime/input_method_base.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ui/base/ime/input_method_base.h
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ui/base/ime/input_method_chromeos.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ui/base/ime/input_method_win.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ui/base/ime/mock_input_method.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ui/base/ime/mock_input_method.h
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ui/base/ime/text_input_client.h
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ui/base/ime/win/tsf_text_store_unittest.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ui/views/controls/prefix_selector.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ui/views/controls/prefix_selector.h
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ui/views/controls/textfield/textfield.cc
[modify] https://crrev.com/ca53d5f8460c9d543fc49355ef87eaefc559224f/ui/views/controls/textfield/textfield.h

Comment 34 by shend@chromium.org, May 15 (5 days ago)

Cc: shend@chromium.org
Owner: wuyingbing@chromium.org
The IME extension InputContext should now have a shouldDoLearning field that IME can use. Yingbing, could someone on the IME side take over now? Thanks!

Sign in to add a comment