summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshuchen <shuchen@chromium.org>2015-06-15 08:07:20 -0700
committerCommit bot <commit-bot@chromium.org>2015-06-15 15:08:50 +0000
commit4e09795ae7eaacce866f0de33a0c9a3c89e4464e (patch)
tree29ffa2206414bf4f996ebb8f560d352bd6d1939e
parent3634509ac780f4277e1ba708231270360539592b (diff)
downloadchromium_src-4e09795ae7eaacce866f0de33a0c9a3c89e4464e.zip
chromium_src-4e09795ae7eaacce866f0de33a0c9a3c89e4464e.tar.gz
chromium_src-4e09795ae7eaacce866f0de33a0c9a3c89e4464e.tar.bz2
Removes TextInputFocusManager.
TextInputFocusManager can be removed with the effort of IMF refactoring. Actually the bugs that TextInputFocusManager was trying to fix have been fixed already by IMF refactoring. TBR=sky@chromium.org BUG=474828 TEST=Trybots. Review URL: https://codereview.chromium.org/1182523003 Cr-Commit-Position: refs/heads/master@{#334379}
-rw-r--r--ash/root_window_controller_unittest.cc16
-rw-r--r--ash/wm/workspace/workspace_layout_manager_unittest.cc28
-rw-r--r--chrome/app/generated_resources.grd6
-rw-r--r--chrome/browser/about_flags.cc8
-rw-r--r--chrome/browser/chromeos/login/ui/login_display_host_impl.cc3
-rw-r--r--chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc14
-rw-r--r--chrome/chrome_tests.gypi1
-rw-r--r--ui/base/ime/BUILD.gn2
-rw-r--r--ui/base/ime/input_method_base.cc8
-rw-r--r--ui/base/ime/input_method_base_unittest.cc25
-rw-r--r--ui/base/ime/input_method_chromeos_unittest.cc47
-rw-r--r--ui/base/ime/mock_input_method.cc8
-rw-r--r--ui/base/ime/text_input_focus_manager.cc45
-rw-r--r--ui/base/ime/text_input_focus_manager.h47
-rw-r--r--ui/base/ime/ui_base_ime.gyp2
-rw-r--r--ui/base/ui_base_switches.cc6
-rw-r--r--ui/base/ui_base_switches.h2
-rw-r--r--ui/base/ui_base_switches_util.cc5
-rw-r--r--ui/base/ui_base_switches_util.h1
-rw-r--r--ui/keyboard/keyboard_controller_unittest.cc13
-rw-r--r--ui/views/cocoa/bridged_native_widget.mm4
-rw-r--r--ui/views/controls/webview/webview.cc21
-rw-r--r--ui/views/controls/webview/webview_interactive_uitest.cc119
-rw-r--r--ui/views/focus/focus_manager.cc57
-rw-r--r--ui/views/focus/focus_manager.h9
-rw-r--r--ui/views/focus/focus_manager_unittest.cc57
-rw-r--r--ui/views/widget/desktop_aura/desktop_native_widget_aura.cc4
-rw-r--r--ui/views/widget/native_widget_aura.cc10
-rw-r--r--ui/views/widget/widget.cc13
-rw-r--r--ui/wm/core/focus_controller.cc13
-rw-r--r--ui/wm/core/focus_controller_unittest.cc61
31 files changed, 30 insertions, 625 deletions
diff --git a/ash/root_window_controller_unittest.cc b/ash/root_window_controller_unittest.cc
index 412fecd..8189581 100644
--- a/ash/root_window_controller_unittest.cc
+++ b/ash/root_window_controller_unittest.cc
@@ -30,8 +30,6 @@
#include "ui/base/ime/dummy_text_input_client.h"
#include "ui/base/ime/input_method.h"
#include "ui/base/ime/text_input_client.h"
-#include "ui/base/ime/text_input_focus_manager.h"
-#include "ui/base/ui_base_switches_util.h"
#include "ui/events/test/event_generator.h"
#include "ui/events/test/test_event_handler.h"
#include "ui/keyboard/keyboard_controller_proxy.h"
@@ -902,12 +900,7 @@ TEST_F(VirtualKeyboardRootWindowControllerTest, EnsureCaretInWorkArea) {
MockTextInputClient text_input_client;
ui::InputMethod* input_method = proxy->GetInputMethod();
ASSERT_TRUE(input_method);
- if (switches::IsTextInputFocusManagerEnabled()) {
- ui::TextInputFocusManager::GetInstance()->FocusTextInputClient(
- &text_input_client);
- } else {
- input_method->SetFocusedTextInputClient(&text_input_client);
- }
+ input_method->SetFocusedTextInputClient(&text_input_client);
aura::Window* root_window = Shell::GetPrimaryRootWindow();
aura::Window* keyboard_container =
@@ -928,12 +921,7 @@ TEST_F(VirtualKeyboardRootWindowControllerTest, EnsureCaretInWorkArea) {
ASSERT_EQ(root_window->bounds().height() - keyboard_height,
text_input_client.visible_rect().height());
- if (switches::IsTextInputFocusManagerEnabled()) {
- ui::TextInputFocusManager::GetInstance()->BlurTextInputClient(
- &text_input_client);
- } else {
- input_method->SetFocusedTextInputClient(NULL);
- }
+ input_method->SetFocusedTextInputClient(NULL);
}
// Tests that the virtual keyboard does not block context menus. The virtual
diff --git a/ash/wm/workspace/workspace_layout_manager_unittest.cc b/ash/wm/workspace/workspace_layout_manager_unittest.cc
index 84a2251..63826fc 100644
--- a/ash/wm/workspace/workspace_layout_manager_unittest.cc
+++ b/ash/wm/workspace/workspace_layout_manager_unittest.cc
@@ -29,8 +29,6 @@
#include "ui/aura/window_event_dispatcher.h"
#include "ui/base/ime/dummy_text_input_client.h"
#include "ui/base/ime/input_method.h"
-#include "ui/base/ime/text_input_focus_manager.h"
-#include "ui/base/ui_base_switches_util.h"
#include "ui/base/ui_base_types.h"
#include "ui/gfx/geometry/insets.h"
#include "ui/gfx/screen.h"
@@ -1014,27 +1012,17 @@ class WorkspaceLayoutManagerKeyboardTest : public test::AshTestBase {
}
void Focus(ui::TextInputClient* text_input_client) {
- if (switches::IsTextInputFocusManagerEnabled()) {
- ui::TextInputFocusManager::GetInstance()->FocusTextInputClient(
- text_input_client);
- } else {
- aura::Window* root_window =
- ash::Shell::GetInstance()->GetPrimaryRootWindow();
- ui::InputMethod* input_method = root_window->GetHost()->GetInputMethod();
- input_method->SetFocusedTextInputClient(text_input_client);
- }
+ aura::Window* root_window =
+ ash::Shell::GetInstance()->GetPrimaryRootWindow();
+ ui::InputMethod* input_method = root_window->GetHost()->GetInputMethod();
+ input_method->SetFocusedTextInputClient(text_input_client);
}
void Blur(ui::TextInputClient* text_input_client) {
- if (switches::IsTextInputFocusManagerEnabled()) {
- ui::TextInputFocusManager::GetInstance()->BlurTextInputClient(
- text_input_client);
- } else {
- aura::Window* root_window =
- ash::Shell::GetInstance()->GetPrimaryRootWindow();
- ui::InputMethod* input_method = root_window->GetHost()->GetInputMethod();
- input_method->SetFocusedTextInputClient(NULL);
- }
+ aura::Window* root_window =
+ ash::Shell::GetInstance()->GetPrimaryRootWindow();
+ ui::InputMethod* input_method = root_window->GetHost()->GetInputMethod();
+ input_method->SetFocusedTextInputClient(NULL);
}
private:
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index d5833fe..53aa529 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -6758,12 +6758,6 @@ Keep your key file in a safe place. You will need it to create new versions of y
<message name="IDS_FLAGS_ENABLE_APPS_FILE_ASSOCIATIONS_DESCRIPTION" desc="Description for a flag to enable file associations for Chrome Apps.">
Enable OS integration of file associations for Chrome Apps.
</message>
- <message name="IDS_FLAGS_TEXT_INPUT_FOCUS_MANAGER_NAME" desc="Title for the flag to enable the new text input focus manager.">
- Experimental text input focus manager.
- </message>
- <message name="IDS_FLAGS_TEXT_INPUT_FOCUS_MANAGER_DESCRIPTION" desc="Description for the flag to enable the new text input focus manager.">
- Enable an experimental focus manager to track text input clients.
- </message>
<message name="IDS_FLAGS_ENABLE_HARFBUZZ_RENDERTEXT_NAME" desc="Name of the about:flags HarfBuzz RenderText experiment.">
Enable HarfBuzz for UI text.
</message>
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 0aeb725..7e9bf2a 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -1615,14 +1615,6 @@ const Experiment kExperiments[] = {
IDS_FLAGS_EXTENSION_CONTENT_VERIFICATION_DESCRIPTION,
kOsDesktop,
MULTI_VALUE_TYPE(kExtensionContentVerificationChoices)},
-#if defined(USE_AURA)
- {"text-input-focus-manager",
- IDS_FLAGS_TEXT_INPUT_FOCUS_MANAGER_NAME,
- IDS_FLAGS_TEXT_INPUT_FOCUS_MANAGER_DESCRIPTION,
- kOsCrOS | kOsLinux | kOsWin,
- ENABLE_DISABLE_VALUE_TYPE(switches::kEnableTextInputFocusManager,
- switches::kDisableTextInputFocusManager)},
-#endif
#if defined(ENABLE_EXTENSIONS)
{"extension-active-script-permission",
IDS_FLAGS_USER_CONSENT_FOR_EXTENSION_SCRIPTS_NAME,
diff --git a/chrome/browser/chromeos/login/ui/login_display_host_impl.cc b/chrome/browser/chromeos/login/ui/login_display_host_impl.cc
index 7409b6b..caf108a 100644
--- a/chrome/browser/chromeos/login/ui/login_display_host_impl.cc
+++ b/chrome/browser/chromeos/login/ui/login_display_host_impl.cc
@@ -83,7 +83,6 @@
#include "ui/base/ime/chromeos/extension_ime_util.h"
#include "ui/base/ime/chromeos/input_method_manager.h"
#include "ui/base/resource/resource_bundle.h"
-#include "ui/base/ui_base_switches_util.h"
#include "ui/compositor/layer.h"
#include "ui/compositor/layer_animation_observer.h"
#include "ui/compositor/scoped_layer_animation_settings.h"
@@ -973,8 +972,6 @@ void LoginDisplayHostImpl::ShowWebUI() {
VLOG(1) << "Login WebUI >> Show already initialized UI";
login_window_->Show();
login_view_->GetWebContents()->Focus();
- if (::switches::IsTextInputFocusManagerEnabled())
- login_view_->RequestFocus();
login_view_->SetStatusAreaVisible(status_area_saved_visibility_);
login_view_->OnPostponedShow();
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
index 592bd3d..af5bb96 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
@@ -20,13 +20,13 @@
#include "chrome/test/base/interactive_test_utils.h"
#include "ui/base/clipboard/clipboard.h"
#include "ui/base/clipboard/scoped_clipboard_writer.h"
-#include "ui/base/ime/text_input_focus_manager.h"
#include "ui/base/test/ui_controls.h"
#include "ui/base/ui_base_switches.h"
#include "ui/events/event_processor.h"
#include "ui/events/event_utils.h"
#include "ui/events/test/event_generator.h"
#include "ui/views/controls/textfield/textfield_test_api.h"
+#include "ui/views/ime/input_method.h"
namespace {
@@ -376,18 +376,12 @@ IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest,
}
IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest, FocusedTextInputClient) {
- base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
- cmd_line->AppendSwitch(switches::kEnableTextInputFocusManager);
-
- // TODO(yukishiino): The following call to FocusLocationBar is not necessary
- // if the flag is enabled by default. Remove the call once the transition to
- // TextInputFocusManager completes.
chrome::FocusLocationBar(browser());
OmniboxView* view = NULL;
ASSERT_NO_FATAL_FAILURE(GetOmniboxViewForBrowser(browser(), &view));
OmniboxViewViews* omnibox_view_views = static_cast<OmniboxViewViews*>(view);
- ui::TextInputFocusManager* text_input_focus_manager =
- ui::TextInputFocusManager::GetInstance();
+ views::InputMethod* input_method =
+ omnibox_view_views->GetWidget()->GetInputMethod();
EXPECT_EQ(omnibox_view_views->GetTextInputClient(),
- text_input_focus_manager->GetFocusedTextInputClient());
+ input_method->GetTextInputClient());
}
diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi
index 84f12f1..43a824b 100644
--- a/chrome/chrome_tests.gypi
+++ b/chrome/chrome_tests.gypi
@@ -1016,7 +1016,6 @@
],
# Cross-platform views interactive tests ready for toolkit-views on Mac.
'chrome_interactive_ui_test_views_sources': [
- '../ui/views/controls/webview/webview_interactive_uitest.cc',
'../ui/views/corewm/desktop_capture_controller_unittest.cc',
'../ui/views/widget/desktop_aura/desktop_window_tree_host_x11_interactive_uitest.cc',
'../ui/views/widget/desktop_aura/x11_topmost_window_finder_interactive_uitest.cc',
diff --git a/ui/base/ime/BUILD.gn b/ui/base/ime/BUILD.gn
index 99e4aae..5125aa2 100644
--- a/ui/base/ime/BUILD.gn
+++ b/ui/base/ime/BUILD.gn
@@ -89,8 +89,6 @@ component("ime") {
"remote_input_method_win.h",
"text_input_client.cc",
"text_input_client.h",
- "text_input_focus_manager.cc",
- "text_input_focus_manager.h",
"text_input_type.h",
"ui_base_ime_export.h",
"win/imm32_manager.cc",
diff --git a/ui/base/ime/input_method_base.cc b/ui/base/ime/input_method_base.cc
index b117a08..dc85619 100644
--- a/ui/base/ime/input_method_base.cc
+++ b/ui/base/ime/input_method_base.cc
@@ -10,8 +10,6 @@
#include "ui/base/ime/input_method_delegate.h"
#include "ui/base/ime/input_method_observer.h"
#include "ui/base/ime/text_input_client.h"
-#include "ui/base/ime/text_input_focus_manager.h"
-#include "ui/base/ui_base_switches_util.h"
#include "ui/events/event.h"
namespace ui {
@@ -51,9 +49,6 @@ void InputMethodBase::DetachTextInputClient(TextInputClient* client) {
}
TextInputClient* InputMethodBase::GetTextInputClient() const {
- if (switches::IsTextInputFocusManagerEnabled())
- return TextInputFocusManager::GetInstance()->GetFocusedTextInputClient();
-
return system_toplevel_window_focused_ ? text_input_client_ : NULL;
}
@@ -132,9 +127,6 @@ void InputMethodBase::NotifyTextInputCaretBoundsChanged(
void InputMethodBase::SetFocusedTextInputClientInternal(
TextInputClient* client) {
- if (switches::IsTextInputFocusManagerEnabled())
- return;
-
TextInputClient* old = text_input_client_;
if (old == client)
return;
diff --git a/ui/base/ime/input_method_base_unittest.cc b/ui/base/ime/input_method_base_unittest.cc
index 55db6f9..3e9ae87 100644
--- a/ui/base/ime/input_method_base_unittest.cc
+++ b/ui/base/ime/input_method_base_unittest.cc
@@ -12,8 +12,6 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/base/ime/dummy_text_input_client.h"
#include "ui/base/ime/input_method_observer.h"
-#include "ui/base/ime/text_input_focus_manager.h"
-#include "ui/base/ui_base_switches_util.h"
#include "ui/events/event.h"
namespace ui {
@@ -54,15 +52,9 @@ class ClientChangeVerifier {
// Verifies the result satisfies the expectation or not.
void Verify() {
- if (switches::IsTextInputFocusManagerEnabled()) {
- EXPECT_FALSE(on_will_change_focused_client_called_);
- EXPECT_FALSE(on_did_change_focused_client_called_);
- EXPECT_FALSE(on_text_input_state_changed_);
- } else {
- EXPECT_EQ(call_expected_, on_will_change_focused_client_called_);
- EXPECT_EQ(call_expected_, on_did_change_focused_client_called_);
- EXPECT_EQ(call_expected_, on_text_input_state_changed_);
- }
+ EXPECT_EQ(call_expected_, on_will_change_focused_client_called_);
+ EXPECT_EQ(call_expected_, on_did_change_focused_client_called_);
+ EXPECT_EQ(call_expected_, on_text_input_state_changed_);
}
void OnWillChangeFocusedClient(TextInputClient* focused_before,
@@ -203,12 +195,7 @@ typedef ScopedObserver<InputMethod, InputMethodObserver>
void SetFocusedTextInputClient(InputMethod* input_method,
TextInputClient* text_input_client) {
- if (switches::IsTextInputFocusManagerEnabled()) {
- TextInputFocusManager::GetInstance()->FocusTextInputClient(
- text_input_client);
- } else {
- input_method->SetFocusedTextInputClient(text_input_client);
- }
+ input_method->SetFocusedTextInputClient(text_input_client);
}
TEST_F(InputMethodBaseTest, SetFocusedTextInputClient) {
@@ -271,10 +258,6 @@ TEST_F(InputMethodBaseTest, SetFocusedTextInputClient) {
}
TEST_F(InputMethodBaseTest, DetachTextInputClient) {
- // DetachTextInputClient is not supported when IsTextInputFocusManagerEnabled.
- if (switches::IsTextInputFocusManagerEnabled())
- return;
-
DummyTextInputClient text_input_client;
DummyTextInputClient text_input_client_the_other;
diff --git a/ui/base/ime/input_method_chromeos_unittest.cc b/ui/base/ime/input_method_chromeos_unittest.cc
index aa4ac76..8593924 100644
--- a/ui/base/ime/input_method_chromeos_unittest.cc
+++ b/ui/base/ime/input_method_chromeos_unittest.cc
@@ -23,8 +23,6 @@
#include "ui/base/ime/dummy_text_input_client.h"
#include "ui/base/ime/input_method_delegate.h"
#include "ui/base/ime/text_input_client.h"
-#include "ui/base/ime/text_input_focus_manager.h"
-#include "ui/base/ui_base_switches_util.h"
#include "ui/events/event.h"
#include "ui/events/event_utils.h"
#include "ui/events/keycodes/dom/dom_code.h"
@@ -220,19 +218,12 @@ class InputMethodChromeOSTest : public internal::InputMethodDelegate,
mock_ime_candidate_window_handler_.get());
ime_.reset(new TestableInputMethodChromeOS(this));
- if (switches::IsTextInputFocusManagerEnabled())
- TextInputFocusManager::GetInstance()->FocusTextInputClient(this);
- else
- ime_->SetFocusedTextInputClient(this);
+ ime_->SetFocusedTextInputClient(this);
}
void TearDown() override {
- if (ime_.get()) {
- if (switches::IsTextInputFocusManagerEnabled())
- TextInputFocusManager::GetInstance()->BlurTextInputClient(this);
- else
- ime_->SetFocusedTextInputClient(NULL);
- }
+ if (ime_.get())
+ ime_->SetFocusedTextInputClient(NULL);
ime_.reset();
chromeos::IMEBridge::Get()->SetCurrentEngineHandler(NULL);
chromeos::IMEBridge::Get()->SetCandidateWindowHandler(NULL);
@@ -377,30 +368,21 @@ TEST_F(InputMethodChromeOSTest, CanComposeInline) {
TEST_F(InputMethodChromeOSTest, GetTextInputClient) {
ime_->OnFocus();
EXPECT_EQ(this, ime_->GetTextInputClient());
- if (switches::IsTextInputFocusManagerEnabled())
- TextInputFocusManager::GetInstance()->BlurTextInputClient(this);
- else
- ime_->SetFocusedTextInputClient(NULL);
+ ime_->SetFocusedTextInputClient(NULL);
EXPECT_EQ(NULL, ime_->GetTextInputClient());
}
TEST_F(InputMethodChromeOSTest, GetInputTextType_WithoutFocusedClient) {
ime_->OnFocus();
EXPECT_EQ(TEXT_INPUT_TYPE_NONE, ime_->GetTextInputType());
- if (switches::IsTextInputFocusManagerEnabled())
- TextInputFocusManager::GetInstance()->BlurTextInputClient(this);
- else
- ime_->SetFocusedTextInputClient(NULL);
+ ime_->SetFocusedTextInputClient(NULL);
input_type_ = TEXT_INPUT_TYPE_PASSWORD;
ime_->OnTextInputTypeChanged(this);
// The OnTextInputTypeChanged() call above should be ignored since |this| is
// not the current focused client.
EXPECT_EQ(TEXT_INPUT_TYPE_NONE, ime_->GetTextInputType());
- if (switches::IsTextInputFocusManagerEnabled())
- TextInputFocusManager::GetInstance()->FocusTextInputClient(this);
- else
- ime_->SetFocusedTextInputClient(this);
+ ime_->SetFocusedTextInputClient(this);
ime_->OnTextInputTypeChanged(this);
EXPECT_EQ(TEXT_INPUT_TYPE_PASSWORD, ime_->GetTextInputType());
}
@@ -408,28 +390,19 @@ TEST_F(InputMethodChromeOSTest, GetInputTextType_WithoutFocusedClient) {
TEST_F(InputMethodChromeOSTest, GetInputTextType_WithoutFocusedWindow) {
ime_->OnFocus();
EXPECT_EQ(TEXT_INPUT_TYPE_NONE, ime_->GetTextInputType());
- if (switches::IsTextInputFocusManagerEnabled())
- TextInputFocusManager::GetInstance()->BlurTextInputClient(this);
- else
- ime_->OnBlur();
+ ime_->OnBlur();
input_type_ = TEXT_INPUT_TYPE_PASSWORD;
ime_->OnTextInputTypeChanged(this);
// The OnTextInputTypeChanged() call above should be ignored since the top-
// level window which the ime_ is attached to is not currently focused.
EXPECT_EQ(TEXT_INPUT_TYPE_NONE, ime_->GetTextInputType());
- if (switches::IsTextInputFocusManagerEnabled())
- TextInputFocusManager::GetInstance()->FocusTextInputClient(this);
- else
- ime_->OnFocus();
+ ime_->OnFocus();
ime_->OnTextInputTypeChanged(this);
EXPECT_EQ(TEXT_INPUT_TYPE_PASSWORD, ime_->GetTextInputType());
}
TEST_F(InputMethodChromeOSTest, GetInputTextType_WithoutFocusedWindow2) {
- if (switches::IsTextInputFocusManagerEnabled())
- return;
-
EXPECT_EQ(TEXT_INPUT_TYPE_NONE, ime_->GetTextInputType());
input_type_ = TEXT_INPUT_TYPE_PASSWORD;
ime_->OnTextInputTypeChanged(this);
@@ -540,10 +513,6 @@ TEST_F(InputMethodChromeOSTest, Focus_Scenario) {
EXPECT_EQ(TEXT_INPUT_MODE_KANA,
mock_ime_engine_handler_->last_text_input_context().mode);
- // When IsTextInputFocusManagerEnabled, InputMethod::SetFocusedTextInputClient
- // is not supported and it's no-op.
- if (switches::IsTextInputFocusManagerEnabled())
- return;
// Confirm that FocusOut is called when set focus to NULL client.
ime_->SetFocusedTextInputClient(NULL);
EXPECT_EQ(3, mock_ime_engine_handler_->focus_in_call_count());
diff --git a/ui/base/ime/mock_input_method.cc b/ui/base/ime/mock_input_method.cc
index 6a93643..046942a 100644
--- a/ui/base/ime/mock_input_method.cc
+++ b/ui/base/ime/mock_input_method.cc
@@ -5,8 +5,6 @@
#include "ui/base/ime/mock_input_method.h"
#include "ui/base/ime/input_method_delegate.h"
-#include "ui/base/ime/text_input_focus_manager.h"
-#include "ui/base/ui_base_switches_util.h"
#include "ui/events/event.h"
namespace ui {
@@ -25,9 +23,6 @@ void MockInputMethod::SetDelegate(internal::InputMethodDelegate* delegate) {
}
void MockInputMethod::SetFocusedTextInputClient(TextInputClient* client) {
- if (switches::IsTextInputFocusManagerEnabled())
- return;
-
if (text_input_client_ == client)
return;
text_input_client_ = client;
@@ -42,9 +37,6 @@ void MockInputMethod::DetachTextInputClient(TextInputClient* client) {
}
TextInputClient* MockInputMethod::GetTextInputClient() const {
- if (switches::IsTextInputFocusManagerEnabled())
- return TextInputFocusManager::GetInstance()->GetFocusedTextInputClient();
-
return text_input_client_;
}
diff --git a/ui/base/ime/text_input_focus_manager.cc b/ui/base/ime/text_input_focus_manager.cc
deleted file mode 100644
index 25033d8..0000000
--- a/ui/base/ime/text_input_focus_manager.cc
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ui/base/ime/text_input_focus_manager.h"
-
-#include "base/logging.h"
-#include "base/memory/singleton.h"
-
-namespace ui {
-
-// TODO(sky): reenable these DCHECKs. We're in the process of enabling usage
-// of views from multiple threads and this causes problems. See
-// http://crbug.com/388045 for details.
-
-TextInputFocusManager* TextInputFocusManager::GetInstance() {
- TextInputFocusManager* instance = Singleton<TextInputFocusManager>::get();
- // DCHECK(instance->thread_checker_.CalledOnValidThread());
- return instance;
-}
-
-TextInputClient* TextInputFocusManager::GetFocusedTextInputClient() {
- // DCHECK(thread_checker_.CalledOnValidThread());
- return focused_text_input_client_;
-}
-
-void TextInputFocusManager::FocusTextInputClient(
- TextInputClient* text_input_client) {
- // DCHECK(thread_checker_.CalledOnValidThread());
- focused_text_input_client_ = text_input_client;
-}
-
-void TextInputFocusManager::BlurTextInputClient(
- TextInputClient* text_input_client) {
- // DCHECK(thread_checker_.CalledOnValidThread());
- if (focused_text_input_client_ == text_input_client)
- focused_text_input_client_ = NULL;
-}
-
-TextInputFocusManager::TextInputFocusManager()
- : focused_text_input_client_(NULL) {}
-
-TextInputFocusManager::~TextInputFocusManager() {}
-
-} // namespace ui
diff --git a/ui/base/ime/text_input_focus_manager.h b/ui/base/ime/text_input_focus_manager.h
deleted file mode 100644
index 88bf3fc..0000000
--- a/ui/base/ime/text_input_focus_manager.h
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef UI_BASE_IME_TEXT_INPUT_FOCUS_MANAGER_H_
-#define UI_BASE_IME_TEXT_INPUT_FOCUS_MANAGER_H_
-
-#include "base/macros.h"
-#include "base/threading/thread_checker.h"
-#include "ui/base/ime/ui_base_ime_export.h"
-
-template <typename T> struct DefaultSingletonTraits;
-
-namespace ui {
-
-class TextInputClient;
-
-// Manages the focused TextInputClient across windows and their contents.
-class UI_BASE_IME_EXPORT TextInputFocusManager {
- public:
- static TextInputFocusManager* GetInstance();
-
- // Returns the currently focused text input client or NULL.
- TextInputClient* GetFocusedTextInputClient();
-
- // Changes the text input focus to |text_input_client|.
- void FocusTextInputClient(TextInputClient* text_input_client);
-
- // Removes the text input focus from |text_input_client|. If
- // |text_input_client| was not focused, does nothing.
- void BlurTextInputClient(TextInputClient* text_input_client);
-
- private:
- friend struct DefaultSingletonTraits<TextInputFocusManager>;
-
- TextInputFocusManager();
- ~TextInputFocusManager();
-
- TextInputClient* focused_text_input_client_;
- base::ThreadChecker thread_checker_;
-
- DISALLOW_COPY_AND_ASSIGN(TextInputFocusManager);
-};
-
-} // namespace ui
-
-#endif // UI_BASE_IME_TEXT_INPUT_FOCUS_MANAGER_H_
diff --git a/ui/base/ime/ui_base_ime.gyp b/ui/base/ime/ui_base_ime.gyp
index 65134f7..b612984 100644
--- a/ui/base/ime/ui_base_ime.gyp
+++ b/ui/base/ime/ui_base_ime.gyp
@@ -110,8 +110,6 @@
'remote_input_method_win.h',
'text_input_client.cc',
'text_input_client.h',
- 'text_input_focus_manager.cc',
- 'text_input_focus_manager.h',
'text_input_type.h',
'ui_base_ime_export.h',
'win/imm32_manager.cc',
diff --git a/ui/base/ui_base_switches.cc b/ui/base/ui_base_switches.cc
index e26b882..f3682da 100644
--- a/ui/base/ui_base_switches.cc
+++ b/ui/base/ui_base_switches.cc
@@ -22,9 +22,6 @@ const char kDisableDwmComposition[] = "disable-dwm-composition";
// Disables large icons on the New Tab page.
const char kDisableIconNtp[] = "disable-icon-ntp";
-// Disables an experimental focus manager to track text input clients.
-const char kDisableTextInputFocusManager[] = "disable-text-input-focus-manager";
-
// Disables touch adjustment.
const char kDisableTouchAdjustment[] = "disable-touch-adjustment";
@@ -44,9 +41,6 @@ const char kEnableIconNtp[] = "enable-icon-ntp";
const char kEnableLinkDisambiguationPopup[] =
"enable-link-disambiguation-popup";
-// Enables an experimental focus manager to track text input clients.
-const char kEnableTextInputFocusManager[] = "enable-text-input-focus-manager";
-
// Enables touch event based drag and drop.
const char kEnableTouchDragDrop[] = "enable-touch-drag-drop";
diff --git a/ui/base/ui_base_switches.h b/ui/base/ui_base_switches.h
index eddf34f..7541bad 100644
--- a/ui/base/ui_base_switches.h
+++ b/ui/base/ui_base_switches.h
@@ -19,14 +19,12 @@ UI_BASE_EXPORT extern const char kEnableNSGLSurfaces[];
UI_BASE_EXPORT extern const char kDisableDwmComposition[];
UI_BASE_EXPORT extern const char kDisableIconNtp[];
-UI_BASE_EXPORT extern const char kDisableTextInputFocusManager[];
UI_BASE_EXPORT extern const char kDisableTouchAdjustment[];
UI_BASE_EXPORT extern const char kDisableTouchDragDrop[];
UI_BASE_EXPORT extern const char kDisableTouchEditing[];
UI_BASE_EXPORT extern const char kDisableTouchFeedback[];
UI_BASE_EXPORT extern const char kEnableIconNtp[];
UI_BASE_EXPORT extern const char kEnableLinkDisambiguationPopup[];
-UI_BASE_EXPORT extern const char kEnableTextInputFocusManager[];
UI_BASE_EXPORT extern const char kEnableTouchDragDrop[];
UI_BASE_EXPORT extern const char kEnableTouchEditing[];
UI_BASE_EXPORT extern const char kLang[];
diff --git a/ui/base/ui_base_switches_util.cc b/ui/base/ui_base_switches_util.cc
index 6dcb9ef..e529a7c 100644
--- a/ui/base/ui_base_switches_util.cc
+++ b/ui/base/ui_base_switches_util.cc
@@ -21,11 +21,6 @@ bool IsLinkDisambiguationPopupEnabled() {
#endif
}
-bool IsTextInputFocusManagerEnabled() {
- return base::CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kEnableTextInputFocusManager);
-}
-
bool IsTouchDragDropEnabled() {
#if defined(OS_CHROMEOS)
return !base::CommandLine::ForCurrentProcess()->HasSwitch(
diff --git a/ui/base/ui_base_switches_util.h b/ui/base/ui_base_switches_util.h
index 213aed6..fe6c289 100644
--- a/ui/base/ui_base_switches_util.h
+++ b/ui/base/ui_base_switches_util.h
@@ -10,7 +10,6 @@
namespace switches {
UI_BASE_EXPORT bool IsLinkDisambiguationPopupEnabled();
-UI_BASE_EXPORT bool IsTextInputFocusManagerEnabled();
UI_BASE_EXPORT bool IsTouchDragDropEnabled();
UI_BASE_EXPORT bool IsTouchEditingEnabled();
UI_BASE_EXPORT bool IsTouchFeedbackEnabled();
diff --git a/ui/keyboard/keyboard_controller_unittest.cc b/ui/keyboard/keyboard_controller_unittest.cc
index 640e7f7..116e43e 100644
--- a/ui/keyboard/keyboard_controller_unittest.cc
+++ b/ui/keyboard/keyboard_controller_unittest.cc
@@ -19,8 +19,6 @@
#include "ui/base/ime/input_method.h"
#include "ui/base/ime/input_method_factory.h"
#include "ui/base/ime/text_input_client.h"
-#include "ui/base/ime/text_input_focus_manager.h"
-#include "ui/base/ui_base_switches_util.h"
#include "ui/compositor/compositor.h"
#include "ui/compositor/layer_type.h"
#include "ui/compositor/scoped_animation_duration_scale_mode.h"
@@ -185,8 +183,6 @@ class KeyboardControllerTest : public testing::Test,
aura_test_helper_->SetUp(context_factory);
new wm::DefaultActivationClient(aura_test_helper_->root_window());
ui::SetUpInputMethodFactoryForTesting();
- if (::switches::IsTextInputFocusManagerEnabled())
- ui::TextInputFocusManager::GetInstance()->FocusTextInputClient(NULL);
focus_controller_.reset(new TestFocusController(root_window()));
proxy_ = new TestKeyboardControllerProxy();
controller_.reset(new KeyboardController(proxy_));
@@ -197,8 +193,6 @@ class KeyboardControllerTest : public testing::Test,
controller()->RemoveObserver(this);
controller_.reset();
focus_controller_.reset();
- if (::switches::IsTextInputFocusManagerEnabled())
- ui::TextInputFocusManager::GetInstance()->FocusTextInputClient(NULL);
aura_test_helper_->TearDown();
ui::TerminateContextFactoryForTests();
}
@@ -235,12 +229,7 @@ class KeyboardControllerTest : public testing::Test,
void SetFocus(ui::TextInputClient* client) {
ui::InputMethod* input_method = proxy()->GetInputMethod();
- if (::switches::IsTextInputFocusManagerEnabled()) {
- ui::TextInputFocusManager::GetInstance()->FocusTextInputClient(client);
- input_method->OnTextInputTypeChanged(client);
- } else {
- input_method->SetFocusedTextInputClient(client);
- }
+ input_method->SetFocusedTextInputClient(client);
if (client && client->GetTextInputType() != ui::TEXT_INPUT_TYPE_NONE) {
input_method->ShowImeIfNeeded();
if (proxy_->GetKeyboardWindow()->bounds().height() == 0) {
diff --git a/ui/views/cocoa/bridged_native_widget.mm b/ui/views/cocoa/bridged_native_widget.mm
index a465d24..c5fa0a2 100644
--- a/ui/views/cocoa/bridged_native_widget.mm
+++ b/ui/views/cocoa/bridged_native_widget.mm
@@ -15,7 +15,6 @@
#include "ui/base/hit_test.h"
#include "ui/base/ime/input_method.h"
#include "ui/base/ime/input_method_factory.h"
-#include "ui/base/ui_base_switches_util.h"
#include "ui/gfx/display.h"
#include "ui/gfx/geometry/dip_util.h"
#import "ui/gfx/mac/coordinate_conversion.h"
@@ -709,9 +708,6 @@ void BridgedNativeWidget::OnSizeConstraintsChanged() {
}
InputMethod* BridgedNativeWidget::CreateInputMethod() {
- if (switches::IsTextInputFocusManagerEnabled())
- return new NullInputMethod();
-
return new InputMethodBridge(this, GetHostInputMethod(), true);
}
diff --git a/ui/views/controls/webview/webview.cc b/ui/views/controls/webview/webview.cc
index 059540a..adeeadc 100644
--- a/ui/views/controls/webview/webview.cc
+++ b/ui/views/controls/webview/webview.cc
@@ -14,7 +14,6 @@
#include "ipc/ipc_message.h"
#include "ui/accessibility/ax_enums.h"
#include "ui/accessibility/ax_view_state.h"
-#include "ui/base/ui_base_switches_util.h"
#include "ui/events/event.h"
#include "ui/views/controls/native/native_view_host.h"
#include "ui/views/focus/focus_manager.h"
@@ -111,21 +110,6 @@ const char* WebView::GetClassName() const {
}
ui::TextInputClient* WebView::GetTextInputClient() {
- // This function delegates the text input handling to the underlying
- // content::RenderWidgetHostView. So when the underlying RWHV is destroyed or
- // replaced with another one, we have to notify the FocusManager through
- // FocusManager::OnTextInputClientChanged() that the focused TextInputClient
- // needs to be updated.
- if (switches::IsTextInputFocusManagerEnabled() &&
- web_contents() && !web_contents()->IsBeingDestroyed()) {
- const content::RenderViewHost* host = web_contents()->GetRenderViewHost();
- content::RenderWidgetHostView* host_view =
- is_embedding_fullscreen_widget_ ?
- web_contents()->GetFullscreenRenderWidgetHostView() :
- web_contents()->GetRenderWidgetHostView();
- if (host && host->IsRenderViewLive() && host_view)
- return host_view->GetTextInputClient();
- }
return NULL;
}
@@ -393,11 +377,6 @@ void WebView::ReattachForFullscreenChange(bool enter_fullscreen) {
}
void WebView::NotifyMaybeTextInputClientAndAccessibilityChanged() {
- // Update the TextInputClient as needed; see GetTextInputClient().
- FocusManager* const focus_manager = GetFocusManager();
- if (focus_manager)
- focus_manager->OnTextInputClientChanged(this);
-
#if defined(OS_CHROMEOS)
if (web_contents())
NotifyAccessibilityEvent(ui::AX_EVENT_CHILDREN_CHANGED, false);
diff --git a/ui/views/controls/webview/webview_interactive_uitest.cc b/ui/views/controls/webview/webview_interactive_uitest.cc
deleted file mode 100644
index a15dfaa..0000000
--- a/ui/views/controls/webview/webview_interactive_uitest.cc
+++ /dev/null
@@ -1,119 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ui/views/controls/webview/webview.h"
-
-#include "base/command_line.h"
-#include "base/memory/scoped_ptr.h"
-#include "content/public/browser/web_contents.h"
-#include "content/public/test/mock_render_process_host.h"
-#include "content/public/test/test_browser_context.h"
-#include "content/public/test/test_browser_thread.h"
-#include "content/public/test/test_renderer_host.h"
-#include "content/public/test/web_contents_tester.h"
-#include "ui/base/ime/text_input_focus_manager.h"
-#include "ui/base/ui_base_switches.h"
-#include "ui/gl/gl_surface.h"
-#include "ui/views/test/test_views_delegate.h"
-#include "ui/views/test/webview_test_helper.h"
-#include "ui/views/test/widget_test.h"
-
-namespace {
-
-class WebViewTestViewsDelegate : public views::TestViewsDelegate {
- public:
- WebViewTestViewsDelegate() {}
-
- // Overriden from TestViewsDelegate.
- content::WebContents* CreateWebContents(
- content::BrowserContext* browser_context,
- content::SiteInstance* site_instance) override {
- return content::WebContentsTester::CreateTestWebContents(browser_context,
- site_instance);
- }
-
- private:
- DISALLOW_COPY_AND_ASSIGN(WebViewTestViewsDelegate);
-};
-
-class WebViewInteractiveUiTest : public views::test::WidgetTest {
- public:
- WebViewInteractiveUiTest()
- : ui_thread_(content::BrowserThread::UI, base::MessageLoop::current()) {}
-
- void SetUp() override {
- gfx::GLSurface::InitializeOneOffForTests();
- set_views_delegate(make_scoped_ptr(new WebViewTestViewsDelegate));
- WidgetTest::SetUp();
- }
-
- protected:
- content::BrowserContext* browser_context() { return &browser_context_; }
-
- private:
- content::TestBrowserContext browser_context_;
- views::WebViewTestHelper webview_test_helper_;
- content::TestBrowserThread ui_thread_;
-
- DISALLOW_COPY_AND_ASSIGN(WebViewInteractiveUiTest);
-};
-
-TEST_F(WebViewInteractiveUiTest, TextInputClientIsUpToDate) {
- // WebViewInteractiveUiTest.TextInputClientIsUpToDate needs
- // kEnableTextInputFocusManager flag to be enabled.
- base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
- cmd_line->AppendSwitch(switches::kEnableTextInputFocusManager);
-
- // Create a top level widget and a webview as its content.
- views::Widget* widget = CreateTopLevelFramelessPlatformWidget();
- views::WebView* webview = new views::WebView(browser_context());
- widget->SetContentsView(webview);
- widget->Show();
- webview->RequestFocus();
-
- // Mac needs to spin a run loop to activate. Don't fake it, so that the Widget
- // still gets didBecomeKey notifications. There is just one widget, so a
- // single spin of the runloop should be enough (it didn't flake in local tests
- // but a WidgetObserver might be needed).
-#if defined(OS_MACOSX)
- RunPendingMessages();
-#endif
- EXPECT_TRUE(widget->IsActive());
-
- ui::TextInputFocusManager* text_input_focus_manager =
- ui::TextInputFocusManager::GetInstance();
- EXPECT_EQ(nullptr, webview->GetTextInputClient());
- EXPECT_EQ(text_input_focus_manager->GetFocusedTextInputClient(),
- webview->GetTextInputClient());
-
- // Case 1: Creates a new WebContents.
- content::WebContents* web_contents1 = webview->GetWebContents();
- web_contents1->GetRenderViewHost()->GetProcess()->Init();
- content::RenderViewHostTester::For(web_contents1->GetRenderViewHost())
- ->CreateTestRenderView(base::string16(), MSG_ROUTING_NONE,
- MSG_ROUTING_NONE, -1, false);
- webview->RequestFocus();
- ui::TextInputClient* client1 = webview->GetTextInputClient();
- EXPECT_NE(nullptr, client1);
- EXPECT_EQ(text_input_focus_manager->GetFocusedTextInputClient(), client1);
-
- // Case 2: Replaces a WebContents by SetWebContents().
- scoped_ptr<content::WebContents> web_contents2(
- content::WebContentsTester::CreateTestWebContents(browser_context(),
- nullptr));
- web_contents2->GetRenderViewHost()->GetProcess()->Init();
- content::RenderViewHostTester::For(web_contents2->GetRenderViewHost())
- ->CreateTestRenderView(base::string16(), MSG_ROUTING_NONE,
- MSG_ROUTING_NONE, -1, false);
- webview->SetWebContents(web_contents2.get());
- ui::TextInputClient* client2 = webview->GetTextInputClient();
- EXPECT_NE(nullptr, client2);
- EXPECT_EQ(text_input_focus_manager->GetFocusedTextInputClient(), client2);
- EXPECT_NE(client1, client2);
-
- widget->Close();
- RunPendingMessages();
-}
-
-} // namespace
diff --git a/ui/views/focus/focus_manager.cc b/ui/views/focus/focus_manager.cc
index 86acea3c..c84c315 100644
--- a/ui/views/focus/focus_manager.cc
+++ b/ui/views/focus/focus_manager.cc
@@ -13,8 +13,6 @@
#include "ui/base/accelerators/accelerator.h"
#include "ui/base/ime/input_method.h"
#include "ui/base/ime/text_input_client.h"
-#include "ui/base/ime/text_input_focus_manager.h"
-#include "ui/base/ui_base_switches_util.h"
#include "ui/events/event.h"
#include "ui/events/keycodes/keyboard_codes.h"
#include "ui/views/focus/focus_manager_delegate.h"
@@ -301,13 +299,8 @@ View* FocusManager::GetNextFocusableView(View* original_starting_view,
void FocusManager::SetFocusedViewWithReason(
View* view, FocusChangeReason reason) {
- if (focused_view_ == view) {
- // In the case that the widget lost the focus and gained it back without
- // changing the focused view, we have to make the text input client focused.
- // TODO(yukishiino): Remove this hack once we fix http://crbug.com/383236
- FocusTextInputClient(focused_view_);
+ if (focused_view_ == view)
return;
- }
base::AutoReset<bool> auto_changing_focus(&is_changing_focus_, true);
// Update the reason for the focus change (since this is checked by
@@ -318,18 +311,14 @@ void FocusManager::SetFocusedViewWithReason(
View* old_focused_view = focused_view_;
focused_view_ = view;
- if (old_focused_view) {
+ if (old_focused_view)
old_focused_view->Blur();
- BlurTextInputClient(old_focused_view);
- }
// Also make |focused_view_| the stored focus view. This way the stored focus
// view is remembered if focus changes are requested prior to a show or while
// hidden.
SetStoredFocusView(focused_view_);
- if (focused_view_) {
- FocusTextInputClient(focused_view_);
+ if (focused_view_)
focused_view_->Focus();
- }
FOR_EACH_OBSERVER(FocusChangeListener, focus_change_listeners_,
OnDidChangeFocus(old_focused_view, focused_view_));
@@ -443,46 +432,6 @@ void FocusManager::ClearStoredFocusedView() {
SetStoredFocusView(NULL);
}
-void FocusManager::OnTextInputClientChanged(View* view) {
- if (view == focused_view_)
- FocusTextInputClient(view);
-}
-
-void FocusManager::FocusTextInputClient(View* view) {
- if (!switches::IsTextInputFocusManagerEnabled())
- return;
-
- // If the widget is not active, do not steal the text input focus.
- if (!widget_->IsActive())
- return;
-
- ui::TextInputClient* text_input_client =
- view ? view->GetTextInputClient() : NULL;
- ui::TextInputFocusManager::GetInstance()->
- FocusTextInputClient(text_input_client);
- ui::InputMethod* input_method = widget_->GetHostInputMethod();
- if (input_method) {
- input_method->OnTextInputTypeChanged(text_input_client);
- input_method->OnCaretBoundsChanged(text_input_client);
- }
-}
-
-void FocusManager::BlurTextInputClient(View* view) {
- if (!switches::IsTextInputFocusManagerEnabled())
- return;
-
- ui::TextInputClient* text_input_client =
- view ? view->GetTextInputClient() : NULL;
- if (text_input_client && text_input_client->HasCompositionText()) {
- text_input_client->ConfirmCompositionText();
- ui::InputMethod* input_method = widget_->GetHostInputMethod();
- if (input_method && input_method->GetTextInputClient() == text_input_client)
- input_method->CancelComposition(text_input_client);
- }
- ui::TextInputFocusManager::GetInstance()->
- BlurTextInputClient(text_input_client);
-}
-
// Find the next (previous if reverse is true) focusable view for the specified
// FocusTraversable, starting at the specified view, traversing down the
// FocusTraversable hierarchy.
diff --git a/ui/views/focus/focus_manager.h b/ui/views/focus/focus_manager.h
index 4030158..aa8f66a 100644
--- a/ui/views/focus/focus_manager.h
+++ b/ui/views/focus/focus_manager.h
@@ -216,15 +216,6 @@ class VIEWS_EXPORT FocusManager {
// Returns true if in the process of changing the focused view.
bool is_changing_focus() const { return is_changing_focus_; }
- // Changes the text input focus to |view->GetTextInputClient()| iff |view|
- // is focused. Views must call this method when their internal
- // TextInputClient instance changes.
- void OnTextInputClientChanged(View* view);
-
- // Moves the text input focus into/out from |view|.
- void FocusTextInputClient(View* view);
- void BlurTextInputClient(View* view);
-
// Disable shortcut handling.
void set_shortcut_handling_suspended(bool suspended) {
shortcut_handling_suspended_ = suspended;
diff --git a/ui/views/focus/focus_manager_unittest.cc b/ui/views/focus/focus_manager_unittest.cc
index 007d9fc..5789c5e 100644
--- a/ui/views/focus/focus_manager_unittest.cc
+++ b/ui/views/focus/focus_manager_unittest.cc
@@ -12,9 +12,6 @@
#include "ui/aura/client/focus_client.h"
#include "ui/aura/window.h"
#include "ui/base/accelerators/accelerator.h"
-#include "ui/base/ime/dummy_text_input_client.h"
-#include "ui/base/ime/text_input_focus_manager.h"
-#include "ui/base/ui_base_switches.h"
#include "ui/events/keycodes/keyboard_codes.h"
#include "ui/views/accessible_pane_view.h"
#include "ui/views/controls/button/label_button.h"
@@ -796,60 +793,6 @@ TEST_F(FocusManagerTest, StoreFocusedView) {
EXPECT_EQ(&view, GetFocusManager()->GetStoredFocusView());
}
-class TextInputTestView : public View {
- public:
- TextInputTestView() {}
-
- ui::TextInputClient* GetTextInputClient() override {
- return &text_input_client_;
- }
-
- private:
- ui::DummyTextInputClient text_input_client_;
-
- DISALLOW_COPY_AND_ASSIGN(TextInputTestView);
-};
-
-TEST_F(FocusManagerTest, TextInputClient) {
- base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
- cmd_line->AppendSwitch(switches::kEnableTextInputFocusManager);
-
- View* view = new TextInputTestView;
- ui::TextInputClient* text_input_client = view->GetTextInputClient();
- view->SetFocusable(true);
- GetContentsView()->AddChildView(view);
- ui::TextInputFocusManager* text_input_focus_manager =
- ui::TextInputFocusManager::GetInstance();
-
- GetFocusManager()->SetFocusedView(view);
- EXPECT_EQ(view, GetFocusManager()->GetFocusedView());
- EXPECT_EQ(text_input_client,
- text_input_focus_manager->GetFocusedTextInputClient());
- GetFocusManager()->StoreFocusedView(false);
- EXPECT_TRUE(GetFocusManager()->RestoreFocusedView());
- EXPECT_EQ(text_input_client,
- text_input_focus_manager->GetFocusedTextInputClient());
-
- // Repeat with |true|.
- GetFocusManager()->SetFocusedView(view);
- EXPECT_EQ(view, GetFocusManager()->GetFocusedView());
- EXPECT_EQ(text_input_client,
- text_input_focus_manager->GetFocusedTextInputClient());
- GetFocusManager()->StoreFocusedView(true);
- EXPECT_TRUE(GetFocusManager()->RestoreFocusedView());
- EXPECT_EQ(text_input_client,
- text_input_focus_manager->GetFocusedTextInputClient());
-
- // Focus the view twice in a row.
- GetFocusManager()->SetFocusedView(view);
- EXPECT_EQ(text_input_client,
- text_input_focus_manager->GetFocusedTextInputClient());
- ui::TextInputFocusManager::GetInstance()->FocusTextInputClient(NULL);
- GetFocusManager()->SetFocusedView(view);
- EXPECT_EQ(text_input_client,
- text_input_focus_manager->GetFocusedTextInputClient());
-}
-
namespace {
// Trivial WidgetDelegate implementation that allows setting return value of
diff --git a/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc b/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc
index dcbd24c..2ee6351 100644
--- a/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc
+++ b/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc
@@ -16,7 +16,6 @@
#include "ui/aura/window_tree_host.h"
#include "ui/base/hit_test.h"
#include "ui/base/ime/input_method.h"
-#include "ui/base/ui_base_switches_util.h"
#include "ui/compositor/layer.h"
#include "ui/gfx/canvas.h"
#include "ui/gfx/display.h"
@@ -629,9 +628,6 @@ bool DesktopNativeWidgetAura::HasCapture() const {
}
InputMethod* DesktopNativeWidgetAura::CreateInputMethod() {
- if (switches::IsTextInputFocusManagerEnabled())
- return new NullInputMethod();
-
return new InputMethodBridge(this, GetHostInputMethod(), false);
}
diff --git a/ui/views/widget/native_widget_aura.cc b/ui/views/widget/native_widget_aura.cc
index cf3017b..6c53b2d 100644
--- a/ui/views/widget/native_widget_aura.cc
+++ b/ui/views/widget/native_widget_aura.cc
@@ -18,7 +18,6 @@
#include "ui/aura/window_observer.h"
#include "ui/aura/window_tree_host.h"
#include "ui/base/dragdrop/os_exchange_data.h"
-#include "ui/base/ui_base_switches_util.h"
#include "ui/base/ui_base_types.h"
#include "ui/compositor/layer.h"
#include "ui/events/event.h"
@@ -271,9 +270,6 @@ InputMethod* NativeWidgetAura::CreateInputMethod() {
if (!window_)
return NULL;
- if (switches::IsTextInputFocusManagerEnabled())
- return new NullInputMethod();
-
return new InputMethodBridge(this, GetHostInputMethod(), true);
}
@@ -889,12 +885,6 @@ void NativeWidgetAura::OnKeyEvent(ui::KeyEvent* event) {
if (!input_method)
return;
input_method->DispatchKeyEvent(*event);
- if (switches::IsTextInputFocusManagerEnabled()) {
- FocusManager* focus_manager = GetWidget()->GetFocusManager();
- delegate_->OnKeyEvent(event);
- if (!event->handled() && focus_manager)
- focus_manager->OnKeyEvent(*event);
- }
event->SetHandled();
}
diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc
index 7f8e076..a573920 100644
--- a/ui/views/widget/widget.cc
+++ b/ui/views/widget/widget.cc
@@ -1051,19 +1051,6 @@ void Widget::OnNativeWidgetActivationChanged(bool active) {
FOR_EACH_OBSERVER(WidgetObserver, observers_,
OnWidgetActivationChanged(this, active));
- // During window creation, the widget gets focused without activation, and in
- // that case, the focus manager cannot set the appropriate text input client
- // because the widget is not active. Thus we have to notify the focus manager
- // not only when the focus changes but also when the widget gets activated.
- // See crbug.com/377479 for details.
- views::FocusManager* focus_manager = GetFocusManager();
- if (focus_manager) {
- if (active)
- focus_manager->FocusTextInputClient(focus_manager->GetFocusedView());
- else
- focus_manager->BlurTextInputClient(focus_manager->GetFocusedView());
- }
-
if (IsVisible() && non_client_view())
non_client_view()->frame_view()->SchedulePaint();
}
diff --git a/ui/wm/core/focus_controller.cc b/ui/wm/core/focus_controller.cc
index 1fee190..d062903 100644
--- a/ui/wm/core/focus_controller.cc
+++ b/ui/wm/core/focus_controller.cc
@@ -10,7 +10,6 @@
#include "ui/aura/client/focus_change_observer.h"
#include "ui/aura/env.h"
#include "ui/aura/window_tracker.h"
-#include "ui/base/ime/text_input_focus_manager.h"
#include "ui/events/event.h"
#include "ui/wm/core/focus_rules.h"
#include "ui/wm/core/window_util.h"
@@ -231,14 +230,6 @@ void FocusController::SetFocusedWindow(aura::Window* window) {
base::AutoReset<bool> updating_focus(&updating_focus_, true);
aura::Window* lost_focus = focused_window_;
- // |window| is going to get the focus, so reset the text input client.
- // OnWindowFocused() may set a proper text input client if the implementation
- // supports text input.
- ui::TextInputFocusManager* text_input_focus_manager =
- ui::TextInputFocusManager::GetInstance();
- if (window)
- text_input_focus_manager->FocusTextInputClient(NULL);
-
// Allow for the window losing focus to be deleted during dispatch. If it is
// deleted pass NULL to observers instead of a deleted window.
aura::WindowTracker window_tracker;
@@ -270,10 +261,6 @@ void FocusController::SetFocusedWindow(aura::Window* window) {
focused_window_,
window_tracker.Contains(lost_focus) ? lost_focus : NULL);
}
-
- // Ensure that the text input client is reset when the window loses the focus.
- if (!window)
- text_input_focus_manager->FocusTextInputClient(NULL);
}
void FocusController::SetActiveWindow(
diff --git a/ui/wm/core/focus_controller_unittest.cc b/ui/wm/core/focus_controller_unittest.cc
index a8bddb3..c82e3dd 100644
--- a/ui/wm/core/focus_controller_unittest.cc
+++ b/ui/wm/core/focus_controller_unittest.cc
@@ -15,8 +15,6 @@
#include "ui/aura/window.h"
#include "ui/aura/window_event_dispatcher.h"
#include "ui/aura/window_tracker.h"
-#include "ui/base/ime/dummy_text_input_client.h"
-#include "ui/base/ime/text_input_focus_manager.h"
#include "ui/events/event.h"
#include "ui/events/event_constants.h"
#include "ui/events/event_handler.h"
@@ -265,25 +263,6 @@ class ScopedTargetFocusNotificationObserver : public FocusNotificationObserver {
DISALLOW_COPY_AND_ASSIGN(ScopedTargetFocusNotificationObserver);
};
-class ScopedFocusedTextInputClientChanger
- : public ScopedFocusNotificationObserver {
- public:
- ScopedFocusedTextInputClientChanger(aura::Window* root_window,
- ui::TextInputClient* text_input_client)
- : ScopedFocusNotificationObserver(root_window),
- text_input_client_(text_input_client) {}
-
- private:
- // Overridden from aura::client::FocusChangeObserver:
- void OnWindowFocused(aura::Window* gained_focus,
- aura::Window* lost_focus) override {
- ui::TextInputFocusManager::GetInstance()->FocusTextInputClient(
- text_input_client_);
- }
-
- ui::TextInputClient* text_input_client_;
-};
-
// Used to fake the handling of events in the pre-target phase.
class SimpleEventHandler : public ui::EventHandler {
public:
@@ -486,7 +465,6 @@ class FocusControllerTestBase : public aura::test::AuraTestBase {
virtual void FocusChangeDuringDrag() {}
virtual void ChangeFocusWhenNothingFocusedAndCaptured() {}
virtual void DontPassDeletedWindow() {}
- virtual void FocusedTextInputClient() {}
private:
scoped_ptr<FocusController> focus_controller_;
@@ -858,41 +836,6 @@ class FocusControllerDirectTestBase : public FocusControllerTestBase {
}
}
- // Verifies if the focused text input client is cleared when a window gains
- // or loses the focus.
- void FocusedTextInputClient() override {
- ui::TextInputFocusManager* text_input_focus_manager =
- ui::TextInputFocusManager::GetInstance();
- ui::DummyTextInputClient text_input_client;
- ui::TextInputClient* null_text_input_client = NULL;
-
- EXPECT_EQ(null_text_input_client,
- text_input_focus_manager->GetFocusedTextInputClient());
-
- text_input_focus_manager->FocusTextInputClient(&text_input_client);
- EXPECT_EQ(&text_input_client,
- text_input_focus_manager->GetFocusedTextInputClient());
- FocusWindowById(1);
- // The focused text input client gets cleared when a window gets focused
- // unless any of observers sets the focused text input client.
- EXPECT_EQ(null_text_input_client,
- text_input_focus_manager->GetFocusedTextInputClient());
-
- ScopedFocusedTextInputClientChanger text_input_focus_changer(
- root_window(), &text_input_client);
- EXPECT_EQ(null_text_input_client,
- text_input_focus_manager->GetFocusedTextInputClient());
- FocusWindowById(2);
- // |text_input_focus_changer| sets the focused text input client.
- EXPECT_EQ(&text_input_client,
- text_input_focus_manager->GetFocusedTextInputClient());
-
- FocusWindow(NULL);
- // The focused text input client gets cleared when a window loses the focus.
- EXPECT_EQ(null_text_input_client,
- text_input_focus_manager->GetFocusedTextInputClient());
- }
-
private:
DISALLOW_COPY_AND_ASSIGN(FocusControllerDirectTestBase);
};
@@ -1344,10 +1287,6 @@ FOCUS_CONTROLLER_TEST(FocusControllerApiTest, DontPassDeletedWindow);
FOCUS_CONTROLLER_TEST(FocusControllerParentHideTest,
TransientChildWindowActivationTest);
-// - Verifies that the focused text input client is cleard when the window focus
-// changes.
-ALL_FOCUS_TESTS(FocusedTextInputClient);
-
// If a mouse event was handled, it should not activate a window.
FOCUS_CONTROLLER_TEST(FocusControllerMouseEventTest, IgnoreHandledEvent);