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

Unified Diff: chrome/browser/media/router/mojo/media_router_struct_traits.h

Issue 2176613003: [Media Router] Clean up issues related code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix tests Created 4 years 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/browser/media/router/mojo/media_router_struct_traits.h
diff --git a/chrome/browser/media/router/mojo/media_router_struct_traits.h b/chrome/browser/media/router/mojo/media_router_struct_traits.h
index 4fe10239cad005abec59e312780d0f09f10ba55d..67edb860e620cf623e24bf77e86b515d18b30119 100644
--- a/chrome/browser/media/router/mojo/media_router_struct_traits.h
+++ b/chrome/browser/media/router/mojo/media_router_struct_traits.h
@@ -7,12 +7,76 @@
#include <string>
+#include "chrome/browser/media/router/issue.h"
#include "chrome/browser/media/router/mojo/media_router.mojom.h"
#include "mojo/common/common_custom_types_struct_traits.h"
namespace mojo {
template <>
+struct EnumTraits<media_router::mojom::Issue::ActionType,
+ media_router::IssueInfo::Action> {
+ static media_router::mojom::Issue::ActionType ToMojom(
+ media_router::IssueInfo::Action action) {
+ switch (action) {
+ case media_router::IssueInfo::Action::DISMISS:
+ return media_router::mojom::Issue::ActionType::DISMISS;
+ case media_router::IssueInfo::Action::LEARN_MORE:
+ return media_router::mojom::Issue::ActionType::LEARN_MORE;
+ }
+ NOTREACHED() << "Unknown issue action type " << static_cast<int>(action);
+ return media_router::mojom::Issue::ActionType::DISMISS;
+ }
+
+ static bool FromMojom(media_router::mojom::Issue::ActionType input,
+ media_router::IssueInfo::Action* output) {
+ switch (input) {
+ case media_router::mojom::Issue::ActionType::DISMISS:
+ *output = media_router::IssueInfo::Action::DISMISS;
+ return true;
+ case media_router::mojom::Issue::ActionType::LEARN_MORE:
+ *output = media_router::IssueInfo::Action::LEARN_MORE;
+ return true;
+ }
+ return false;
+ }
+};
+
+template <>
+struct EnumTraits<media_router::mojom::Issue::Severity,
+ media_router::IssueInfo::Severity> {
+ static media_router::mojom::Issue::Severity ToMojom(
+ media_router::IssueInfo::Severity severity) {
+ switch (severity) {
+ case media_router::IssueInfo::Severity::FATAL:
+ return media_router::mojom::Issue::Severity::FATAL;
+ case media_router::IssueInfo::Severity::WARNING:
+ return media_router::mojom::Issue::Severity::WARNING;
+ case media_router::IssueInfo::Severity::NOTIFICATION:
+ return media_router::mojom::Issue::Severity::NOTIFICATION;
+ }
+ NOTREACHED() << "Unknown issue severity " << static_cast<int>(severity);
+ return media_router::mojom::Issue::Severity::WARNING;
+ }
+
+ static bool FromMojom(media_router::mojom::Issue::Severity input,
+ media_router::IssueInfo::Severity* output) {
+ switch (input) {
+ case media_router::mojom::Issue::Severity::FATAL:
+ *output = media_router::IssueInfo::Severity::FATAL;
+ return true;
+ case media_router::mojom::Issue::Severity::WARNING:
+ *output = media_router::IssueInfo::Severity::WARNING;
+ return true;
+ case media_router::mojom::Issue::Severity::NOTIFICATION:
+ *output = media_router::IssueInfo::Severity::NOTIFICATION;
+ return true;
+ }
+ return false;
+ }
+};
+
+template <>
struct StructTraits<media_router::mojom::RouteMessageDataView,
media_router::RouteMessage> {
static media_router::mojom::RouteMessage::Type type(
@@ -66,6 +130,52 @@ struct StructTraits<media_router::mojom::RouteMessageDataView,
}
};
+template <>
+struct StructTraits<media_router::mojom::IssueDataView,
+ media_router::IssueInfo> {
+ static bool Read(media_router::mojom::IssueDataView data,
+ media_router::IssueInfo* out);
+
+ static base::Optional<std::string> route_id(
+ const media_router::IssueInfo& issue) {
+ return issue.route_id.empty() ? base::Optional<std::string>()
+ : base::make_optional(issue.route_id);
+ }
+
+ static media_router::IssueInfo::Severity severity(
+ const media_router::IssueInfo& issue) {
+ return issue.severity;
+ }
+
+ static bool is_blocking(const media_router::IssueInfo& issue) {
+ return issue.is_blocking;
+ }
+
+ static std::string title(const media_router::IssueInfo& issue) {
+ return issue.title;
+ }
+
+ static base::Optional<std::string> message(
+ const media_router::IssueInfo& issue) {
+ return issue.message.empty() ? base::Optional<std::string>()
+ : base::make_optional(issue.message);
+ }
+
+ static media_router::IssueInfo::Action default_action(
+ const media_router::IssueInfo& issue) {
+ return issue.default_action;
+ }
+
+ static base::Optional<std::vector<media_router::IssueInfo::Action>>
+ secondary_actions(const media_router::IssueInfo& issue) {
+ return issue.secondary_actions;
+ }
+
+ static int32_t help_page_id(const media_router::IssueInfo& issue) {
+ return issue.help_page_id;
+ }
+};
+
} // namespace mojo
#endif // CHROME_BROWSER_MEDIA_ROUTER_MOJO_MEDIA_ROUTER_STRUCT_TRAITS_H_

Powered by Google App Engine
This is Rietveld 408576698