| Index: sandbox/src/sandbox_policy_base.cc | 
| =================================================================== | 
| --- sandbox/src/sandbox_policy_base.cc	(revision 129865) | 
| +++ sandbox/src/sandbox_policy_base.cc	(working copy) | 
| @@ -1,4 +1,4 @@ | 
| -// Copyright (c) 2006-2011 The Chromium Authors. All rights reserved. | 
| +// 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. | 
|  | 
| @@ -9,6 +9,8 @@ | 
| #include "base/logging.h" | 
| #include "sandbox/src/filesystem_dispatcher.h" | 
| #include "sandbox/src/filesystem_policy.h" | 
| +#include "sandbox/src/handle_dispatcher.h" | 
| +#include "sandbox/src/handle_policy.h" | 
| #include "sandbox/src/job.h" | 
| #include "sandbox/src/interception.h" | 
| #include "sandbox/src/named_pipe_dispatcher.h" | 
| @@ -96,6 +98,9 @@ | 
| dispatcher = new RegistryDispatcher(this); | 
| ipc_targets_[IPC_NTCREATEKEY_TAG] = dispatcher; | 
| ipc_targets_[IPC_NTOPENKEY_TAG] = dispatcher; | 
| + | 
| +  dispatcher = new HandleDispatcher(this); | 
| +  ipc_targets_[IPC_DUPLICATEHANDLEPROXY_TAG] = dispatcher; | 
| } | 
|  | 
| PolicyBase::~PolicyBase() { | 
| @@ -109,6 +114,7 @@ | 
| delete ipc_targets_[IPC_NTOPENTHREAD_TAG]; | 
| delete ipc_targets_[IPC_CREATEEVENT_TAG]; | 
| delete ipc_targets_[IPC_NTCREATEKEY_TAG]; | 
| +  delete ipc_targets_[IPC_DUPLICATEHANDLEPROXY_TAG]; | 
| delete policy_maker_; | 
| delete policy_; | 
| ::DeleteCriticalSection(&lock_); | 
| @@ -320,6 +326,13 @@ | 
| } | 
| break; | 
| } | 
| +    case SUBSYS_HANDLES: { | 
| +      if (!HandlePolicy::GenerateRules(pattern, semantics, policy_maker_)) { | 
| +        NOTREACHED(); | 
| +        return SBOX_ERROR_BAD_PARAMS; | 
| +      } | 
| +      break; | 
| +    } | 
| default: { | 
| return SBOX_ERROR_UNSUPPORTED; | 
| } | 
|  |