Commit 0df94b84 authored by Greg Kraynov's avatar Greg Kraynov Committed by Commit Bot

Move TimeDomain to //base/task/sequence_manager.

Also make RealTimeDomain internal.

Bug: 783309
Change-Id: I142aa6f9c13bd6f5ce2211b95dd84a234fc71e0d
Reviewed-on: https://chromium-review.googlesource.com/1118554
Commit-Queue: Greg Kraynov <kraynov@chromium.org>
Reviewed-by: default avatarGabriel Charette <gab@chromium.org>
Reviewed-by: default avatarAlexander Timin <altimin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571435}
parent 2ff38a74
......@@ -821,6 +821,7 @@ jumbo_component("base") {
"task/sequence_manager/task_queue.h",
"task/sequence_manager/task_time_observer.h",
"task/sequence_manager/thread_controller.h",
"task/sequence_manager/time_domain.h",
"task_runner.cc",
"task_runner.h",
"task_runner_util.h",
......
// Copyright 2015 The Chromium Authors. All rights reserved.
// Copyright 2018 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 THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_BASE_TIME_DOMAIN_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_BASE_TIME_DOMAIN_H_
#ifndef BASE_TASK_SEQUENCE_MANAGER_TIME_DOMAIN_H_
#define BASE_TASK_SEQUENCE_MANAGER_TIME_DOMAIN_H_
#include <map>
......@@ -12,8 +12,8 @@
#include "base/macros.h"
#include "base/task/sequence_manager/intrusive_heap.h"
#include "base/task/sequence_manager/lazy_now.h"
#include "base/task/sequence_manager/task_queue_impl.h"
#include "base/time/time.h"
#include "third_party/blink/renderer/platform/scheduler/base/task_queue_impl_forward.h"
namespace base {
namespace sequence_manager {
......@@ -23,7 +23,7 @@ class TaskQueueManagerImpl;
namespace internal {
class TaskQueueImpl;
} // internal
} // namespace internal
// TimeDomain wakes up TaskQueues when their delayed tasks are due to run.
// This class allows overrides to enable clock overriding on some TaskQueues
......@@ -31,7 +31,7 @@ class TaskQueueImpl;
//
// TaskQueue maintains its own next wake-up time and communicates it
// to the TimeDomain, which aggregates wake-ups across registered TaskQueues
// into a global wake-up, which ultimately gets passed to the ThreadCOntroller.
// into a global wake-up, which ultimately gets passed to the ThreadController.
class PLATFORM_EXPORT TimeDomain {
public:
virtual ~TimeDomain();
......@@ -133,4 +133,4 @@ class PLATFORM_EXPORT TimeDomain {
} // namespace sequence_manager
} // namespace base
#endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_BASE_TIME_DOMAIN_H_
#endif // BASE_TASK_SEQUENCE_MANAGER_TIME_DOMAIN_H_
......@@ -25,7 +25,7 @@ blink_platform_sources("scheduler") {
"base/thread_controller_impl.cc",
"base/thread_controller_impl.h",
"base/time_domain.cc",
"base/time_domain.h",
"base/time_domain_forward.h",
"base/virtual_time_domain.cc",
"base/virtual_time_domain.h",
"base/work_queue.cc",
......
......@@ -10,6 +10,7 @@
namespace base {
namespace sequence_manager {
namespace internal {
RealTimeDomain::RealTimeDomain() {}
......@@ -44,5 +45,6 @@ const char* RealTimeDomain::GetName() const {
return "RealTimeDomain";
}
} // namespace internal
} // namespace sequence_manager
} // namespace base
......@@ -9,10 +9,11 @@
#include "base/macros.h"
#include "third_party/blink/renderer/platform/platform_export.h"
#include "third_party/blink/renderer/platform/scheduler/base/time_domain.h"
#include "third_party/blink/renderer/platform/scheduler/base/time_domain_forward.h"
namespace base {
namespace sequence_manager {
namespace internal {
class PLATFORM_EXPORT RealTimeDomain : public TimeDomain {
public:
......@@ -31,6 +32,7 @@ class PLATFORM_EXPORT RealTimeDomain : public TimeDomain {
DISALLOW_COPY_AND_ASSIGN(RealTimeDomain);
};
} // namespace internal
} // namespace sequence_manager
} // namespace base
......
......@@ -11,7 +11,7 @@
#include "base/time/time.h"
#include "base/trace_event/blame_context.h"
#include "third_party/blink/renderer/platform/scheduler/base/task_queue_manager_impl.h"
#include "third_party/blink/renderer/platform/scheduler/base/time_domain.h"
#include "third_party/blink/renderer/platform/scheduler/base/time_domain_forward.h"
#include "third_party/blink/renderer/platform/scheduler/base/work_queue.h"
namespace base {
......
......@@ -109,7 +109,7 @@ TaskQueueManagerImpl::AnyThread::~AnyThread() = default;
TaskQueueManagerImpl::MainThreadOnly::MainThreadOnly()
: random_generator(RandUint64()),
uniform_distribution(0.0, 1.0),
real_time_domain(new RealTimeDomain()) {}
real_time_domain(new internal::RealTimeDomain()) {}
TaskQueueManagerImpl::MainThreadOnly::~MainThreadOnly() = default;
......
......@@ -48,10 +48,10 @@ namespace base {
namespace sequence_manager {
namespace internal {
class RealTimeDomain;
class TaskQueueImpl;
} // namespace internal
class RealTimeDomain;
class TaskQueue;
class TaskTimeObserver;
class TimeDomain;
......@@ -204,7 +204,7 @@ class PLATFORM_EXPORT TaskQueueManagerImpl
ObserverList<MessageLoop::TaskObserver> task_observers;
ObserverList<TaskTimeObserver> task_time_observers;
std::set<TimeDomain*> time_domains;
std::unique_ptr<RealTimeDomain> real_time_domain;
std::unique_ptr<internal::RealTimeDomain> real_time_domain;
// List of task queues managed by this TaskQueueManager.
// - active_queues contains queues that are still running tasks.
......
......@@ -1724,8 +1724,10 @@ TEST_F(TaskQueueManagerTest,
std::vector<EnqueueOrder> run_order;
std::unique_ptr<RealTimeDomain> domain_a(new RealTimeDomain());
std::unique_ptr<RealTimeDomain> domain_b(new RealTimeDomain());
std::unique_ptr<internal::RealTimeDomain> domain_a =
std::make_unique<internal::RealTimeDomain>();
std::unique_ptr<internal::RealTimeDomain> domain_b =
std::make_unique<internal::RealTimeDomain>();
manager_->RegisterTimeDomain(domain_a.get());
manager_->RegisterTimeDomain(domain_b.get());
......@@ -1912,7 +1914,7 @@ TEST_F(TaskQueueManagerTest, TaskQueueObserver_DelayedWorkWhichCanRunNow) {
Mock::VerifyAndClearExpectations(&observer);
std::unique_ptr<TimeDomain> mock_time_domain =
std::make_unique<RealTimeDomain>();
std::make_unique<internal::RealTimeDomain>();
manager_->RegisterTimeDomain(mock_time_domain.get());
test_task_runner_->AdvanceMockTickClock(delay10s);
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/platform/scheduler/base/time_domain.h"
#include "third_party/blink/renderer/platform/scheduler/base/time_domain_forward.h"
#include <set>
......@@ -31,6 +31,11 @@ SequenceManager* TimeDomain::sequence_manager() const {
return sequence_manager_;
}
// TODO(kraynov): https://crbug.com/857101 Consider making an interface
// for TaskQueueManagerImpl which will expose MaybeScheduleDelayedWork,
// CancelDelayedWork and MaybeScheduleImmediateWork methods in order
// to make the functions below pure-virtual.
void TimeDomain::RequestWakeUpAt(TimeTicks now, TimeTicks run_time) {
sequence_manager_->MaybeScheduleDelayedWork(FROM_HERE, this, now, run_time);
}
......
// 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 THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_BASE_TIME_DOMAIN_FORWARD_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_BASE_TIME_DOMAIN_FORWARD_H_
// Currently the implementation is located in Blink because scheduler/base move
// is in progress https://crbug.com/783309.
// TODO(kraynov): Remove this header after the move.
// Must be included first.
#include "third_party/blink/renderer/platform/platform_export.h"
#define HACKDEF_INCLUDED_FROM_BLINK
#include "base/task/sequence_manager/time_domain.h"
#undef HACKDEF_INCLUDED_FROM_BLINK
#endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_BASE_TIME_DOMAIN_FORWARD_H_
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/platform/scheduler/base/time_domain.h"
#include "third_party/blink/renderer/platform/scheduler/base/time_domain_forward.h"
#include <memory>
#include "base/macros.h"
......
......@@ -8,7 +8,7 @@
#include "base/callback.h"
#include "base/macros.h"
#include "base/threading/thread_checker.h"
#include "third_party/blink/renderer/platform/scheduler/base/time_domain.h"
#include "third_party/blink/renderer/platform/scheduler/base/time_domain_forward.h"
namespace base {
namespace sequence_manager {
......
......@@ -9,7 +9,7 @@
#include "base/trace_event/trace_event_argument.h"
#include "third_party/blink/renderer/platform/scheduler/base/sequence_manager_forward.h"
#include "third_party/blink/renderer/platform/scheduler/base/task_queue_forward.h"
#include "third_party/blink/renderer/platform/scheduler/base/time_domain.h"
#include "third_party/blink/renderer/platform/scheduler/base/time_domain_forward.h"
#include "third_party/blink/renderer/platform/scheduler/child/task_queue_with_task_type.h"
#include "third_party/blink/renderer/platform/scheduler/common/scheduler_helper.h"
......
......@@ -18,7 +18,7 @@
#include "third_party/blink/renderer/platform/scheduler/base/sequence_manager_forward.h"
#include "third_party/blink/renderer/platform/scheduler/base/task_queue_forward.h"
#include "third_party/blink/renderer/platform/scheduler/base/test/task_queue_manager_for_test.h"
#include "third_party/blink/renderer/platform/scheduler/base/time_domain.h"
#include "third_party/blink/renderer/platform/scheduler/base/time_domain_forward.h"
#include "third_party/blink/renderer/platform/scheduler/common/scheduler_helper.h"
#include "third_party/blink/renderer/platform/scheduler/worker/non_main_thread_scheduler_helper.h"
......
......@@ -15,7 +15,7 @@
#include "base/threading/thread_checker.h"
#include "third_party/blink/renderer/platform/platform_export.h"
#include "third_party/blink/renderer/platform/scheduler/base/task_queue_forward.h"
#include "third_party/blink/renderer/platform/scheduler/base/time_domain.h"
#include "third_party/blink/renderer/platform/scheduler/base/time_domain_forward.h"
#include "third_party/blink/renderer/platform/scheduler/common/cancelable_closure_holder.h"
#include "third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool.h"
#include "third_party/blink/renderer/platform/scheduler/common/throttling/cpu_time_budget_pool.h"
......
......@@ -6,7 +6,7 @@
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_COMMON_THROTTLING_THROTTLED_TIME_DOMAIN_H_
#include "base/macros.h"
#include "third_party/blink/renderer/platform/scheduler/base/time_domain.h"
#include "third_party/blink/renderer/platform/scheduler/base/time_domain_forward.h"
namespace blink {
namespace scheduler {
......
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