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

Unified Diff: src/trusted/nonnacl_util/sel_ldr_launcher.cc

Issue 10180015: Split SelLdrLauncher into SelLdrLauncher{Standalone,Chrome} classes (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: Copyright Created 8 years, 8 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 | « src/trusted/nonnacl_util/sel_ldr_launcher.h ('k') | src/trusted/nonnacl_util/sel_ldr_launcher_chrome.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/trusted/nonnacl_util/sel_ldr_launcher.cc
diff --git a/src/trusted/nonnacl_util/sel_ldr_launcher.cc b/src/trusted/nonnacl_util/sel_ldr_launcher.cc
index 697ec58725aac7c9c13c679706a743c6119bcfa7..0d05188176d4f7b31f2b9cbfa60f83543b272125 100644
--- a/src/trusted/nonnacl_util/sel_ldr_launcher.cc
+++ b/src/trusted/nonnacl_util/sel_ldr_launcher.cc
@@ -29,30 +29,24 @@ using std::vector;
namespace nacl {
-SelLdrLauncher::SelLdrLauncher()
- :
-#if defined(NACL_STANDALONE)
- child_process_(kInvalidHandle),
-#endif
- channel_(kInvalidHandle),
+SelLdrLauncherBase::SelLdrLauncherBase()
+ : channel_(kInvalidHandle),
bootstrap_socket_(NULL),
- socket_addr_(NULL),
- sel_ldr_locator_(new PluginSelLdrLocator()) {
+ socket_addr_(NULL) {
}
-SelLdrLauncher::SelLdrLauncher(SelLdrLocator* sel_ldr_locator)
- :
-#if defined(NACL_STANDALONE)
- child_process_(kInvalidHandle),
-#endif
- channel_(kInvalidHandle),
- bootstrap_socket_(NULL),
- socket_addr_(NULL),
- sel_ldr_locator_(sel_ldr_locator) {
- CHECK(sel_ldr_locator != NULL);
+SelLdrLauncherBase::~SelLdrLauncherBase() {
+ if (kInvalidHandle != channel_) {
+ Close(channel_);
+ }
}
-void SelLdrLauncher::GetPluginDirectory(char* buffer, size_t len) {
+SelLdrLauncherStandalone::SelLdrLauncherStandalone()
+ : child_process_(kInvalidHandle),
+ sel_ldr_locator_(new PluginSelLdrLocator()) {
+}
+
+void SelLdrLauncherStandalone::GetPluginDirectory(char* buffer, size_t len) {
sel_ldr_locator_->GetDirectory(buffer, len);
}
@@ -86,8 +80,8 @@ static DescWrapper* GetSockAddr(DescWrapper* desc) {
return descs[0];
}
-bool SelLdrLauncher::SetupCommandAndLoad(NaClSrpcChannel* command,
- DescWrapper* nexe) {
+bool SelLdrLauncherBase::SetupCommandAndLoad(NaClSrpcChannel* command,
+ DescWrapper* nexe) {
// Get the bootstrap socket.
CHECK(factory_ == NULL);
factory_.reset(new DescWrapperFactory);
@@ -141,8 +135,9 @@ bool SelLdrLauncher::SetupCommandAndLoad(NaClSrpcChannel* command,
}
bool
-SelLdrLauncher::StartModuleAndSetupAppChannel(NaClSrpcChannel* command,
- NaClSrpcChannel* out_app_chan) {
+SelLdrLauncherBase::StartModuleAndSetupAppChannel(
+ NaClSrpcChannel* command,
+ NaClSrpcChannel* out_app_chan) {
// Start untrusted code module.
int start_result;
NaClSrpcResultCodes rpc_result = NaClSrpcInvokeBySignature(command,
@@ -189,7 +184,7 @@ static char **GetEnviron() {
}
#endif
-void SelLdrLauncher::BuildCommandLine(vector<nacl::string>* command) {
+void SelLdrLauncherStandalone::BuildCommandLine(vector<nacl::string>* command) {
assert(sel_ldr_ != NACL_NO_FILE_PATH); // Set by InitCommandLine().
if (!command_prefix_.empty())
command->insert(command->end(),
@@ -232,9 +227,10 @@ void SelLdrLauncher::BuildCommandLine(vector<nacl::string>* command) {
}
}
-void SelLdrLauncher::InitCommandLine(const vector<nacl::string>& prefix,
- const vector<nacl::string>& sel_ldr_argv,
- const vector<nacl::string>& app_argv) {
+void SelLdrLauncherStandalone::InitCommandLine(
+ const vector<nacl::string>& prefix,
+ const vector<nacl::string>& sel_ldr_argv,
+ const vector<nacl::string>& app_argv) {
assert(sel_ldr_ == NACL_NO_FILE_PATH); // Make sure we don't call this twice.
char* var = getenv("NACL_SEL_LDR");
@@ -274,25 +270,24 @@ void SelLdrLauncher::InitCommandLine(const vector<nacl::string>& prefix,
sel_ldr_argv_.push_back(nacl::string("5:") + dest_fd);
}
-void SelLdrLauncher::CloseHandlesAfterLaunch() {
+void SelLdrLauncherStandalone::CloseHandlesAfterLaunch() {
for (size_t i = 0; i < close_after_launch_.size(); i++) {
Close(close_after_launch_[i]);
}
close_after_launch_.clear();
}
-DescWrapper* SelLdrLauncher::Wrap(NaClDesc* raw_desc) {
+DescWrapper* SelLdrLauncherBase::Wrap(NaClDesc* raw_desc) {
CHECK(factory_ != NULL);
return factory_->MakeGeneric(raw_desc);
}
-DescWrapper* SelLdrLauncher::WrapCleanup(NaClDesc* raw_desc) {
+DescWrapper* SelLdrLauncherBase::WrapCleanup(NaClDesc* raw_desc) {
CHECK(factory_ != NULL);
return factory_->MakeGenericCleanup(raw_desc);
}
-#if defined(NACL_STANDALONE)
-bool SelLdrLauncher::Start(const char* url) {
+bool SelLdrLauncherStandalone::Start(const char* url) {
UNREFERENCED_PARAMETER(url);
vector<nacl::string> prefix;
vector<nacl::string> args_for_sel_ldr;
@@ -308,13 +303,4 @@ bool SelLdrLauncher::Start(const char* url) {
return true;
}
-bool SelLdrLauncher::Start(int socket_count,
- Handle* result_sockets,
- const char* url) {
- UNREFERENCED_PARAMETER(socket_count);
- UNREFERENCED_PARAMETER(result_sockets);
- return Start(url);
-}
-#endif // defined(NACL_STANDALONE)
-
} // namespace nacl
« no previous file with comments | « src/trusted/nonnacl_util/sel_ldr_launcher.h ('k') | src/trusted/nonnacl_util/sel_ldr_launcher_chrome.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698