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

Unified Diff: chrome/utility/media_router/dial_device_description_parser_impl.h

Issue 2745653008: [Media Router] Parse device description xml in utility process (Closed)
Patch Set: resolve code review comments from Derek 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/media_router/dial_device_description_parser_impl.h
diff --git a/chrome/utility/media_router/dial_device_description_parser_impl.h b/chrome/utility/media_router/dial_device_description_parser_impl.h
new file mode 100644
index 0000000000000000000000000000000000000000..7743ec5a4d1d78fd3f806752ceb12ce6f8a6eada
--- /dev/null
+++ b/chrome/utility/media_router/dial_device_description_parser_impl.h
@@ -0,0 +1,55 @@
+// Copyright 2017 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.
+
+#ifndef CHROME_UTILITY_MEDIA_ROUTER_DIAL_DEVICE_DESCRIPTION_PARSER_IMPL_H_
+#define CHROME_UTILITY_MEDIA_ROUTER_DIAL_DEVICE_DESCRIPTION_PARSER_IMPL_H_
+
+#include "base/macros.h"
+#include "chrome/common/media_router/dial_device_description_parser.mojom.h"
+
+namespace media_router {
+
+// Implementation of Mojo DialDeviceDescriptionParser. It accepts device
+// description parsing request from browser process, and handles it in utility
+// process. Class must be created and destroyed on utility thread.
+class DialDeviceDescriptionParserImpl
+ : public chrome::mojom::DialDeviceDescriptionParser {
+ public:
+ DialDeviceDescriptionParserImpl();
+ ~DialDeviceDescriptionParserImpl() override;
+
+ static void Create(chrome::mojom::DialDeviceDescriptionParserRequest request);
+
+ private:
+ FRIEND_TEST_ALL_PREFIXES(DialDeviceDescriptionParserImplTest, TestInvalidXml);
+ FRIEND_TEST_ALL_PREFIXES(DialDeviceDescriptionParserImplTest,
+ TestScrubXmlForLogging);
+ FRIEND_TEST_ALL_PREFIXES(DialDeviceDescriptionParserImplTest, TestParse);
+ FRIEND_TEST_ALL_PREFIXES(DialDeviceDescriptionParserImplTest,
+ TestParseWithSpecialCharacter);
+ FRIEND_TEST_ALL_PREFIXES(DialDeviceDescriptionParserImplTest,
+ TestParseWithoutFriendlyNameModelName);
+ FRIEND_TEST_ALL_PREFIXES(DialDeviceDescriptionParserImplTest,
+ TestParseWithoutFriendlyName);
dcheng 2017/03/22 09:53:02 FWIW, it might be easier to just add a test fixtur
zhaobin 2017/03/22 19:18:52 Done.
+
+ // extensions::mojom::DialDeviceDescriptionParser:
+ void ParseDialDeviceDescription(
+ const std::string& device_description_xml_data,
+ const ParseDialDeviceDescriptionCallback& callback) override;
+
+ // Processes the result of getting device description. Returns true and
+ // populates corresponding fields in |dial_device_description_| if processing
+ // succeeds; otherwise returns false.
+ // |xml|: The device description xml text.
+ // |out|: Parsed device description object.
+ bool Parse(const std::string& xml, media_router::DialDeviceDescription* out);
+
+ base::ThreadChecker thread_checker_;
+
+ DISALLOW_COPY_AND_ASSIGN(DialDeviceDescriptionParserImpl);
+};
+
+} // namespace media_router
+
+#endif // CHROME_UTILITY_MEDIA_ROUTER_DIAL_DEVICE_DESCRIPTION_PARSER_IMPL_H_

Powered by Google App Engine
This is Rietveld 408576698