Commit 4b04564d authored by Bao-Duy Tran's avatar Bao-Duy Tran Committed by Commit Bot

Dependency-inject another delegate into InputMethodManagerImpl.

InputMethodManagerImpl unit tests are failing in certain environment due
to mixed usage of hermetic test data and non-hermetic CrOS-specific prod
data, with inconsistent direct tweaking on an internal delegate.

This refactoring doesn't fix the failures as yet but facilitates the
move towards consistent usage of hermetic test data in follow-ups.

Bug: 970790
Change-Id: I892aeaddf3658c6ab0f2d35ab441a2fa85858c0c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2550146
Commit-Queue: Bao-Duy Tran <tranbaoduy@chromium.org>
Reviewed-by: default avatarKeith Lee <keithlee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#830899}
parent 2e19203e
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "base/bind.h" #include "base/bind.h"
#include "base/logging.h" #include "base/logging.h"
#include "chrome/browser/chromeos/input_method/accessibility.h" #include "chrome/browser/chromeos/input_method/accessibility.h"
#include "chrome/browser/chromeos/input_method/component_extension_ime_manager_delegate_impl.h"
#include "chrome/browser/chromeos/input_method/input_method_delegate_impl.h" #include "chrome/browser/chromeos/input_method/input_method_delegate_impl.h"
#include "chrome/browser/chromeos/input_method/input_method_manager_impl.h" #include "chrome/browser/chromeos/input_method/input_method_manager_impl.h"
#include "chrome/browser/chromeos/input_method/input_method_persistence.h" #include "chrome/browser/chromeos/input_method/input_method_persistence.h"
...@@ -30,7 +31,8 @@ class InputMethodConfiguration { ...@@ -30,7 +31,8 @@ class InputMethodConfiguration {
ui::IMEBridge::Initialize(); ui::IMEBridge::Initialize();
auto* impl = new InputMethodManagerImpl( auto* impl = new InputMethodManagerImpl(
std::unique_ptr<InputMethodDelegate>(new InputMethodDelegateImpl), std::make_unique<InputMethodDelegateImpl>(),
std::make_unique<ComponentExtensionIMEManagerDelegateImpl>(),
!g_disable_extension_loading); !g_disable_extension_loading);
InputMethodManager::Initialize(impl); InputMethodManager::Initialize(impl);
......
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
#include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/chromeos/input_method/assistive_window_controller.h" #include "chrome/browser/chromeos/input_method/assistive_window_controller.h"
#include "chrome/browser/chromeos/input_method/candidate_window_controller.h" #include "chrome/browser/chromeos/input_method/candidate_window_controller.h"
#include "chrome/browser/chromeos/input_method/component_extension_ime_manager_delegate_impl.h"
#include "chrome/browser/chromeos/input_method/ui/assistive_delegate.h" #include "chrome/browser/chromeos/input_method/ui/assistive_delegate.h"
#include "chrome/browser/chromeos/input_method/ui/input_method_menu_item.h" #include "chrome/browser/chromeos/input_method/ui/input_method_menu_item.h"
#include "chrome/browser/chromeos/input_method/ui/input_method_menu_manager.h" #include "chrome/browser/chromeos/input_method/ui/input_method_menu_manager.h"
...@@ -956,6 +955,8 @@ InputMethodManagerImpl::GetActiveIMEState() { ...@@ -956,6 +955,8 @@ InputMethodManagerImpl::GetActiveIMEState() {
InputMethodManagerImpl::InputMethodManagerImpl( InputMethodManagerImpl::InputMethodManagerImpl(
std::unique_ptr<InputMethodDelegate> delegate, std::unique_ptr<InputMethodDelegate> delegate,
std::unique_ptr<ComponentExtensionIMEManagerDelegate>
component_extension_ime_manager_delegate,
bool enable_extension_loading) bool enable_extension_loading)
: delegate_(std::move(delegate)), : delegate_(std::move(delegate)),
util_(delegate_.get()), util_(delegate_.get()),
...@@ -969,9 +970,8 @@ InputMethodManagerImpl::InputMethodManagerImpl( ...@@ -969,9 +970,8 @@ InputMethodManagerImpl::InputMethodManagerImpl(
keyboard_ = std::make_unique<FakeImeKeyboard>(); keyboard_ = std::make_unique<FakeImeKeyboard>();
} }
// Initializes the system IME list. // Initializes the system IME list.
std::unique_ptr<ComponentExtensionIMEManagerDelegate> comp_delegate( component_extension_ime_manager_->Initialize(
new ComponentExtensionIMEManagerDelegateImpl()); std::move(component_extension_ime_manager_delegate));
component_extension_ime_manager_->Initialize(std::move(comp_delegate));
const InputMethodDescriptors& descriptors = const InputMethodDescriptors& descriptors =
component_extension_ime_manager_->GetAllIMEAsInputMethodDescriptor(); component_extension_ime_manager_->GetAllIMEAsInputMethodDescriptor();
util_.ResetInputMethods(descriptors); util_.ResetInputMethods(descriptors);
......
...@@ -191,6 +191,8 @@ class InputMethodManagerImpl : public InputMethodManager, ...@@ -191,6 +191,8 @@ class InputMethodManagerImpl : public InputMethodManager,
// calling |SetUISessionState| in response to relevant changes in browser // calling |SetUISessionState| in response to relevant changes in browser
// state. // state.
InputMethodManagerImpl(std::unique_ptr<InputMethodDelegate> delegate, InputMethodManagerImpl(std::unique_ptr<InputMethodDelegate> delegate,
std::unique_ptr<ComponentExtensionIMEManagerDelegate>
component_extension_ime_manager_delegate,
bool enable_extension_loading); bool enable_extension_loading);
~InputMethodManagerImpl() override; ~InputMethodManagerImpl() override;
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/run_loop.h" #include "base/run_loop.h"
#include "base/test/task_environment.h" #include "base/test/task_environment.h"
#include "chrome/browser/chromeos/input_method/component_extension_ime_manager_delegate_impl.h"
#include "chrome/browser/chromeos/input_method/mock_candidate_window_controller.h" #include "chrome/browser/chromeos/input_method/mock_candidate_window_controller.h"
#include "chrome/browser/chromeos/input_method/mock_input_method_engine.h" #include "chrome/browser/chromeos/input_method/mock_input_method_engine.h"
#include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/profiles/profile_manager.h"
...@@ -139,7 +140,8 @@ class InputMethodManagerImplTest : public BrowserWithTestWindowTest { ...@@ -139,7 +140,8 @@ class InputMethodManagerImplTest : public BrowserWithTestWindowTest {
ui::InitializeInputMethodForTesting(); ui::InitializeInputMethodForTesting();
manager_ = std::make_unique<InputMethodManagerImpl>( manager_ = std::make_unique<InputMethodManagerImpl>(
std::make_unique<FakeInputMethodDelegate>(), false); std::make_unique<FakeInputMethodDelegate>(),
std::make_unique<ComponentExtensionIMEManagerDelegateImpl>(), false);
manager_->GetInputMethodUtil()->UpdateHardwareLayoutCache(); manager_->GetInputMethodUtil()->UpdateHardwareLayoutCache();
candidate_window_controller_ = new MockCandidateWindowController; candidate_window_controller_ = new MockCandidateWindowController;
manager_->SetCandidateWindowControllerForTesting( manager_->SetCandidateWindowControllerForTesting(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment