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

Unified Diff: sandbox/win/src/sandbox.h

Issue 1851213002: Remove sandbox on Windows. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix nacl compile issues Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sandbox/win/src/restricted_token_utils.cc ('k') | sandbox/win/src/sandbox.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sandbox/win/src/sandbox.h
diff --git a/sandbox/win/src/sandbox.h b/sandbox/win/src/sandbox.h
deleted file mode 100644
index 193605d1ea5b6e4ded9b10751be319d07276265c..0000000000000000000000000000000000000000
--- a/sandbox/win/src/sandbox.h
+++ /dev/null
@@ -1,164 +0,0 @@
-// Copyright (c) 2012 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.
-
-// Sandbox is a sandbox library for windows processes. Use when you want a
-// 'privileged' process and a 'locked down process' to interact with.
-// The privileged process is called the broker and it is started by external
-// means (such as the user starting it). The 'sandboxed' process is called the
-// target and it is started by the broker. There can be many target processes
-// started by a single broker process. This library provides facilities
-// for both the broker and the target.
-//
-// The design rationale and relevant documents can be found at http://go/sbox.
-//
-// Note: this header does not include the SandboxFactory definitions because
-// there are cases where the Sandbox library is linked against the main .exe
-// while its API needs to be used in a DLL.
-
-#ifndef SANDBOX_WIN_SRC_SANDBOX_H_
-#define SANDBOX_WIN_SRC_SANDBOX_H_
-
-#include <windows.h>
-
-#include "sandbox/win/src/sandbox_policy.h"
-#include "sandbox/win/src/sandbox_types.h"
-
-// sandbox: Google User-Land Application Sandbox
-namespace sandbox {
-
-class BrokerServices;
-class ProcessState;
-class TargetPolicy;
-class TargetServices;
-
-// BrokerServices exposes all the broker API.
-// The basic use is to start the target(s) and wait for them to end.
-//
-// This API is intended to be called in the following order
-// (error checking omitted):
-// BrokerServices* broker = SandboxFactory::GetBrokerServices();
-// broker->Init();
-// PROCESS_INFORMATION target;
-// broker->SpawnTarget(target_exe_path, target_args, &target);
-// ::ResumeThread(target->hThread);
-// // -- later you can call:
-// broker->WaitForAllTargets(option);
-//
-class BrokerServices {
- public:
- // Initializes the broker. Must be called before any other on this class.
- // returns ALL_OK if successful. All other return values imply failure.
- // If the return is ERROR_GENERIC, you can call ::GetLastError() to get
- // more information.
- virtual ResultCode Init() = 0;
-
- // Returns the interface pointer to a new, empty policy object. Use this
- // interface to specify the sandbox policy for new processes created by
- // SpawnTarget()
- virtual TargetPolicy* CreatePolicy() = 0;
-
- // Creates a new target (child process) in a suspended state.
- // Parameters:
- // exe_path: This is the full path to the target binary. This parameter
- // can be null and in this case the exe path must be the first argument
- // of the command_line.
- // command_line: The arguments to be passed as command line to the new
- // process. This can be null if the exe_path parameter is not null.
- // policy: This is the pointer to the policy object for the sandbox to
- // be created.
- // target: returns the resulting target process information such as process
- // handle and PID just as if CreateProcess() had been called. The caller is
- // responsible for closing the handles returned in this structure.
- // Returns:
- // ALL_OK if successful. All other return values imply failure.
- virtual ResultCode SpawnTarget(const wchar_t* exe_path,
- const wchar_t* command_line,
- TargetPolicy* policy,
- PROCESS_INFORMATION* target) = 0;
-
- // This call blocks (waits) for all the targets to terminate.
- // Returns:
- // ALL_OK if successful. All other return values imply failure.
- // If the return is ERROR_GENERIC, you can call ::GetLastError() to get
- // more information.
- virtual ResultCode WaitForAllTargets() = 0;
-
- // Adds an unsandboxed process as a peer for policy decisions (e.g.
- // HANDLES_DUP_ANY policy).
- // Returns:
- // ALL_OK if successful. All other return values imply failure.
- // If the return is ERROR_GENERIC, you can call ::GetLastError() to get
- // more information.
- virtual ResultCode AddTargetPeer(HANDLE peer_process) = 0;
-
- // Install the AppContainer with the specified sid an name. Returns ALL_OK if
- // successful or an error code if the AppContainer cannot be installed.
- virtual ResultCode InstallAppContainer(const wchar_t* sid,
- const wchar_t* name) = 0;
-
- // Removes from the system the AppContainer with the specified sid.
- // Returns ALL_OK if successful or an error code otherwise.
- virtual ResultCode UninstallAppContainer(const wchar_t* sid) = 0;
-};
-
-// TargetServices models the current process from the perspective
-// of a target process. To obtain a pointer to it use
-// Sandbox::GetTargetServices(). Note that this call returns a non-null
-// pointer only if this process is in fact a target. A process is a target
-// only if the process was spawned by a call to BrokerServices::SpawnTarget().
-//
-// This API allows the target to gain access to resources with a high
-// privilege token and then when it is ready to perform dangerous activities
-// (such as download content from the web) it can lower its token and
-// enter into locked-down (sandbox) mode.
-// The typical usage is as follows:
-//
-// TargetServices* target_services = Sandbox::GetTargetServices();
-// if (NULL != target_services) {
-// // We are the target.
-// target_services->Init();
-// // Do work that requires high privileges here.
-// // ....
-// // When ready to enter lock-down mode call LowerToken:
-// target_services->LowerToken();
-// }
-//
-// For more information see the BrokerServices API documentation.
-class TargetServices {
- public:
- // Initializes the target. Must call this function before any other.
- // returns ALL_OK if successful. All other return values imply failure.
- // If the return is ERROR_GENERIC, you can call ::GetLastError() to get
- // more information.
- virtual ResultCode Init() = 0;
-
- // Discards the impersonation token and uses the lower token, call before
- // processing any untrusted data or running third-party code. If this call
- // fails the current process could be terminated immediately.
- virtual void LowerToken() = 0;
-
- // Returns the ProcessState object. Through that object it's possible to have
- // information about the current state of the process, such as whether
- // LowerToken has been called or not.
- virtual ProcessState* GetState() = 0;
-
- // Requests the broker to duplicate the supplied handle into the target
- // process. The target process must be an active sandbox child process
- // and the source process must have a corresponding policy allowing
- // handle duplication for this object type.
- // Returns:
- // ALL_OK if successful. All other return values imply failure.
- // If the return is ERROR_GENERIC, you can call ::GetLastError() to get
- // more information.
- virtual ResultCode DuplicateHandle(HANDLE source_handle,
- DWORD target_process_id,
- HANDLE* target_handle,
- DWORD desired_access,
- DWORD options) = 0;
-};
-
-} // namespace sandbox
-
-
-#endif // SANDBOX_WIN_SRC_SANDBOX_H_
« no previous file with comments | « sandbox/win/src/restricted_token_utils.cc ('k') | sandbox/win/src/sandbox.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698