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 3 // found in the LICENSE file. 4 5 #include "components/nacl/loader/nacl_main_platform_delegate.h" 6 7 #include "base/logging.h" 8 #include "sandbox/win/src/sandbox.h" 9 10 NaClMainPlatformDelegate::NaClMainPlatformDelegate( 11 const content::MainFunctionParams& parameters) 12 : parameters_(parameters) { 13 } 14 15 NaClMainPlatformDelegate::~NaClMainPlatformDelegate() { 16 } 17 18 void NaClMainPlatformDelegate::EnableSandbox() { 19 sandbox::TargetServices* target_services = 20 parameters_.sandbox_info->target_services; 21 22 CHECK(target_services) << "NaCl-Win EnableSandbox: No Target Services!"; 23 // Cause advapi32 to load before the sandbox is turned on. 24 unsigned int dummy_rand; 25 rand_s(&dummy_rand); 26 // Warm up language subsystems before the sandbox is turned on. 27 ::GetUserDefaultLangID(); 28 ::GetUserDefaultLCID(); 29 // Turn the sandbox on. 30 target_services->LowerToken(); 31 } 32