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

Side by Side Diff: ppapi/native_client/src/trusted/plugin/service_runtime.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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 * Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can be 3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file. 4 * found in the LICENSE file.
5 */ 5 */
6 6
7 #define NACL_LOG_MODULE_NAME "Plugin_ServiceRuntime" 7 #define NACL_LOG_MODULE_NAME "Plugin_ServiceRuntime"
8 8
9 #include "ppapi/native_client/src/trusted/plugin/service_runtime.h" 9 #include "ppapi/native_client/src/trusted/plugin/service_runtime.h"
10 10
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 430
431 // Because the ownership of data is taken by caller, we must clear it 431 // Because the ownership of data is taken by caller, we must clear it
432 // manually here. Otherwise, its dtor invokes callbacks again. 432 // manually here. Otherwise, its dtor invokes callbacks again.
433 data->Clear(); 433 data->Clear();
434 } 434 }
435 435
436 bool ServiceRuntime::SetupCommandChannel() { 436 bool ServiceRuntime::SetupCommandChannel() {
437 NaClLog(4, "ServiceRuntime::SetupCommand (this=%p, subprocess=%p)\n", 437 NaClLog(4, "ServiceRuntime::SetupCommand (this=%p, subprocess=%p)\n",
438 static_cast<void*>(this), 438 static_cast<void*>(this),
439 static_cast<void*>(subprocess_.get())); 439 static_cast<void*>(subprocess_.get()));
440 if (uses_nonsfi_mode_) {
441 // In non-SFI mode, no SRPC is used. Just skips and returns success.
442 return true;
443 }
444
440 if (!subprocess_->SetupCommand(&command_channel_)) { 445 if (!subprocess_->SetupCommand(&command_channel_)) {
441 if (main_service_runtime_) { 446 if (main_service_runtime_) {
442 ErrorInfo error_info; 447 ErrorInfo error_info;
443 error_info.SetReport(PP_NACL_ERROR_SEL_LDR_COMMUNICATION_CMD_CHANNEL, 448 error_info.SetReport(PP_NACL_ERROR_SEL_LDR_COMMUNICATION_CMD_CHANNEL,
444 "ServiceRuntime: command channel creation failed"); 449 "ServiceRuntime: command channel creation failed");
445 plugin_->ReportLoadError(error_info); 450 plugin_->ReportLoadError(error_info);
446 } 451 }
447 return false; 452 return false;
448 } 453 }
449 return true; 454 return true;
450 } 455 }
451 456
452 void ServiceRuntime::LoadModule(PP_NaClFileInfo file_info, 457 void ServiceRuntime::LoadModule(PP_NaClFileInfo file_info,
453 pp::CompletionCallback callback) { 458 pp::CompletionCallback callback) {
459 if (uses_nonsfi_mode_) {
460 // In non-SFI mode, loading is done a part of LaunchSelLdr.
461 DidLoadModule(callback, PP_OK);
462 return;
463 }
464
454 NaClFileInfo nacl_file_info; 465 NaClFileInfo nacl_file_info;
455 nacl_file_info.desc = ConvertFileDescriptor(file_info.handle, true); 466 nacl_file_info.desc = ConvertFileDescriptor(file_info.handle, true);
456 nacl_file_info.file_token.lo = file_info.token_lo; 467 nacl_file_info.file_token.lo = file_info.token_lo;
457 nacl_file_info.file_token.hi = file_info.token_hi; 468 nacl_file_info.file_token.hi = file_info.token_hi;
458 NaClDesc* desc = NaClDescIoFromFileInfo(nacl_file_info, O_RDONLY); 469 NaClDesc* desc = NaClDescIoFromFileInfo(nacl_file_info, O_RDONLY);
459 if (desc == NULL) { 470 if (desc == NULL) {
460 DidLoadModule(callback, PP_ERROR_FAILED); 471 DidLoadModule(callback, PP_ERROR_FAILED);
461 return; 472 return;
462 } 473 }
463 474
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
603 } 614 }
604 615
605 ManifestService* manifest_service = 616 ManifestService* manifest_service =
606 new ManifestService(anchor_->Ref(), rev_interface_); 617 new ManifestService(anchor_->Ref(), rev_interface_);
607 bool enable_dev_interfaces = 618 bool enable_dev_interfaces =
608 GetNaClInterface()->DevInterfacesEnabled(plugin_->pp_instance()); 619 GetNaClInterface()->DevInterfacesEnabled(plugin_->pp_instance());
609 620
610 tmp_subprocess->Start(plugin_->pp_instance(), 621 tmp_subprocess->Start(plugin_->pp_instance(),
611 main_service_runtime_, 622 main_service_runtime_,
612 params.url.c_str(), 623 params.url.c_str(),
624 &params.file_info,
613 params.uses_irt, 625 params.uses_irt,
614 params.uses_ppapi, 626 params.uses_ppapi,
615 uses_nonsfi_mode_, 627 uses_nonsfi_mode_,
616 enable_dev_interfaces, 628 enable_dev_interfaces,
617 params.enable_dyncode_syscalls, 629 params.enable_dyncode_syscalls,
618 params.enable_exception_handling, 630 params.enable_exception_handling,
619 params.enable_crash_throttling, 631 params.enable_crash_throttling,
620 &kManifestServiceVTable, 632 &kManifestServiceVTable,
621 manifest_service, 633 manifest_service,
622 callback); 634 callback);
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
769 781
770 nacl::string ServiceRuntime::GetCrashLogOutput() { 782 nacl::string ServiceRuntime::GetCrashLogOutput() {
771 if (NULL != subprocess_.get()) { 783 if (NULL != subprocess_.get()) {
772 return subprocess_->GetCrashLogOutput(); 784 return subprocess_->GetCrashLogOutput();
773 } else { 785 } else {
774 return std::string(); 786 return std::string();
775 } 787 }
776 } 788 }
777 789
778 } // namespace plugin 790 } // namespace plugin
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698