Commit b4169231 authored by Minoru Chikamune's avatar Minoru Chikamune Committed by Commit Bot

[MBI] Move AgentGroupScheduler to third_party/blink/public

This CL moves AgentGroupScheduler to third_party/blink/public and renames it to WebAgentGroupScheduler so that it can be used from the content layer.

Bug: 1105403, 1113102
Change-Id: I1736c8e6951e0abb5b8f69a3409ddff338d6c336
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2444652Reviewed-by: default avatarDominic Farolino <dom@chromium.org>
Reviewed-by: default avatarKouhei Ueno <kouhei@chromium.org>
Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Reviewed-by: default avatarAlexander Timin <altimin@chromium.org>
Reviewed-by: default avatarTal Pressman <talp@chromium.org>
Commit-Queue: Minoru Chikamune <chikamune@chromium.org>
Cr-Commit-Position: refs/heads/master@{#814033}
parent f972406b
......@@ -143,6 +143,7 @@ source_set("blink_headers") {
"platform/modules/video_capture/web_video_capture_impl_manager.h",
"platform/modules/webrtc/webrtc_logging.h",
"platform/platform.h",
"platform/scheduler/web_agent_group_scheduler.h",
"platform/scheduler/web_rail_mode_observer.h",
"platform/scheduler/web_render_widget_scheduling_state.h",
"platform/scheduler/web_renderer_process_type.h",
......
// Copyright 2020 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_PUBLIC_PLATFORM_SCHEDULER_WEB_AGENT_GROUP_SCHEDULER_H_
#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_SCHEDULER_WEB_AGENT_GROUP_SCHEDULER_H_
#include "base/single_thread_task_runner.h"
#include "third_party/blink/public/platform/web_common.h"
namespace blink {
namespace scheduler {
// WebAgentGroupScheduler schedules per-AgentSchedulingGroup tasks.
// AgentSchedulingGroup is Blink's unit of scheduling and performance isolation.
// And WebAgentGroupScheduler is a dedicated scheduler for each
// AgentSchedulingGroup. Any task posted on WebAgentGroupScheduler shouldn’t be
// run on a different WebAgentGroupScheduler.
class BLINK_PLATFORM_EXPORT WebAgentGroupScheduler {
public:
virtual ~WebAgentGroupScheduler() = default;
// Default task runner for an AgentSchedulingGroup.
// Default task runners for different AgentSchedulingGroup would be
// independent and won't have any ordering guarantees between them.
virtual scoped_refptr<base::SingleThreadTaskRunner> DefaultTaskRunner() = 0;
};
} // namespace scheduler
} // namespace blink
#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_SCHEDULER_WEB_AGENT_GROUP_SCHEDULER_H_
......@@ -8,7 +8,7 @@
#include "base/test/test_mock_time_task_runner.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/renderer/platform/scheduler/public/agent_group_scheduler.h"
#include "third_party/blink/public/platform/scheduler/web_agent_group_scheduler.h"
#include "third_party/blink/renderer/platform/scheduler/public/thread_scheduler.h"
#include "third_party/blink/renderer/platform/testing/scoped_scheduler_overrider.h"
......@@ -40,7 +40,7 @@ class MockIdleDeadlineScheduler final : public ThreadScheduler {
PageScheduler::Delegate*) override {
return nullptr;
}
AgentGroupScheduler* GetCurrentAgentGroupScheduler() override {
scheduler::WebAgentGroupScheduler* GetCurrentAgentGroupScheduler() override {
return nullptr;
}
scoped_refptr<base::SingleThreadTaskRunner> CompositorTaskRunner() override {
......
......@@ -7,10 +7,10 @@
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/mojom/frame/lifecycle.mojom-blink.h"
#include "third_party/blink/public/platform/scheduler/web_agent_group_scheduler.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_idle_request_callback.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_idle_request_options.h"
#include "third_party/blink/renderer/core/testing/null_execution_context.h"
#include "third_party/blink/renderer/platform/scheduler/public/agent_group_scheduler.h"
#include "third_party/blink/renderer/platform/scheduler/public/thread_scheduler.h"
#include "third_party/blink/renderer/platform/scheduler/test/fake_task_runner.h"
#include "third_party/blink/renderer/platform/testing/scoped_scheduler_overrider.h"
......@@ -65,7 +65,8 @@ class MockScriptedIdleTaskControllerScheduler final : public ThreadScheduler {
std::unique_ptr<RendererPauseHandle> PauseScheduler() override {
return nullptr;
}
AgentGroupScheduler* GetCurrentAgentGroupScheduler() override {
scheduler::WebAgentGroupScheduler* GetCurrentAgentGroupScheduler() override {
NOTREACHED();
return nullptr;
}
base::TimeTicks MonotonicallyIncreasingVirtualTime() override {
......
......@@ -117,7 +117,6 @@ blink_platform_sources("scheduler") {
"main_thread/web_scoped_virtual_time_pauser.cc",
"main_thread/widget_scheduler.cc",
"main_thread/widget_scheduler.h",
"public/agent_group_scheduler.h",
"public/aggregated_metric_reporter.h",
"public/cooperative_scheduling_manager.h",
"public/dummy_schedulers.h",
......
......@@ -4,8 +4,8 @@
#include "third_party/blink/renderer/platform/scheduler/public/dummy_schedulers.h"
#include "third_party/blink/public/platform/scheduler/web_agent_group_scheduler.h"
#include "third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h"
#include "third_party/blink/renderer/platform/scheduler/public/agent_group_scheduler.h"
#include "third_party/blink/renderer/platform/scheduler/public/frame_scheduler.h"
#include "third_party/blink/renderer/platform/scheduler/public/page_scheduler.h"
#include "third_party/blink/renderer/platform/scheduler/public/thread.h"
......@@ -184,7 +184,7 @@ class DummyThreadScheduler : public ThreadScheduler {
PageScheduler::Delegate*) override {
return std::make_unique<DummyPageScheduler>();
}
AgentGroupScheduler* GetCurrentAgentGroupScheduler() override {
WebAgentGroupScheduler* GetCurrentAgentGroupScheduler() override {
return nullptr;
}
......
......@@ -6,7 +6,7 @@
#include "base/threading/thread_task_runner_handle.h"
#include "base/time/time.h"
#include "third_party/blink/renderer/platform/scheduler/public/agent_group_scheduler.h"
#include "third_party/blink/public/platform/scheduler/web_agent_group_scheduler.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
namespace blink {
......@@ -67,7 +67,7 @@ std::unique_ptr<PageScheduler> SimpleThreadScheduler::CreatePageScheduler(
return nullptr;
}
AgentGroupScheduler* SimpleThreadScheduler::GetCurrentAgentGroupScheduler() {
WebAgentGroupScheduler* SimpleThreadScheduler::GetCurrentAgentGroupScheduler() {
return nullptr;
}
......
......@@ -8,7 +8,7 @@
#include <memory>
#include "base/macros.h"
#include "third_party/blink/renderer/platform/scheduler/public/agent_group_scheduler.h"
#include "third_party/blink/public/platform/scheduler/web_agent_group_scheduler.h"
#include "third_party/blink/renderer/platform/scheduler/public/thread_scheduler.h"
namespace blink {
......@@ -64,7 +64,7 @@ class SimpleThreadScheduler : public ThreadScheduler {
PageScheduler::Delegate*) override;
// Return nullptr
AgentGroupScheduler* GetCurrentAgentGroupScheduler() override;
WebAgentGroupScheduler* GetCurrentAgentGroupScheduler() override;
// Unsupported. Return nullptr, and it may cause a crash.
std::unique_ptr<RendererPauseHandle> PauseScheduler() override;
......
......@@ -6,8 +6,8 @@
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_MAIN_THREAD_AGENT_GROUP_SCHEDULER_IMPL_H_
#include "base/memory/scoped_refptr.h"
#include "third_party/blink/public/platform/scheduler/web_agent_group_scheduler.h"
#include "third_party/blink/renderer/platform/platform_export.h"
#include "third_party/blink/renderer/platform/scheduler/public/agent_group_scheduler.h"
namespace base {
class SingleThreadTaskRunner;
......@@ -20,8 +20,7 @@ class MainThreadTaskQueue;
// AgentGroupScheduler implementation which schedules per-AgentSchedulingGroup
// tasks.
class PLATFORM_EXPORT AgentGroupSchedulerImpl
: public blink::AgentGroupScheduler {
class PLATFORM_EXPORT AgentGroupSchedulerImpl : public WebAgentGroupScheduler {
public:
explicit AgentGroupSchedulerImpl(
MainThreadSchedulerImpl& main_thread_scheduler);
......
......@@ -28,6 +28,7 @@
#include "third_party/blink/public/common/input/web_mouse_wheel_event.h"
#include "third_party/blink/public/common/input/web_touch_event.h"
#include "third_party/blink/public/common/page/launching_process_state.h"
#include "third_party/blink/public/platform/scheduler/web_agent_group_scheduler.h"
#include "third_party/blink/public/platform/scheduler/web_renderer_process_type.h"
#include "third_party/blink/renderer/platform/bindings/parkable_string_manager.h"
#include "third_party/blink/renderer/platform/instrumentation/resource_coordinator/renderer_resource_coordinator.h"
......@@ -43,7 +44,6 @@
#include "third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.h"
#include "third_party/blink/renderer/platform/scheduler/main_thread/task_type_names.h"
#include "third_party/blink/renderer/platform/scheduler/main_thread/widget_scheduler.h"
#include "third_party/blink/renderer/platform/scheduler/public/agent_group_scheduler.h"
#include "third_party/blink/renderer/platform/scheduler/public/event_loop.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
#include "v8/include/v8.h"
......@@ -2340,7 +2340,8 @@ std::unique_ptr<PageScheduler> MainThreadSchedulerImpl::CreatePageScheduler(
return page_scheduler;
}
AgentGroupScheduler* MainThreadSchedulerImpl::GetCurrentAgentGroupScheduler() {
WebAgentGroupScheduler*
MainThreadSchedulerImpl::GetCurrentAgentGroupScheduler() {
helper_.CheckOnValidThread();
return current_agent_group_scheduler_;
}
......
......@@ -224,7 +224,7 @@ class PLATFORM_EXPORT MainThreadSchedulerImpl
AgentGroupSchedulerImpl& EnsureAgentGroupScheduler();
std::unique_ptr<PageScheduler> CreatePageScheduler(
PageScheduler::Delegate*) override;
AgentGroupScheduler* GetCurrentAgentGroupScheduler() override;
WebAgentGroupScheduler* GetCurrentAgentGroupScheduler() override;
void SetCurrentAgentGroupScheduler(
AgentGroupSchedulerImpl* agent_group_scheduler_impl);
std::unique_ptr<ThreadScheduler::RendererPauseHandle> PauseScheduler()
......
// Copyright 2020 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_PUBLIC_AGENT_GROUP_SCHEDULER_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_PUBLIC_AGENT_GROUP_SCHEDULER_H_
#include "base/single_thread_task_runner.h"
#include "third_party/blink/renderer/platform/platform_export.h"
namespace blink {
// AgentGroupScheduler schedules per-AgentSchedulingGroup tasks.
class PLATFORM_EXPORT AgentGroupScheduler {
public:
virtual ~AgentGroupScheduler() = default;
virtual scoped_refptr<base::SingleThreadTaskRunner> DefaultTaskRunner() = 0;
};
} // namespace blink
#endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_PUBLIC_AGENT_GROUP_SCHEDULER_H_
......@@ -11,8 +11,8 @@
#include "base/time/time.h"
#include "third_party/blink/public/common/input/web_input_event.h"
#include "third_party/blink/public/common/input/web_input_event_attribution.h"
#include "third_party/blink/public/platform/scheduler/web_agent_group_scheduler.h"
#include "third_party/blink/public/platform/scheduler/web_thread_scheduler.h"
#include "third_party/blink/renderer/platform/scheduler/public/agent_group_scheduler.h"
#include "third_party/blink/renderer/platform/scheduler/public/page_scheduler.h"
#include "third_party/blink/renderer/platform/scheduler/public/thread.h"
#include "third_party/blink/renderer/platform/wtf/vector.h"
......@@ -118,7 +118,8 @@ class PLATFORM_EXPORT ThreadScheduler {
// Return the current active AgentGroupScheduler.
// If there is no active AgentGroupScheduler, it returns nullptr.
virtual AgentGroupScheduler* GetCurrentAgentGroupScheduler() = 0;
virtual scheduler::WebAgentGroupScheduler*
GetCurrentAgentGroupScheduler() = 0;
// Pauses the scheduler. See WebThreadScheduler::PauseRenderer for
// details. May only be called from the main thread.
......
......@@ -78,7 +78,7 @@ NonMainThreadSchedulerImpl::CreatePageScheduler(
return nullptr;
}
AgentGroupScheduler*
WebAgentGroupScheduler*
NonMainThreadSchedulerImpl::GetCurrentAgentGroupScheduler() {
NOTREACHED();
return nullptr;
......
......@@ -10,6 +10,7 @@
#include "base/macros.h"
#include "base/task/sequence_manager/sequence_manager.h"
#include "base/task/sequence_manager/task_queue.h"
#include "third_party/blink/public/platform/scheduler/web_agent_group_scheduler.h"
#include "third_party/blink/public/platform/scheduler/web_thread_scheduler.h"
#include "third_party/blink/renderer/platform/platform_export.h"
#include "third_party/blink/renderer/platform/scheduler/common/single_thread_idle_task_runner.h"
......@@ -21,7 +22,6 @@
#include "third_party/blink/renderer/platform/scheduler/worker/non_main_thread_task_queue.h"
namespace blink {
class AgentGroupScheduler;
namespace scheduler {
class WorkerSchedulerProxy;
......@@ -73,7 +73,7 @@ class PLATFORM_EXPORT NonMainThreadSchedulerImpl : public ThreadSchedulerImpl {
std::unique_ptr<PageScheduler> CreatePageScheduler(
PageScheduler::Delegate*) override;
AgentGroupScheduler* GetCurrentAgentGroupScheduler() override;
WebAgentGroupScheduler* GetCurrentAgentGroupScheduler() override;
std::unique_ptr<RendererPauseHandle> PauseScheduler() override
WARN_UNUSED_RESULT;
......
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