| Index: third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc
|
| diff --git a/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc b/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc
|
| index ca5ac685b7db8bc37fdc744ff47e9443fbf822e4..771833647c2d38e2b095b925aced3a8bd49e53cc 100644
|
| --- a/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc
|
| +++ b/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc
|
| @@ -643,6 +643,19 @@ void TaskQueueImpl::InsertFence() {
|
| }
|
| }
|
|
|
| +void TaskQueueImpl::BlockByFence() {
|
| + if (!main_thread_only().task_queue_manager)
|
| + return;
|
| +
|
| + main_thread_only().current_fence =
|
| + static_cast<EnqueueOrder>(EnqueueOrderValues::BLOCKING_FENCE);
|
| +
|
| + main_thread_only().immediate_work_queue->InsertFence(
|
| + main_thread_only().current_fence);
|
| + main_thread_only().delayed_work_queue->InsertFence(
|
| + main_thread_only().current_fence);
|
| +}
|
| +
|
| void TaskQueueImpl::RemoveFence() {
|
| if (!main_thread_only().task_queue_manager)
|
| return;
|
| @@ -701,6 +714,13 @@ bool TaskQueueImpl::BlockedByFenceLocked() const {
|
| main_thread_only().current_fence;
|
| }
|
|
|
| +bool TaskQueueImpl::IsQueueUnblockedForTest() const {
|
| + if (!IsQueueEnabled())
|
| + return false;
|
| + return main_thread_only().current_fence !=
|
| + static_cast<EnqueueOrder>(EnqueueOrderValues::BLOCKING_FENCE);
|
| +}
|
| +
|
| // static
|
| void TaskQueueImpl::QueueAsValueInto(const std::queue<Task>& queue,
|
| base::trace_event::TracedValue* state) {
|
|
|