Index: content/public/browser/navigator_connect_context.h |
diff --git a/content/renderer/gpu/queue_message_swap_promise.h b/content/public/browser/navigator_connect_context.h |
similarity index 22% |
copy from content/renderer/gpu/queue_message_swap_promise.h |
copy to content/public/browser/navigator_connect_context.h |
index 245323e320f4b478ad1bf084cbc90d1acc0e06e5..083892b0303eb6292f3532aa7584c2fb8d2d337b 100644 |
--- a/content/renderer/gpu/queue_message_swap_promise.h |
+++ b/content/public/browser/navigator_connect_context.h |
@@ -2,46 +2,35 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef CONTENT_RENDERER_QUEUE_MESSAGE_SWAP_PROMISE_H_ |
-#define CONTENT_RENDERER_QUEUE_MESSAGE_SWAP_PROMISE_H_ |
+#ifndef CONTENT_PUBLIC_BROWSER_NAVIGATOR_CONNECT_CONTEXT_H_ |
+#define CONTENT_PUBLIC_BROWSER_NAVIGATOR_CONNECT_CONTEXT_H_ |
#include "base/memory/ref_counted.h" |
#include "base/memory/scoped_ptr.h" |
-#include "cc/base/swap_promise.h" |
- |
-namespace IPC { |
-class SyncMessageFilter; |
-} |
namespace content { |
-class FrameSwapMessageQueue; |
+class NavigatorConnectServiceFactory; |
-class QueueMessageSwapPromise : public cc::SwapPromise { |
+// Use this class to register additional navigator.connect service factories. |
+// One instance of this class exists per StoragePartition. |
+// TODO(mek): Add API to this class so NavigatorConnectService implementations |
+// can send messages back to the client. |
+// TODO(mek): Add API so services can close a connection. |
+class NavigatorConnectContext |
+ : public base::RefCountedThreadSafe<NavigatorConnectContext> { |
public: |
- QueueMessageSwapPromise(scoped_refptr<IPC::SyncMessageFilter> message_sender, |
- scoped_refptr<FrameSwapMessageQueue> message_queue, |
- int source_frame_number); |
- |
- ~QueueMessageSwapPromise() override; |
- |
- void DidSwap(cc::CompositorFrameMetadata* metadata) override; |
- |
- void DidNotSwap(DidNotSwapReason reason) override; |
- |
- int64 TraceId() const override; |
- |
- private: |
- void PromiseCompleted(); |
- |
- scoped_refptr<IPC::SyncMessageFilter> message_sender_; |
- scoped_refptr<content::FrameSwapMessageQueue> message_queue_; |
- int source_frame_number_; |
-#if DCHECK_IS_ON() |
- bool completed_; |
-#endif |
+ // Register a service factory. The most recently added factory that claims to |
+ // handle a URL will be used to handle a connection request for that URL. |
+ virtual void AddFactory( |
+ scoped_ptr<NavigatorConnectServiceFactory> factory) = 0; |
+ |
+ protected: |
+ friend class base::RefCountedThreadSafe<NavigatorConnectContext>; |
+ NavigatorConnectContext() {} |
+ virtual ~NavigatorConnectContext() {} |
}; |
} // namespace content |
-#endif // CONTENT_RENDERER_QUEUE_MESSAGE_SWAP_PROMISE_H_ |
+#endif // CONTENT_PUBLIC_BROWSER_NAVIGATOR_CONNECT_CONTEXT_H_ |