| Index: chrome/browser/nacl_host/nacl_process_host.cc
|
| diff --git a/chrome/browser/nacl_host/nacl_process_host.cc b/chrome/browser/nacl_host/nacl_process_host.cc
|
| index ec8b3dd4caf2f299d6d2209503e4ea7b8fc2103f..4b529ac461822837acc1c5ce4e96647dfc3e5129 100644
|
| --- a/chrome/browser/nacl_host/nacl_process_host.cc
|
| +++ b/chrome/browser/nacl_host/nacl_process_host.cc
|
| @@ -102,7 +102,7 @@ bool ShareHandleToSelLdr(
|
| 0, // Unused given DUPLICATE_SAME_ACCESS.
|
| FALSE,
|
| flags)) {
|
| - DLOG(ERROR) << "DuplicateHandle() failed";
|
| + LOG(ERROR) << "DuplicateHandle() failed";
|
| return false;
|
| }
|
| handles_for_sel_ldr->push_back(
|
| @@ -270,7 +270,8 @@ void NaClProcessHost::Launch(
|
| NaClBrowser* nacl_browser = NaClBrowser::GetInstance();
|
| nacl_browser->EnsureAllResourcesAvailable();
|
| if (!nacl_browser->IsOk()) {
|
| - DLOG(ERROR) << "Cannot launch NaCl process";
|
| + LOG(ERROR) << "NaCl process launch failed: could not find all the "
|
| + "resources needed to launch the process";
|
| delete this;
|
| return;
|
| }
|
| @@ -287,6 +288,7 @@ void NaClProcessHost::Launch(
|
| nacl::Handle pair[2];
|
| // Create a connected socket
|
| if (nacl::SocketPair(pair) == -1) {
|
| + LOG(ERROR) << "NaCl process launch failed: could not create a socket pair";
|
| delete this;
|
| return;
|
| }
|
| @@ -321,7 +323,7 @@ void NaClProcessHost::OnChannelConnected(int32 peer_pid) {
|
| return;
|
| }
|
| } else {
|
| - DLOG(ERROR) << "Failed to get process handle";
|
| + LOG(ERROR) << "Failed to get process handle";
|
| }
|
| }
|
| }
|
| @@ -490,8 +492,10 @@ FilePath NaClProcessHost::GetManifestPath() {
|
|
|
| bool NaClProcessHost::LaunchSelLdr() {
|
| std::string channel_id = process_->GetHost()->CreateChannel();
|
| - if (channel_id.empty())
|
| + if (channel_id.empty()) {
|
| + LOG(ERROR) << "NaCl process launch failed: could not create channel";
|
| return false;
|
| + }
|
|
|
| CommandLine::StringType nacl_loader_prefix;
|
| #if defined(OS_POSIX)
|
| @@ -524,8 +528,10 @@ bool NaClProcessHost::LaunchSelLdr() {
|
| // On Windows 64-bit NaCl loader is called nacl64.exe instead of chrome.exe
|
| if (RunningOnWOW64()) {
|
| FilePath module_path;
|
| - if (!PathService::Get(base::FILE_MODULE, &module_path))
|
| + if (!PathService::Get(base::FILE_MODULE, &module_path)) {
|
| + LOG(ERROR) << "NaCl process launch failed: could not resolve module";
|
| return false;
|
| + }
|
| exe_path = module_path.DirName().Append(chrome::kNaClAppName);
|
| }
|
| #endif
|
| @@ -566,8 +572,12 @@ bool NaClProcessHost::LaunchSelLdr() {
|
| // On Windows we might need to start the broker process to launch a new loader
|
| #if defined(OS_WIN)
|
| if (RunningOnWOW64()) {
|
| - return NaClBrokerService::GetInstance()->LaunchLoader(
|
| - weak_factory_.GetWeakPtr(), channel_id);
|
| + if (!NaClBrokerService::GetInstance()->LaunchLoader(
|
| + weak_factory_.GetWeakPtr(), channel_id)) {
|
| + LOG(ERROR) << "NaCl process launch failed: broker service did not launch "
|
| + "process";
|
| + return false;
|
| + }
|
| } else {
|
| process_->Launch(FilePath(), cmd_line.release());
|
| }
|
| @@ -606,8 +616,11 @@ void NaClProcessHost::OnProcessLaunched() {
|
| // Called when the NaClBrowser singleton has been fully initialized.
|
| void NaClProcessHost::OnResourcesReady() {
|
| NaClBrowser* nacl_browser = NaClBrowser::GetInstance();
|
| - if (!nacl_browser->IsReady() || !SendStart()) {
|
| - DLOG(ERROR) << "Cannot launch NaCl process";
|
| + if (!nacl_browser->IsReady()) {
|
| + LOG(ERROR) << "NaCl process launch failed: could not acquire shared "
|
| + "resources needed by NaCl";
|
| + delete this;
|
| + } else if (!SendStart()) {
|
| delete this;
|
| }
|
| }
|
| @@ -626,7 +639,7 @@ bool NaClProcessHost::ReplyToRenderer(
|
| 0, // Unused given DUPLICATE_SAME_ACCESS.
|
| FALSE,
|
| DUPLICATE_CLOSE_SOURCE | DUPLICATE_SAME_ACCESS)) {
|
| - DLOG(ERROR) << "DuplicateHandle() failed";
|
| + LOG(ERROR) << "DuplicateHandle() failed";
|
| return false;
|
| }
|
| handle_for_renderer = reinterpret_cast<nacl::FileDescriptor>(
|
| @@ -648,7 +661,7 @@ bool NaClProcessHost::ReplyToRenderer(
|
| // BrokerDuplicateHandle().
|
| if (RunningOnWOW64()) {
|
| if (!content::BrokerAddTargetPeer(process_->GetData().handle)) {
|
| - DLOG(ERROR) << "Failed to add NaCl process PID";
|
| + LOG(ERROR) << "Failed to add NaCl process PID";
|
| return false;
|
| }
|
| }
|
| @@ -852,6 +865,8 @@ bool NaClProcessHost::StartWithLaunchedProcess() {
|
| weak_factory_.GetWeakPtr()));
|
| return true;
|
| } else {
|
| + LOG(ERROR) << "NaCl process failed to launch: previously failed to acquire "
|
| + "shared resources";
|
| return false;
|
| }
|
| }
|
|
|