| 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();
|
| + for (const auto& next_item : cache_state) {
|
| + replication_state_[next_item->id] = next_item->was_delivered;
|
| + }
|
| +}
|
| +
|
| } // namespace engine
|
| } // namespace blimp
|
|
|