OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/extensions/api/copresence/copresence_translations.h" | 5 #include "chrome/browser/extensions/api/copresence/copresence_translations.h" |
6 | 6 |
| 7 #include "base/stl_util.h" |
7 #include "chrome/common/extensions/api/copresence.h" | 8 #include "chrome/common/extensions/api/copresence.h" |
8 #include "components/copresence/proto/data.pb.h" | 9 #include "components/copresence/proto/data.pb.h" |
9 #include "components/copresence/proto/enums.pb.h" | 10 #include "components/copresence/proto/enums.pb.h" |
10 #include "components/copresence/proto/rpcs.pb.h" | 11 #include "components/copresence/proto/rpcs.pb.h" |
11 | 12 |
12 using copresence::AUDIO_CONFIGURATION_AUDIBLE; | 13 using copresence::AUDIO_CONFIGURATION_AUDIBLE; |
13 using copresence::AUDIO_CONFIGURATION_UNKNOWN; | 14 using copresence::AUDIO_CONFIGURATION_UNKNOWN; |
14 using copresence::BROADCAST_AND_SCAN; | 15 using copresence::BROADCAST_AND_SCAN; |
15 using copresence::BROADCAST_ONLY; | 16 using copresence::BROADCAST_ONLY; |
16 using copresence::BROADCAST_SCAN_CONFIGURATION_UNKNOWN; | 17 using copresence::BROADCAST_SCAN_CONFIGURATION_UNKNOWN; |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 bool AddPublishToRequest(const std::string& app_id, | 83 bool AddPublishToRequest(const std::string& app_id, |
83 const api::copresence::PublishOperation& publish, | 84 const api::copresence::PublishOperation& publish, |
84 ReportRequest* request) { | 85 ReportRequest* request) { |
85 copresence::PublishedMessage* publish_proto = | 86 copresence::PublishedMessage* publish_proto = |
86 request->mutable_manage_messages_request()->add_message_to_publish(); | 87 request->mutable_manage_messages_request()->add_message_to_publish(); |
87 publish_proto->mutable_access_policy()->mutable_acl()->set_acl_type( | 88 publish_proto->mutable_access_policy()->mutable_acl()->set_acl_type( |
88 copresence::NO_ACL_CHECK); | 89 copresence::NO_ACL_CHECK); |
89 publish_proto->set_id(publish.id); | 90 publish_proto->set_id(publish.id); |
90 publish_proto->mutable_message()->mutable_type()->set_type( | 91 publish_proto->mutable_message()->mutable_type()->set_type( |
91 publish.message.type); | 92 publish.message.type); |
92 publish_proto->mutable_message()->set_payload(publish.message.payload); | 93 publish_proto->mutable_message()->set_payload( |
| 94 vector_as_array(&publish.message.payload), |
| 95 publish.message.payload.size()); |
93 | 96 |
94 int ttl = SanitizeTtl(publish.time_to_live_millis.get()); | 97 int ttl = SanitizeTtl(publish.time_to_live_millis.get()); |
95 if (ttl < 0) | 98 if (ttl < 0) |
96 return false; | 99 return false; |
97 publish_proto->mutable_access_policy()->set_ttl_millis(ttl); | 100 publish_proto->mutable_access_policy()->set_ttl_millis(ttl); |
98 | 101 |
99 SetTokenExchangeStrategy(publish.strategies.get(), | 102 SetTokenExchangeStrategy(publish.strategies.get(), |
100 BROADCAST_ONLY, | 103 BROADCAST_ONLY, |
101 publish_proto->mutable_token_exchange_strategy()); | 104 publish_proto->mutable_token_exchange_strategy()); |
102 | 105 |
103 DVLOG(2) << "Publishing message of type " << publish.message.type << ":\n" | 106 DVLOG(2) << "Publishing message of type " << publish.message.type << ":\n" |
104 << publish.message.payload; | 107 << std::string(publish.message.payload.begin(), |
| 108 publish.message.payload.end()); |
105 // TODO(ckehoe): Validate that required fields are non-empty, etc. | 109 // TODO(ckehoe): Validate that required fields are non-empty, etc. |
106 return true; | 110 return true; |
107 } | 111 } |
108 | 112 |
109 // Adds an unpublish operation to the report request. Returns false if the | 113 // Adds an unpublish operation to the report request. Returns false if the |
110 // publish id was invalid. | 114 // publish id was invalid. |
111 bool AddUnpublishToRequest(const std::string& publish_id, | 115 bool AddUnpublishToRequest(const std::string& publish_id, |
112 ReportRequest* request) { | 116 ReportRequest* request) { |
113 if (publish_id.empty()) | 117 if (publish_id.empty()) |
114 return false; | 118 return false; |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
227 apps_by_subscription_id, | 231 apps_by_subscription_id, |
228 request)) | 232 request)) |
229 return false; | 233 return false; |
230 } | 234 } |
231 } | 235 } |
232 | 236 |
233 return true; | 237 return true; |
234 } | 238 } |
235 | 239 |
236 } // namespace extensions | 240 } // namespace extensions |
OLD | NEW |