Chromium Code Reviews| Index: chrome/utility/extensions/extensions_handler.cc |
| diff --git a/chrome/utility/extensions/extensions_handler.cc b/chrome/utility/extensions/extensions_handler.cc |
| index 4cb3fa887f6fb7d0f8fe385a489573f8e18e2c53..dbcffaeaf2a2e053d3920598abc5c36cdd046e13 100644 |
| --- a/chrome/utility/extensions/extensions_handler.cc |
| +++ b/chrome/utility/extensions/extensions_handler.cc |
| @@ -13,6 +13,7 @@ |
| #include "chrome/common/chrome_utility_messages.h" |
| #include "chrome/common/extensions/chrome_extensions_client.h" |
| #include "chrome/common/extensions/chrome_utility_extensions_messages.h" |
| +#include "chrome/common/extensions/dial_device_description_parser.mojom.h" |
| #include "chrome/common/extensions/media_parser.mojom.h" |
| #include "chrome/common/extensions/removable_storage_writer.mojom.h" |
| #include "chrome/common/media_galleries/metadata_types.h" |
| @@ -20,6 +21,7 @@ |
| #include "chrome/utility/image_writer/image_writer_handler.h" |
| #include "chrome/utility/media_galleries/ipc_data_source.h" |
| #include "chrome/utility/media_galleries/media_metadata_parser.h" |
| +#include "chrome/utility/media_router/dial_device_description_parser.h" |
| #include "content/public/common/content_paths.h" |
| #include "content/public/utility/utility_thread.h" |
| #include "extensions/common/extension.h" |
| @@ -168,6 +170,37 @@ class WiFiCredentialsGetterImpl |
| }; |
| #endif // defined(OS_WIN) |
| +#if defined(ENABLE_MEDIA_ROUTER) |
| +class DialDeviceDescriptionParserImpl |
| + : public extensions::mojom::DialDeviceDescriptionParser { |
| + public: |
| + DialDeviceDescriptionParserImpl() = default; |
| + ~DialDeviceDescriptionParserImpl() override = default; |
| + |
| + static void Create( |
| + extensions::mojom::DialDeviceDescriptionParserRequest request) { |
| + mojo::MakeStrongBinding(base::MakeUnique<DialDeviceDescriptionParserImpl>(), |
| + std::move(request)); |
| + } |
| + |
| + private: |
| + // extensions::mojom::DialDeviceDescriptionParser: |
| + void ParseDialDeviceDescription( |
| + const std::string& device_description_xml_data, |
| + const ParseDialDeviceDescriptionCallback& callback) override { |
| + DCHECK(!callback.is_null()); |
| + |
| + media_router::DialDeviceDescriptionParser parser; |
| + bool result = parser.Parse(device_description_xml_data); |
| + std::string logging_xml = |
| + parser.ScrubXmlForLogging(device_description_xml_data); |
| + |
| + callback.Run(result, parser.device_description(), logging_xml); |
| + } |
| + |
| + DISALLOW_COPY_AND_ASSIGN(DialDeviceDescriptionParserImpl); |
| +}; |
| +#endif // defined(ENABLE_MEDIA_ROUTER) |
| } // namespace |
| namespace extensions { |
| @@ -203,6 +236,9 @@ void ExtensionsHandler::ExposeInterfacesToBrowser( |
| #if !defined(OS_WIN) |
| registry->AddInterface(base::Bind(&RemovableStorageWriterImpl::Create)); |
| #endif |
| +#if defined(ENABLE_MEDIA_ROUTER) |
| + registry->AddInterface(base::Bind(&DialDeviceDescriptionParserImpl::Create)); |
|
mark a. foltz
2017/03/17 19:05:47
It isn't clear that this needs to be created from
zhaobin
2017/03/18 00:17:39
Done.
|
| +#endif // defined(ENABLE_MEDIA_ROUTER) |
| } |
| bool ExtensionsHandler::OnMessageReceived(const IPC::Message& message) { |