Index: third_party/WebKit/Source/platform/heap/Persistent.h |
diff --git a/third_party/WebKit/Source/platform/heap/Persistent.h b/third_party/WebKit/Source/platform/heap/Persistent.h |
index 37399f545ca475db1e18cd29ce91cdf00fed7e81..baf4856b2492d239263ed0dbd995095c747ce6fc 100644 |
--- a/third_party/WebKit/Source/platform/heap/Persistent.h |
+++ b/third_party/WebKit/Source/platform/heap/Persistent.h |
@@ -766,6 +766,15 @@ struct IsWeakReceiver<blink::WeakPersistent<T>> : std::true_type {}; |
template <typename T> |
struct IsWeakReceiver<blink::CrossThreadWeakPersistent<T>> : std::true_type {}; |
+template <typename T> |
+struct BindUnwrapTraits<blink::CrossThreadWeakPersistent<T>> { |
+ static blink::CrossThreadPersistent<T> Unwrap(const blink::CrossThreadWeakPersistent<T>& wrapped) |
+ { |
+ blink::CrossThreadPersistentRegion::LockScope persistentLock(blink::ProcessHeap::crossThreadPersistentRegion()); |
+ return blink::CrossThreadPersistent<T>(wrapped.get()); |
+ } |
+}; |
+ |
} |
#endif // Persistent_h |