| // Copyright 2019 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 "chromecast/browser/queryable_data_host_cast.h" |
| |
| #include "chromecast/common/mojom/queryable_data_store.mojom.h" |
| #include "content/public/browser/render_frame_host.h" |
| #include "content/public/browser/web_contents.h" |
| #include "services/service_manager/public/cpp/interface_provider.h" |
| |
| namespace chromecast { |
| |
| QueryableDataHostCast::QueryableDataHostCast(content::WebContents* web_contents) |
| : web_contents_(web_contents) { |
| DCHECK(web_contents_); |
| } |
| |
| QueryableDataHostCast::~QueryableDataHostCast() {} |
| |
| void QueryableDataHostCast::SendQueryableValue(const std::string& key, |
| const base::Value& value) { |
| for (content::RenderFrameHost* render_frame_host : |
| web_contents_->GetAllFrames()) { |
| shell::mojom::QueryableDataStorePtr queryable_data_store_ptr; |
| render_frame_host->GetRemoteInterfaces()->GetInterface( |
| &queryable_data_store_ptr); |
| queryable_data_store_ptr->Set(key, value.Clone()); |
| } |
| } |
| |
| } // namespace chromecast |