| Index: sandbox/src/sandbox_policy_base.h
|
| diff --git a/sandbox/src/sandbox_policy_base.h b/sandbox/src/sandbox_policy_base.h
|
| deleted file mode 100644
|
| index b3ea8057fda393bdb45df68c5cbf8b5e76439521..0000000000000000000000000000000000000000
|
| --- a/sandbox/src/sandbox_policy_base.h
|
| +++ /dev/null
|
| @@ -1,139 +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.
|
| -
|
| -#ifndef SANDBOX_SRC_SANDBOX_POLICY_BASE_H_
|
| -#define SANDBOX_SRC_SANDBOX_POLICY_BASE_H_
|
| -
|
| -#include <windows.h>
|
| -
|
| -#include <list>
|
| -#include <vector>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/compiler_specific.h"
|
| -#include "base/string16.h"
|
| -#include "sandbox/src/crosscall_server.h"
|
| -#include "sandbox/src/handle_closer.h"
|
| -#include "sandbox/src/ipc_tags.h"
|
| -#include "sandbox/src/policy_engine_opcodes.h"
|
| -#include "sandbox/src/policy_engine_params.h"
|
| -#include "sandbox/src/sandbox_policy.h"
|
| -#include "sandbox/src/win_utils.h"
|
| -
|
| -namespace sandbox {
|
| -
|
| -class LowLevelPolicy;
|
| -class TargetProcess;
|
| -struct PolicyGlobal;
|
| -
|
| -// We act as a policy dispatcher, implementing the handler for the "ping" IPC,
|
| -// so we have to provide the appropriate handler on the OnMessageReady method.
|
| -// There is a static_cast for the handler, and the compiler only performs the
|
| -// cast if the first base class is Dispatcher.
|
| -class PolicyBase : public Dispatcher, public TargetPolicy {
|
| - public:
|
| - PolicyBase();
|
| -
|
| - // TargetPolicy:
|
| - virtual void AddRef() OVERRIDE;
|
| - virtual void Release() OVERRIDE;
|
| - virtual ResultCode SetTokenLevel(TokenLevel initial,
|
| - TokenLevel lockdown) OVERRIDE;
|
| - virtual ResultCode SetJobLevel(JobLevel job_level,
|
| - uint32 ui_exceptions) OVERRIDE;
|
| - virtual ResultCode SetAlternateDesktop(bool alternate_winstation) OVERRIDE;
|
| - virtual std::wstring GetAlternateDesktop() const OVERRIDE;
|
| - virtual ResultCode CreateAlternateDesktop(bool alternate_winstation) OVERRIDE;
|
| - virtual void DestroyAlternateDesktop() OVERRIDE;
|
| - virtual ResultCode SetIntegrityLevel(IntegrityLevel integrity_level) OVERRIDE;
|
| - virtual ResultCode SetDelayedIntegrityLevel(
|
| - IntegrityLevel integrity_level) OVERRIDE;
|
| - virtual void SetStrictInterceptions() OVERRIDE;
|
| - virtual ResultCode AddRule(SubSystem subsystem, Semantics semantics,
|
| - const wchar_t* pattern) OVERRIDE;
|
| - virtual ResultCode AddDllToUnload(const wchar_t* dll_name);
|
| - virtual ResultCode AddKernelObjectToClose(const char16* handle_type,
|
| - const char16* handle_name) OVERRIDE;
|
| -
|
| - // Dispatcher:
|
| - virtual Dispatcher* OnMessageReady(IPCParams* ipc,
|
| - CallbackGeneric* callback) OVERRIDE;
|
| - virtual bool SetupService(InterceptionManager* manager, int service) OVERRIDE;
|
| -
|
| - // Creates a Job object with the level specified in a previous call to
|
| - // SetJobLevel(). Returns the standard windows of ::GetLastError().
|
| - DWORD MakeJobObject(HANDLE* job);
|
| -
|
| - // Creates the two tokens with the levels specified in a previous call to
|
| - // SetTokenLevel(). Returns the standard windows of ::GetLastError().
|
| - DWORD MakeTokens(HANDLE* initial, HANDLE* lockdown);
|
| -
|
| - // Adds a target process to the internal list of targets. Internally a
|
| - // call to TargetProcess::Init() is issued.
|
| - bool AddTarget(TargetProcess* target);
|
| -
|
| - // Called when there are no more active processes in a Job.
|
| - // Removes a Job object associated with this policy and the target associated
|
| - // with the job.
|
| - bool OnJobEmpty(HANDLE job);
|
| -
|
| - EvalResult EvalPolicy(int service, CountedParameterSetBase* params);
|
| -
|
| - private:
|
| - ~PolicyBase();
|
| -
|
| - // Test IPC providers.
|
| - bool Ping(IPCInfo* ipc, void* cookie);
|
| -
|
| - // Returns a dispatcher from ipc_targets_.
|
| - Dispatcher* GetDispatcher(int ipc_tag);
|
| -
|
| - // Sets up interceptions for a new target.
|
| - bool SetupAllInterceptions(TargetProcess* target);
|
| -
|
| - // Sets up the handle closer for a new target.
|
| - bool SetupHandleCloser(TargetProcess* target);
|
| -
|
| - // This lock synchronizes operations on the targets_ collection.
|
| - CRITICAL_SECTION lock_;
|
| - // Maintains the list of target process associated with this policy.
|
| - // The policy takes ownership of them.
|
| - typedef std::list<TargetProcess*> TargetSet;
|
| - TargetSet targets_;
|
| - // Standard object-lifetime reference counter.
|
| - volatile LONG ref_count;
|
| - // The user-defined global policy settings.
|
| - TokenLevel lockdown_level_;
|
| - TokenLevel initial_level_;
|
| - JobLevel job_level_;
|
| - uint32 ui_exceptions_;
|
| - bool use_alternate_desktop_;
|
| - bool use_alternate_winstation_;
|
| - // Helps the file system policy initialization.
|
| - bool file_system_init_;
|
| - bool relaxed_interceptions_;
|
| - IntegrityLevel integrity_level_;
|
| - IntegrityLevel delayed_integrity_level_;
|
| - // The array of objects that will answer IPC calls.
|
| - Dispatcher* ipc_targets_[IPC_LAST_TAG];
|
| - // Object in charge of generating the low level policy.
|
| - LowLevelPolicy* policy_maker_;
|
| - // Memory structure that stores the low level policy.
|
| - PolicyGlobal* policy_;
|
| - // The list of dlls to unload in the target process.
|
| - std::vector<std::wstring> blacklisted_dlls_;
|
| - // This is a map of handle-types to names that we need to close in the
|
| - // target process. A null set means we need to close all handles of the
|
| - // given type.
|
| - HandleCloser handle_closer_;
|
| -
|
| - static HDESK alternate_desktop_handle_;
|
| - static HWINSTA alternate_winstation_handle_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(PolicyBase);
|
| -};
|
| -
|
| -} // namespace sandbox
|
| -
|
| -#endif // SANDBOX_SRC_SANDBOX_POLICY_BASE_H_
|
|
|