Index: base/win/object_watcher.cc |
diff --git a/base/win/object_watcher.cc b/base/win/object_watcher.cc |
index fe209f5e3385ba58b496c56f8f9418c4391e8b57..efa133a2828978b572564aefdae56d09036a2704 100644 |
--- a/base/win/object_watcher.cc |
+++ b/base/win/object_watcher.cc |
@@ -6,6 +6,7 @@ |
#include "base/bind.h" |
#include "base/logging.h" |
+#include "base/win/windows_version.h" |
namespace base { |
namespace win { |
@@ -34,6 +35,10 @@ bool ObjectWatcher::StartWatching(HANDLE object, Delegate* delegate) { |
// result back to this thread, we can just run on a Windows wait thread. |
DWORD wait_flags = WT_EXECUTEINWAITTHREAD | WT_EXECUTEONLYONCE; |
+ if (base::win::GetVersion() > base::win::VERSION_XP) { |
+ wait_flags |= WT_TRANSFER_IMPERSONATION; |
forshaw
2015/02/20 11:38:02
What's the reason being this change? Currently it'
Shrikant Kelkar
2015/02/21 02:32:40
Removed.. During initial checks, I think chrome_el
|
+ } |
+ |
// DoneWaiting can be synchronously called from RegisterWaitForSingleObject, |
// so set up all state now. |
callback_ = base::Bind(&ObjectWatcher::Signal, weak_factory_.GetWeakPtr(), |