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

Issue 843332 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Dec 5
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug

Blocked on:
issue 876513

Blocking:
issue 665064
issue 897793
issue 646565



Sign in to add a comment

Eliminate ash dependencies from ChromeKeyboardUI

Project Member Reported by steve...@chromium.org, May 15 2018

Issue description

ChromeKeyboardUI calls:

ash::Shell::GetRootWindowForNewWindows()->GetHost()->GetInputMethod()

We need to remove / replace this.

 
Cc: shend@chromium.org
+shend for keyboard

This is for out-of-process ash ("mash" part of go/mustash)

We also need to replace ChromeShellDelegate::CreateKeyboardUI.

Blocking: 665064

Comment 4 by shend@chromium.org, Jun 12 2018

Status: Available (was: Untriaged)
ChromeKeyboardUI also calls ash::RootWindowController::ForWindow(root_window). It is to determine if a window is part of the IME container window.

Comment 5 by blakeo@chromium.org, Jun 13 2018

Owner: blakeo@chromium.org
Status: Assigned (was: Available)
See also  issue 646565 

Labels: Proj-Mustash
Labels: -Proj-Mustash Proj-Mash-SingleProcess
Cc: dtseng@chromium.org blakeo@chromium.org
Owner: steve...@chromium.org
Status: Started (was: Assigned)
Cc: est...@chromium.org sky@chromium.org
So this has two separate issues:

1. In ShouldWindowOverscroll(aura::Window* window), we have an exception for IME windows using the following logic:

return !ash::RootWindowController::ForWindow(window->GetRootWindow())
              ->GetContainer(ash::kShellWindowId_ImeWindowParentContainer)
              ->Contains(window);

It seems like we should be able to use a different mechanism to identify IME windows, maybe using Widget::InitParams.mus_properties, e.g. make the following logic always apply for mash (regardless of whether it is in process):

https://cs.chromium.org/chromium/src/chrome/browser/ui/ash/ash_util.cc?type=cs&q=SetupWidgetInitParamsForContainer&sq=package:chromium&g=0&l=38

Does that sound reasonable? Other suggestions?



2. ChromeKeyboardUI::GetInputMethod() is implemented as:

  ash::Shell::GetRootWindowForNewWindows()->GetHost()->GetInputMethod();

It is not remotely clear to me what the correct InputMethod* instance should be.



Oh, and then there is the minor issue for Mash-MultiProcess where ChromeKeyboardUI is created from Ash through ChromeShellDelegate and passed to keyboard::KeyboardController which is owned by Ash. Fixing that is going to be a much larger problem.

Cc: xiy...@chromium.org
+xiyuan

Re 1) If IME windows need special behaviors then adding an aura window property seems like one way to go. We have lots of ash-only window properties to support mash.

Re 2) Today in classic ash there is a single InputMethod* shared across the entire system:

https://cs.chromium.org/chromium/src/ui/aura/window_tree_host.cc?type=cs&sq=package:chromium&g=0&l=239

For mash I think we want to move to a model like desktop aura where there is one per toplevel window, and maybe one in the ash process. xiyuan would know more.

Re: making web stuff from ash, you might look at how the ChromeVox / accessibility panel is created. It's web content owned by chrome, but with special window handling in ash.

Cc: shuchen@chromium.org
+shuchen for thoughts on preparing for new mojo-based IMF work.

As James mentioned, for classic ash, there is only one shared IME across the system.

For single process mash, we would still have that so that local aura::Window (from ash) still works. For non-local aura::Windows, they will have a InputMethodMus to wrap IME calls into mojo calls and handled by InputMethodBridge [1]. InputMethodBridge runs in the browser process and would create a real IME - InputMethodChromeOS. I suspect ChromeKeyboardUI could use that one. To get that, instead of checking with ash, we could go through ui::IMEBridge since we are technically still in the same process. And instances of InputMethodChromeOS would notify IMEBridge via SetInputContextHandler when it is active (i.e. its TextInputClient is focused). We probably need to fix call sites of ChromeKeyboardUI::GetInputMethod() that assume the returned IME instance never changes.

Not sure how things would work for multi process mash. It looks like we need almost a rewrite for the whole KeybaordController/KeyboardUI infra.

[1]: https://cs.chromium.org/chromium/src/chrome/browser/ui/views/ime_driver/input_method_bridge_chromeos.h
Looking more closely at ShouldWindowOverscroll and how it is called, I have come to the conclusion that:

a) The correct solution is largely tied to how we resolve IME for multi-process ash.
b) ChromeKeyboardUI really needs to be re-factored and split across ash and chrome. Again, the exact split depends on how we implement IME.

i.e. as xiyuan@ mentions, this may require a re-write / re-design, and that may actually be easier than trying to hack together short term solutions for single process mash.

shuchen@ / shend@, are there any design docs that you can point me to for the active work on IME or the virtual keyboard? I'd like to understand where we are going before trying to "fix" anything short term (and potentially just muck it up).

Please refer to go/mojo-imf.

In the future, the apps (which holds the window/input-field implementations) and the imes (which listens to key strokes and provide the on-screen keyboard UI) are connected through the input method manager (IMM mojo service) lives in Mash.

IMHO, on-screen keyboard UI should be moved to Ash, as we want the on-screen keyboard can work on Android apps without browser process exists. Right?

Currently the on-screen keyboard UI is implemented as web view so it is avoidable to bring browser process. But we're planning to implement it as native UI in the future.

The docs for chrome_keyboard_ui say:

// Subclass of KeyboardUI. It is used by KeyboardController to get
// access to the virtual keyboard window and setup Chrome extension functions.

Looking at the code, one of the responsibilities of that class is to forward events to extensions (extensions::events::VIRTUAL_KEYBOARD_PRIVATE_ON_BOUNDS_CHANGED, extensions::events::VIRTUAL_KEYBOARD_PRIVATE_ON_KEYBOARD_CLOSED), and to signal extensions::VirtualKeyboardAPI::OnKeyboardConfigChanged().

Much of the rest of ChromeKeyboardUI can probably be moved to Ash, and a mojo interface could be used to route extension events and handle other chrome specific tasks.

There is also some contents:: specific code also, which may also need to live in Chrome?

If there is nobody actively re-factoring the KeyboardUI class, I will put together some diagrams to document it, and propose ways to break it up between Chrome and Ash.


Project Member

Comment 19 by bugdroid1@chromium.org, Aug 20

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

commit 57bf47c88638a9a81106a7f99889c5e4e8d3140b
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Mon Aug 20 18:32:33 2018

Elim ash::KeyboardUI

I discovered this class while looking at keyboard::KeyboardUI.
It has the comment:

// KeyboardUI wraps the appropriate keyboard ui depending upon whether
// ash is running in mus or non-mus.

KeyboardUIMash is unused, and there is no longer mus/mash
differentiation, so the class seems unnecessary.

It is also super confusing since there is also keyboard::KeyboardUI
which is effectively unrelated. It's functionality can easily be
directly integrated with the callers.

Bug:  843332 
Change-Id: Ib082a0f6f9bede2cef766c006e003dbe512be561
Reviewed-on: https://chromium-review.googlesource.com/1180255
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: Shu Chen <shuchen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584507}
[modify] https://crrev.com/57bf47c88638a9a81106a7f99889c5e4e8d3140b/ash/BUILD.gn
[delete] https://crrev.com/045915b0eb6e5937d85801d9a4b0d970e5424cff/ash/keyboard/keyboard_ui.cc
[delete] https://crrev.com/045915b0eb6e5937d85801d9a4b0d970e5424cff/ash/keyboard/keyboard_ui.h
[delete] https://crrev.com/045915b0eb6e5937d85801d9a4b0d970e5424cff/ash/keyboard/keyboard_ui_mash.cc
[delete] https://crrev.com/045915b0eb6e5937d85801d9a4b0d970e5424cff/ash/keyboard/keyboard_ui_mash.h
[delete] https://crrev.com/045915b0eb6e5937d85801d9a4b0d970e5424cff/ash/keyboard/keyboard_ui_observer.h
[modify] https://crrev.com/57bf47c88638a9a81106a7f99889c5e4e8d3140b/ash/keyboard/virtual_keyboard_controller.cc
[modify] https://crrev.com/57bf47c88638a9a81106a7f99889c5e4e8d3140b/ash/shell.cc
[modify] https://crrev.com/57bf47c88638a9a81106a7f99889c5e4e8d3140b/ash/shell.h
[modify] https://crrev.com/57bf47c88638a9a81106a7f99889c5e4e8d3140b/ash/system/virtual_keyboard/virtual_keyboard_tray.cc
[modify] https://crrev.com/57bf47c88638a9a81106a7f99889c5e4e8d3140b/ash/system/virtual_keyboard/virtual_keyboard_tray.h

Blocking: 646565
James/ Xiyuan - Are there existing examples where Ash owns a host window, and chrome owns the WebContents?

I am currently in the process of doing some cleanup to ChromeKeyboardUI which currently does a mix of WebContents stuff and aura::Window stuff. I believe that we can separate the two into Chrome and Ash, I'll just need a way to associate the Chrome Window hosting the WebContents with the Ash Window. Possibly there will also need to be a mojo API between the two, but I'm still sorting through that.

Hi Steven, I've played around with that class before, so let me know if you have any questions about the code :)
I only know that launcher answer card embed a WebContents in ash UI. This is broken for single process mash because ash is using aura LOCAL mode and the embedding code only works in MUS mode (i.e. there is a WindowTree). I re-opened  issue 812434  to track the work to make it work again.

Currently, launcher answer card is still using the AnswerCardContentsRegistry hack. 
You might want to chat with sky@.

I did something vaguely like this for ChromeVoxPanel / AccessibilityPanel. It's a widget with webcontents that is created by chrome, but the layout is managed by ash.

That said, ChromeVoxPanel isn't working in SingleProcessMash right now and I'm not sure why.

I think we need to get RemoteViewHost working with ws2.
Steven, is getting webcontents embedding working blocking you?
It will eventually blockme , but not until well after I get back from vacation on 9/5:

Currently I am splitting up the functionality of ChromeKeyboardUI, which is helping me wrap my head around the code, and should make the Chrome/Ash separation simpler, or at least more incremental.

Next I will need to flesh out keyboard.mojom so that the code that routes KeyboardController events to the extension API can use the mojo API instead (it  currently uses KeyboardControllerObserver).

Ultimately we will need Ash and keyboard::KeyboardController (which will only exist in Ash) to control the keyboard window (showing, hiding, placement), and Chrome to own the WebContents which contains the web view and the extension hooks. That's the part where it seems like I may be blocked but I'm not quite sure how that's going to look.

One piece that might be tricky is window bounds; there is a kind of complex relationship between window bounds and the extension IME API that I'm still wrapping my head around.

Project Member

Comment 28 by bugdroid1@chromium.org, Aug 21

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

commit 94a2696951fa1e6f237f21be69abd903beef9687
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Tue Aug 21 02:03:24 2018

Simplify ChromeKeyboardContentsDelegate and add simple test

ChromeKeyboardUI does a lot of things. This is just some small cleanup
in preparation for separating the WebContents Delegate/Observer code
from the aura::Window code.

It also adds a very basic unit test (a unit test file exists but it
contains no tests).

Bug:  843332 
Change-Id: I82096babb7d8e6c95ff2033c40841392893cfa0f
Reviewed-on: https://chromium-review.googlesource.com/1182001
Reviewed-by: Darren Shen <shend@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584590}
[modify] https://crrev.com/94a2696951fa1e6f237f21be69abd903beef9687/chrome/browser/ui/ash/chrome_keyboard_ui.cc
[modify] https://crrev.com/94a2696951fa1e6f237f21be69abd903beef9687/chrome/browser/ui/ash/chrome_keyboard_ui.h
[modify] https://crrev.com/94a2696951fa1e6f237f21be69abd903beef9687/chrome/browser/ui/ash/chrome_keyboard_ui_unittest.cc

Project Member

Comment 29 by bugdroid1@chromium.org, Aug 21

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

commit 9572c88286704503f87e49b7a0036bab234ccc79
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Tue Aug 21 18:26:30 2018

ChromeKeyboardUI: Fix method order and other cleanup

Bug:  843332 
Change-Id: Iff950164803f31d013a8a80fdded73f1e7f3bd7e
Reviewed-on: https://chromium-review.googlesource.com/1182411
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584846}
[modify] https://crrev.com/9572c88286704503f87e49b7a0036bab234ccc79/chrome/browser/ui/ash/chrome_keyboard_ui.cc
[modify] https://crrev.com/9572c88286704503f87e49b7a0036bab234ccc79/chrome/browser/ui/ash/chrome_keyboard_ui.h

Blockedon: 876513
Steven, I filed 876513 for getting app-list, and general embedding from ash working again.
Project Member

Comment 32 by bugdroid1@chromium.org, Aug 22

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

commit 41b1fa513dddfb04b2c18503e1f97a76f1560114
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Wed Aug 22 17:45:33 2018

Add ChromeKeyboardWebContents

This separates the WebContentsObserver and WebContentsDelegate code
from ChromeKeyboardUI.

Note: ChromeKeyboardWebContents has a dependency on ui::keyboard that
will need to be replaced with a mojo API call for multi process mash,
but the separation should at least help with the single process mash
split, and calls out / documents where the multi process mash change
needs to happen.

Bug:  843332 
Change-Id: I09a8ea3ac0536737d395fda372b98919221c1a3a
Reviewed-on: https://chromium-review.googlesource.com/1182679
Reviewed-by: Darren Shen <shend@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#585146}
[modify] https://crrev.com/41b1fa513dddfb04b2c18503e1f97a76f1560114/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/41b1fa513dddfb04b2c18503e1f97a76f1560114/chrome/browser/ui/ash/chrome_keyboard_ui.cc
[modify] https://crrev.com/41b1fa513dddfb04b2c18503e1f97a76f1560114/chrome/browser/ui/ash/chrome_keyboard_ui.h
[add] https://crrev.com/41b1fa513dddfb04b2c18503e1f97a76f1560114/chrome/browser/ui/ash/chrome_keyboard_web_contents.cc
[add] https://crrev.com/41b1fa513dddfb04b2c18503e1f97a76f1560114/chrome/browser/ui/ash/chrome_keyboard_web_contents.h
[add] https://crrev.com/41b1fa513dddfb04b2c18503e1f97a76f1560114/chrome/browser/ui/ash/chrome_keyboard_web_contents_unittest.cc
[modify] https://crrev.com/41b1fa513dddfb04b2c18503e1f97a76f1560114/chrome/test/BUILD.gn

I've made it possible to embed a webcontents into ash. See the patches linked from  bug 876513  for details.
Project Member

Comment 34 by bugdroid1@chromium.org, Sep 13

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

commit 68b565c011b512bb112c6374f75fdbb30defa8cc
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Thu Sep 13 15:16:24 2018

ChromeKeyboardUI: Extract ChromeKeyboardControllerObserver

Straightforward cleanup CL, no functionality changes.
This isolates the KeyboardController/extension dependencies from the
(more complex) ChromeKeyboardUI dependencies.

Bug:  843332 
Change-Id: I6a77f6ca8c839d45ec50a833dbac5b4dd555d0f8
Reviewed-on: https://chromium-review.googlesource.com/1222667
Reviewed-by: Shu Chen <shuchen@chromium.org>
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591013}
[modify] https://crrev.com/68b565c011b512bb112c6374f75fdbb30defa8cc/chrome/browser/ui/BUILD.gn
[add] https://crrev.com/68b565c011b512bb112c6374f75fdbb30defa8cc/chrome/browser/ui/ash/chrome_keyboard_controller_observer.cc
[add] https://crrev.com/68b565c011b512bb112c6374f75fdbb30defa8cc/chrome/browser/ui/ash/chrome_keyboard_controller_observer.h
[modify] https://crrev.com/68b565c011b512bb112c6374f75fdbb30defa8cc/chrome/browser/ui/ash/chrome_keyboard_ui.cc
[modify] https://crrev.com/68b565c011b512bb112c6374f75fdbb30defa8cc/chrome/browser/ui/ash/chrome_keyboard_ui.h

Project Member

Comment 35 by bugdroid1@chromium.org, Sep 13

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

commit 894287dc4143151a87654c7c8fff1de8ecc199ad
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Thu Sep 13 16:00:24 2018

Elim unused KeyboardUIService and keybaord.mojom

These are currently unused and will shortly be replaced. It will be
simpler to remove the unused code first since the location, ownership,
and API itself will likely all be different.

Bug:  843332 
Change-Id: I171bba0a1efb1afee383b8890b46491881ff1d0b
Reviewed-on: https://chromium-review.googlesource.com/1222282
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591028}
[modify] https://crrev.com/894287dc4143151a87654c7c8fff1de8ecc199ad/ash/BUILD.gn
[modify] https://crrev.com/894287dc4143151a87654c7c8fff1de8ecc199ad/chrome/browser/chromeos/BUILD.gn
[modify] https://crrev.com/894287dc4143151a87654c7c8fff1de8ecc199ad/chrome/browser/ui/BUILD.gn
[delete] https://crrev.com/f741847f8f4d1cf317b62e26fc8b1a54df9bb568/chrome/browser/ui/ash/keyboard_ui_service.cc
[delete] https://crrev.com/f741847f8f4d1cf317b62e26fc8b1a54df9bb568/chrome/browser/ui/ash/keyboard_ui_service.h
[modify] https://crrev.com/894287dc4143151a87654c7c8fff1de8ecc199ad/ui/keyboard/BUILD.gn
[delete] https://crrev.com/f741847f8f4d1cf317b62e26fc8b1a54df9bb568/ui/keyboard/keyboard.mojom
[modify] https://crrev.com/894287dc4143151a87654c7c8fff1de8ecc199ad/ui/keyboard/test/run_all_unittests.cc

Project Member

Comment 36 by bugdroid1@chromium.org, Sep 19

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

commit 09a198c9561be88a6b16fee3434c710883b125cf
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Wed Sep 19 18:19:14 2018

KeyboardController: Integrate code from keyboard_util.cc

This CL:
* Moves KeyboardConfig and the global instance and setter/getter to
  KeyboardController
* Moves KeyboardControlEvent and LogKeyboardControlEvent to
  KeyboardController (which is the only consumer)
* Moves KeyboardOverscrolOverride and SetKeyboardOverscrolOverride
  to KeyboardController
* Removes keyboard::IsKeyboardVisible (only one non test call which
  already checks enabled() separately)
* Moves InsertText to KeyboardController
* Makes some changes to KeyboardController to improve alignment of
  header definitions and implementations.
* Removes keyboard_util.h from keyboard_controller.h and removes
  unnecessary keyboard_util.h includes.

For trivial code removal from component_loader.cc:
TBR=benwells@chromium.org

Bug:  843332 
Change-Id: I5226380a80bba1286b36d5d68c5e30c74f4cd9ad
Reviewed-on: https://chromium-review.googlesource.com/1225853
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Shu Chen <shuchen@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592483}
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/ash/app_list/views/search_box_view.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/ash/keyboard/virtual_keyboard_unittest.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/ash/login/ui/lock_window.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/ash/magnifier/magnification_controller.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/ash/magnifier/magnification_controller_unittest.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/ash/root_window_controller_unittest.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/ash/shelf/shelf_layout_manager.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/ash/system/ime_menu/ime_menu_tray.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/ash/system/message_center/ash_popup_alignment_delegate_unittest.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/ash/wm/lock_layout_manager.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/ash/wm/lock_layout_manager_unittest.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/ash/wm/lock_window_state.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/chrome/browser/chromeos/input_method/input_method_engine_browsertests.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/chrome/browser/chromeos/login/lock/webui_screen_locker.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/chrome/browser/chromeos/login/ui/login_display_host_webui.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/chrome/browser/extensions/component_loader.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/chrome/browser/ui/ash/chrome_keyboard_ui.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/chrome/browser/ui/ash/chrome_keyboard_web_contents.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/chrome/browser/ui/ash/keyboard_end_to_end_browsertest.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/chrome/browser/ui/input_method/input_method_engine_base.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/ui/keyboard/keyboard_controller.h
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/ui/keyboard/keyboard_controller_unittest.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/ui/keyboard/keyboard_layout_manager.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/ui/keyboard/keyboard_util.h
[modify] https://crrev.com/09a198c9561be88a6b16fee3434c710883b125cf/ui/keyboard/keyboard_util_unittest.cc

Project Member

Comment 37 by bugdroid1@chromium.org, Sep 19

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

commit c1e2f78555a599043dbaf1930c6f9b0d41252643
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Wed Sep 19 19:52:38 2018

Remove KeyboardController::ui()

This removes direct access to KeyboardUI outside of tests while
the code is re-factored for Mash.

Bug:  843332 
Change-Id: Ic6b60032512b36b7ff1ae05bb8d12060db8f8d29
Reviewed-on: https://chromium-review.googlesource.com/1227171
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Reviewed-by: Shu Chen <shuchen@chromium.org>
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592526}
[modify] https://crrev.com/c1e2f78555a599043dbaf1930c6f9b0d41252643/ash/app_list/app_list_presenter_delegate_unittest.cc
[modify] https://crrev.com/c1e2f78555a599043dbaf1930c6f9b0d41252643/ash/login/ui/login_keyboard_test_base.cc
[modify] https://crrev.com/c1e2f78555a599043dbaf1930c6f9b0d41252643/ash/root_window_controller_unittest.cc
[modify] https://crrev.com/c1e2f78555a599043dbaf1930c6f9b0d41252643/ash/wm/lock_action_handler_layout_manager_unittest.cc
[modify] https://crrev.com/c1e2f78555a599043dbaf1930c6f9b0d41252643/ash/wm/lock_layout_manager_unittest.cc
[modify] https://crrev.com/c1e2f78555a599043dbaf1930c6f9b0d41252643/ash/wm/system_modal_container_layout_manager_unittest.cc
[modify] https://crrev.com/c1e2f78555a599043dbaf1930c6f9b0d41252643/ash/wm/workspace/workspace_layout_manager_unittest.cc
[modify] https://crrev.com/c1e2f78555a599043dbaf1930c6f9b0d41252643/chrome/browser/ui/ash/keyboard_controller_browsertest.cc
[modify] https://crrev.com/c1e2f78555a599043dbaf1930c6f9b0d41252643/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/c1e2f78555a599043dbaf1930c6f9b0d41252643/ui/keyboard/keyboard_controller.h
[modify] https://crrev.com/c1e2f78555a599043dbaf1930c6f9b0d41252643/ui/keyboard/keyboard_controller_unittest.cc
[modify] https://crrev.com/c1e2f78555a599043dbaf1930c6f9b0d41252643/ui/keyboard/keyboard_ui.cc
[modify] https://crrev.com/c1e2f78555a599043dbaf1930c6f9b0d41252643/ui/keyboard/keyboard_ui.h

Project Member

Comment 38 by bugdroid1@chromium.org, Sep 19

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

commit cedf185f79d7358f0e588d2b69f4ecd7e088e0ab
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Wed Sep 19 21:06:36 2018

keyboard_util: Remove flag/switch wrappers

This CL moves some common flag/switch wrappers into the callers to
remove unnecessary dependencies on keyboard_util.h. With the upcoming
Chrome/Ash separation, the wrappers cause more confusion than they
improve readability.

This CL also moves some keyboard_util.cc code only used in
KeyboardController to that class.

Bug:  843332 
Change-Id: I042928bebfe4f9ea93ccb4fb7a24f8fc46f555cf
Reviewed-on: https://chromium-review.googlesource.com/1226191
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Reviewed-by: Shu Chen <shuchen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592545}
[modify] https://crrev.com/cedf185f79d7358f0e588d2b69f4ecd7e088e0ab/chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc
[modify] https://crrev.com/cedf185f79d7358f0e588d2b69f4ecd7e088e0ab/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/cedf185f79d7358f0e588d2b69f4ecd7e088e0ab/chrome/browser/ui/ash/chrome_keyboard_ui.cc
[modify] https://crrev.com/cedf185f79d7358f0e588d2b69f4ecd7e088e0ab/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/cedf185f79d7358f0e588d2b69f4ecd7e088e0ab/ui/keyboard/keyboard_controller.h
[modify] https://crrev.com/cedf185f79d7358f0e588d2b69f4ecd7e088e0ab/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/cedf185f79d7358f0e588d2b69f4ecd7e088e0ab/ui/keyboard/keyboard_util.h

Project Member

Comment 39 by bugdroid1@chromium.org, Sep 20

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

commit 2457438e33bea6b89c3638226e6ac9824b61a80f
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Thu Sep 20 00:13:14 2018

Mash: Protect virtualKeyboard events for null KeyboardController

Currently the code is triggering a crash indesktopui_MashLogin:
http://ubercautotest.corp.google.com/tko/retrieve_logs.cgi?job=/results/239691238-chromeos-test/chromeos4-row2-rack3-host12/debug/

Bug:  843332 
For extensions change:
TBR=benwells@chromium.org

Change-Id: I51d94a6924407fffbb49994ff4cb02718b517866
Reviewed-on: https://chromium-review.googlesource.com/1235206
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592620}
[modify] https://crrev.com/2457438e33bea6b89c3638226e6ac9824b61a80f/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc

Project Member

Comment 40 by bugdroid1@chromium.org, Sep 20

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

commit 38a80266d5fe321ed9ef60cb05344f8cfd949244
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Thu Sep 20 17:29:01 2018

Revert "Mash: Protect virtualKeyboard events for null KeyboardController"

This reverts commit 2457438e33bea6b89c3638226e6ac9824b61a80f.

Reason for revert: desktopui_MashLogin is still failing

Original change's description:
> Mash: Protect virtualKeyboard events for null KeyboardController
> 
> Currently the code is triggering a crash indesktopui_MashLogin:
> http://ubercautotest.corp.google.com/tko/retrieve_logs.cgi?job=/results/239691238-chromeos-test/chromeos4-row2-rack3-host12/debug/
> 
> Bug:  843332 
> For extensions change:
> TBR=benwells@chromium.org
> 
> Change-Id: I51d94a6924407fffbb49994ff4cb02718b517866
> Reviewed-on: https://chromium-review.googlesource.com/1235206
> Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
> Reviewed-by: James Cook <jamescook@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#592620}

TBR=jamescook@chromium.org,stevenjb@chromium.org

Change-Id: If44890c68926d991d4642fde4566408b6ce57fa0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  843332 
Reviewed-on: https://chromium-review.googlesource.com/1236837
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592852}
[modify] https://crrev.com/38a80266d5fe321ed9ef60cb05344f8cfd949244/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc

Project Member

Comment 41 by bugdroid1@chromium.org, Sep 20

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

commit 9de918270e8ab88c342511cac74c8f38a8fb5dbc
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Thu Sep 20 17:38:21 2018

Revert "keyboard_util: Remove flag/switch wrappers"

This reverts commit cedf185f79d7358f0e588d2b69f4ecd7e088e0ab.

Reason for revert: Crashes in desktopui_MashLogin

Original change's description:
> keyboard_util: Remove flag/switch wrappers
> 
> This CL moves some common flag/switch wrappers into the callers to
> remove unnecessary dependencies on keyboard_util.h. With the upcoming
> Chrome/Ash separation, the wrappers cause more confusion than they
> improve readability.
> 
> This CL also moves some keyboard_util.cc code only used in
> KeyboardController to that class.
> 
> Bug:  843332 
> Change-Id: I042928bebfe4f9ea93ccb4fb7a24f8fc46f555cf
> Reviewed-on: https://chromium-review.googlesource.com/1226191
> Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
> Reviewed-by: Darren Shen <shend@chromium.org>
> Reviewed-by: Shu Chen <shuchen@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#592545}

TBR=stevenjb@chromium.org,shuchen@chromium.org,shend@chromium.org

Change-Id: I0875394e434c6beeceb11e93a64b16f1a5a42b7c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  843332 
Reviewed-on: https://chromium-review.googlesource.com/1236466
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592858}
[modify] https://crrev.com/9de918270e8ab88c342511cac74c8f38a8fb5dbc/chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc
[modify] https://crrev.com/9de918270e8ab88c342511cac74c8f38a8fb5dbc/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/9de918270e8ab88c342511cac74c8f38a8fb5dbc/chrome/browser/ui/ash/chrome_keyboard_ui.cc
[modify] https://crrev.com/9de918270e8ab88c342511cac74c8f38a8fb5dbc/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/9de918270e8ab88c342511cac74c8f38a8fb5dbc/ui/keyboard/keyboard_controller.h
[modify] https://crrev.com/9de918270e8ab88c342511cac74c8f38a8fb5dbc/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/9de918270e8ab88c342511cac74c8f38a8fb5dbc/ui/keyboard/keyboard_util.h

Project Member

Comment 42 by bugdroid1@chromium.org, Sep 20

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

commit 8cbb66a0085d0a0f9f76b6acfbdca2a2784c19ba
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Thu Sep 20 17:40:54 2018

Revert "Remove KeyboardController::ui()"

This reverts commit c1e2f78555a599043dbaf1930c6f9b0d41252643.

Reason for revert: desktopui_MashLogin is crashing

Original change's description:
> Remove KeyboardController::ui()
> 
> This removes direct access to KeyboardUI outside of tests while
> the code is re-factored for Mash.
> 
> Bug:  843332 
> Change-Id: Ic6b60032512b36b7ff1ae05bb8d12060db8f8d29
> Reviewed-on: https://chromium-review.googlesource.com/1227171
> Reviewed-by: James Cook <jamescook@chromium.org>
> Reviewed-by: Darren Shen <shend@chromium.org>
> Reviewed-by: Shu Chen <shuchen@chromium.org>
> Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#592526}

TBR=jamescook@chromium.org,stevenjb@chromium.org,shuchen@chromium.org,shend@chromium.org

Change-Id: I2708807e60023d952792e96ac58841c89a0353bc
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  843332 
Reviewed-on: https://chromium-review.googlesource.com/1236465
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592859}
[modify] https://crrev.com/8cbb66a0085d0a0f9f76b6acfbdca2a2784c19ba/ash/app_list/app_list_presenter_delegate_unittest.cc
[modify] https://crrev.com/8cbb66a0085d0a0f9f76b6acfbdca2a2784c19ba/ash/login/ui/login_keyboard_test_base.cc
[modify] https://crrev.com/8cbb66a0085d0a0f9f76b6acfbdca2a2784c19ba/ash/root_window_controller_unittest.cc
[modify] https://crrev.com/8cbb66a0085d0a0f9f76b6acfbdca2a2784c19ba/ash/wm/lock_action_handler_layout_manager_unittest.cc
[modify] https://crrev.com/8cbb66a0085d0a0f9f76b6acfbdca2a2784c19ba/ash/wm/lock_layout_manager_unittest.cc
[modify] https://crrev.com/8cbb66a0085d0a0f9f76b6acfbdca2a2784c19ba/ash/wm/system_modal_container_layout_manager_unittest.cc
[modify] https://crrev.com/8cbb66a0085d0a0f9f76b6acfbdca2a2784c19ba/ash/wm/workspace/workspace_layout_manager_unittest.cc
[modify] https://crrev.com/8cbb66a0085d0a0f9f76b6acfbdca2a2784c19ba/chrome/browser/ui/ash/keyboard_controller_browsertest.cc
[modify] https://crrev.com/8cbb66a0085d0a0f9f76b6acfbdca2a2784c19ba/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/8cbb66a0085d0a0f9f76b6acfbdca2a2784c19ba/ui/keyboard/keyboard_controller.h
[modify] https://crrev.com/8cbb66a0085d0a0f9f76b6acfbdca2a2784c19ba/ui/keyboard/keyboard_controller_unittest.cc
[modify] https://crrev.com/8cbb66a0085d0a0f9f76b6acfbdca2a2784c19ba/ui/keyboard/keyboard_ui.cc
[modify] https://crrev.com/8cbb66a0085d0a0f9f76b6acfbdca2a2784c19ba/ui/keyboard/keyboard_ui.h

Project Member

Comment 43 by bugdroid1@chromium.org, Sep 20

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

commit 250d247e5160bb66ff5a4db5d074d6deb7a37466
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Thu Sep 20 17:43:11 2018

Revert "KeyboardController: Integrate code from keyboard_util.cc"

This reverts commit 09a198c9561be88a6b16fee3434c710883b125cf.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> KeyboardController: Integrate code from keyboard_util.cc
> 
> This CL:
> * Moves KeyboardConfig and the global instance and setter/getter to
>   KeyboardController
> * Moves KeyboardControlEvent and LogKeyboardControlEvent to
>   KeyboardController (which is the only consumer)
> * Moves KeyboardOverscrolOverride and SetKeyboardOverscrolOverride
>   to KeyboardController
> * Removes keyboard::IsKeyboardVisible (only one non test call which
>   already checks enabled() separately)
> * Moves InsertText to KeyboardController
> * Makes some changes to KeyboardController to improve alignment of
>   header definitions and implementations.
> * Removes keyboard_util.h from keyboard_controller.h and removes
>   unnecessary keyboard_util.h includes.
> 
> For trivial code removal from component_loader.cc:
> TBR=benwells@chromium.org
> 
> Bug:  843332 
> Change-Id: I5226380a80bba1286b36d5d68c5e30c74f4cd9ad
> Reviewed-on: https://chromium-review.googlesource.com/1225853
> Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
> Reviewed-by: Shu Chen <shuchen@chromium.org>
> Reviewed-by: Darren Shen <shend@chromium.org>
> Reviewed-by: James Cook <jamescook@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#592483}

TBR=jamescook@chromium.org,stevenjb@chromium.org,shuchen@chromium.org,shend@chromium.org

Change-Id: Id568f0bdc20c3093f6757c644a6a9b8311f06e3a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  843332 
Reviewed-on: https://chromium-review.googlesource.com/1236841
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592860}
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/ash/app_list/views/search_box_view.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/ash/keyboard/virtual_keyboard_unittest.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/ash/login/ui/lock_window.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/ash/magnifier/magnification_controller.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/ash/magnifier/magnification_controller_unittest.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/ash/root_window_controller_unittest.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/ash/shelf/shelf_layout_manager.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/ash/system/ime_menu/ime_menu_tray.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/ash/system/message_center/ash_popup_alignment_delegate_unittest.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/ash/wm/lock_layout_manager.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/ash/wm/lock_layout_manager_unittest.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/ash/wm/lock_window_state.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/chrome/browser/chromeos/input_method/input_method_engine_browsertests.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/chrome/browser/chromeos/login/lock/webui_screen_locker.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/chrome/browser/chromeos/login/ui/login_display_host_webui.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/chrome/browser/extensions/component_loader.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/chrome/browser/ui/ash/chrome_keyboard_ui.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/chrome/browser/ui/ash/chrome_keyboard_web_contents.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/chrome/browser/ui/ash/keyboard_end_to_end_browsertest.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/chrome/browser/ui/input_method/input_method_engine_base.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/ui/keyboard/keyboard_controller.h
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/ui/keyboard/keyboard_controller_unittest.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/ui/keyboard/keyboard_layout_manager.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/ui/keyboard/keyboard_util.h
[modify] https://crrev.com/250d247e5160bb66ff5a4db5d074d6deb7a37466/ui/keyboard/keyboard_util_unittest.cc

Project Member

Comment 44 by bugdroid1@chromium.org, Oct 4

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

commit a00d64cc881bd0c8024485ac24404fb422defff3
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Thu Oct 04 00:17:22 2018

Introduce keyboard_controller.mojom

This CL renames ChromeKeyboardControllerObserver ->
ChromeKeyboardControllerClient and makes it a client of the
keyboard::mojom::KeyboardController interface.

Currently the client primarly serves as an observer, using the mojo
interface instead of implementing KeybardControllerObserver directly.

For trivial header removal from input_method_engine_base.cc:
TBR=shuchen@chromium.org

Bug:  843332 
Test: keyboard_unittests --gtest_filter=KeyboardControllerMojoImplTest
Change-Id: Id3de37e5bef9dddadc1561a14201f4577421826a
Reviewed-on: https://chromium-review.googlesource.com/c/1246746
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596436}
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/ash/BUILD.gn
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/ash/manifest.json
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/ash/mojo_interface_factory.cc
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/ash/shell.h
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/chrome/browser/chromeos/chrome_browser_main_chromeos.h
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/chrome/browser/chromeos/input_method/input_method_engine_browsertests.cc
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/chrome/browser/chromeos/login/ui/login_display_host_webui.cc
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/chrome/browser/chromeos/login/ui/oobe_ui_dialog_delegate.cc
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/chrome/browser/chromeos/login/ui/oobe_ui_dialog_delegate.h
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/chrome/browser/chromeos/login/ui/webui_login_view.cc
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/chrome/browser/chromeos/login/ui/webui_login_view.h
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/chrome/browser/ui/BUILD.gn
[add] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/chrome/browser/ui/ash/chrome_keyboard_controller_client.cc
[add] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/chrome/browser/ui/ash/chrome_keyboard_controller_client.h
[delete] https://crrev.com/491305e020111d979940c7e7f6d7a53ddd2cea86/chrome/browser/ui/ash/chrome_keyboard_controller_observer.cc
[delete] https://crrev.com/491305e020111d979940c7e7f6d7a53ddd2cea86/chrome/browser/ui/ash/chrome_keyboard_controller_observer.h
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/chrome/browser/ui/ash/chrome_keyboard_ui.cc
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/chrome/browser/ui/ash/chrome_keyboard_ui.h
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/chrome/browser/ui/input_method/input_method_engine_base.cc
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/ui/keyboard/BUILD.gn
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/ui/keyboard/DEPS
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/ui/keyboard/keyboard_controller.h
[add] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/ui/keyboard/keyboard_controller_mojo_impl.cc
[add] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/ui/keyboard/keyboard_controller_mojo_impl.h
[add] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/ui/keyboard/keyboard_controller_mojo_impl_unittest.cc
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/ui/keyboard/keyboard_ui.h
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/ui/keyboard/keyboard_util.h
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/ui/keyboard/keyboard_util_unittest.cc
[add] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/ui/keyboard/public/OWNERS
[add] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/ui/keyboard/public/keyboard_controller.mojom
[modify] https://crrev.com/a00d64cc881bd0c8024485ac24404fb422defff3/ui/keyboard/test/run_all_unittests.cc

Project Member

Comment 45 by bugdroid1@chromium.org, Oct 4

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

commit 5f63c6b09f29492ad55680dfef212c31eb7958f0
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Thu Oct 04 19:14:16 2018

KeyboardController: Integrate code from keyboard_util.cc (Take 2)

Originally landed then reverted because of null
KeyboardController::Get() results in multi process mash tests:
https://chromium-review.googlesource.com/c/chromium/src/+/1225853

Differences from the original CL:
* ChromeKeyboardControllerClient::Get/SetKeyboardConfig added and used
  instead of keyboardController::Get() calls for multi process safety.
* overscroll_override added to mojom::KeyboardConfig so that
  Get/SetKeyboardConfig can be used to configure it.

This CL:
* Moves the global mojom::KeyboardConfig instance and setter/getter to
  KeyboardController
* Moves KeyboardControlEvent and LogKeyboardControlEvent to
  KeyboardController (which is the only consumer)
* Moves overscroll override to KeyboardConfig
* Removes keyboard::IsKeyboardVisible (only one non test call which
  already checks enabled() separately)
* Moves InsertText to keyboard_controller.mojom
* Makes some changes to KeyboardController to improve alignment of
  header definitions and implementations.
* Removes keyboard_util.h from keyboard_controller.h and removes
  unnecessary keyboard_util.h includes.

For trivial code removal from component_loader.cc:
TBR=benwells@chromium.org

Bug:  843332 
Change-Id: I7a7843c47ae47dcdf5ebd623e353391b10962430
Reviewed-on: https://chromium-review.googlesource.com/c/1258088
Reviewed-by: Darren Shen <shend@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596796}
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ash/BUILD.gn
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ash/app_list/views/search_box_view.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ash/keyboard/virtual_keyboard_unittest.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ash/login/ui/lock_window.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ash/magnifier/magnification_controller.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ash/magnifier/magnification_controller_unittest.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ash/root_window_controller_unittest.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ash/shelf/shelf_layout_manager.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ash/system/ime_menu/ime_menu_tray.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ash/system/message_center/ash_popup_alignment_delegate_unittest.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ash/wm/lock_layout_manager.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ash/wm/lock_layout_manager_unittest.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ash/wm/lock_window_state.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/chrome/browser/chromeos/input_method/input_method_engine_browsertests.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/chrome/browser/chromeos/login/lock/webui_screen_locker.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/chrome/browser/chromeos/login/ui/login_display_host_webui.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/chrome/browser/extensions/component_loader.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/chrome/browser/ui/ash/chrome_keyboard_controller_client.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/chrome/browser/ui/ash/chrome_keyboard_controller_client.h
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/chrome/browser/ui/ash/chrome_keyboard_ui.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/chrome/browser/ui/ash/chrome_keyboard_web_contents.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/chrome/browser/ui/ash/keyboard_end_to_end_browsertest.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/testing/buildbot/filters/chromeos.mash.fyi.browser_tests.filter
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ui/keyboard/BUILD.gn
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ui/keyboard/keyboard_controller.h
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ui/keyboard/keyboard_controller_mojo_impl.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ui/keyboard/keyboard_controller_mojo_impl.h
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ui/keyboard/keyboard_controller_unittest.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ui/keyboard/keyboard_layout_manager.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ui/keyboard/keyboard_util.h
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ui/keyboard/keyboard_util_unittest.cc
[add] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ui/keyboard/public/keyboard_config_util.h
[modify] https://crrev.com/5f63c6b09f29492ad55680dfef212c31eb7958f0/ui/keyboard/public/keyboard_controller.mojom

Project Member

Comment 46 by bugdroid1@chromium.org, Oct 4

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

commit 1bed35b82b1163ddee9d528e5f8294116afb94a2
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Thu Oct 04 20:19:53 2018

Remove KeyboardController::ui() (Take 2)

Original CL:
https://chromium-review.googlesource.com/1227171

This removes direct access to KeyboardUI outside of tests while
the code is re-factored for Mash.

Bug:  843332 
Change-Id: Iff9b4f04e8e9aa88bb7a32d17aac1d6abad90065
Reviewed-on: https://chromium-review.googlesource.com/c/1259802
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596825}
[modify] https://crrev.com/1bed35b82b1163ddee9d528e5f8294116afb94a2/ash/app_list/app_list_presenter_delegate_unittest.cc
[modify] https://crrev.com/1bed35b82b1163ddee9d528e5f8294116afb94a2/ash/login/ui/login_keyboard_test_base.cc
[modify] https://crrev.com/1bed35b82b1163ddee9d528e5f8294116afb94a2/ash/root_window_controller_unittest.cc
[modify] https://crrev.com/1bed35b82b1163ddee9d528e5f8294116afb94a2/ash/wm/lock_action_handler_layout_manager_unittest.cc
[modify] https://crrev.com/1bed35b82b1163ddee9d528e5f8294116afb94a2/ash/wm/lock_layout_manager_unittest.cc
[modify] https://crrev.com/1bed35b82b1163ddee9d528e5f8294116afb94a2/ash/wm/system_modal_container_layout_manager_unittest.cc
[modify] https://crrev.com/1bed35b82b1163ddee9d528e5f8294116afb94a2/ash/wm/workspace/workspace_layout_manager_unittest.cc
[modify] https://crrev.com/1bed35b82b1163ddee9d528e5f8294116afb94a2/chrome/browser/ui/ash/keyboard_controller_browsertest.cc
[modify] https://crrev.com/1bed35b82b1163ddee9d528e5f8294116afb94a2/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/1bed35b82b1163ddee9d528e5f8294116afb94a2/ui/keyboard/keyboard_controller.h
[modify] https://crrev.com/1bed35b82b1163ddee9d528e5f8294116afb94a2/ui/keyboard/keyboard_controller_unittest.cc
[modify] https://crrev.com/1bed35b82b1163ddee9d528e5f8294116afb94a2/ui/keyboard/keyboard_ui.cc
[modify] https://crrev.com/1bed35b82b1163ddee9d528e5f8294116afb94a2/ui/keyboard/keyboard_ui.h

Project Member

Comment 47 by bugdroid1@chromium.org, Oct 4

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

commit 5877a072a3cb0a5954b5ee70f8a001413135fe5f
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Thu Oct 04 21:03:20 2018

keyboard_util: Remove flag/switch wrappers (Take 2)

Original CL: https://chromium-review.googlesource.com/1226191

This CL moves some common flag/switch wrappers into the callers to
remove unnecessary dependencies on keyboard_util.h. With the upcoming
Chrome/Ash separation, the wrappers cause more confusion than they
improve readability.

This CL also moves some keyboard_util.cc code only used in
KeyboardController to that class.

For minor changes to input_ime_api_chromeos.cc, approved in Take 1:
TBR=shuchen@chromium.org

Bug:  843332 
Change-Id: I4e6ee790190dbf10cd64a8d3a18fbeca982fce07
Reviewed-on: https://chromium-review.googlesource.com/c/1259478
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596849}
[modify] https://crrev.com/5877a072a3cb0a5954b5ee70f8a001413135fe5f/chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc
[modify] https://crrev.com/5877a072a3cb0a5954b5ee70f8a001413135fe5f/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/5877a072a3cb0a5954b5ee70f8a001413135fe5f/chrome/browser/ui/ash/chrome_keyboard_ui.cc
[modify] https://crrev.com/5877a072a3cb0a5954b5ee70f8a001413135fe5f/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/5877a072a3cb0a5954b5ee70f8a001413135fe5f/ui/keyboard/keyboard_controller.h
[modify] https://crrev.com/5877a072a3cb0a5954b5ee70f8a001413135fe5f/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/5877a072a3cb0a5954b5ee70f8a001413135fe5f/ui/keyboard/keyboard_util.h

Project Member

Comment 48 by bugdroid1@chromium.org, Oct 5

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

commit 42a4d4a986881ced4279a9499beeb722afaa726c
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Fri Oct 05 19:05:10 2018

Move KeyboardConfig to a separate keyboard_config.mojom

This also includes some cleanup of default values, renames
'override' -> 'behavior', and documents the
KeyboardOverscrollBehavior enum.

Bug:  843332 
Change-Id: I5149d41701ff44606f2ce4dec3f74d263ed411d2
Reviewed-on: https://chromium-review.googlesource.com/c/1262958
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#597227}
[modify] https://crrev.com/42a4d4a986881ced4279a9499beeb722afaa726c/ash/login/ui/lock_window.cc
[modify] https://crrev.com/42a4d4a986881ced4279a9499beeb722afaa726c/ash/magnifier/magnification_controller.cc
[modify] https://crrev.com/42a4d4a986881ced4279a9499beeb722afaa726c/ash/wm/lock_layout_manager_unittest.cc
[modify] https://crrev.com/42a4d4a986881ced4279a9499beeb722afaa726c/chrome/browser/chromeos/login/ui/login_display_host_webui.cc
[modify] https://crrev.com/42a4d4a986881ced4279a9499beeb722afaa726c/chrome/browser/ui/ash/chrome_keyboard_controller_client.cc
[modify] https://crrev.com/42a4d4a986881ced4279a9499beeb722afaa726c/ui/keyboard/BUILD.gn
[modify] https://crrev.com/42a4d4a986881ced4279a9499beeb722afaa726c/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/42a4d4a986881ced4279a9499beeb722afaa726c/ui/keyboard/keyboard_controller.h
[modify] https://crrev.com/42a4d4a986881ced4279a9499beeb722afaa726c/ui/keyboard/keyboard_util_unittest.cc
[add] https://crrev.com/42a4d4a986881ced4279a9499beeb722afaa726c/ui/keyboard/public/keyboard_config.mojom
[delete] https://crrev.com/30ba9b7b9cacfbcee275e548fe1b5e6aa30d8365/ui/keyboard/public/keyboard_config_util.h
[modify] https://crrev.com/42a4d4a986881ced4279a9499beeb722afaa726c/ui/keyboard/public/keyboard_controller.mojom

Project Member

Comment 49 by bugdroid1@chromium.org, Oct 10

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

commit 137a18e02d3710cb65e5b1c85665729509d8fd73
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Wed Oct 10 19:13:45 2018

KeyboardController: Replace enabled with IsEnabled

Currently the KeyboardController uses enabled() to check whether
EnableKeyboard() has been called. This is confusing since there is
no |enabled_| member, instead it should be named IsEnabled().

Also, there are multiple calls to enabled() && IsKeyboardVisible()
which should be logically redundant.

This CL also:
* Moves references to 'HotrodKeyboardEnabled' from keyboard_util.h to
  chrome_virtual_keyboard_delegate.cc, the only consumer.
* Renames mojom::KeyboardControllerObserver::OnKeyboardEnabledChanged
  -> OnKeyboardWindowDestroyed to better reflect the specific event
  that the sole client is interested in.

For trivial changes to:
  chrome/browser/ui/views/toolbar/browser_app_menu_button.cc [17]
  components/arc/ime/arc_ime_service.cc [16]
  components/exo/text_input.cc [14]
TBR=sky@chromium.org

Bug:  843332 
Change-Id: I6321f69dd983f79fe06c4658850196a2117eb924
Reviewed-on: https://chromium-review.googlesource.com/c/1265828
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Reviewed-by: Shu Chen <shuchen@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598436}
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/accelerators/accelerator_controller.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/accessibility/touch_exploration_manager.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/app_list/presenter/app_list_presenter_impl.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/app_list/views/app_list_folder_view.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/app_list/views/app_list_view.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/app_list/views/contents_view.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/app_list/views/folder_background_view.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/app_list/views/search_box_view.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/keyboard/virtual_keyboard_controller.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/login/ui/lock_contents_view.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/magnifier/magnification_controller.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/root_window_controller.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/shelf/shelf_view.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/shell.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/shell_unittest.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/system/ime_menu/ime_menu_tray.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/system/virtual_keyboard/virtual_keyboard_tray.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/wm/lock_action_handler_layout_manager_unittest.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/wm/lock_layout_manager_unittest.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/wm/lock_window_state.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/wm/system_modal_container_layout_manager.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ash/wm/system_modal_container_layout_manager_unittest.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/chrome/browser/chromeos/extensions/input_method_api.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/chrome/browser/chromeos/input_method/input_method_engine.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/chrome/browser/chromeos/input_method/input_method_manager_impl.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/chrome/browser/ui/ash/chrome_keyboard_controller_client.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/chrome/browser/ui/ash/chrome_keyboard_controller_client.h
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/chrome/browser/ui/ash/keyboard_end_to_end_browsertest.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/chrome/browser/ui/views/toolbar/browser_app_menu_button.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/components/arc/ime/arc_ime_service.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/components/exo/text_input.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ui/keyboard/keyboard_controller.h
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ui/keyboard/keyboard_controller_mojo_impl.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ui/keyboard/keyboard_controller_mojo_impl.h
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ui/keyboard/keyboard_controller_mojo_impl_unittest.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ui/keyboard/keyboard_controller_observer.h
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ui/keyboard/keyboard_event_filter.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ui/keyboard/public/keyboard_controller.mojom
[modify] https://crrev.com/137a18e02d3710cb65e5b1c85665729509d8fd73/ui/keyboard/test/keyboard_test_util.cc

Project Member

Comment 50 by bugdroid1@chromium.org, Oct 11

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

commit a0ea3094faaf3b237e39de8147c76e6950321d0f
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Thu Oct 11 22:27:51 2018

Move keyboard_controller.mojom to src/ash

This moves keyboard_controlelr.mojom to src/ash/public/interfaces so
that the implementation will be able to access the logic currently in
Shell::Enable/DisableKeyboard.

This also renames KeyboardControllerMojoImpl to AshKeyboardController
and moves the bulk of the Shell::Enable/DisableKeyboard logic to
AshKeyboardController, as well as ownership of
keyboard::KeyboardController.

Bug:  843332 
Change-Id: I7f4dd4ce94a582f193f7b71212afa31c97ab1fd2
Reviewed-on: https://chromium-review.googlesource.com/c/1269946
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Shu Chen <shuchen@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598983}
[modify] https://crrev.com/a0ea3094faaf3b237e39de8147c76e6950321d0f/ash/BUILD.gn
[add] https://crrev.com/a0ea3094faaf3b237e39de8147c76e6950321d0f/ash/keyboard/ash_keyboard_controller.cc
[add] https://crrev.com/a0ea3094faaf3b237e39de8147c76e6950321d0f/ash/keyboard/ash_keyboard_controller.h
[rename] https://crrev.com/a0ea3094faaf3b237e39de8147c76e6950321d0f/ash/keyboard/ash_keyboard_controller_unittest.cc
[modify] https://crrev.com/a0ea3094faaf3b237e39de8147c76e6950321d0f/ash/manifest.json
[modify] https://crrev.com/a0ea3094faaf3b237e39de8147c76e6950321d0f/ash/mojo_interface_factory.cc
[modify] https://crrev.com/a0ea3094faaf3b237e39de8147c76e6950321d0f/ash/public/interfaces/BUILD.gn
[rename] https://crrev.com/a0ea3094faaf3b237e39de8147c76e6950321d0f/ash/public/interfaces/keyboard_controller.mojom
[modify] https://crrev.com/a0ea3094faaf3b237e39de8147c76e6950321d0f/ash/shell.cc
[modify] https://crrev.com/a0ea3094faaf3b237e39de8147c76e6950321d0f/ash/shell.h
[modify] https://crrev.com/a0ea3094faaf3b237e39de8147c76e6950321d0f/ash/shell_observer.h
[modify] https://crrev.com/a0ea3094faaf3b237e39de8147c76e6950321d0f/ash/shell_unittest.cc
[modify] https://crrev.com/a0ea3094faaf3b237e39de8147c76e6950321d0f/ash/system/virtual_keyboard/virtual_keyboard_tray.cc
[modify] https://crrev.com/a0ea3094faaf3b237e39de8147c76e6950321d0f/ash/system/virtual_keyboard/virtual_keyboard_tray.h
[modify] https://crrev.com/a0ea3094faaf3b237e39de8147c76e6950321d0f/chrome/browser/ui/ash/chrome_keyboard_controller_client.cc
[modify] https://crrev.com/a0ea3094faaf3b237e39de8147c76e6950321d0f/chrome/browser/ui/ash/chrome_keyboard_controller_client.h
[modify] https://crrev.com/a0ea3094faaf3b237e39de8147c76e6950321d0f/ui/keyboard/BUILD.gn
[modify] https://crrev.com/a0ea3094faaf3b237e39de8147c76e6950321d0f/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/a0ea3094faaf3b237e39de8147c76e6950321d0f/ui/keyboard/keyboard_controller.h
[delete] https://crrev.com/1ac58b88f929a017ef1886ff030e84ddfe7cdcac/ui/keyboard/keyboard_controller_mojo_impl.cc
[delete] https://crrev.com/1ac58b88f929a017ef1886ff030e84ddfe7cdcac/ui/keyboard/keyboard_controller_mojo_impl.h
[modify] https://crrev.com/a0ea3094faaf3b237e39de8147c76e6950321d0f/ui/keyboard/keyboard_util.h
[modify] https://crrev.com/a0ea3094faaf3b237e39de8147c76e6950321d0f/ui/keyboard/test/run_all_unittests.cc

Project Member

Comment 51 by bugdroid1@chromium.org, Oct 18

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

commit b4634b3b5fa570b0a74a48640438ecf2461c3cfa
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Thu Oct 18 16:12:11 2018

KeyboardController: OnKeyboardDisabled -> OnKeyboardEnabledChanged

ChromeKeyboardControllerClient is going to need to keep track of
when the KeyboardController is (actually) enabled and disabled. This CL:

* Replaces the KeyboardControllerObserver::OnKeyboardDisabled with
  a more generalized OnKeyboardEnabledChanged.
* Replaces the (poorly named) mojom::KeyboardControllerObserver::
  OnKeyboardWindowDestroyed with OnKeyboardEnabledChanged.
* Eliminates the now redundant VirtualKeyboardControllerObserver with
  KeyboardControllerObservers, reducing overall complexity.
* Modifies exo/keyboard.cc to directly observe
  keyboard::KeyboardController instead of ash::VirtualKeyboardController
  and ash::AccessibilityController.

For minor change to test_suites.pyl:
TBR=bpastene@chromium.org

Bug:  843332 
Change-Id: I808c1f4ca3e732aa9b606810caa12533b9da8158
Reviewed-on: https://chromium-review.googlesource.com/c/1285329
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Yuichiro Hanada <yhanada@chromium.org>
Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600783}
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/ash/BUILD.gn
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/ash/accessibility/touch_exploration_manager.cc
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/ash/accessibility/touch_exploration_manager.h
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/ash/keyboard/ash_keyboard_controller.cc
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/ash/keyboard/ash_keyboard_controller.h
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/ash/keyboard/ash_keyboard_controller_unittest.cc
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/ash/keyboard/virtual_keyboard_controller.cc
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/ash/keyboard/virtual_keyboard_controller.h
[delete] https://crrev.com/cccd8b081ba6273a8ec5db88b6a7e428396d61fd/ash/keyboard/virtual_keyboard_controller_observer.h
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/ash/public/interfaces/keyboard_controller.mojom
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/chrome/browser/ui/ash/chrome_keyboard_controller_client.cc
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/chrome/browser/ui/ash/chrome_keyboard_controller_client.h
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/components/exo/BUILD.gn
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/components/exo/keyboard.cc
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/components/exo/keyboard.h
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/components/exo/wm_helper.cc
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/components/exo/wm_helper.h
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/testing/buildbot/chromium.chromiumos.json
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/testing/buildbot/chromium.memory.json
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/testing/buildbot/filters/BUILD.gn
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/testing/buildbot/filters/README.md
[add] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/testing/buildbot/filters/chromeos.single_process_mash.exo_unittests.filter
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/testing/buildbot/test_suites.pyl
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/ui/keyboard/keyboard_controller_observer.h
[modify] https://crrev.com/b4634b3b5fa570b0a74a48640438ecf2461c3cfa/ui/keyboard/keyboard_controller_unittest.cc

Project Member

Comment 52 by bugdroid1@chromium.org, Oct 18

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

commit c2433fd3edcf501e0107e6709ddd12d1c348b77a
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Thu Oct 18 16:54:30 2018

Add Enable methods to keyboard_controller.mojom

The CL:
* Introduces keyboard.mojom.KeyboardEnableState, an enum used to track
  the various states that control whether the virtual keyboard should
  be enabled. Some states enable the keyboard, others disable it.
* Moves ownership of the states and the state machine to determine when
  the keyboard should be enabled to KeyboardController.
* Adds mojo interfaces to set and clear states, get the current enabled
  state, and explicitly reload the keyboard.

Note: All mojo API calls to change an enable state will also enable or
disable the keyboard accordingly. This is consistent with existing
logic where these calls are made so should not change any behavior.

Note: Not all calls to keyboard_util.cc helpers have been replaced,
including a few in src/chrome, only places where no additional
re-factoring is required were changed.

Bug:  843332 
Change-Id: I64aad28f0c630ce5d37cab0e5ccfe40013078356
Reviewed-on: https://chromium-review.googlesource.com/c/1275132
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600798}
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/ash/keyboard/ash_keyboard_controller.cc
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/ash/keyboard/ash_keyboard_controller.h
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/ash/keyboard/ash_keyboard_controller_unittest.cc
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/ash/keyboard/virtual_keyboard_controller_unittest.cc
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/ash/public/interfaces/keyboard_controller.mojom
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/chrome/browser/chromeos/arc/input_method_manager/DEPS
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/chrome/browser/chromeos/arc/input_method_manager/arc_input_method_manager_service.cc
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/chrome/browser/chromeos/arc/input_method_manager/arc_input_method_manager_service_unittest.cc
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/chrome/browser/chromeos/login/DEPS
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/chrome/browser/chromeos/login/app_launch_controller.cc
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/chrome/browser/ui/ash/chrome_keyboard_controller_client.cc
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/chrome/browser/ui/ash/chrome_keyboard_controller_client.h
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/chrome/browser/ui/ash/chrome_keyboard_ui.cc
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/chrome/browser/ui/ash/launcher/DEPS
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/testing/buildbot/filters/chromeos.single_process_mash.ash_unittests.filter
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/ui/keyboard/BUILD.gn
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/ui/keyboard/keyboard_controller.h
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/ui/keyboard/keyboard_util.h
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/ui/keyboard/keyboard_util_unittest.cc
[modify] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/ui/keyboard/public/keyboard_config.mojom
[add] https://crrev.com/c2433fd3edcf501e0107e6709ddd12d1c348b77a/ui/keyboard/public/keyboard_enable_flag.mojom

Project Member

Comment 54 by bugdroid1@chromium.org, Oct 18

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

commit 89898d8bb2f375f9aec4090187be36874d6c8cae
Author: Scott Violet <sky@chromium.org>
Date: Thu Oct 18 22:22:22 2018

Revert "Add Enable methods to keyboard_controller.mojom"

This reverts commit c2433fd3edcf501e0107e6709ddd12d1c348b77a.

Reason for revert: Reverting as this seems to have caused test failures. See https://00e9e64bac17b1a1e709c8fd95db1163ae475ac6cb06a35508-apidata.googleusercontent.com/download/storage/v1/b/chromeos-autotest-results/o/249805514-chromeos-test%2Fchromeos4-row2-rack3-host13%2Fdebug%2Fchrome.20181018.142111.20626.dmp.txt?qk=AD5uMEsH944iWjB3hVfYpYveYY42yDmeSmaloi4T8m-qV5_5eEJmNDeb1lBby-lFFErlO5nO1QKigTyOqGM--MbgBRyVWOh1G71dEW0D1U8URRam461zfRh3yO4CsZ2gD4-F8rUcI3wlwDLIK8uiM6GgpljDlz8j_dUpxUZnjB2zzPDuXcRSW8njM3dEtsGnFkK3pRpRA7Ml_CYfC2efi41kv9cagTfZjme31xasl2qHrhH9U7_8AabIZzRQJXbZsVMQHfTsrQG5PCrLMgtuZrQojX9bx9CLqXYQbU6enBSR-GSCE76QhbU731YVfickBBA-cMEzWoN9IlysucYQxKe7nL4HELnqhP_RdPKbpyvHueQRFNeQG2wIs4Eko02vXqFc3isaXPzSUD35IH8nbxXtJeS4-heV7Tl3y3dwyJKJx6Ef4jKJzLx8iruvVEpvzDqEwswVlNrWjBDVScq9-mwhnQPiarhrKKxIzamGmyskBv9PzHlkvRntO-b2Me_j5R2SAxR7NVAdVbwdN05a9Ud_csUqpoUcg3c9GBYauKH3U9H5jmNwR927PHu0dtiiPJ31FgxPpG7s-VM9bNEiKBVJak3i1ZiANmHaDabPy34Efz2yhinKtx8ujApPjbTKVyYBdKNSBNKdhHG2Pl9eiDOL56tA7s52FiQ4mxwP85z1wvyzWHXn4G7ruHbKGmYU39zcmeiQ15fCQQmoDLr7VB_NRn7evWi0yvtB7GnLF6wHnP8NwHPDqcWfWc88S3rIPpHDyzoCL2TQ_IMKj4PCelPbcVKVPBOJzsMIYe8wZgM-P402yNyH4f0MX-4wQjHSVn3ueMJ3gTZA-sbNALo-qRz9jWqAkMOSWina_265HMh9hBQ3RwVN0BLts8F3M_REF9rtA_F2UZwy for one example.

Original change's description:
> Add Enable methods to keyboard_controller.mojom
> 
> The CL:
> * Introduces keyboard.mojom.KeyboardEnableState, an enum used to track
>   the various states that control whether the virtual keyboard should
>   be enabled. Some states enable the keyboard, others disable it.
> * Moves ownership of the states and the state machine to determine when
>   the keyboard should be enabled to KeyboardController.
> * Adds mojo interfaces to set and clear states, get the current enabled
>   state, and explicitly reload the keyboard.
> 
> Note: All mojo API calls to change an enable state will also enable or
> disable the keyboard accordingly. This is consistent with existing
> logic where these calls are made so should not change any behavior.
> 
> Note: Not all calls to keyboard_util.cc helpers have been replaced,
> including a few in src/chrome, only places where no additional
> re-factoring is required were changed.
> 
> Bug:  843332 
> Change-Id: I64aad28f0c630ce5d37cab0e5ccfe40013078356
> Reviewed-on: https://chromium-review.googlesource.com/c/1275132
> Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
> Reviewed-by: Tom Sepez <tsepez@chromium.org>
> Reviewed-by: Darren Shen <shend@chromium.org>
> Reviewed-by: James Cook <jamescook@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#600798}

TBR=jamescook@chromium.org,stevenjb@chromium.org,tsepez@chromium.org,shend@chromium.org

Change-Id: I6eabcf4bee1bfc53506a1cca8a2ba0d0e6aa14d2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  843332 
Reviewed-on: https://chromium-review.googlesource.com/c/1289954
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600941}
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/ash/keyboard/ash_keyboard_controller.cc
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/ash/keyboard/ash_keyboard_controller.h
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/ash/keyboard/ash_keyboard_controller_unittest.cc
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/ash/keyboard/virtual_keyboard_controller_unittest.cc
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/ash/public/interfaces/keyboard_controller.mojom
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/chrome/browser/chromeos/arc/input_method_manager/DEPS
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/chrome/browser/chromeos/arc/input_method_manager/arc_input_method_manager_service.cc
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/chrome/browser/chromeos/arc/input_method_manager/arc_input_method_manager_service_unittest.cc
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/chrome/browser/chromeos/login/DEPS
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/chrome/browser/chromeos/login/app_launch_controller.cc
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/chrome/browser/ui/ash/chrome_keyboard_controller_client.cc
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/chrome/browser/ui/ash/chrome_keyboard_controller_client.h
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/chrome/browser/ui/ash/chrome_keyboard_ui.cc
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/chrome/browser/ui/ash/launcher/DEPS
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/testing/buildbot/filters/chromeos.single_process_mash.ash_unittests.filter
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/ui/keyboard/BUILD.gn
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/ui/keyboard/keyboard_controller.h
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/ui/keyboard/keyboard_util.h
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/ui/keyboard/keyboard_util_unittest.cc
[modify] https://crrev.com/89898d8bb2f375f9aec4090187be36874d6c8cae/ui/keyboard/public/keyboard_config.mojom
[delete] https://crrev.com/092e11d3114b336a3690833d5c802736c9efc166/ui/keyboard/public/keyboard_enable_flag.mojom

Project Member

Comment 55 by bugdroid1@chromium.org, Oct 19

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

commit bfb8f93bca88e02b77f38949286ca581dc0e35f1
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Fri Oct 19 19:26:51 2018

Add Enable methods to keyboard_controller.mojom (Take 2)

The CL:
* Introduces keyboard.mojom.KeyboardEnableState, an enum used to track
  the various states that control whether the virtual keyboard should
  be enabled. Some states enable the keyboard, others disable it.
* Moves ownership of the states and the state machine to determine when
  the keyboard should be enabled to KeyboardController.
* Adds mojo interfaces to set and clear states, get the current enabled
  state, and explicitly reload the keyboard.

Note: All mojo API calls to change an enable state will also enable or
disable the keyboard accordingly. This is consistent with existing
logic where these calls are made so should not change any behavior.

Note: Not all calls to keyboard_util.cc helpers have been replaced,
including a few in src/chrome, only places where no additional
re-factoring is required were changed.

Bug:  843332 
Change-Id: Ic1741188e2e1ccafda4ad95a71063462ac7f52ff

From original CL:
TBR=tsepez@chromium.org,shend@chromium.org

Change-Id: Ic1741188e2e1ccafda4ad95a71063462ac7f52ff
Reviewed-on: https://chromium-review.googlesource.com/c/1291350
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601253}
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/ash/keyboard/ash_keyboard_controller.cc
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/ash/keyboard/ash_keyboard_controller.h
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/ash/keyboard/ash_keyboard_controller_unittest.cc
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/ash/keyboard/virtual_keyboard_controller_unittest.cc
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/ash/public/interfaces/keyboard_controller.mojom
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/chrome/browser/chromeos/arc/input_method_manager/DEPS
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/chrome/browser/chromeos/arc/input_method_manager/arc_input_method_manager_service.cc
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/chrome/browser/chromeos/arc/input_method_manager/arc_input_method_manager_service_unittest.cc
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/chrome/browser/chromeos/login/DEPS
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/chrome/browser/chromeos/login/app_launch_controller.cc
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/chrome/browser/ui/ash/chrome_keyboard_controller_client.cc
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/chrome/browser/ui/ash/chrome_keyboard_controller_client.h
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/chrome/browser/ui/ash/chrome_keyboard_ui.cc
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/chrome/browser/ui/ash/launcher/DEPS
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/testing/buildbot/filters/chromeos.single_process_mash.ash_unittests.filter
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/ui/keyboard/BUILD.gn
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/ui/keyboard/keyboard_controller.h
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/ui/keyboard/keyboard_util.h
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/ui/keyboard/keyboard_util_unittest.cc
[modify] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/ui/keyboard/public/keyboard_config.mojom
[add] https://crrev.com/bfb8f93bca88e02b77f38949286ca581dc0e35f1/ui/keyboard/public/keyboard_enable_flag.mojom

Blocking: 897793
Project Member

Comment 57 by bugdroid1@chromium.org, Oct 23

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

commit 676efee9870de6e405e89f14f13660af2c72d234
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Tue Oct 23 20:49:58 2018

Move ActivateKeyboard to AshKeyboardController

This CL removes RootWindowController::ActivateKeyboard and
DeactivatteKeyboard and replaces them with calls into
AshKeyboardController, simplifying the relationship.

Bug:  843332 
Change-Id: I78cde4b9b22ba1c9406cbc44dc90af41d4ce37bb
Reviewed-on: https://chromium-review.googlesource.com/c/1294691
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602080}
[modify] https://crrev.com/676efee9870de6e405e89f14f13660af2c72d234/ash/keyboard/ash_keyboard_controller.cc
[modify] https://crrev.com/676efee9870de6e405e89f14f13660af2c72d234/ash/keyboard/ash_keyboard_controller.h
[modify] https://crrev.com/676efee9870de6e405e89f14f13660af2c72d234/ash/keyboard/virtual_keyboard_controller.cc
[modify] https://crrev.com/676efee9870de6e405e89f14f13660af2c72d234/ash/login/ui/login_keyboard_test_base.cc
[modify] https://crrev.com/676efee9870de6e405e89f14f13660af2c72d234/ash/login/ui/login_keyboard_test_base.h
[modify] https://crrev.com/676efee9870de6e405e89f14f13660af2c72d234/ash/root_window_controller.cc
[modify] https://crrev.com/676efee9870de6e405e89f14f13660af2c72d234/ash/root_window_controller.h
[modify] https://crrev.com/676efee9870de6e405e89f14f13660af2c72d234/ash/wm/always_on_top_controller_unittest.cc
[modify] https://crrev.com/676efee9870de6e405e89f14f13660af2c72d234/ash/wm/lock_action_handler_layout_manager_unittest.cc
[modify] https://crrev.com/676efee9870de6e405e89f14f13660af2c72d234/ash/wm/lock_layout_manager_unittest.cc
[modify] https://crrev.com/676efee9870de6e405e89f14f13660af2c72d234/ash/wm/system_modal_container_layout_manager_unittest.cc

Project Member

Comment 58 by bugdroid1@chromium.org, Oct 25

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

commit f9508725c7e5473b6eb8b9bdb1a6a2ee46422a18
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Thu Oct 25 17:26:02 2018

ChromeKeyboardUI: Move ChromeKeyboardWebContents init to constructor

Also includes some minor cleanup. This is in preparation for deprecating
ChromeKeyboardUI when the WS is running.

Bug:  843332 
Change-Id: Ifab1c0cc081730795337e20f4e1bb6a4a68d84a1
Reviewed-on: https://chromium-review.googlesource.com/c/1298316
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602771}
[modify] https://crrev.com/f9508725c7e5473b6eb8b9bdb1a6a2ee46422a18/chrome/browser/ui/ash/chrome_keyboard_controller_client.cc
[modify] https://crrev.com/f9508725c7e5473b6eb8b9bdb1a6a2ee46422a18/chrome/browser/ui/ash/chrome_keyboard_ui.cc
[modify] https://crrev.com/f9508725c7e5473b6eb8b9bdb1a6a2ee46422a18/chrome/browser/ui/ash/chrome_keyboard_ui.h
[modify] https://crrev.com/f9508725c7e5473b6eb8b9bdb1a6a2ee46422a18/chrome/browser/ui/ash/chrome_keyboard_web_contents.cc

Project Member

Comment 59 by bugdroid1@chromium.org, Oct 25

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

commit f878683efc69658e07c8afbfed3573b10cc61a08
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Thu Oct 25 18:13:23 2018

Move Keyboard occlusion management to ChromeKeyboardBoundsObserver

This extracts the code that updates keyboard occlusion to a separate
class owned by ChromeKeybaordWebContents.

Also implements ChromeKeyboardControllerClient::
IsKeyboardOverscrollEnabled using the cached config to remove a direct
call from src/chrome to keyboard::KeyboardController.

Bug:  843332 
Change-Id: I458b8fda2d8ced2d115f3ed4d5887c37d4fba136
Reviewed-on: https://chromium-review.googlesource.com/c/1298331
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602791}
[modify] https://crrev.com/f878683efc69658e07c8afbfed3573b10cc61a08/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/f878683efc69658e07c8afbfed3573b10cc61a08/chrome/browser/ui/ash/DEPS
[add] https://crrev.com/f878683efc69658e07c8afbfed3573b10cc61a08/chrome/browser/ui/ash/chrome_keyboard_bounds_observer.cc
[add] https://crrev.com/f878683efc69658e07c8afbfed3573b10cc61a08/chrome/browser/ui/ash/chrome_keyboard_bounds_observer.h
[modify] https://crrev.com/f878683efc69658e07c8afbfed3573b10cc61a08/chrome/browser/ui/ash/chrome_keyboard_controller_client.cc
[modify] https://crrev.com/f878683efc69658e07c8afbfed3573b10cc61a08/chrome/browser/ui/ash/chrome_keyboard_controller_client.h
[modify] https://crrev.com/f878683efc69658e07c8afbfed3573b10cc61a08/chrome/browser/ui/ash/chrome_keyboard_ui.cc
[modify] https://crrev.com/f878683efc69658e07c8afbfed3573b10cc61a08/chrome/browser/ui/ash/chrome_keyboard_ui.h
[modify] https://crrev.com/f878683efc69658e07c8afbfed3573b10cc61a08/chrome/browser/ui/ash/chrome_keyboard_web_contents.cc
[modify] https://crrev.com/f878683efc69658e07c8afbfed3573b10cc61a08/chrome/browser/ui/ash/chrome_keyboard_web_contents.h

Project Member

Comment 60 by bugdroid1@chromium.org, Oct 26

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

commit b7b041c49ab24bde868f8d6b0be94d2256edcb74
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Fri Oct 26 00:58:37 2018

Move GetVirtualKeyboardUrl to ChromeKeyboardControllerClient

This is in preparation for deprecating ChromeKeyboardUI when the
WS is running, at which point GetVirtuallKeyboardUrl will also be
called from ChromeKeyboardControllerClient directly.

Bug:  843332 
Change-Id: If82b9e6c166888b76176e6990397a77b6213be6c
Reviewed-on: https://chromium-review.googlesource.com/c/1297276
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602960}
[modify] https://crrev.com/b7b041c49ab24bde868f8d6b0be94d2256edcb74/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
[modify] https://crrev.com/b7b041c49ab24bde868f8d6b0be94d2256edcb74/chrome/browser/ui/ash/chrome_keyboard_controller_client.cc
[modify] https://crrev.com/b7b041c49ab24bde868f8d6b0be94d2256edcb74/chrome/browser/ui/ash/chrome_keyboard_controller_client.h
[modify] https://crrev.com/b7b041c49ab24bde868f8d6b0be94d2256edcb74/chrome/browser/ui/ash/chrome_keyboard_ui.cc
[modify] https://crrev.com/b7b041c49ab24bde868f8d6b0be94d2256edcb74/chrome/browser/ui/ash/chrome_keyboard_ui.h
[modify] https://crrev.com/b7b041c49ab24bde868f8d6b0be94d2256edcb74/chrome/browser/ui/ash/chrome_keyboard_ui_unittest.cc
[modify] https://crrev.com/b7b041c49ab24bde868f8d6b0be94d2256edcb74/chrome/browser/ui/ash/keyboard_controller_browsertest.cc

Project Member

Comment 61 by bugdroid1@chromium.org, Oct 29

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

commit 706b8c94d35bb12afc3a0012831557c16d5cda58
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Mon Oct 29 15:21:43 2018

Introduce keyboard::ContainerBehavior::Delegate

This will allow ContainerBehavior classes to be used without a
KeyboardController instance (i.e. from src/chrome in Mash).

Bug:  843332 
Change-Id: I6f0332f3c528aff92aca8359e41e647767c537d2
Reviewed-on: https://chromium-review.googlesource.com/c/1300394
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603496}
[modify] https://crrev.com/706b8c94d35bb12afc3a0012831557c16d5cda58/ash/magnifier/docked_magnifier_controller.cc
[modify] https://crrev.com/706b8c94d35bb12afc3a0012831557c16d5cda58/ash/wm/workspace/workspace_layout_manager_unittest.cc
[modify] https://crrev.com/706b8c94d35bb12afc3a0012831557c16d5cda58/ui/keyboard/BUILD.gn
[add] https://crrev.com/706b8c94d35bb12afc3a0012831557c16d5cda58/ui/keyboard/container_behavior.cc
[modify] https://crrev.com/706b8c94d35bb12afc3a0012831557c16d5cda58/ui/keyboard/container_behavior.h
[modify] https://crrev.com/706b8c94d35bb12afc3a0012831557c16d5cda58/ui/keyboard/container_floating_behavior.cc
[modify] https://crrev.com/706b8c94d35bb12afc3a0012831557c16d5cda58/ui/keyboard/container_floating_behavior.h
[modify] https://crrev.com/706b8c94d35bb12afc3a0012831557c16d5cda58/ui/keyboard/container_full_width_behavior.cc
[modify] https://crrev.com/706b8c94d35bb12afc3a0012831557c16d5cda58/ui/keyboard/container_full_width_behavior.h
[modify] https://crrev.com/706b8c94d35bb12afc3a0012831557c16d5cda58/ui/keyboard/container_fullscreen_behavior.cc
[modify] https://crrev.com/706b8c94d35bb12afc3a0012831557c16d5cda58/ui/keyboard/container_fullscreen_behavior.h
[modify] https://crrev.com/706b8c94d35bb12afc3a0012831557c16d5cda58/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/706b8c94d35bb12afc3a0012831557c16d5cda58/ui/keyboard/keyboard_controller.h

Project Member

Comment 62 by bugdroid1@chromium.org, Nov 8

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

commit 7b104eccb81d860641246c2780416186a5267d07
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Thu Nov 08 03:18:37 2018

Add Show/HideKeyboard methods to keybaord_controller.mojom

This CL:
* Introduces ShowKeyboard, HideKeyboard, and IsKeyboardVisible
  to keyboard_controller.mojom.
* Includes HideReason for HideKeyboard (User or System).
* Introduces keyboard::mojom::KeyboardEnableFlag::kTemporarilyEnabled
  for temporarily enabling the keyboard and showing it.
* Renames keyboard::mojom::ReloadKeyboard() -> RebuildKeyboardIfEnabled().
* Introduces keyboard::mojom::ReloadKeyboardIfNeeded() which calls
  KeyboardUI::ReloadKeyboardIfNeeded() which updates the keyboard URL if
  it has changed and otherwise does nothing.
* Replaces direct calls to KeyboardController from most of src/chrome
  Notable exception: ChromeVirtualKeyboardDelegate which will be
  transitioned in a follow up CL.

Bug:  843332 
Change-Id: I2faf000c8233ee0253b799a6e4780020ba3bbe1f
Reviewed-on: https://chromium-review.googlesource.com/c/1309215
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Shu Chen <shuchen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606311}
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/ash/keyboard/ash_keyboard_controller.cc
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/ash/keyboard/ash_keyboard_controller.h
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/ash/keyboard/ash_keyboard_controller_unittest.cc
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/ash/public/interfaces/keyboard_controller.mojom
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/chrome/browser/chromeos/BUILD.gn
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/chrome/browser/chromeos/arc/input_method_manager/arc_input_method_manager_service_unittest.cc
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/chrome/browser/chromeos/extensions/input_method_api.cc
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/chrome/browser/chromeos/extensions/input_method_api.h
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/chrome/browser/chromeos/input_method/input_method_engine.cc
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/chrome/browser/chromeos/input_method/input_method_engine_unittest.cc
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/chrome/browser/chromeos/input_method/input_method_manager_impl.cc
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/chrome/browser/chromeos/input_method/input_method_manager_impl.h
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/chrome/browser/chromeos/input_method/input_method_manager_impl_unittest.cc
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/chrome/browser/chromeos/login/app_launch_controller.cc
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/chrome/browser/ui/ash/chrome_keyboard_controller_client.cc
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/chrome/browser/ui/ash/chrome_keyboard_controller_client.h
[add] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/chrome/browser/ui/ash/chrome_keyboard_controller_client_test_helper.cc
[add] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/chrome/browser/ui/ash/chrome_keyboard_controller_client_test_helper.h
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/chrome/browser/ui/views/toolbar/browser_app_menu_button.cc
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/ui/keyboard/keyboard_controller.h
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/7b104eccb81d860641246c2780416186a5267d07/ui/keyboard/public/keyboard_enable_flag.mojom

Project Member

Comment 63 by bugdroid1@chromium.org, Nov 8

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

commit 404df9b120740e28432142f6c238c6d1087c5278
Author: Vadym Doroshenko <dvadym@chromium.org>
Date: Thu Nov 08 15:11:10 2018

Revert "Add Show/HideKeyboard methods to keybaord_controller.mojom"

This reverts commit 7b104eccb81d860641246c2780416186a5267d07.

Reason for revert: test AshKeyboardControllerTest.ShowAndHideKeyboard
which was added on this CL fails on some bots. Here is the first failure https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Linux%20Chromium%20OS%20ASan%20LSan%20Tests%20%281%29/30008

Original change's description:
> Add Show/HideKeyboard methods to keybaord_controller.mojom
> 
> This CL:
> * Introduces ShowKeyboard, HideKeyboard, and IsKeyboardVisible
>   to keyboard_controller.mojom.
> * Includes HideReason for HideKeyboard (User or System).
> * Introduces keyboard::mojom::KeyboardEnableFlag::kTemporarilyEnabled
>   for temporarily enabling the keyboard and showing it.
> * Renames keyboard::mojom::ReloadKeyboard() -> RebuildKeyboardIfEnabled().
> * Introduces keyboard::mojom::ReloadKeyboardIfNeeded() which calls
>   KeyboardUI::ReloadKeyboardIfNeeded() which updates the keyboard URL if
>   it has changed and otherwise does nothing.
> * Replaces direct calls to KeyboardController from most of src/chrome
>   Notable exception: ChromeVirtualKeyboardDelegate which will be
>   transitioned in a follow up CL.
> 
> Bug:  843332 
> Change-Id: I2faf000c8233ee0253b799a6e4780020ba3bbe1f
> Reviewed-on: https://chromium-review.googlesource.com/c/1309215
> Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
> Reviewed-by: James Cook <jamescook@chromium.org>
> Reviewed-by: Darren Shen <shend@chromium.org>
> Reviewed-by: Scott Violet <sky@chromium.org>
> Reviewed-by: Tom Sepez <tsepez@chromium.org>
> Reviewed-by: Shu Chen <shuchen@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#606311}

TBR=jamescook@chromium.org,stevenjb@chromium.org,sky@chromium.org,shuchen@chromium.org,tsepez@chromium.org,shend@chromium.org

Change-Id: Ib2634d6ebc0274049368ebf86488fc185d81f9c4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  843332 
Reviewed-on: https://chromium-review.googlesource.com/c/1326490
Reviewed-by: Vadym Doroshenko <dvadym@chromium.org>
Commit-Queue: Vadym Doroshenko <dvadym@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606468}
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/ash/keyboard/ash_keyboard_controller.cc
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/ash/keyboard/ash_keyboard_controller.h
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/ash/keyboard/ash_keyboard_controller_unittest.cc
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/ash/public/interfaces/keyboard_controller.mojom
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/chrome/browser/chromeos/BUILD.gn
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/chrome/browser/chromeos/arc/input_method_manager/arc_input_method_manager_service_unittest.cc
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/chrome/browser/chromeos/extensions/input_method_api.cc
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/chrome/browser/chromeos/extensions/input_method_api.h
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/chrome/browser/chromeos/input_method/input_method_engine.cc
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/chrome/browser/chromeos/input_method/input_method_engine_unittest.cc
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/chrome/browser/chromeos/input_method/input_method_manager_impl.cc
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/chrome/browser/chromeos/input_method/input_method_manager_impl.h
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/chrome/browser/chromeos/input_method/input_method_manager_impl_unittest.cc
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/chrome/browser/chromeos/login/app_launch_controller.cc
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/chrome/browser/ui/ash/chrome_keyboard_controller_client.cc
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/chrome/browser/ui/ash/chrome_keyboard_controller_client.h
[delete] https://crrev.com/874f09c68a213663767a7c25d8d4beb4726c45f5/chrome/browser/ui/ash/chrome_keyboard_controller_client_test_helper.cc
[delete] https://crrev.com/874f09c68a213663767a7c25d8d4beb4726c45f5/chrome/browser/ui/ash/chrome_keyboard_controller_client_test_helper.h
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/chrome/browser/ui/views/toolbar/browser_app_menu_button.cc
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/ui/keyboard/keyboard_controller.h
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/404df9b120740e28432142f6c238c6d1087c5278/ui/keyboard/public/keyboard_enable_flag.mojom

Project Member

Comment 64 by bugdroid1@chromium.org, Nov 9

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

commit 46ab397aa9fc5ce6b95bbe4ba0422f602deffef5
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Fri Nov 09 02:28:45 2018

Add Show/HideKeyboard methods to keybaord_controller.mojom (Take 2)

Original CL: https://crrev.com/c/1309215
Revert: https://crrev.com/c/1326490
Fix: ash/keyboard/ash_keyboard_controller_unittest.cc

This CL:
* Introduces ShowKeyboard, HideKeyboard, and IsKeyboardVisible
  to keyboard_controller.mojom.
* Includes HideReason for HideKeyboard (User or System).
* Introduces keyboard::mojom::KeyboardEnableFlag::kTemporarilyEnabled
  for temporarily enabling the keyboard and showing it.
* Renames keyboard::mojom::ReloadKeyboard() -> RebuildKeyboardIfEnabled().
* Introduces keyboard::mojom::ReloadKeyboardIfNeeded() which calls
  KeyboardUI::ReloadKeyboardIfNeeded() which updates the keyboard URL if
  it has changed and otherwise does nothing.
* Replaces direct calls to KeyboardController from most of src/chrome
  Notable exception: ChromeVirtualKeyboardDelegate which will be
  transitioned in a follow up CL.

Bug:  843332 
TBR from original review:
TBR=jamescook@chromium.org, shend@chromium.org, sky@chromium.org, tsepez@chromium.org, shuchen@chromium.org

Change-Id: I33dc2d472ddad793db02c5d317f7b7405162f5fa
Reviewed-on: https://chromium-review.googlesource.com/c/1327615
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606710}
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/ash/keyboard/ash_keyboard_controller.cc
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/ash/keyboard/ash_keyboard_controller.h
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/ash/keyboard/ash_keyboard_controller_unittest.cc
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/ash/public/interfaces/keyboard_controller.mojom
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/chrome/browser/chromeos/BUILD.gn
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/chrome/browser/chromeos/arc/input_method_manager/arc_input_method_manager_service_unittest.cc
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/chrome/browser/chromeos/extensions/input_method_api.cc
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/chrome/browser/chromeos/extensions/input_method_api.h
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/chrome/browser/chromeos/input_method/input_method_engine.cc
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/chrome/browser/chromeos/input_method/input_method_engine_unittest.cc
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/chrome/browser/chromeos/input_method/input_method_manager_impl.cc
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/chrome/browser/chromeos/input_method/input_method_manager_impl.h
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/chrome/browser/chromeos/input_method/input_method_manager_impl_unittest.cc
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/chrome/browser/chromeos/login/app_launch_controller.cc
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/chrome/browser/ui/ash/chrome_keyboard_controller_client.cc
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/chrome/browser/ui/ash/chrome_keyboard_controller_client.h
[add] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/chrome/browser/ui/ash/chrome_keyboard_controller_client_test_helper.cc
[add] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/chrome/browser/ui/ash/chrome_keyboard_controller_client_test_helper.h
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/chrome/browser/ui/views/toolbar/browser_app_menu_button.cc
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/ui/keyboard/keyboard_util.cc
[modify] https://crrev.com/46ab397aa9fc5ce6b95bbe4ba0422f602deffef5/ui/keyboard/public/keyboard_enable_flag.mojom

Project Member

Comment 65 by bugdroid1@chromium.org, Nov 21

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

commit 174f5ac89143a09dfc35f614e173737e6244140b
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Wed Nov 21 02:02:02 2018

Keyboard: Clean up bounds observer and tests

This CL:
* Adds some debug logging to the keyboard code (DVLOG).
* Cleans up ChromeKeyboardBoundsObserver and refactors
  ShouldWindowOverscroll to not be dependent on Ash.
* Removes Ash and KeyboardController dependencies from browser tests.

These changes are in preparation for enabling the virtual keyboard in
SingleProcessMash and should have no impact on existing tests or
behavior.

Bug:  843332 
Change-Id: I8954b4640c39e670350adae776fe14b079e37f36
Reviewed-on: https://chromium-review.googlesource.com/c/1343557
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Shu Chen <shuchen@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#609895}
[modify] https://crrev.com/174f5ac89143a09dfc35f614e173737e6244140b/chrome/browser/ui/ash/chrome_keyboard_bounds_observer.cc
[modify] https://crrev.com/174f5ac89143a09dfc35f614e173737e6244140b/chrome/browser/ui/ash/chrome_keyboard_bounds_observer.h
[modify] https://crrev.com/174f5ac89143a09dfc35f614e173737e6244140b/chrome/browser/ui/ash/keyboard_controller_browsertest.cc
[modify] https://crrev.com/174f5ac89143a09dfc35f614e173737e6244140b/chrome/browser/ui/ash/keyboard_end_to_end_browsertest.cc
[modify] https://crrev.com/174f5ac89143a09dfc35f614e173737e6244140b/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/174f5ac89143a09dfc35f614e173737e6244140b/ui/keyboard/keyboard_ui.cc

Project Member

Comment 66 by bugdroid1@chromium.org, Nov 26

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

commit 79faeacd4a839b292995b8b7a5b3e908a2c776f4
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Mon Nov 26 17:55:24 2018

Add TestKeyboardControllerObserver for ash keyboard unit tests

This also includes some cleanup of the BUILD.gn files.

Currently TestKeyboardControllerObserver is only needed by
AshKeyboardControllerUnitTests, but will be required by any tests
affecting the keyboard with SingleProcessMash once enabled.

Bug:  843332 
Change-Id: I3c321cfaefe55bb61bb11f2232f524714f6453f5
Reviewed-on: https://chromium-review.googlesource.com/c/1343524
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610881}
[modify] https://crrev.com/79faeacd4a839b292995b8b7a5b3e908a2c776f4/ash/BUILD.gn
[modify] https://crrev.com/79faeacd4a839b292995b8b7a5b3e908a2c776f4/ash/keyboard/ash_keyboard_controller_unittest.cc
[modify] https://crrev.com/79faeacd4a839b292995b8b7a5b3e908a2c776f4/ash/public/cpp/BUILD.gn
[add] https://crrev.com/79faeacd4a839b292995b8b7a5b3e908a2c776f4/ash/public/cpp/test/test_keyboard_controller_observer.cc
[add] https://crrev.com/79faeacd4a839b292995b8b7a5b3e908a2c776f4/ash/public/cpp/test/test_keyboard_controller_observer.h
[modify] https://crrev.com/79faeacd4a839b292995b8b7a5b3e908a2c776f4/ash/root_window_controller_unittest.cc
[modify] https://crrev.com/79faeacd4a839b292995b8b7a5b3e908a2c776f4/ash/test/ash_test_base.cc
[modify] https://crrev.com/79faeacd4a839b292995b8b7a5b3e908a2c776f4/ash/test/ash_test_base.h
[modify] https://crrev.com/79faeacd4a839b292995b8b7a5b3e908a2c776f4/ash/test/ash_test_helper.cc
[modify] https://crrev.com/79faeacd4a839b292995b8b7a5b3e908a2c776f4/ash/test/ash_test_helper.h
[modify] https://crrev.com/79faeacd4a839b292995b8b7a5b3e908a2c776f4/ash/wm/pip/pip_positioner_unittest.cc
[modify] https://crrev.com/79faeacd4a839b292995b8b7a5b3e908a2c776f4/ash/wm/pip/pip_window_resizer_unittest.cc
[modify] https://crrev.com/79faeacd4a839b292995b8b7a5b3e908a2c776f4/ash/wm/workspace/workspace_layout_manager_unittest.cc

Project Member

Comment 67 by bugdroid1@chromium.org, Nov 26

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

commit 13eec5538f21ae8ba71ee72185e6bfd6e7f393cf
Author: Chrome Cunningham <chcunningham@chromium.org>
Date: Mon Nov 26 18:26:05 2018

Revert "Add TestKeyboardControllerObserver for ash keyboard unit tests"

This reverts commit 79faeacd4a839b292995b8b7a5b3e908a2c776f4.

Reason for revert: broke linux-chromeos-dbg
https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/linux-chromeos-dbg/9171

Original change's description:
> Add TestKeyboardControllerObserver for ash keyboard unit tests
> 
> This also includes some cleanup of the BUILD.gn files.
> 
> Currently TestKeyboardControllerObserver is only needed by
> AshKeyboardControllerUnitTests, but will be required by any tests
> affecting the keyboard with SingleProcessMash once enabled.
> 
> Bug:  843332 
> Change-Id: I3c321cfaefe55bb61bb11f2232f524714f6453f5
> Reviewed-on: https://chromium-review.googlesource.com/c/1343524
> Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
> Reviewed-by: Scott Violet <sky@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#610881}

TBR=stevenjb@chromium.org,sky@chromium.org

Change-Id: Ib7827c5a036c84e4486cb4ce8c32fd94a9c8f14a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  843332 
Reviewed-on: https://chromium-review.googlesource.com/c/1351453
Reviewed-by: Chrome Cunningham <chcunningham@chromium.org>
Commit-Queue: Chrome Cunningham <chcunningham@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610893}
[modify] https://crrev.com/13eec5538f21ae8ba71ee72185e6bfd6e7f393cf/ash/BUILD.gn
[modify] https://crrev.com/13eec5538f21ae8ba71ee72185e6bfd6e7f393cf/ash/keyboard/ash_keyboard_controller_unittest.cc
[modify] https://crrev.com/13eec5538f21ae8ba71ee72185e6bfd6e7f393cf/ash/public/cpp/BUILD.gn
[delete] https://crrev.com/e46111ec359cf9444d46dd823aff354096999998/ash/public/cpp/test/test_keyboard_controller_observer.cc
[delete] https://crrev.com/e46111ec359cf9444d46dd823aff354096999998/ash/public/cpp/test/test_keyboard_controller_observer.h
[modify] https://crrev.com/13eec5538f21ae8ba71ee72185e6bfd6e7f393cf/ash/root_window_controller_unittest.cc
[modify] https://crrev.com/13eec5538f21ae8ba71ee72185e6bfd6e7f393cf/ash/test/ash_test_base.cc
[modify] https://crrev.com/13eec5538f21ae8ba71ee72185e6bfd6e7f393cf/ash/test/ash_test_base.h
[modify] https://crrev.com/13eec5538f21ae8ba71ee72185e6bfd6e7f393cf/ash/test/ash_test_helper.cc
[modify] https://crrev.com/13eec5538f21ae8ba71ee72185e6bfd6e7f393cf/ash/test/ash_test_helper.h
[modify] https://crrev.com/13eec5538f21ae8ba71ee72185e6bfd6e7f393cf/ash/wm/pip/pip_positioner_unittest.cc
[modify] https://crrev.com/13eec5538f21ae8ba71ee72185e6bfd6e7f393cf/ash/wm/pip/pip_window_resizer_unittest.cc
[modify] https://crrev.com/13eec5538f21ae8ba71ee72185e6bfd6e7f393cf/ash/wm/workspace/workspace_layout_manager_unittest.cc

Project Member

Comment 68 by bugdroid1@chromium.org, Nov 27

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

commit 99f5b69b25e95441d997c7da6da69a29f48227ce
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Tue Nov 27 16:31:40 2018

Add TestKeyboardControllerObserver (Take 2)

Original CL: https://chromium-review.googlesource.com/c/1343524
FIX: Minor change to exo_unittests BUILD.gn file

Add TestKeyboardControllerObserver for ash keyboard unit tests

This also includes some cleanup of the BUILD.gn files.

Currently TestKeyboardControllerObserver is only needed by
AshKeyboardControllerUnitTests, but will be required by any tests
affecting the keyboard with SingleProcessMash once enabled.

TBR=sky@chromium.org

Bug:  843332 
Change-Id: Iaa937c9908196f2aa3ba7184bec79e722531e69c
Reviewed-on: https://chromium-review.googlesource.com/c/1351457
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611137}
[modify] https://crrev.com/99f5b69b25e95441d997c7da6da69a29f48227ce/ash/BUILD.gn
[modify] https://crrev.com/99f5b69b25e95441d997c7da6da69a29f48227ce/ash/keyboard/ash_keyboard_controller_unittest.cc
[modify] https://crrev.com/99f5b69b25e95441d997c7da6da69a29f48227ce/ash/public/cpp/BUILD.gn
[add] https://crrev.com/99f5b69b25e95441d997c7da6da69a29f48227ce/ash/public/cpp/test/test_keyboard_controller_observer.cc
[add] https://crrev.com/99f5b69b25e95441d997c7da6da69a29f48227ce/ash/public/cpp/test/test_keyboard_controller_observer.h
[modify] https://crrev.com/99f5b69b25e95441d997c7da6da69a29f48227ce/ash/root_window_controller_unittest.cc
[modify] https://crrev.com/99f5b69b25e95441d997c7da6da69a29f48227ce/ash/test/ash_test_base.cc
[modify] https://crrev.com/99f5b69b25e95441d997c7da6da69a29f48227ce/ash/test/ash_test_base.h
[modify] https://crrev.com/99f5b69b25e95441d997c7da6da69a29f48227ce/ash/test/ash_test_helper.cc
[modify] https://crrev.com/99f5b69b25e95441d997c7da6da69a29f48227ce/ash/test/ash_test_helper.h
[modify] https://crrev.com/99f5b69b25e95441d997c7da6da69a29f48227ce/ash/wm/pip/pip_positioner_unittest.cc
[modify] https://crrev.com/99f5b69b25e95441d997c7da6da69a29f48227ce/ash/wm/pip/pip_window_resizer_unittest.cc
[modify] https://crrev.com/99f5b69b25e95441d997c7da6da69a29f48227ce/ash/wm/workspace/workspace_layout_manager_unittest.cc
[modify] https://crrev.com/99f5b69b25e95441d997c7da6da69a29f48227ce/components/exo/BUILD.gn

Project Member

Comment 69 by bugdroid1@chromium.org, Nov 27

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

commit 4ce22a244d2548604a1ad422e044279a36ad525e
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Tue Nov 27 21:14:35 2018

ash.mojom.KeyboardController: Pass bounds as screen coordinates.

Bounds passed over mojo should be in Screen coordinates since
Chrome and Ash do not share a common window tree in Mash.

For comment-only change to keyboard_controller.mojom:
TBR=tsepez@chromium.org

Bug:  843332 
Change-Id: I40cee828ee5872cf69c4589141a9bb79c7c08cee
Reviewed-on: https://chromium-review.googlesource.com/c/1351801
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611324}
[modify] https://crrev.com/4ce22a244d2548604a1ad422e044279a36ad525e/ash/keyboard/ash_keyboard_controller.cc
[modify] https://crrev.com/4ce22a244d2548604a1ad422e044279a36ad525e/ash/keyboard/ash_keyboard_controller.h
[modify] https://crrev.com/4ce22a244d2548604a1ad422e044279a36ad525e/ash/public/interfaces/keyboard_controller.mojom
[modify] https://crrev.com/4ce22a244d2548604a1ad422e044279a36ad525e/chrome/browser/ui/ash/chrome_keyboard_bounds_observer.cc
[modify] https://crrev.com/4ce22a244d2548604a1ad422e044279a36ad525e/chrome/browser/ui/ash/chrome_keyboard_bounds_observer.h
[modify] https://crrev.com/4ce22a244d2548604a1ad422e044279a36ad525e/chrome/browser/ui/ash/chrome_keyboard_controller_client.cc
[modify] https://crrev.com/4ce22a244d2548604a1ad422e044279a36ad525e/chrome/browser/ui/ash/chrome_keyboard_controller_client.h

Cc: steve...@chromium.org
 Issue 897012  has been merged into this issue.
Project Member

Comment 71 by bugdroid1@chromium.org, Dec 5

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

commit 6972bbe8854e0d0bae8ede2293eab367dd8606a9
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Wed Dec 05 02:18:53 2018

Implement AshKeyboardUI for Mash / Window Service.

This CL:
* Implements AshKeyboardUI and enables it when the Window Service
  is running (SingleProcessMash and Mash). NOTE: Mash is untested.
* Modifies ash.mojom.KeyboardController to support AshKeyboardUI.
* Replaces calls disabling the keyboard on IsUsingWindowService with
  IsMultiProcessMash (since Mash is still untested and the IME
  singleton classes are still accessed by chrome and ash).
* Moves keyboard screen -> window coordinate transforms to
  ChromeKeyboardControllerClient to simplify code and debugging.
* Updates test filters to enable:
** ALL Ash keyboard unit tests!
** Most keyboard browser tests except 8 (see below)

Known issues:
* Changing the Chrome keyboard window size does not inform Ash
  (probably only relevant for tests)
* The VK fails to moves browser windows:  crbug.com/906888 
* RemoteTextInputClient fails to forward focus events:
  https://crbug.com/631527


Bug:  843332 
Change-Id: Ib6d499b48fd53c3b65202bb04fb3cf9ab457ffa7
Reviewed-on: https://chromium-review.googlesource.com/c/1300553
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Shu Chen <shuchen@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#613821}
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/ash/BUILD.gn
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/ash/accessibility/accessibility_controller.cc
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/ash/keyboard/ash_keyboard_controller.cc
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/ash/keyboard/ash_keyboard_controller.h
[add] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/ash/keyboard/ash_keyboard_ui.cc
[add] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/ash/keyboard/ash_keyboard_ui.h
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/ash/manifest.json
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/ash/public/cpp/test/test_keyboard_controller_observer.cc
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/ash/public/cpp/test/test_keyboard_controller_observer.h
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/ash/public/interfaces/keyboard_controller.mojom
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/ash/root_window_controller_unittest.cc
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/ash/test/ash_test_helper.cc
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/ash/wm/workspace/workspace_layout_manager_unittest.cc
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/chrome/browser/chromeos/extensions/default_keyboard_extension_browser_test.cc
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/chrome/browser/ui/ash/chrome_keyboard_bounds_observer.cc
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/chrome/browser/ui/ash/chrome_keyboard_bounds_observer.h
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/chrome/browser/ui/ash/chrome_keyboard_controller_client.cc
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/chrome/browser/ui/ash/chrome_keyboard_controller_client.h
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/chrome/browser/ui/ash/chrome_keyboard_controller_client_test_helper.cc
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/chrome/browser/ui/ash/chrome_keyboard_ui.cc
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/chrome/browser/ui/ash/chrome_keyboard_web_contents.cc
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/chrome/browser/ui/ash/chrome_keyboard_web_contents.h
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/chrome/browser/ui/ash/keyboard_controller_browsertest.cc
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/components/arc/ime/arc_ime_service.cc
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/components/exo/BUILD.gn
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/services/ws/remote_view_host/server_remote_view_host.cc
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/services/ws/remote_view_host/server_remote_view_host.h
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/testing/buildbot/chromium.chromiumos.json
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/testing/buildbot/chromium.memory.json
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/testing/buildbot/filters/BUILD.gn
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/testing/buildbot/filters/chromeos.mash.fyi.browser_tests.filter
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/testing/buildbot/filters/chromeos.single_process_mash.ash_unittests.filter
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/testing/buildbot/filters/chromeos.single_process_mash.browser_tests.filter
[delete] https://crrev.com/522d37882df8a41cc3e9bbb591fe8ac5b2f1856b/testing/buildbot/filters/chromeos.single_process_mash.exo_unittests.filter
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/testing/buildbot/test_suites.pyl
[modify] https://crrev.com/6972bbe8854e0d0bae8ede2293eab367dd8606a9/ui/keyboard/keyboard_controller.h

Project Member

Comment 72 by bugdroid1@chromium.org, Dec 5

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

commit f2246826a7f71362a7bd59953932adacb515aaae
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Wed Dec 05 16:43:32 2018

RemoteTextInputClient: Test callbacks

Callbacks passed to RemoteTextInputClient::DispatchKeyEventPostIME may
be null. We already test this in OnDispatchKeyEventPostIMECompleted,
but not in the destructor. This fixes that.

Bug:  843332 
Change-Id: I4eb96a080a082420e13ae3f7ecd90d2655320d53
Reviewed-on: https://chromium-review.googlesource.com/c/1362453
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#613993}
[modify] https://crrev.com/f2246826a7f71362a7bd59953932adacb515aaae/chrome/browser/ui/views/ime_driver/remote_text_input_client.cc
[modify] https://crrev.com/f2246826a7f71362a7bd59953932adacb515aaae/chrome/browser/ui/views/ime_driver/remote_text_input_client.h

Status: Fixed (was: Started)
Project Member

Comment 74 by bugdroid1@chromium.org, Dec 6

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

commit 8314964177ff94b7731e23c92d63df1db94bd877
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Thu Dec 06 01:47:29 2018

Move c/b/ui/ash keyboard code to subdir

Code cleanup only, no functional changes.

Bug:  843332 
Change-Id: I17686724cf4d76c601633a22c6b3c2eeab2458bb
Reviewed-on: https://chromium-review.googlesource.com/c/1364060
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#614227}
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/chromeos/arc/input_method_manager/arc_input_method_manager_service.cc
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/chromeos/arc/input_method_manager/arc_input_method_manager_service_unittest.cc
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/chromeos/extensions/default_keyboard_extension_browser_test.cc
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/chromeos/extensions/input_method_api.cc
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/chromeos/input_method/input_method_engine.cc
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/chromeos/input_method/input_method_engine_browsertests.cc
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/chromeos/input_method/input_method_engine_unittest.cc
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/chromeos/input_method/input_method_manager_impl.cc
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/chromeos/input_method/input_method_manager_impl_unittest.cc
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/chromeos/login/app_launch_controller.cc
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/chromeos/login/ui/login_display_host_webui.cc
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/chromeos/login/ui/oobe_ui_dialog_delegate.h
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/chromeos/login/ui/webui_login_view.cc
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/chromeos/login/ui/webui_login_view.h
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/policy/policy_browsertest.cc
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/ash/DEPS
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/ash/chrome_shell_delegate.cc
[add] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/ash/keyboard/DEPS
[rename] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/ash/keyboard/chrome_keyboard_bounds_observer.cc
[rename] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/ash/keyboard/chrome_keyboard_bounds_observer.h
[rename] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/ash/keyboard/chrome_keyboard_controller_client.cc
[rename] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/ash/keyboard/chrome_keyboard_controller_client.h
[rename] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/ash/keyboard/chrome_keyboard_controller_client_test_helper.cc
[rename] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/ash/keyboard/chrome_keyboard_controller_client_test_helper.h
[rename] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/ash/keyboard/chrome_keyboard_ui.cc
[rename] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/ash/keyboard/chrome_keyboard_ui.h
[rename] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/ash/keyboard/chrome_keyboard_ui_unittest.cc
[rename] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/ash/keyboard/chrome_keyboard_web_contents.cc
[rename] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/ash/keyboard/chrome_keyboard_web_contents.h
[rename] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/ash/keyboard/chrome_keyboard_web_contents_unittest.cc
[rename] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/ash/keyboard/keyboard_controller_browsertest.cc
[rename] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/ash/keyboard/keyboard_end_to_end_browsertest.cc
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/views/select_file_dialog_extension_browsertest.cc
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/views/toolbar/browser_app_menu_button.cc
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc
[modify] https://crrev.com/8314964177ff94b7731e23c92d63df1db94bd877/chrome/test/BUILD.gn

Sign in to add a comment