Index: content/browser/web_contents/web_contents_impl.h |
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h |
index 371bcb2c4a1157da742509a964d8fdcb0a0c9073..310b4217d012729f6cdd6e9e7807259594eee24b 100644 |
--- a/content/browser/web_contents/web_contents_impl.h |
+++ b/content/browser/web_contents/web_contents_impl.h |
@@ -73,6 +73,7 @@ class SavePackage; |
class ScreenOrientationDispatcherHost; |
class SiteInstance; |
class TestWebContents; |
+class TextInputManager; |
class WakeLockServiceContext; |
class WebContentsAudioMuter; |
class WebContentsDelegate; |
@@ -630,6 +631,7 @@ class CONTENT_EXPORT WebContentsImpl |
void OnRenderFrameProxyVisibilityChanged(bool visible) override; |
void SendScreenRects() override; |
void OnFirstPaintAfterLoad(RenderWidgetHostImpl* render_widget_host) override; |
+ TextInputManager* GetTextInputManager() override; |
// RenderFrameHostManager::Delegate ------------------------------------------ |
@@ -1383,6 +1385,14 @@ class CONTENT_EXPORT WebContentsImpl |
bool page_scale_factor_is_one_; |
+ // TextInputManager tracks the IME-related state for all the |
+ // RenderWidgetHostViews on this WebContents. Only exists on the outermost |
+ // WebContents and is automatically destroyed when a WebContents becomes an |
+ // inner WebContents by attaching to an outer WebContents. Then the |
+ // IME-related state for RenderWidgetHosts on the inner WebContents is tracked |
+ // by the TextInputManager in the outer WebContents. |
+ std::unique_ptr<TextInputManager> text_input_manager_; |
+ |
base::WeakPtrFactory<WebContentsImpl> loading_weak_factory_; |
base::WeakPtrFactory<WebContentsImpl> weak_factory_; |