[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}
43 files changed