Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(287)

Unified Diff: third_party/WebKit/Source/platform/scheduler/CancellableTaskFactory.h

Issue 2514733002: Scheduler: Deprecate CancellableTaskFactory in favor of WebTaskRunner::postCancellableTask (3) (Closed)
Patch Set: rebase Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698