blob: 9eec24e0c52214c1795ea80137de688c015e1e97 [file] [log] [blame]
// Copyright 2016 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.
#include "ui/events/blink/compositor_thread_event_queue.h"
namespace ui {
CompositorThreadEventQueue::CompositorThreadEventQueue() {}
CompositorThreadEventQueue::~CompositorThreadEventQueue() {}
// TODO(chongz): Support coalescing events across interleaved boundaries.
// https://crbug.com/661601
void CompositorThreadEventQueue::Queue(std::unique_ptr<EventWithCallback> event,
base::TimeTicks timestamp_now) {
if (!queue_.empty() && queue_.back()->CanCoalesceWith(*event)) {
queue_.back()->CoalesceWith(event.get(), timestamp_now);
return;
}
queue_.emplace_back(std::move(event));
}
std::unique_ptr<EventWithCallback> CompositorThreadEventQueue::Pop() {
std::unique_ptr<EventWithCallback> result;
if (!queue_.empty()) {
result = std::move(queue_.front());
queue_.pop_front();
}
return result;
}
} // namespace ui