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

Unified Diff: components/nacl/loader/nonsfi/nonsfi_main.cc

Issue 337463002: Remove LoadModule SRPC for non-SFI mode. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/nacl/loader/nonsfi/nonsfi_main.h ('k') | components/nacl/renderer/ppb_nacl_private_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/nacl/loader/nonsfi/nonsfi_main.cc
diff --git a/components/nacl/loader/nonsfi/nonsfi_main.cc b/components/nacl/loader/nonsfi/nonsfi_main.cc
index bc420a06a880eb8b526a74cec02322c2c51c1277..96c6cb2684306969648fb7c033cd7154d9daafe3 100644
--- a/components/nacl/loader/nonsfi/nonsfi_main.cc
+++ b/components/nacl/loader/nonsfi/nonsfi_main.cc
@@ -4,7 +4,6 @@
#include "components/nacl/loader/nonsfi/nonsfi_main.h"
-#include "base/debug/leak_annotations.h"
#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
#include "base/threading/platform_thread.h"
@@ -13,14 +12,7 @@
#include "components/nacl/loader/nonsfi/irt_interfaces.h"
#include "native_client/src/include/elf_auxv.h"
#include "native_client/src/include/nacl_macros.h"
-#include "native_client/src/public/secure_service.h"
-#include "native_client/src/shared/srpc/nacl_srpc.h"
#include "native_client/src/trusted/desc/nacl_desc_base.h"
-#include "native_client/src/trusted/desc/nacl_desc_imc.h"
-#include "native_client/src/trusted/desc/nrd_all_modules.h"
-#include "native_client/src/trusted/desc/nrd_xfer.h"
-#include "native_client/src/trusted/service_runtime/nacl_error_code.h"
-#include "ppapi/nacl_irt/plugin_startup.h"
namespace nacl {
namespace nonsfi {
@@ -70,13 +62,10 @@ struct NaClDescUnrefer {
}
};
-void LoadModuleRpc(struct NaClSrpcRpc* rpc,
- struct NaClSrpcArg** in_args,
- struct NaClSrpcArg** out_args,
- struct NaClSrpcClosure* done_cls) {
- rpc->result = NACL_SRPC_RESULT_INTERNAL;
+} // namespace
- ::scoped_ptr<struct NaClDesc, NaClDescUnrefer> desc(in_args[0]->u.hval);
+void MainStart(NaClDesc* nexe_file) {
+ ::scoped_ptr<struct NaClDesc, NaClDescUnrefer> desc(nexe_file);
ElfImage image;
if (image.Read(desc.get()) != LOAD_OK) {
LOG(ERROR) << "LoadModuleRpc: Failed to read binary.";
@@ -95,111 +84,6 @@ void LoadModuleRpc(struct NaClSrpcRpc* rpc,
LOG(ERROR) << "LoadModuleRpc: Failed to create plugin main thread.";
return;
}
-
- rpc->result = NACL_SRPC_RESULT_OK;
- (*done_cls->Run)(done_cls);
-}
-
-const static struct NaClSrpcHandlerDesc kNonSfiServiceHandlers[] = {
- { NACL_SECURE_SERVICE_LOAD_MODULE, LoadModuleRpc, },
- { static_cast<const char*>(NULL), static_cast<NaClSrpcMethod>(NULL), },
-};
-
-// Creates two socketpairs to communicate with the host process.
-void CreateSecureSocketPair(struct NaClDesc* secure_pair[2],
- struct NaClDesc* pair[2]) {
- // Set up a secure pair.
- if (NaClCommonDescMakeBoundSock(secure_pair)) {
- LOG(FATAL) << "Cound not create secure service socket\n";
- }
-
- // Set up a service pair.
- if (NaClCommonDescMakeBoundSock(pair)) {
- LOG(FATAL) << "Could not create service socket";
- }
-}
-
-// Wraps handle by NaClDesc, and sends secure_service_address and
-// service_address via the created descriptor.
-struct NaClDesc* SetUpBootstrapChannel(NaClHandle handle,
- struct NaClDesc* secure_service_address,
- struct NaClDesc* service_address) {
- if (secure_service_address == NULL) {
- LOG(FATAL) << "SetUpBootstrapChannel: secure_service_address is not set";
- }
-
- if (service_address == NULL) {
- LOG(FATAL) << "SetUpBootstrapChannel: secure_service_address is not set";
- }
-
- struct NaClDescImcDesc* channel =
- static_cast<struct NaClDescImcDesc*>(malloc(sizeof *channel));
- if (channel == NULL) {
- LOG(FATAL) << "SetUpBootstrapChannel: no memory";
- }
-
- if (!NaClDescImcDescCtor(channel, handle)) {
- LOG(FATAL) << "SetUpBootstrapChannel: cannot construct IMC descriptor "
- << "object for inherited descriptor: " << handle;
- }
-
- // Send the descriptors to the host.
- struct NaClDesc* descs[2] = {
- secure_service_address,
- service_address,
- };
-
- struct NaClImcTypedMsgHdr hdr;
- hdr.iov = static_cast<struct NaClImcMsgIoVec*>(NULL);
- hdr.iov_length = 0;
- hdr.ndescv = descs;
- hdr.ndesc_length = NACL_ARRAY_SIZE(descs);
- hdr.flags = 0;
-
- ssize_t error = (*NACL_VTBL(NaClDesc, channel)->SendMsg)(
- reinterpret_cast<struct NaClDesc*>(channel), &hdr, 0);
- if (error) {
- LOG(FATAL) << "SetUpBootstrapChannel: SendMsg failed, error = " << error;
- }
- return reinterpret_cast<struct NaClDesc*>(channel);
-}
-
-// Starts to listen to the port and runs the server loop.
-void ServiceAccept(struct NaClDesc* port) {
- struct NaClDesc* connected_desc = NULL;
- int status = (*NACL_VTBL(NaClDesc, port)->AcceptConn)(port, &connected_desc);
- if (status) {
- LOG(ERROR) << "ServiceAccept: Failed to accept " << status;
- return;
- }
-
- NaClSrpcServerLoop(connected_desc, kNonSfiServiceHandlers, NULL);
-}
-
-} // namespace
-
-void MainStart(NaClHandle imc_bootstrap_handle) {
- NaClSrpcModuleInit();
-
- struct NaClDesc* secure_pair[2] = { NULL, NULL };
- struct NaClDesc* pair[2] = { NULL, NULL };
- CreateSecureSocketPair(secure_pair, pair);
- ::scoped_ptr<struct NaClDesc, NaClDescUnrefer> secure_port(secure_pair[0]);
- ::scoped_ptr<struct NaClDesc, NaClDescUnrefer> secure_address(
- secure_pair[1]);
- ::scoped_ptr<struct NaClDesc, NaClDescUnrefer> service_port(pair[0]);
- ::scoped_ptr<struct NaClDesc, NaClDescUnrefer> service_address(pair[1]);
-
- ::scoped_ptr<struct NaClDesc, NaClDescUnrefer> channel(
- SetUpBootstrapChannel(imc_bootstrap_handle,
- secure_address.get(), service_address.get()));
- if (!channel) {
- LOG(ERROR) << "MainStart: Failed to set up bootstrap channel.";
- return;
- }
-
- // Start the SRPC server loop.
- ServiceAccept(secure_port.get());
}
} // namespace nonsfi
« no previous file with comments | « components/nacl/loader/nonsfi/nonsfi_main.h ('k') | components/nacl/renderer/ppb_nacl_private_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698