Chromium Code Reviews| Index: content/renderer/render_widget.cc |
| diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc |
| index 2d27a73bd52c0b5f31f1ef5b3fdbee254a315783..1cf201845233b06f3c088ecb6dbb320a7c63d1a3 100644 |
| --- a/content/renderer/render_widget.cc |
| +++ b/content/renderer/render_widget.cc |
| @@ -2305,9 +2305,15 @@ blink::WebWidget* RenderWidget::GetWebWidget() const { |
| blink::WebInputMethodController* RenderWidget::GetInputMethodController() |
| const { |
| - // TODO(ekaramad): Remove this CHECK when GetWebWidget() is |
| - // always a WebFrameWidget. |
| - CHECK(GetWebWidget()->isWebFrameWidget()); |
| + // TODO(ekaramad): Remove this condition when GetWebWidget() is always a |
| + // WebFrameWidget, or find a better way to obtain the WebFrameWidget for |
| + // this RenderWidget. |
| + if (!GetWebWidget()->isWebFrameWidget()) { |
| + // It is possible to get here if this is a top-level RenderWidget and an IME |
| + // IPC is received during page navigation, in which case GetWebWidget() |
| + // yields a WebViewImpl instead of a WebFrameWiget. |
| + return nullptr; |
|
EhsanK
2016/11/24 01:21:39
I should also note that this method can return nul
|
| + } |
| return static_cast<blink::WebFrameWidget*>(GetWebWidget()) |
| ->getActiveWebInputMethodController(); |
| } |