Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #ifdef _MSC_VER | 5 #ifdef _MSC_VER |
| 6 // Do not warn about use of std::copy with raw pointers. | 6 // Do not warn about use of std::copy with raw pointers. |
| 7 #pragma warning(disable : 4996) | 7 #pragma warning(disable : 4996) |
| 8 #endif | 8 #endif |
| 9 | 9 |
| 10 #include "ppapi/native_client/src/trusted/plugin/plugin.h" | 10 #include "ppapi/native_client/src/trusted/plugin/plugin.h" |
| 11 | 11 |
| 12 #include <sys/stat.h> | 12 #include <sys/stat.h> |
| 13 #include <sys/types.h> | 13 #include <sys/types.h> |
| 14 | 14 |
| 15 #include <algorithm> | 15 #include <algorithm> |
| 16 #include <string> | 16 #include <string> |
| 17 #include <vector> | 17 #include <vector> |
| 18 | 18 |
| 19 #include "native_client/src/include/nacl_base.h" | 19 #include "native_client/src/include/nacl_base.h" |
| 20 #include "native_client/src/include/nacl_macros.h" | 20 #include "native_client/src/include/nacl_macros.h" |
| 21 #include "native_client/src/include/nacl_scoped_ptr.h" | 21 #include "native_client/src/include/nacl_scoped_ptr.h" |
| 22 #include "native_client/src/include/nacl_string.h" | 22 #include "native_client/src/include/nacl_string.h" |
| 23 #include "native_client/src/include/portability.h" | 23 #include "native_client/src/include/portability.h" |
| 24 #include "native_client/src/include/portability_io.h" | 24 #include "native_client/src/include/portability_io.h" |
| 25 #include "native_client/src/include/portability_string.h" | 25 #include "native_client/src/include/portability_string.h" |
| 26 #include "native_client/src/shared/platform/nacl_check.h" | 26 #include "native_client/src/shared/platform/nacl_check.h" |
| 27 #include "native_client/src/trusted/desc/nacl_desc_wrapper.h" | 27 #include "native_client/src/trusted/desc/nacl_desc_wrapper.h" |
| 28 #include "native_client/src/trusted/desc_cacheability/desc_cacheability.h" | |
| 28 #include "native_client/src/trusted/nonnacl_util/sel_ldr_launcher.h" | 29 #include "native_client/src/trusted/nonnacl_util/sel_ldr_launcher.h" |
| 29 #include "native_client/src/trusted/service_runtime/nacl_error_code.h" | 30 #include "native_client/src/trusted/service_runtime/nacl_error_code.h" |
| 30 | 31 |
| 31 #include "ppapi/c/pp_errors.h" | 32 #include "ppapi/c/pp_errors.h" |
| 32 #include "ppapi/c/ppb_var.h" | 33 #include "ppapi/c/ppb_var.h" |
| 33 #include "ppapi/c/private/ppb_nacl_private.h" | 34 #include "ppapi/c/private/ppb_nacl_private.h" |
| 34 #include "ppapi/cpp/dev/url_util_dev.h" | 35 #include "ppapi/cpp/dev/url_util_dev.h" |
| 35 #include "ppapi/cpp/module.h" | 36 #include "ppapi/cpp/module.h" |
| 36 | 37 |
| 37 #include "ppapi/native_client/src/trusted/plugin/file_utils.h" | 38 #include "ppapi/native_client/src/trusted/plugin/file_utils.h" |
| (...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 481 pp_error, | 482 pp_error, |
| 482 info.get_desc(), | 483 info.get_desc(), |
| 483 nexe_downloader_.status_code(), | 484 nexe_downloader_.status_code(), |
| 484 nexe_bytes_read, | 485 nexe_bytes_read, |
| 485 nexe_downloader_.url().c_str(), | 486 nexe_downloader_.url().c_str(), |
| 486 download_time / 1000); | 487 download_time / 1000); |
| 487 | 488 |
| 488 if (nexe_bytes_read == -1) | 489 if (nexe_bytes_read == -1) |
| 489 return; | 490 return; |
| 490 | 491 |
| 492 // Hand desc ownership over to the wrapper. Keep the tokens in tmp_info | |
| 493 // before losing the tokens. | |
| 494 tmp_info = info.Release(); | |
| 491 nacl::scoped_ptr<nacl::DescWrapper> | 495 nacl::scoped_ptr<nacl::DescWrapper> |
| 492 wrapper(wrapper_factory()->MakeFileDesc(info.Release().desc, O_RDONLY)); | 496 wrapper(wrapper_factory()->MakeFileDesc(tmp_info.desc, O_RDONLY)); |
| 497 tmp_info.desc = -1; | |
| 498 if (tmp_info.file_token.lo != 0 && tmp_info.file_token.hi != 0) { | |
|
teravest
2014/04/30 20:12:54
Should this be ||, not &&? Is it possible that lo
jvoung (off chromium)
2014/04/30 21:49:02
Yeah I think having only one of them be 0 is still
teravest
2014/05/02 15:07:25
I'm confused. If you want to use && here, you shou
jvoung (off chromium)
2014/05/02 15:33:23
Oops sorry, messed up the negation logic. Changed
Nick Bray (chromium)
2014/05/02 18:18:19
Justin is correct, although I'd go further and sug
jvoung (off chromium)
2014/05/02 19:26:15
Yeah, I could put something in nacl_file_info.h, s
| |
| 499 if (!NaClDescSetFileToken(wrapper->desc(), &tmp_info.file_token)) { | |
|
teravest
2014/04/30 20:12:54
It's a shame that there's not a call to MakeFileDe
jvoung (off chromium)
2014/04/30 21:49:02
Okay, maybe we can add that:
https://codereview.ch
jvoung (off chromium)
2014/05/20 16:12:42
Changed to use the new ctor function that passes b
| |
| 500 NaClLog(4, "NexeFileDidOpen: NaClDescSetFileToken failed\n"); | |
| 501 } | |
| 502 } else { | |
| 503 NaClLog(4, "NexeFileDidOpen: No file tokens for NaCl main nexe\n"); | |
| 504 } | |
| 493 NaClLog(4, "NexeFileDidOpen: invoking LoadNaClModule\n"); | 505 NaClLog(4, "NexeFileDidOpen: invoking LoadNaClModule\n"); |
| 494 LoadNaClModule( | 506 LoadNaClModule( |
| 495 wrapper.release(), | 507 wrapper.release(), |
| 496 uses_nonsfi_mode_, | 508 uses_nonsfi_mode_, |
| 497 true, /* enable_dyncode_syscalls */ | 509 true, /* enable_dyncode_syscalls */ |
| 498 true, /* enable_exception_handling */ | 510 true, /* enable_exception_handling */ |
| 499 false, /* enable_crash_throttling */ | 511 false, /* enable_crash_throttling */ |
| 500 callback_factory_.NewCallback(&Plugin::NexeFileDidOpenContinuation), | 512 callback_factory_.NewCallback(&Plugin::NexeFileDidOpenContinuation), |
| 501 callback_factory_.NewCallback(&Plugin::NexeDidCrash)); | 513 callback_factory_.NewCallback(&Plugin::NexeDidCrash)); |
| 502 } | 514 } |
| (...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 979 | 991 |
| 980 void Plugin::SetExitStatusOnMainThread(int32_t pp_error, | 992 void Plugin::SetExitStatusOnMainThread(int32_t pp_error, |
| 981 int exit_status) { | 993 int exit_status) { |
| 982 DCHECK(pp::Module::Get()->core()->IsMainThread()); | 994 DCHECK(pp::Module::Get()->core()->IsMainThread()); |
| 983 DCHECK(nacl_interface_); | 995 DCHECK(nacl_interface_); |
| 984 nacl_interface_->SetExitStatus(pp_instance(), exit_status); | 996 nacl_interface_->SetExitStatus(pp_instance(), exit_status); |
| 985 } | 997 } |
| 986 | 998 |
| 987 | 999 |
| 988 } // namespace plugin | 1000 } // namespace plugin |
| OLD | NEW |