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

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

Issue 836273002: Revert of Remove nonsfi token workaround. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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
« no previous file with comments | « components/nacl/renderer/nexe_load_manager.cc ('k') | ppapi/nacl_irt/manifest_service.cc » ('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 358 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 process_type), 369 process_type),
370 &launch_result, 370 &launch_result,
371 &error_message_string))) { 371 &error_message_string))) {
372 ppapi::PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostTask( 372 ppapi::PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostTask(
373 FROM_HERE, 373 FROM_HERE,
374 base::Bind(callback.func, callback.user_data, 374 base::Bind(callback.func, callback.user_data,
375 static_cast<int32_t>(PP_ERROR_FAILED))); 375 static_cast<int32_t>(PP_ERROR_FAILED)));
376 return; 376 return;
377 } 377 }
378 378
379 if (!error_message_string.empty()) {
380 if (PP_ToBool(main_service_runtime)) {
381 NexeLoadManager* load_manager = NexeLoadManager::Get(instance);
382 if (load_manager) {
383 load_manager->ReportLoadError(PP_NACL_ERROR_SEL_LDR_LAUNCH,
384 "ServiceRuntime: failed to start",
385 error_message_string);
386 }
387 }
388 ppapi::PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostTask(
389 FROM_HERE,
390 base::Bind(callback.func, callback.user_data,
391 static_cast<int32_t>(PP_ERROR_FAILED)));
392 return;
393 }
394 result_socket = launch_result.imc_channel_handle;
395 instance_info.channel_handle = launch_result.ppapi_ipc_channel_handle;
396 instance_info.plugin_pid = launch_result.plugin_pid;
397 instance_info.plugin_child_id = launch_result.plugin_child_id;
398
399 // Don't save instance_info if channel handle is invalid.
400 if (IsValidChannelHandle(instance_info.channel_handle))
401 g_instance_info.Get()[instance] = instance_info;
402
403 *(static_cast<NaClHandle*>(imc_handle)) = ToNativeHandle(result_socket);
404
379 NexeLoadManager* load_manager = NexeLoadManager::Get(instance); 405 NexeLoadManager* load_manager = NexeLoadManager::Get(instance);
380 DCHECK(load_manager); 406 DCHECK(load_manager);
381 if (!load_manager) { 407 if (!load_manager) {
382 PostPPCompletionCallback(callback, PP_ERROR_FAILED); 408 PostPPCompletionCallback(callback, PP_ERROR_FAILED);
383 base::SharedMemory::CloseHandle(launch_result.crash_info_shmem_handle); 409 base::SharedMemory::CloseHandle(launch_result.crash_info_shmem_handle);
384 return; 410 return;
385 } 411 }
386 load_manager->set_nonsfi(PP_ToBool(uses_nonsfi_mode));
387
388 if (!error_message_string.empty()) {
389 if (PP_ToBool(main_service_runtime)) {
390 load_manager->ReportLoadError(PP_NACL_ERROR_SEL_LDR_LAUNCH,
391 "ServiceRuntime: failed to start",
392 error_message_string);
393 }
394 ppapi::PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostTask(
395 FROM_HERE,
396 base::Bind(callback.func, callback.user_data,
397 static_cast<int32_t>(PP_ERROR_FAILED)));
398 return;
399 }
400 result_socket = launch_result.imc_channel_handle;
401 instance_info.channel_handle = launch_result.ppapi_ipc_channel_handle;
402 instance_info.plugin_pid = launch_result.plugin_pid;
403 instance_info.plugin_child_id = launch_result.plugin_child_id;
404
405 // Don't save instance_info if channel handle is invalid.
406 if (IsValidChannelHandle(instance_info.channel_handle))
407 g_instance_info.Get()[instance] = instance_info;
408
409 *(static_cast<NaClHandle*>(imc_handle)) = ToNativeHandle(result_socket);
410 412
411 // Store the crash information shared memory handle. 413 // Store the crash information shared memory handle.
412 load_manager->set_crash_info_shmem_handle( 414 load_manager->set_crash_info_shmem_handle(
413 launch_result.crash_info_shmem_handle); 415 launch_result.crash_info_shmem_handle);
414 416
415 // Create the trusted plugin channel. 417 // Create the trusted plugin channel.
416 if (IsValidChannelHandle(launch_result.trusted_ipc_channel_handle)) { 418 if (IsValidChannelHandle(launch_result.trusted_ipc_channel_handle)) {
417 bool report_exit_status = PP_ToBool(main_service_runtime); 419 bool report_exit_status = PP_ToBool(main_service_runtime);
418 scoped_ptr<TrustedPluginChannel> trusted_plugin_channel( 420 scoped_ptr<TrustedPluginChannel> trusted_plugin_channel(
419 new TrustedPluginChannel( 421 new TrustedPluginChannel(
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
674 676
675 PP_FileHandle OpenNaClExecutable(PP_Instance instance, 677 PP_FileHandle OpenNaClExecutable(PP_Instance instance,
676 const char* file_url, 678 const char* file_url,
677 uint64_t* nonce_lo, 679 uint64_t* nonce_lo,
678 uint64_t* nonce_hi) { 680 uint64_t* nonce_hi) {
679 // Fast path only works for installed file URLs. 681 // Fast path only works for installed file URLs.
680 GURL gurl(file_url); 682 GURL gurl(file_url);
681 if (!gurl.SchemeIs("chrome-extension")) 683 if (!gurl.SchemeIs("chrome-extension"))
682 return PP_kInvalidFileHandle; 684 return PP_kInvalidFileHandle;
683 685
684 NexeLoadManager* load_manager = NexeLoadManager::Get(instance);
685 DCHECK(load_manager);
686 if (!load_manager)
687 return PP_kInvalidFileHandle;
688 if (load_manager->nonsfi())
689 return PP_kInvalidFileHandle;
690
691 content::PepperPluginInstance* plugin_instance = 686 content::PepperPluginInstance* plugin_instance =
692 content::PepperPluginInstance::Get(instance); 687 content::PepperPluginInstance::Get(instance);
693 if (!plugin_instance) 688 if (!plugin_instance)
694 return PP_kInvalidFileHandle; 689 return PP_kInvalidFileHandle;
695 // IMPORTANT: Make sure the document can request the given URL. If we don't 690 // IMPORTANT: Make sure the document can request the given URL. If we don't
696 // check, a malicious app could probe the extension system. This enforces a 691 // check, a malicious app could probe the extension system. This enforces a
697 // same-origin policy which prevents the app from requesting resources from 692 // same-origin policy which prevents the app from requesting resources from
698 // another app. 693 // another app.
699 blink::WebSecurityOrigin security_origin = 694 blink::WebSecurityOrigin security_origin =
700 plugin_instance->GetContainer()->element().document().securityOrigin(); 695 plugin_instance->GetContainer()->element().document().securityOrigin();
(...skipping 996 matching lines...) Expand 10 before | Expand all | Expand 10 after
1697 &StreamPexe 1692 &StreamPexe
1698 }; 1693 };
1699 1694
1700 } // namespace 1695 } // namespace
1701 1696
1702 const PPB_NaCl_Private* GetNaClPrivateInterface() { 1697 const PPB_NaCl_Private* GetNaClPrivateInterface() {
1703 return &nacl_interface; 1698 return &nacl_interface;
1704 } 1699 }
1705 1700
1706 } // namespace nacl 1701 } // namespace nacl
OLDNEW
« no previous file with comments | « components/nacl/renderer/nexe_load_manager.cc ('k') | ppapi/nacl_irt/manifest_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698