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

Side by Side Diff: components/nacl/renderer/ppb_nacl_private_impl.cc

Issue 311273007: Pepper: Clean up trusted plugin error reporting. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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
« no previous file with comments | « no previous file | ppapi/api/private/ppb_nacl_private.idl » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "components/nacl/renderer/ppb_nacl_private_impl.h" 5 #include "components/nacl/renderer/ppb_nacl_private_impl.h"
6 6
7 #include <numeric> 7 #include <numeric>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 load_manager->set_manifest_service_channel( 432 load_manager->set_manifest_service_channel(
433 manifest_service_channel.Pass()); 433 manifest_service_channel.Pass());
434 } else { 434 } else {
435 // Currently, manifest service works only on linux/non-SFI mode. 435 // Currently, manifest service works only on linux/non-SFI mode.
436 // On other platforms, the socket will not be created, and thus this 436 // On other platforms, the socket will not be created, and thus this
437 // condition needs to be handled as success. 437 // condition needs to be handled as success.
438 connected_callback.Run(PP_OK); 438 connected_callback.Run(PP_OK);
439 } 439 }
440 } 440 }
441 441
442 // Forward declaration.
443 void ReportLoadError(PP_Instance instance,
444 PP_NaClError error,
445 const char* error_message,
446 const char* console_message);
447
448 PP_Bool StartPpapiProxy(PP_Instance instance) { 442 PP_Bool StartPpapiProxy(PP_Instance instance) {
449 InstanceInfoMap& map = g_instance_info.Get(); 443 NexeLoadManager* load_manager = GetNexeLoadManager(instance);
450 InstanceInfoMap::iterator it = map.find(instance); 444 DCHECK(load_manager);
451 if (it == map.end()) { 445 if (!load_manager)
452 DLOG(ERROR) << "Could not find instance ID";
453 return PP_FALSE; 446 return PP_FALSE;
454 }
455 InstanceInfo instance_info = it->second;
456 map.erase(it);
457 447
458 content::PepperPluginInstance* plugin_instance = 448 content::PepperPluginInstance* plugin_instance =
459 content::PepperPluginInstance::Get(instance); 449 content::PepperPluginInstance::Get(instance);
460 if (!plugin_instance) { 450 if (!plugin_instance) {
461 DLOG(ERROR) << "GetInstance() failed"; 451 DLOG(ERROR) << "GetInstance() failed";
462 return PP_FALSE; 452 return PP_FALSE;
463 } 453 }
464 454
455 InstanceInfoMap& map = g_instance_info.Get();
456 InstanceInfoMap::iterator it = map.find(instance);
457 if (it == map.end()) {
458 DLOG(ERROR) << "Could not find instance ID";
459 return PP_FALSE;
460 }
461 InstanceInfo instance_info = it->second;
462 map.erase(it);
463
465 PP_ExternalPluginResult result = plugin_instance->SwitchToOutOfProcessProxy( 464 PP_ExternalPluginResult result = plugin_instance->SwitchToOutOfProcessProxy(
466 base::FilePath().AppendASCII(instance_info.url.spec()), 465 base::FilePath().AppendASCII(instance_info.url.spec()),
467 instance_info.permissions, 466 instance_info.permissions,
468 instance_info.channel_handle, 467 instance_info.channel_handle,
469 instance_info.plugin_pid, 468 instance_info.plugin_pid,
470 instance_info.plugin_child_id); 469 instance_info.plugin_child_id);
471 470
472 if (result == PP_EXTERNAL_PLUGIN_OK) { 471 if (result == PP_EXTERNAL_PLUGIN_OK) {
473 // Log the amound of time that has passed between the trusted plugin being 472 // Log the amound of time that has passed between the trusted plugin being
dmichael (off chromium) 2014/06/05 19:06:54 unrelated nit: amound->amount
474 // initialized and the untrusted plugin being initialized. This is 473 // initialized and the untrusted plugin being initialized. This is
475 // (roughly) the cost of using NaCl, in terms of startup time. 474 // (roughly) the cost of using NaCl, in terms of startup time.
476 NexeLoadManager* load_manager = GetNexeLoadManager(instance); 475 load_manager->ReportStartupOverhead();
477 if (load_manager)
478 load_manager->ReportStartupOverhead();
479 return PP_TRUE; 476 return PP_TRUE;
480 } else if (result == PP_EXTERNAL_PLUGIN_ERROR_MODULE) { 477 } else if (result == PP_EXTERNAL_PLUGIN_ERROR_MODULE) {
481 ReportLoadError(instance, 478 load_manager->ReportLoadError(PP_NACL_ERROR_START_PROXY_MODULE,
482 PP_NACL_ERROR_START_PROXY_MODULE, 479 "could not initialize module.");
483 "could not initialize module.",
484 "could not initialize module.");
485 } else if (result == PP_EXTERNAL_PLUGIN_ERROR_INSTANCE) { 480 } else if (result == PP_EXTERNAL_PLUGIN_ERROR_INSTANCE) {
486 ReportLoadError(instance, 481 load_manager->ReportLoadError(PP_NACL_ERROR_START_PROXY_MODULE,
487 PP_NACL_ERROR_START_PROXY_MODULE, 482 "could not create instance.");
488 "could not create instance.",
489 "could not create instance.");
490 } 483 }
491 return PP_FALSE; 484 return PP_FALSE;
492 } 485 }
493 486
494 int UrandomFD(void) { 487 int UrandomFD(void) {
495 #if defined(OS_POSIX) 488 #if defined(OS_POSIX)
496 return base::GetUrandomFD(); 489 return base::GetUrandomFD();
497 #else 490 #else
498 return -1; 491 return -1;
499 #endif 492 #endif
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
718 const char* url, 711 const char* url,
719 uint64_t loaded_bytes, 712 uint64_t loaded_bytes,
720 uint64_t total_bytes) { 713 uint64_t total_bytes) {
721 NexeLoadManager* load_manager = GetNexeLoadManager(instance); 714 NexeLoadManager* load_manager = GetNexeLoadManager(instance);
722 if (load_manager) 715 if (load_manager)
723 load_manager->ReportLoadSuccess(url, loaded_bytes, total_bytes); 716 load_manager->ReportLoadSuccess(url, loaded_bytes, total_bytes);
724 } 717 }
725 718
726 void ReportLoadError(PP_Instance instance, 719 void ReportLoadError(PP_Instance instance,
727 PP_NaClError error, 720 PP_NaClError error,
728 const char* error_message, 721 const char* error_message) {
729 const char* console_message) {
730 NexeLoadManager* load_manager = GetNexeLoadManager(instance); 722 NexeLoadManager* load_manager = GetNexeLoadManager(instance);
731 if (load_manager) 723 if (load_manager)
732 load_manager->ReportLoadError(error, error_message, console_message); 724 load_manager->ReportLoadError(error, error_message);
733 } 725 }
734 726
735 void ReportLoadAbort(PP_Instance instance) { 727 void ReportLoadAbort(PP_Instance instance) {
736 NexeLoadManager* load_manager = GetNexeLoadManager(instance); 728 NexeLoadManager* load_manager = GetNexeLoadManager(instance);
737 if (load_manager) 729 if (load_manager)
738 load_manager->ReportLoadAbort(); 730 load_manager->ReportLoadAbort();
739 } 731 }
740 732
741 void NexeDidCrash(PP_Instance instance, const char* crash_log) { 733 void NexeDidCrash(PP_Instance instance, const char* crash_log) {
742 NexeLoadManager* load_manager = GetNexeLoadManager(instance); 734 NexeLoadManager* load_manager = GetNexeLoadManager(instance);
(...skipping 816 matching lines...) Expand 10 before | Expand all | Expand 10 after
1559 &ReportSelLdrStatus 1551 &ReportSelLdrStatus
1560 }; 1552 };
1561 1553
1562 } // namespace 1554 } // namespace
1563 1555
1564 const PPB_NaCl_Private* GetNaClPrivateInterface() { 1556 const PPB_NaCl_Private* GetNaClPrivateInterface() {
1565 return &nacl_interface; 1557 return &nacl_interface;
1566 } 1558 }
1567 1559
1568 } // namespace nacl 1560 } // namespace nacl
OLDNEW
« no previous file with comments | « no previous file | ppapi/api/private/ppb_nacl_private.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698