Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2153)

Unified Diff: content/renderer/gpu/frame_update_message_queue.h

Issue 1126963006: Move VISUAL_STATE promise to activation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Current state (presubmit warnings, cc_unittests tests failing) Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/gpu/frame_update_message_queue.h
diff --git a/content/renderer/gpu/frame_swap_message_queue.h b/content/renderer/gpu/frame_update_message_queue.h
similarity index 70%
rename from content/renderer/gpu/frame_swap_message_queue.h
rename to content/renderer/gpu/frame_update_message_queue.h
index 51eb229ed7871ed8367a2b39c19c741d868ee28b..d043d1ca7333d85fd144cf3af4de5d51ed36f705 100644
--- a/content/renderer/gpu/frame_swap_message_queue.h
+++ b/content/renderer/gpu/frame_update_message_queue.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CONTENT_RENDERER_GPU_FRAME_SWAP_MESSAGE_QUEUE_H_
-#define CONTENT_RENDERER_GPU_FRAME_SWAP_MESSAGE_QUEUE_H_
+#ifndef CONTENT_RENDERER_GPU_FRAME_UPDATE_MESSAGE_QUEUE_H_
+#define CONTENT_RENDERER_GPU_FRAME_UPDATE_MESSAGE_QUEUE_H_
#include <map>
#include <vector>
@@ -13,6 +13,7 @@
#include "base/memory/scoped_ptr.h"
#include "base/memory/scoped_vector.h"
#include "base/synchronization/lock.h"
+#include "cc/output/activation_promise.h"
#include "cc/output/swap_promise.h"
#include "content/common/content_export.h"
#include "content/renderer/message_delivery_policy.h"
@@ -23,19 +24,19 @@ class Message;
namespace content {
-class FrameSwapMessageSubQueue;
+class FrameUpdateMessageSubQueue;
// Queue used to keep track of which IPC::Messages should be sent along with a
// particular compositor frame swap.
-class CONTENT_EXPORT FrameSwapMessageQueue
- : public base::RefCountedThreadSafe<FrameSwapMessageQueue> {
+class CONTENT_EXPORT FrameUpdateMessageQueue
+ : public base::RefCountedThreadSafe<FrameUpdateMessageQueue> {
public:
class CONTENT_EXPORT SendMessageScope {
public:
virtual ~SendMessageScope() {}
};
- FrameSwapMessageQueue();
+ FrameUpdateMessageQueue();
// Queues message to be returned on a matching DrainMessages call.
//
@@ -52,6 +53,16 @@ class CONTENT_EXPORT FrameSwapMessageQueue
// Returns true if there are no messages in the queue.
bool Empty() const;
+ // Should be called when a successful activate occurs.
+ //
+ // |source_frame_number| frame number for which the activate occurred.
+ void DidActivate(int source_frame_number,
+ ScopedVector<IPC::Message>* messages);
+
+ void DidNotActivate(int source_frame_number,
+ cc::Promise::DidNotActivate::Reason reason,
+ ScopedVector<IPC::Message>* messages);
+
// Should be called when a successful swap occurs. The messages for that swap
// can be obtained by calling DrainMessages.
//
@@ -67,7 +78,7 @@ class CONTENT_EXPORT FrameSwapMessageQueue
// messages asynchronously. This vector will contain those
// messages.
void DidNotSwap(int source_frame_number,
- cc::SwapPromise::DidNotSwapReason reason,
+ cc::Promise::DidNotSwap::Reason reason,
ScopedVector<IPC::Message>* messages);
// A SendMessageScope object must be held by the caller when this method is
@@ -76,7 +87,7 @@ class CONTENT_EXPORT FrameSwapMessageQueue
// |messages| vector to store messages, it's not cleared, only appended to.
// The method will append messages queued for frame numbers lower
// or equal to |source_frame_number|
- void DrainMessages(ScopedVector<IPC::Message>* messages);
+ void DrainMessagesForSwap(ScopedVector<IPC::Message>* messages);
// SendMessageScope is used to make sure that messages sent from different
// threads (impl/main) are scheduled in the right order on the IO threads.
@@ -89,20 +100,20 @@ class CONTENT_EXPORT FrameSwapMessageQueue
std::vector<IPC::Message>* dest);
private:
- friend class base::RefCountedThreadSafe<FrameSwapMessageQueue>;
+ friend class base::RefCountedThreadSafe<FrameUpdateMessageQueue>;
- FrameSwapMessageSubQueue* GetSubQueue(MessageDeliveryPolicy policy);
+ FrameUpdateMessageSubQueue* GetSubQueue(MessageDeliveryPolicy policy);
- ~FrameSwapMessageQueue();
+ ~FrameUpdateMessageQueue();
mutable base::Lock lock_;
- scoped_ptr<FrameSwapMessageSubQueue> visual_state_queue_;
- scoped_ptr<FrameSwapMessageSubQueue> swap_queue_;
- ScopedVector<IPC::Message> next_drain_messages_;
+ scoped_ptr<FrameUpdateMessageSubQueue> visual_state_queue_;
+ scoped_ptr<FrameUpdateMessageSubQueue> swap_queue_;
+ scoped_ptr<FrameUpdateMessageSubQueue> activation_queue_;
- DISALLOW_COPY_AND_ASSIGN(FrameSwapMessageQueue);
+ DISALLOW_COPY_AND_ASSIGN(FrameUpdateMessageQueue);
};
} // namespace content
-#endif // CONTENT_RENDERER_GPU_FRAME_SWAP_MESSAGE_QUEUE_H_
+#endif // CONTENT_RENDERER_GPU_FRAME_UPDATE_MESSAGE_QUEUE_H_

Powered by Google App Engine
This is Rietveld 408576698