Commit 548902a5 authored by Yuta Kitamura's avatar Yuta Kitamura Committed by Commit Bot

Spin off TaskObserver into a dedicated header.

This CL moves the definition of MessageLoopCurrent::TaskObserver to
an individual header task/task_observer.h.

The motivation of this change comes from crrev.com/c/1295617.
MessageLoop is going away soon(-ish?), and Blink doesn't want to depend
on base::MessageLoop. It makes more sense to have TaskObserver in a
stand-alone header, given this current situation.

This CL does not touch any use sites of TaskObserver. The alias
MessageLoop::TaskObserver is still available, pending future mass
replacements.

Bug: 826203
Change-Id: I9e17bae3586e29cb76b23f5e247307760dac9a1f
Reviewed-on: https://chromium-review.googlesource.com/c/1298944
Commit-Queue: Yuta Kitamura <yutak@chromium.org>
Reviewed-by: default avatarAlexander Timin <altimin@chromium.org>
Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Reviewed-by: default avatarGabriel Charette <gab@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603015}
parent cc60c182
...@@ -779,6 +779,7 @@ jumbo_component("base") { ...@@ -779,6 +779,7 @@ jumbo_component("base") {
"task/single_thread_task_runner_thread_mode.h", "task/single_thread_task_runner_thread_mode.h",
"task/task_executor.cc", "task/task_executor.cc",
"task/task_executor.h", "task/task_executor.h",
"task/task_observer.h",
"task/task_scheduler/can_schedule_sequence_observer.h", "task/task_scheduler/can_schedule_sequence_observer.h",
"task/task_scheduler/delayed_task_manager.cc", "task/task_scheduler/delayed_task_manager.cc",
"task/task_scheduler/delayed_task_manager.h", "task/task_scheduler/delayed_task_manager.h",
......
...@@ -175,6 +175,9 @@ class BASE_EXPORT MessageLoop : public MessagePump::Delegate, ...@@ -175,6 +175,9 @@ class BASE_EXPORT MessageLoop : public MessagePump::Delegate,
// TODO(https://crbug.com/825327): Remove users of TaskObservers through // TODO(https://crbug.com/825327): Remove users of TaskObservers through
// MessageLoop::current() and migrate the type back here. // MessageLoop::current() and migrate the type back here.
//
// This alias is deprecated. Use base::TaskObserver instead.
// TODO(yutak): Replace all the use sites with base::TaskObserver.
using TaskObserver = MessageLoopCurrent::TaskObserver; using TaskObserver = MessageLoopCurrent::TaskObserver;
// These functions can only be called on the same thread that |this| is // These functions can only be called on the same thread that |this| is
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "base/message_loop/message_pump_for_ui.h" #include "base/message_loop/message_pump_for_ui.h"
#include "base/pending_task.h" #include "base/pending_task.h"
#include "base/single_thread_task_runner.h" #include "base/single_thread_task_runner.h"
#include "base/task/task_observer.h"
#include "build/build_config.h" #include "build/build_config.h"
namespace base { namespace base {
...@@ -98,21 +99,9 @@ class BASE_EXPORT MessageLoopCurrent { ...@@ -98,21 +99,9 @@ class BASE_EXPORT MessageLoopCurrent {
// instance should replace its TaskRunner. // instance should replace its TaskRunner.
void SetTaskRunner(scoped_refptr<SingleThreadTaskRunner> task_runner); void SetTaskRunner(scoped_refptr<SingleThreadTaskRunner> task_runner);
// A TaskObserver is an object that receives task notifications from the // This alias is deprecated. Use base::TaskObserver instead.
// MessageLoop. // TODO(yutak): Replace all the use sites with base::TaskObserver.
// using TaskObserver = base::TaskObserver;
// NOTE: A TaskObserver implementation should be extremely fast!
class BASE_EXPORT TaskObserver {
public:
// This method is called before processing a task.
virtual void WillProcessTask(const PendingTask& pending_task) = 0;
// This method is called after processing a task.
virtual void DidProcessTask(const PendingTask& pending_task) = 0;
protected:
virtual ~TaskObserver() = default;
};
// Forwards to MessageLoop::(Add|Remove)TaskObserver. // Forwards to MessageLoop::(Add|Remove)TaskObserver.
// DEPRECATED(https://crbug.com/825327): only owners of the MessageLoop // DEPRECATED(https://crbug.com/825327): only owners of the MessageLoop
......
// 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 BASE_TASK_TASK_OBSERVER_H_
#define BASE_TASK_TASK_OBSERVER_H_
#include "base/base_export.h"
#include "base/pending_task.h"
namespace base {
// A TaskObserver is an object that receives notifications about tasks being
// processed on the thread it's associated with.
//
// NOTE: A TaskObserver implementation should be extremely fast!
class BASE_EXPORT TaskObserver {
public:
// This method is called before processing a task.
virtual void WillProcessTask(const PendingTask& pending_task) = 0;
// This method is called after processing a task.
virtual void DidProcessTask(const PendingTask& pending_task) = 0;
protected:
virtual ~TaskObserver() = default;
};
} // namespace base
#endif // BASE_TASK_TASK_OBSERVER_H_
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