Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Represents the browser side of the browser <--> renderer communication | 5 // Represents the browser side of the browser <--> renderer communication |
| 6 // channel. There will be one RenderProcessHost per renderer process. | 6 // channel. There will be one RenderProcessHost per renderer process. |
| 7 | 7 |
| 8 #include "content/browser/renderer_host/render_process_host_impl.h" | 8 #include "content/browser/renderer_host/render_process_host_impl.h" |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 894 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 905 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_ShutdownRequest, | 905 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_ShutdownRequest, |
| 906 OnShutdownRequest) | 906 OnShutdownRequest) |
| 907 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_DumpHandlesDone, | 907 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_DumpHandlesDone, |
| 908 OnDumpHandlesDone) | 908 OnDumpHandlesDone) |
| 909 IPC_MESSAGE_HANDLER(ViewHostMsg_SuddenTerminationChanged, | 909 IPC_MESSAGE_HANDLER(ViewHostMsg_SuddenTerminationChanged, |
| 910 SuddenTerminationChanged) | 910 SuddenTerminationChanged) |
| 911 IPC_MESSAGE_HANDLER(ViewHostMsg_UserMetricsRecordAction, | 911 IPC_MESSAGE_HANDLER(ViewHostMsg_UserMetricsRecordAction, |
| 912 OnUserMetricsRecordAction) | 912 OnUserMetricsRecordAction) |
| 913 IPC_MESSAGE_HANDLER(ViewHostMsg_RevealFolderInOS, OnRevealFolderInOS) | 913 IPC_MESSAGE_HANDLER(ViewHostMsg_RevealFolderInOS, OnRevealFolderInOS) |
| 914 IPC_MESSAGE_HANDLER(ViewHostMsg_SavedPageAsMHTML, OnSavedPageAsMHTML) | 914 IPC_MESSAGE_HANDLER(ViewHostMsg_SavedPageAsMHTML, OnSavedPageAsMHTML) |
| 915 IPC_MESSAGE_HANDLER(ViewHostMsg_SendPostMessage, OnSendPostMessage) | |
| 915 IPC_MESSAGE_UNHANDLED_ERROR() | 916 IPC_MESSAGE_UNHANDLED_ERROR() |
| 916 IPC_END_MESSAGE_MAP_EX() | 917 IPC_END_MESSAGE_MAP_EX() |
| 917 | 918 |
| 918 if (!msg_is_ok) { | 919 if (!msg_is_ok) { |
| 919 // The message had a handler, but its de-serialization failed. | 920 // The message had a handler, but its de-serialization failed. |
| 920 // We consider this a capital crime. Kill the renderer if we have one. | 921 // We consider this a capital crime. Kill the renderer if we have one. |
| 921 LOG(ERROR) << "bad message " << msg.type() << " terminating renderer."; | 922 LOG(ERROR) << "bad message " << msg.type() << " terminating renderer."; |
| 922 UserMetrics::RecordAction(UserMetricsAction("BadMessageTerminate_BRPH")); | 923 UserMetrics::RecordAction(UserMetricsAction("BadMessageTerminate_BRPH")); |
| 923 ReceivedBadMessage(); | 924 ReceivedBadMessage(); |
| 924 } | 925 } |
| (...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1322 void RenderProcessHostImpl::OnRevealFolderInOS(const FilePath& path) { | 1323 void RenderProcessHostImpl::OnRevealFolderInOS(const FilePath& path) { |
| 1323 // Only honor the request if appropriate persmissions are granted. | 1324 // Only honor the request if appropriate persmissions are granted. |
| 1324 if (ChildProcessSecurityPolicy::GetInstance()->CanReadFile(GetID(), path)) | 1325 if (ChildProcessSecurityPolicy::GetInstance()->CanReadFile(GetID(), path)) |
| 1325 content::GetContentClient()->browser()->OpenItem(path); | 1326 content::GetContentClient()->browser()->OpenItem(path); |
| 1326 } | 1327 } |
| 1327 | 1328 |
| 1328 void RenderProcessHostImpl::OnSavedPageAsMHTML(int job_id, int64 data_size) { | 1329 void RenderProcessHostImpl::OnSavedPageAsMHTML(int job_id, int64 data_size) { |
| 1329 content::GetContentClient()->browser()->GetMHTMLGenerationManager()-> | 1330 content::GetContentClient()->browser()->GetMHTMLGenerationManager()-> |
| 1330 MHTMLGenerated(job_id, data_size); | 1331 MHTMLGenerated(job_id, data_size); |
| 1331 } | 1332 } |
| 1333 | |
| 1334 void RenderProcessHostImpl::OnSendPostMessage(int64 browsing_instance_frame_id, | |
| 1335 const ViewMsg_PostMessage_Params& params) { | |
|
Charlie Reis
2011/12/12 22:20:36
Line length
supersat
2011/12/15 19:30:49
Done.
| |
| 1336 DLOG(WARNING) << "OnSendPostMessage"; | |
| 1337 content::FrameMap& frame_mapper = GetBrowserContext()->frame_mapper(); | |
| 1338 content::BrowsingInstanceFrame* frame = | |
| 1339 frame_mapper.FindById(browsing_instance_frame_id); | |
| 1340 | |
| 1341 // Until we remove the proxy when a frame is closed, there might be a proxy | |
| 1342 // for a frame that no longer exists. If that's the case, just drop the msg. | |
| 1343 if (!frame) { | |
|
Charlie Reis
2011/12/12 22:20:36
No braces on a one line if.
supersat
2011/12/15 19:30:49
Done.
| |
| 1344 return; | |
| 1345 } | |
| 1346 | |
| 1347 RenderViewHost *rvh = RenderViewHost::FromID(frame->current_process_host_id(), | |
| 1348 frame->current_route_id()); | |
| 1349 | |
| 1350 // TODO(supersat): Temporary workaround for frames not being removed from | |
| 1351 // the mapper properly. | |
| 1352 if (!rvh) { | |
| 1353 return; | |
| 1354 } | |
| 1355 | |
| 1356 rvh->Send(new ViewMsg_PostMessage(rvh->routing_id(), | |
| 1357 frame->current_frame_id(), | |
| 1358 params)); | |
| 1359 } | |
| OLD | NEW |