Index: third_party/WebKit/Source/platform/scheduler/CancellableTaskFactory.h |
diff --git a/third_party/WebKit/Source/platform/scheduler/CancellableTaskFactory.h b/third_party/WebKit/Source/platform/scheduler/CancellableTaskFactory.h |
deleted file mode 100644 |
index 3a7d81dce4684844a4247717ba4f5abb6a964ab7..0000000000000000000000000000000000000000 |
--- a/third_party/WebKit/Source/platform/scheduler/CancellableTaskFactory.h |
+++ /dev/null |
@@ -1,100 +0,0 @@ |
-// Copyright 2015 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. |
- |
-#ifndef CancellableTaskFactory_h |
-#define CancellableTaskFactory_h |
- |
-#include "platform/PlatformExport.h" |
-#include "platform/WebTaskRunner.h" |
-#include "platform/heap/Handle.h" |
-#include "wtf/Allocator.h" |
-#include "wtf/Functional.h" |
-#include "wtf/Noncopyable.h" |
-#include "wtf/PtrUtil.h" |
-#include "wtf/WeakPtr.h" |
-#include <memory> |
-#include <type_traits> |
- |
-// WebTaskRunner::postCancellableTask will replace CancellableTaskFactory. |
-// Use postCancellableTask in new code. |
-// Example: For |task_runner| and |foo| below. |
-// WebTaskRunner* task_runner; |
-// Foo* foo; |
-// |
-// CancellableTaskFactory factory(foo, &Foo::bar); |
-// task_runner->postTask(BLINK_FROM_HERE, factory.cancelAndCreate()); |
-// factory.cancel(); |
-// |
-// Above is equivalent to below: |
-// |
-// std::unique_ptr<WTF::Closure> task = |
-// WTF::bind(wrapPersistent(foo), &Foo::bar); |
-// TaskHandle handle = |
-// task_runner->postCancellableTask(BLINK_FROM_HERE, std::move(task)); |
-// handle.cancel(); |
-namespace blink { |
- |
-class PLATFORM_EXPORT CancellableTaskFactory { |
- WTF_MAKE_NONCOPYABLE(CancellableTaskFactory); |
- USING_FAST_MALLOC(CancellableTaskFactory); |
- |
- public: |
- // As WTF::Closure objects are off-heap, we have to construct the closure in |
- // such a manner that it doesn't end up referring back to the owning heap |
- // object with a strong Persistent<> GC root reference. If we do, this will |
- // create a heap <-> off-heap cycle and leak, the owning object can never be |
- // GCed. Instead, the closure will keep an off-heap persistent reference of |
- // the weak, which will refer back to the owner heap object safely (but |
- // weakly.) |
- // |
- // DEPRECATED: Please use WebTaskRunner::postCancellableTask instead. |
- // (https://crbug.com/665285) |
- template <typename T> |
- static std::unique_ptr<CancellableTaskFactory> create( |
- T* thisObject, |
- void (T::*method)(), |
- typename std::enable_if<IsGarbageCollectedType<T>::value>::type* = |
- nullptr) { |
- return wrapUnique(new CancellableTaskFactory( |
- WTF::bind(method, wrapWeakPersistent(thisObject)))); |
- } |
- |
- bool isPending() const { return m_weakPtrFactory.hasWeakPtrs(); } |
- |
- void cancel(); |
- |
- // Returns a task that can be disabled by calling cancel(). The user takes |
- // ownership of the task. Creating a new task cancels any previous ones. |
- WebTaskRunner::Task* cancelAndCreate(); |
- |
- protected: |
- // Only intended used by unit tests wanting to stack allocate and/or pass in a |
- // closure value. Please use the create() factory method elsewhere. |
- explicit CancellableTaskFactory(std::unique_ptr<WTF::Closure> closure) |
- : m_closure(std::move(closure)), m_weakPtrFactory(this) {} |
- |
- private: |
- class CancellableTask : public WebTaskRunner::Task { |
- USING_FAST_MALLOC(CancellableTask); |
- WTF_MAKE_NONCOPYABLE(CancellableTask); |
- |
- public: |
- explicit CancellableTask(WeakPtr<CancellableTaskFactory> weakPtr) |
- : m_weakPtr(weakPtr) {} |
- |
- ~CancellableTask() override {} |
- |
- void run() override; |
- |
- private: |
- WeakPtr<CancellableTaskFactory> m_weakPtr; |
- }; |
- |
- std::unique_ptr<WTF::Closure> m_closure; |
- WeakPtrFactory<CancellableTaskFactory> m_weakPtrFactory; |
-}; |
- |
-} // namespace blink |
- |
-#endif // CancellableTaskFactory_h |