OOPIF IME: Renderer Side Changes
Currently, all IME-related IPC are handled at the RenderViewImpl first
before calling the base class
methods on RenderWidget (ImeSetComposition and
ImeConfirmComposition). Further, to query IME-related
state, e.g., GetTextInputType(), RenderViewImpl overrides the method
from RenderWidget so that it can access the
state from pepper plugin.
These overrides are needed to either:
1- Access focused PepperPluginInstacneImpl to set/get IME-related
state.
2- Use focused frame to set/get IME-related state.
This CL removes all those methods from RenderViewImpl and handles
them in RenderWidget. To this end, a reference to
the focused plugin is kept in RenderWidget and updated by its owning
RenderFrame (to get IME-related state). Also, new API is added to blink
to enable RenderWidget handle IME tasks related to focusedFrame.
In line with the separation of WebViewImpl from WebWidget,
as well as avoiding potential race conditions between
mutiple Widgets on the same process, most of the IME-
related WebWidget methods are now specifically
implemented for WebFrameWidgetImpl.
Finally, a new private API is added to WebFrameWidgetImpl to help the
widget distinguish between in process frames which do or do not belong
to widget's local root.
BUG=578168,618774,626746
Review-Url: https://codereview.chromium.org/2029423003
Cr-Commit-Position: refs/heads/master@{#406263}
10 files changed