Index: content/renderer/gpu/queue_message_activation_promise.cc |
diff --git a/content/renderer/gpu/queue_message_activation_promise.cc b/content/renderer/gpu/queue_message_activation_promise.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4ea939935e00552b29427bc898311f8092be4ffd |
--- /dev/null |
+++ b/content/renderer/gpu/queue_message_activation_promise.cc |
@@ -0,0 +1,53 @@ |
+// 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. |
+ |
+#include "content/renderer/gpu/queue_message_activation_promise.h" |
+ |
+#include "content/renderer/gpu/frame_update_message_queue.h" |
+#include "ipc/ipc_message.h" |
+#include "ipc/ipc_sync_message_filter.h" |
+ |
+namespace content { |
+ |
+QueueMessageActivationPromise::QueueMessageActivationPromise( |
+ scoped_refptr<IPC::SyncMessageFilter> message_sender, |
+ scoped_refptr<content::FrameUpdateMessageQueue> message_queue, |
+ int source_frame_number) |
+ : QueueMessagePromise(message_sender, message_queue, source_frame_number) { |
+} |
+ |
+QueueMessageActivationPromise::~QueueMessageActivationPromise() { |
+} |
+ |
+void QueueMessageActivationPromise::DidActivate(cc::CompositorFrameMetadata* metadata) { |
+#if DCHECK_IS_ON() |
+ DCHECK(!completed_); |
+#endif |
+ ScopedVector<IPC::Message> messages; |
+ message_queue_->DidActivate(source_frame_number_, &messages); |
+ for (ScopedVector<IPC::Message>::iterator i = messages.begin(); |
+ i != messages.end(); |
+ ++i) { |
+ message_sender_->Send(*i); |
+ } |
+ messages.weak_clear(); |
+ PromiseCompleted(); |
+} |
+ |
+void QueueMessageActivationPromise::DidNotActivate( |
+ DidNotActivate::Reason reason) { |
+#if DCHECK_IS_ON() |
+ DCHECK(!completed_); |
+#endif |
+ ScopedVector<IPC::Message> messages; |
+ message_queue_->DidNotActivate(source_frame_number_, reason, &messages); |
+ DeliverMessages(&messages); |
+ PromiseCompleted(); |
+} |
+ |
+int64 QueueMessageActivationPromise::TraceId() const { |
+ return 0; |
+} |
+ |
+} // namespace content |