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 46a226f7c67434387fa3d2765c8253817d999130..d6a4f94c90a6b273276b6b3f997db6ddabda43d9 100644 |
--- a/content/browser/web_contents/web_contents_impl.cc |
+++ b/content/browser/web_contents/web_contents_impl.cc |
@@ -674,9 +674,15 @@ bool WebContentsImpl::OnMessageReceived(RenderViewHost* render_view_host, |
RenderFrameHost* render_frame_host, |
const IPC::Message& message) { |
DCHECK(render_view_host || render_frame_host); |
- if (GetWebUI() && |
- static_cast<WebUIImpl*>(GetWebUI())->OnMessageReceived(message)) { |
- return true; |
+ |
+ if (render_view_host) { |
+ RenderFrameHost* main_frame = render_view_host->GetMainFrame(); |
+ if (main_frame) { |
jam
2016/12/08 17:43:53
nit: are you sure you need this check?
yzshen1
2016/12/08 17:46:19
Yes, there are cases where render_view_host->GetMa
|
+ WebUIImpl* web_ui = |
+ static_cast<RenderFrameHostImpl*>(main_frame)->web_ui(); |
+ if (web_ui && web_ui->OnMessageReceived(message)) |
+ return true; |
+ } |
} |
if (render_frame_host) { |