| Index: content/browser/web_contents/web_contents_impl.cc
|
| diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
|
| index 2d463287de60180ff5c1c2e3e3f41c96ae7d9f7b..ea0734659973814703b869d22c3a9c879d984f19 100644
|
| --- a/content/browser/web_contents/web_contents_impl.cc
|
| +++ b/content/browser/web_contents/web_contents_impl.cc
|
| @@ -2240,6 +2240,44 @@ void WebContentsImpl::SendScreenRects() {
|
| browser_plugin_embedder_->DidSendScreenRects();
|
| }
|
|
|
| +TextInputState WebContentsImpl::GetTextInputState() {
|
| + if (GetOuterWebContents())
|
| + return GetOuterWebContents()->GetTextInputState();
|
| + // A RWHV should update WebContentsImpl in its destruction path so that state
|
| + // type is reset to none.
|
| + DCHECK(view_with_active_text_input_ ||
|
| + text_input_state_.type == ui::TEXT_INPUT_TYPE_NONE);
|
| + return text_input_state_;
|
| +}
|
| +
|
| +void WebContentsImpl::UpdateTextInputState(RenderWidgetHostViewBase* rwhv,
|
| + bool text_input_state_changed) {
|
| + // If there is an outer WebContents, let it process this update.
|
| + if (GetOuterWebContents()) {
|
| + return GetOuterWebContents()->UpdateTextInputState(
|
| + rwhv, text_input_state_changed);
|
| + }
|
| +
|
| + // If this RWHV has a text input type of NONE, then there is nothing to
|
| + // report to the tab RWHV.
|
| + if (view_with_active_text_input_.get() != rwhv &&
|
| + rwhv->text_input_state()->type == ui::TEXT_INPUT_TYPE_NONE)
|
| + return;
|
| +
|
| + if (rwhv->text_input_state()->type != ui::TEXT_INPUT_TYPE_NONE)
|
| + view_with_active_text_input_ = rwhv->GetWeakPtr();
|
| + else
|
| + view_with_active_text_input_.reset();
|
| +
|
| + text_input_state_ = *rwhv->text_input_state();
|
| +
|
| + // The top level RWHV should know about the change.
|
| + RenderWidgetHostViewBase* tab_rwhv =
|
| + static_cast<RenderWidgetHostViewBase*>(GetRenderWidgetHostView());
|
| + if (tab_rwhv)
|
| + tab_rwhv->UpdateInputMethodIfNecessary(text_input_state_changed);
|
| +}
|
| +
|
| BrowserAccessibilityManager*
|
| WebContentsImpl::GetRootBrowserAccessibilityManager() {
|
| RenderFrameHostImpl* rfh = GetMainFrame();
|
|
|