Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1469)

Unified Diff: chrome/utility/extensions/extensions_handler.cc

Issue 2745653008: [Media Router] Parse device description xml in utility process (Closed)
Patch Set: use mojo instead of IPC Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) {

Powered by Google App Engine
This is Rietveld 408576698