 Chromium Code Reviews
 Chromium Code Reviews Issue 2666873006:
  [Media Router] Convert to use typemaps for media_router.mojom.  (Closed)
    
  
    Issue 2666873006:
  [Media Router] Convert to use typemaps for media_router.mojom.  (Closed) 
  | Index: chrome/browser/media/router/mojo/media_router_struct_traits.cc | 
| diff --git a/chrome/browser/media/router/mojo/media_router_struct_traits.cc b/chrome/browser/media/router/mojo/media_router_struct_traits.cc | 
| index d96e3b6dcef05ee5c1b8f1892ce6d97c2e5fbae3..dc278742dcfa97f41ed652083f9b4c0350d826cf 100644 | 
| --- a/chrome/browser/media/router/mojo/media_router_struct_traits.cc | 
| +++ b/chrome/browser/media/router/mojo/media_router_struct_traits.cc | 
| @@ -4,6 +4,8 @@ | 
| #include "chrome/browser/media/router/mojo/media_router_struct_traits.h" | 
| +#include "chrome/browser/media/router/media_source.h" | 
| + | 
| namespace mojo { | 
| // static | 
| @@ -40,4 +42,88 @@ bool StructTraits<media_router::mojom::IssueDataView, media_router::IssueInfo>:: | 
| return true; | 
| } | 
| +// static | 
| +bool StructTraits< | 
| + media_router::mojom::MediaSinkDataView, | 
| + media_router::MediaSink>::Read(media_router::mojom::MediaSinkDataView data, | 
| + media_router::MediaSink* out) { | 
| + media_router::MediaSink::Id id; | 
| + if (!data.ReadSinkId(&id)) | 
| + return false; | 
| + | 
| + out->set_sink_id(id); | 
| + | 
| + std::string name; | 
| + if (!data.ReadName(&name)) | 
| + return false; | 
| + | 
| + out->set_name(name); | 
| + | 
| + base::Optional<std::string> description; | 
| + if (!data.ReadDescription(&description)) | 
| + return false; | 
| + | 
| + out->set_description(description.value_or(std::string())); | 
| + | 
| + base::Optional<std::string> domain; | 
| + if (!data.ReadDomain(&domain)) | 
| + return false; | 
| + | 
| + if (domain) | 
| 
dcheng
2017/02/01 22:51:08
Why do we null check here but not for |description
 
imcheng
2017/02/02 21:20:37
Done.
 | 
| + out->set_domain(*domain); | 
| + | 
| + media_router::MediaSink::IconType icon_type; | 
| + if (!data.ReadIconType(&icon_type)) | 
| + return false; | 
| + | 
| + out->set_icon_type(icon_type); | 
| + | 
| + return true; | 
| +} | 
| + | 
| +// static | 
| +bool StructTraits<media_router::mojom::MediaRouteDataView, | 
| + media_router::MediaRoute>:: | 
| + Read(media_router::mojom::MediaRouteDataView data, | 
| + media_router::MediaRoute* out) { | 
| + media_router::MediaRoute::Id media_route_id; | 
| + if (!data.ReadMediaRouteId(&media_route_id)) | 
| + return false; | 
| + | 
| + out->set_media_route_id(media_route_id); | 
| + | 
| + base::Optional<media_router::MediaSource::Id> media_source_id; | 
| + if (!data.ReadMediaSource(&media_source_id)) | 
| + return false; | 
| + | 
| + if (media_source_id) | 
| + out->set_media_source(media_router::MediaSource(*media_source_id)); | 
| + | 
| + media_router::MediaSink::Id media_sink_id; | 
| + if (!data.ReadMediaSinkId(&media_sink_id)) | 
| + return false; | 
| + | 
| + out->set_media_sink_id(media_sink_id); | 
| + | 
| + std::string description; | 
| + if (!data.ReadDescription(&description)) | 
| + return false; | 
| + | 
| + out->set_description(description); | 
| + | 
| + base::Optional<std::string> custom_controller_path; | 
| + if (!data.ReadCustomControllerPath(&custom_controller_path)) | 
| + return false; | 
| + | 
| + if (custom_controller_path) | 
| 
dcheng
2017/02/01 22:51:08
Ditto: why do we only sometimes check this?
 
imcheng
2017/02/02 21:20:37
Done. Converted all to do null check.
 | 
| + out->set_custom_controller_path(*custom_controller_path); | 
| + | 
| + out->set_local(data.is_local()); | 
| + out->set_for_display(data.for_display()); | 
| + out->set_incognito(data.is_incognito()); | 
| + out->set_offscreen_presentation(data.is_offscreen_presentation()); | 
| + | 
| + return true; | 
| +} | 
| + | 
| } // namespace mojo |