Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(43)

Side by Side Diff: components/nacl/loader/nacl_listener.cc

Issue 424893003: Pepper: Move NaCl fatal logging to Chrome IPC. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix for dmichael Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "components/nacl/loader/nacl_listener.h" 5 #include "components/nacl/loader/nacl_listener.h"
6 6
7 #include <errno.h> 7 #include <errno.h>
8 #include <fcntl.h> 8 #include <fcntl.h>
9 #include <stdlib.h> 9 #include <stdlib.h>
10 10
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 return false; 110 return false;
111 return result; 111 return result;
112 } 112 }
113 113
114 void DebugStubPortSelectedHandler(uint16_t port) { 114 void DebugStubPortSelectedHandler(uint16_t port) {
115 g_listener->Send(new NaClProcessHostMsg_DebugStubPortSelected(port)); 115 g_listener->Send(new NaClProcessHostMsg_DebugStubPortSelected(port));
116 } 116 }
117 117
118 #endif 118 #endif
119 119
120 void FatalLogHandler(const char* buf, size_t bytes) {
121 NaClTrustedListener::Get()->SendFatalCrashLog(std::string(buf, bytes));
122 }
123
120 // Creates the PPAPI IPC channel between the NaCl IRT and the host 124 // Creates the PPAPI IPC channel between the NaCl IRT and the host
121 // (browser/renderer) process, and starts to listen it on the thread where 125 // (browser/renderer) process, and starts to listen it on the thread where
122 // the given message_loop_proxy runs. 126 // the given message_loop_proxy runs.
123 // Also, creates and sets the corresponding NaClDesc to the given nap with 127 // Also, creates and sets the corresponding NaClDesc to the given nap with
124 // the FD #. 128 // the FD #.
125 void SetUpIPCAdapter(IPC::ChannelHandle* handle, 129 void SetUpIPCAdapter(IPC::ChannelHandle* handle,
126 scoped_refptr<base::MessageLoopProxy> message_loop_proxy, 130 scoped_refptr<base::MessageLoopProxy> message_loop_proxy,
127 struct NaClApp* nap, 131 struct NaClApp* nap,
128 int nacl_fd) { 132 int nacl_fd) {
129 scoped_refptr<NaClIPCAdapter> ipc_adapter( 133 scoped_refptr<NaClIPCAdapter> ipc_adapter(
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 int urandom_fd = dup(base::GetUrandomFD()); 278 int urandom_fd = dup(base::GetUrandomFD());
275 if (urandom_fd < 0) { 279 if (urandom_fd < 0) {
276 LOG(ERROR) << "Failed to dup() the urandom FD"; 280 LOG(ERROR) << "Failed to dup() the urandom FD";
277 return; 281 return;
278 } 282 }
279 NaClChromeMainSetUrandomFd(urandom_fd); 283 NaClChromeMainSetUrandomFd(urandom_fd);
280 #endif 284 #endif
281 285
282 struct NaClApp* nap = NULL; 286 struct NaClApp* nap = NULL;
283 NaClChromeMainInit(); 287 NaClChromeMainInit();
288
289 NaClSetFatalErrorCallback(&FatalLogHandler);
290
284 nap = NaClAppCreate(); 291 nap = NaClAppCreate();
285 if (nap == NULL) { 292 if (nap == NULL) {
286 LOG(ERROR) << "NaClAppCreate() failed"; 293 LOG(ERROR) << "NaClAppCreate() failed";
287 return; 294 return;
288 } 295 }
289 296
290 IPC::ChannelHandle browser_handle; 297 IPC::ChannelHandle browser_handle;
291 IPC::ChannelHandle ppapi_renderer_handle; 298 IPC::ChannelHandle ppapi_renderer_handle;
292 299
293 if (params.enable_ipc_proxy) { 300 if (params.enable_ipc_proxy) {
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 IPC::ChannelHandle trusted_renderer_handle = 511 IPC::ChannelHandle trusted_renderer_handle =
505 IPC::Channel::GenerateVerifiedChannelID("nacl"); 512 IPC::Channel::GenerateVerifiedChannelID("nacl");
506 trusted_listener_ = new NaClTrustedListener( 513 trusted_listener_ = new NaClTrustedListener(
507 trusted_renderer_handle, io_thread_.message_loop_proxy().get()); 514 trusted_renderer_handle, io_thread_.message_loop_proxy().get());
508 #if defined(OS_POSIX) 515 #if defined(OS_POSIX)
509 trusted_renderer_handle.socket = base::FileDescriptor( 516 trusted_renderer_handle.socket = base::FileDescriptor(
510 trusted_listener_->TakeClientFileDescriptor(), true); 517 trusted_listener_->TakeClientFileDescriptor(), true);
511 #endif 518 #endif
512 return trusted_renderer_handle; 519 return trusted_renderer_handle;
513 } 520 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698