OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "native_client/src/trusted/plugin/plugin.h" | 10 #include "native_client/src/trusted/plugin/plugin.h" |
(...skipping 1257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1268 } | 1268 } |
1269 | 1269 |
1270 void Plugin::NexeDidCrash(int32_t pp_error) { | 1270 void Plugin::NexeDidCrash(int32_t pp_error) { |
1271 PLUGIN_PRINTF(("Plugin::NexeDidCrash (pp_error=%"NACL_PRId32")\n", | 1271 PLUGIN_PRINTF(("Plugin::NexeDidCrash (pp_error=%"NACL_PRId32")\n", |
1272 pp_error)); | 1272 pp_error)); |
1273 if (pp_error != PP_OK) { | 1273 if (pp_error != PP_OK) { |
1274 PLUGIN_PRINTF(("Plugin::NexeDidCrash: CallOnMainThread callback with" | 1274 PLUGIN_PRINTF(("Plugin::NexeDidCrash: CallOnMainThread callback with" |
1275 " non-PP_OK arg -- SHOULD NOT HAPPEN\n")); | 1275 " non-PP_OK arg -- SHOULD NOT HAPPEN\n")); |
1276 } | 1276 } |
1277 PLUGIN_PRINTF(("Plugin::NexeDidCrash: crash event!\n")); | 1277 PLUGIN_PRINTF(("Plugin::NexeDidCrash: crash event!\n")); |
| 1278 int exit_status = main_subprocess_.service_runtime()->exit_status(); |
| 1279 if (-1 != exit_status) { |
| 1280 // The NaCl module voluntarily exited. However, this is still a |
| 1281 // crash from the point of view of Pepper, since PPAPI plugins are |
| 1282 // event handlers and should never exit. |
| 1283 PLUGIN_PRINTF((("Plugin::NexeDidCrash: nexe exited with status %d" |
| 1284 " so this is a \"controlled crash\".\n"), |
| 1285 exit_status)); |
| 1286 } |
1278 // If the crash occurs during load, we just want to report an error | 1287 // If the crash occurs during load, we just want to report an error |
1279 // that fits into our load progress event grammar. If the crash | 1288 // that fits into our load progress event grammar. If the crash |
1280 // occurs after loaded/loadend, then we use ReportDeadNexe to send a | 1289 // occurs after loaded/loadend, then we use ReportDeadNexe to send a |
1281 // "crash" event. | 1290 // "crash" event. |
1282 if (nexe_error_reported()) { | 1291 if (nexe_error_reported()) { |
1283 PLUGIN_PRINTF(("Plugin::NexeDidCrash: error already reported;" | 1292 PLUGIN_PRINTF(("Plugin::NexeDidCrash: error already reported;" |
1284 " suppressing\n")); | 1293 " suppressing\n")); |
1285 return; | 1294 return; |
1286 } | 1295 } |
1287 if (nacl_ready_state() == DONE) { | 1296 if (nacl_ready_state() == DONE) { |
(...skipping 742 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2030 std::string scheme = canonicalized.AsString().substr(comps.scheme.begin, | 2039 std::string scheme = canonicalized.AsString().substr(comps.scheme.begin, |
2031 comps.scheme.len); | 2040 comps.scheme.len); |
2032 if (scheme == kChromeExtensionUriScheme) | 2041 if (scheme == kChromeExtensionUriScheme) |
2033 return SCHEME_CHROME_EXTENSION; | 2042 return SCHEME_CHROME_EXTENSION; |
2034 if (scheme == kDataUriScheme) | 2043 if (scheme == kDataUriScheme) |
2035 return SCHEME_DATA; | 2044 return SCHEME_DATA; |
2036 return SCHEME_OTHER; | 2045 return SCHEME_OTHER; |
2037 } | 2046 } |
2038 | 2047 |
2039 } // namespace plugin | 2048 } // namespace plugin |
OLD | NEW |