| Index: sandbox/win/src/job.cc | 
| diff --git a/sandbox/win/src/job.cc b/sandbox/win/src/job.cc | 
| deleted file mode 100644 | 
| index 63e66102c032e282ce73e7da467d1d9e98ac8f2b..0000000000000000000000000000000000000000 | 
| --- a/sandbox/win/src/job.cc | 
| +++ /dev/null | 
| @@ -1,120 +0,0 @@ | 
| -// Copyright (c) 2011 The Chromium Authors. All rights reserved. | 
| -// Use of this source code is governed by a BSD-style license that can be | 
| -// found in the LICENSE file. | 
| - | 
| -#include "sandbox/win/src/job.h" | 
| - | 
| -#include <stddef.h> | 
| -#include <utility> | 
| - | 
| -#include "base/win/windows_version.h" | 
| -#include "sandbox/win/src/restricted_token.h" | 
| - | 
| -namespace sandbox { | 
| - | 
| -Job::Job() : job_handle_(NULL) { | 
| -}; | 
| - | 
| -Job::~Job() { | 
| -}; | 
| - | 
| -DWORD Job::Init(JobLevel security_level, | 
| -                const wchar_t* job_name, | 
| -                DWORD ui_exceptions, | 
| -                size_t memory_limit) { | 
| -  if (job_handle_.IsValid()) | 
| -    return ERROR_ALREADY_INITIALIZED; | 
| - | 
| -  job_handle_.Set(::CreateJobObject(NULL,   // No security attribute | 
| -                                    job_name)); | 
| -  if (!job_handle_.IsValid()) | 
| -    return ::GetLastError(); | 
| - | 
| -  JOBOBJECT_EXTENDED_LIMIT_INFORMATION jeli = {}; | 
| -  JOBOBJECT_BASIC_UI_RESTRICTIONS jbur = {}; | 
| - | 
| -  // Set the settings for the different security levels. Note: The higher levels | 
| -  // inherit from the lower levels. | 
| -  switch (security_level) { | 
| -    case JOB_LOCKDOWN: { | 
| -      jeli.BasicLimitInformation.LimitFlags |= | 
| -          JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION; | 
| -    } | 
| -    case JOB_RESTRICTED: { | 
| -      jbur.UIRestrictionsClass |= JOB_OBJECT_UILIMIT_WRITECLIPBOARD; | 
| -      jbur.UIRestrictionsClass |= JOB_OBJECT_UILIMIT_READCLIPBOARD; | 
| -      jbur.UIRestrictionsClass |= JOB_OBJECT_UILIMIT_HANDLES; | 
| -      jbur.UIRestrictionsClass |= JOB_OBJECT_UILIMIT_GLOBALATOMS; | 
| -    } | 
| -    case JOB_LIMITED_USER: { | 
| -      jbur.UIRestrictionsClass |= JOB_OBJECT_UILIMIT_DISPLAYSETTINGS; | 
| -      jeli.BasicLimitInformation.LimitFlags |= JOB_OBJECT_LIMIT_ACTIVE_PROCESS; | 
| -      jeli.BasicLimitInformation.ActiveProcessLimit = 1; | 
| -    } | 
| -    case JOB_INTERACTIVE: { | 
| -      jbur.UIRestrictionsClass |= JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS; | 
| -      jbur.UIRestrictionsClass |= JOB_OBJECT_UILIMIT_DESKTOP; | 
| -      jbur.UIRestrictionsClass |= JOB_OBJECT_UILIMIT_EXITWINDOWS; | 
| -    } | 
| -    case JOB_UNPROTECTED: { | 
| -      if (memory_limit) { | 
| -        jeli.BasicLimitInformation.LimitFlags |= | 
| -            JOB_OBJECT_LIMIT_PROCESS_MEMORY; | 
| -        jeli.ProcessMemoryLimit = memory_limit; | 
| -      } | 
| - | 
| -      jeli.BasicLimitInformation.LimitFlags |= | 
| -          JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE; | 
| -      break; | 
| -    } | 
| -    default: { | 
| -      return ERROR_BAD_ARGUMENTS; | 
| -    } | 
| -  } | 
| - | 
| -  if (FALSE == ::SetInformationJobObject(job_handle_.Get(), | 
| -                                         JobObjectExtendedLimitInformation, | 
| -                                         &jeli, | 
| -                                         sizeof(jeli))) { | 
| -    return ::GetLastError(); | 
| -  } | 
| - | 
| -  jbur.UIRestrictionsClass = jbur.UIRestrictionsClass & (~ui_exceptions); | 
| -  if (FALSE == ::SetInformationJobObject(job_handle_.Get(), | 
| -                                         JobObjectBasicUIRestrictions, | 
| -                                         &jbur, | 
| -                                         sizeof(jbur))) { | 
| -    return ::GetLastError(); | 
| -  } | 
| - | 
| -  return ERROR_SUCCESS; | 
| -} | 
| - | 
| -DWORD Job::UserHandleGrantAccess(HANDLE handle) { | 
| -  if (!job_handle_.IsValid()) | 
| -    return ERROR_NO_DATA; | 
| - | 
| -  if (!::UserHandleGrantAccess(handle, | 
| -                               job_handle_.Get(), | 
| -                               TRUE)) {  // Access allowed. | 
| -    return ::GetLastError(); | 
| -  } | 
| - | 
| -  return ERROR_SUCCESS; | 
| -} | 
| - | 
| -base::win::ScopedHandle Job::Take() { | 
| -  return std::move(job_handle_); | 
| -} | 
| - | 
| -DWORD Job::AssignProcessToJob(HANDLE process_handle) { | 
| -  if (!job_handle_.IsValid()) | 
| -    return ERROR_NO_DATA; | 
| - | 
| -  if (FALSE == ::AssignProcessToJobObject(job_handle_.Get(), process_handle)) | 
| -    return ::GetLastError(); | 
| - | 
| -  return ERROR_SUCCESS; | 
| -} | 
| - | 
| -}  // namespace sandbox | 
|  |