IME: Split //ui/base/ime into separate factory and implementation targets
Break up //ui/base/ime into several components, one for each
implementation, plus a factory component.
The reason this is useful is that it provides a cycle-free way for ozone
to choose which ui::InputMethod implementation to use. Each InputMethod
implementation creates a natural component that platforms can depend on
if they use that InputMethod. The factory component is layered above
these to provide a single entry point for creating the implementation.
This introduces some more fine grained dependencies:
- Targets that directly use a particular ui::InputMethod implementation
now have to declare an explicit dependency on its component
- Targets that need to create an appropriate ui::InputMethod without
knowing which one they want need to declare a dependency on the factory
component.
Targets that just use the ui::InputMethod base class and related
interfaces can continue to depend on //ui/base/ime.
Bug: 943789
Test: various builds, ui_unittests
TBR=sky@chromium.org
(mechanical BUILD & include changes)
Change-Id: I83ef7b3112e2e68cada86b7ce1aa598a20f3c7cf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1531479
Reviewed-by: Shu Chen <shuchen@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#647403}
diff --git a/ui/aura/BUILD.gn b/ui/aura/BUILD.gn
index 141af6a..38b56afe 100644
--- a/ui/aura/BUILD.gn
+++ b/ui/aura/BUILD.gn
@@ -187,6 +187,7 @@
"//skia",
"//ui/base",
"//ui/base/clipboard",
+ "//ui/base/ime/init",
"//ui/display",
"//ui/events",
"//ui/events:dom_keyboard_layout",
@@ -317,7 +318,7 @@
"//skia",
"//testing/gtest",
"//ui/base:test_support",
- "//ui/base/ime",
+ "//ui/base/ime/init",
"//ui/compositor:test_support",
"//ui/display",
"//ui/display/manager",
@@ -368,7 +369,7 @@
"//skia",
"//third_party/icu",
"//ui/base",
- "//ui/base/ime",
+ "//ui/base/ime/init",
"//ui/compositor",
"//ui/compositor:test_support",
"//ui/display",
@@ -462,7 +463,7 @@
"//base/test:test_support",
"//net",
"//testing/gtest",
- "//ui/base/ime:ime",
+ "//ui/base/ime/init",
"//ui/display:display",
"//ui/gfx",
"//ui/gfx/geometry",