• Michael Spang's avatar
    IME: Split //ui/base/ime into separate factory and implementation targets · 539c6f3f
    Michael Spang authored
    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/+/1531479Reviewed-by: default avatarShu Chen <shuchen@chromium.org>
    Commit-Queue: Michael Spang <spang@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#647403}
    539c6f3f
BUILD.gn 808 Bytes