Commit 56b559a7 authored by keishi's avatar keishi Committed by Commit bot

Support CrossThreadWeakPersistent PostTask on per thread heap enabled thread

Implements Unwrap(CrossThreadWeakPersistent) that returns a CrossThreadPersistent so the object doesn't get collected during callback invocation.

BUG=591606

Review-Url: https://codereview.chromium.org/2207333002
Cr-Commit-Position: refs/heads/master@{#418516}
parent c7d2a617
...@@ -766,6 +766,15 @@ struct IsWeakReceiver<blink::WeakPersistent<T>> : std::true_type {}; ...@@ -766,6 +766,15 @@ struct IsWeakReceiver<blink::WeakPersistent<T>> : std::true_type {};
template <typename T> template <typename T>
struct IsWeakReceiver<blink::CrossThreadWeakPersistent<T>> : std::true_type {}; 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 #endif // Persistent_h
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment