Index: blimp/engine/renderer/blob_channel_sender_proxy.cc |
diff --git a/blimp/engine/renderer/blob_channel_sender_proxy.cc b/blimp/engine/renderer/blob_channel_sender_proxy.cc |
index efdfeae668bcd02cc3e329944e7a495559337843..2a5dfd73bdf4190e79d71beabcfdff5d01219785 100644 |
--- a/blimp/engine/renderer/blob_channel_sender_proxy.cc |
+++ b/blimp/engine/renderer/blob_channel_sender_proxy.cc |
@@ -22,7 +22,13 @@ mojom::BlobChannelPtr GetConnectedBlobChannel() { |
} // namespace |
BlobChannelSenderProxy::BlobChannelSenderProxy() |
- : blob_channel_(GetConnectedBlobChannel()) {} |
+ : blob_channel_(GetConnectedBlobChannel()), weak_factory_(this) { |
+ // TODO(kmarshall): Switch to observer push model (vs. the current pull model) |
+ // once cache invalidations are introduced. |
+ blob_channel_->GetCachedBlobIds( |
+ base::Bind(&BlobChannelSenderProxy::OnGetCacheStateComplete, |
+ weak_factory_.GetWeakPtr())); |
+} |
BlobChannelSenderProxy::~BlobChannelSenderProxy() {} |
@@ -52,5 +58,21 @@ void BlobChannelSenderProxy::DeliverBlob(const std::string& id) { |
blob_channel_->DeliverBlob(id); |
} |
+std::vector<BlobChannelSender::CacheStateEntry> |
+BlobChannelSenderProxy::GetCachedBlobIds() const { |
+ NOTREACHED(); |
+ return std::vector<BlobChannelSender::CacheStateEntry>(); |
+} |
+ |
+void BlobChannelSenderProxy::OnGetCacheStateComplete( |
+ mojo::Array<mojom::CacheStateEntryPtr> cache_state) { |
+ VLOG(1) << "Received cache state from browser (" << cache_state.size() |
+ << " items)"; |
+ replication_state_.clear(); |
dcheng
2016/06/28 21:34:52
Are there callbacks to update this state later? I'
Kevin M
2016/06/29 21:01:22
For now, this is called only once at the beginning
|
+ for (const auto& next_item : cache_state) { |
+ replication_state_[next_item->id] = next_item->was_delivered; |
+ } |
+} |
+ |
} // namespace engine |
} // namespace blimp |