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 10NaClMainPlatformDelegate::NaClMainPlatformDelegate( 11 const content::MainFunctionParams& parameters) 12 : parameters_(parameters) { 13} 14 15NaClMainPlatformDelegate::~NaClMainPlatformDelegate() { 16} 17 18void 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