Index: sandbox/win/src/sandbox_policy_base.h |
diff --git a/sandbox/win/src/sandbox_policy_base.h b/sandbox/win/src/sandbox_policy_base.h |
index 0068553472b9d419d687cdebdca1d3eab157ad4a..80f5466d1001fe808b5723572c4e23afd96651f0 100644 |
--- a/sandbox/win/src/sandbox_policy_base.h |
+++ b/sandbox/win/src/sandbox_policy_base.h |
@@ -12,6 +12,7 @@ |
#include "base/basictypes.h" |
#include "base/compiler_specific.h" |
+#include "base/memory/scoped_ptr.h" |
#include "base/strings/string16.h" |
#include "base/win/scoped_handle.h" |
#include "sandbox/win/src/crosscall_server.h" |
@@ -31,11 +32,7 @@ struct PolicyGlobal; |
typedef std::vector<base::win::ScopedHandle*> HandleList; |
-// 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 { |
+class PolicyBase : public TargetPolicy { |
public: |
PolicyBase(); |
@@ -72,11 +69,6 @@ class PolicyBase : public Dispatcher, public TargetPolicy { |
const base::char16* handle_name) override; |
void* AddHandleToShare(HANDLE handle) override; |
- // Dispatcher: |
- Dispatcher* OnMessageReady(IPCParams* ipc, |
- CallbackGeneric* callback) override; |
- bool SetupService(InterceptionManager* manager, int service) override; |
- |
// Creates a Job object with the level specified in a previous call to |
// SetJobLevel(). |
ResultCode MakeJobObject(base::win::ScopedHandle* job); |
@@ -113,13 +105,7 @@ class PolicyBase : public Dispatcher, public TargetPolicy { |
void ClearSharedHandles(); |
private: |
- ~PolicyBase() override; |
- |
- // Test IPC providers. |
- bool Ping(IPCInfo* ipc, void* cookie); |
- |
- // Returns a dispatcher from ipc_targets_. |
- Dispatcher* GetDispatcher(int ipc_tag); |
+ ~PolicyBase(); |
// Sets up interceptions for a new target. |
bool SetupAllInterceptions(TargetProcess* target); |
@@ -156,8 +142,6 @@ class PolicyBase : public Dispatcher, public TargetPolicy { |
IntegrityLevel delayed_integrity_level_; |
MitigationFlags mitigations_; |
MitigationFlags delayed_mitigations_; |
- // 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. |
@@ -172,6 +156,7 @@ class PolicyBase : public Dispatcher, public TargetPolicy { |
scoped_ptr<AppContainerAttributes> appcontainer_list_; |
PSID lowbox_sid_; |
base::win::ScopedHandle lowbox_directory_; |
+ scoped_ptr<Dispatcher> dispatcher_; |
static HDESK alternate_desktop_handle_; |
static HWINSTA alternate_winstation_handle_; |