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 dc77b0987a433702505e9e6e1886365c31f695b4..25f5a9693d529436ca56c1deb9c60d8790b2060c 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; |
@@ -629,6 +630,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 ------------------------------------------ |
@@ -1385,6 +1387,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_; |