| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "content/renderer/presentation/presentation_dispatcher.h" | 5 #include "content/renderer/presentation/presentation_dispatcher.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 118 const blink::WebString& presentationId, | 118 const blink::WebString& presentationId, |
| 119 const blink::WebString& message) { | 119 const blink::WebString& message) { |
| 120 if (message.utf8().size() > kMaxPresentationSessionMessageSize) { | 120 if (message.utf8().size() > kMaxPresentationSessionMessageSize) { |
| 121 // TODO(crbug.com/459008): Limit the size of individual messages to 64k | 121 // TODO(crbug.com/459008): Limit the size of individual messages to 64k |
| 122 // for now. Consider throwing DOMException or splitting bigger messages | 122 // for now. Consider throwing DOMException or splitting bigger messages |
| 123 // into smaller chunks later. | 123 // into smaller chunks later. |
| 124 LOG(WARNING) << "message size exceeded limit!"; | 124 LOG(WARNING) << "message size exceeded limit!"; |
| 125 return; | 125 return; |
| 126 } | 126 } |
| 127 | 127 |
| 128 message_request_queue_.push(make_linked_ptr( | 128 message_request_queue_.push(make_scoped_ptr( |
| 129 CreateSendTextMessageRequest(presentationUrl, presentationId, message))); | 129 CreateSendTextMessageRequest(presentationUrl, presentationId, message))); |
| 130 // Start processing request if only one in the queue. | 130 // Start processing request if only one in the queue. |
| 131 if (message_request_queue_.size() == 1) | 131 if (message_request_queue_.size() == 1) |
| 132 DoSendMessage(message_request_queue_.front().get()); | 132 DoSendMessage(message_request_queue_.front().get()); |
| 133 } | 133 } |
| 134 | 134 |
| 135 void PresentationDispatcher::sendArrayBuffer( | 135 void PresentationDispatcher::sendArrayBuffer( |
| 136 const blink::WebString& presentationUrl, | 136 const blink::WebString& presentationUrl, |
| 137 const blink::WebString& presentationId, | 137 const blink::WebString& presentationId, |
| 138 const uint8* data, | 138 const uint8* data, |
| 139 size_t length) { | 139 size_t length) { |
| 140 DCHECK(data); | 140 DCHECK(data); |
| 141 if (length > kMaxPresentationSessionMessageSize) { | 141 if (length > kMaxPresentationSessionMessageSize) { |
| 142 // TODO(crbug.com/459008): Same as in sendString(). | 142 // TODO(crbug.com/459008): Same as in sendString(). |
| 143 LOG(WARNING) << "data size exceeded limit!"; | 143 LOG(WARNING) << "data size exceeded limit!"; |
| 144 return; | 144 return; |
| 145 } | 145 } |
| 146 | 146 |
| 147 message_request_queue_.push(make_linked_ptr( | 147 message_request_queue_.push(make_scoped_ptr( |
| 148 CreateSendBinaryMessageRequest(presentationUrl, presentationId, | 148 CreateSendBinaryMessageRequest(presentationUrl, presentationId, |
| 149 presentation::PresentationMessageType:: | 149 presentation::PresentationMessageType:: |
| 150 PRESENTATION_MESSAGE_TYPE_ARRAY_BUFFER, | 150 PRESENTATION_MESSAGE_TYPE_ARRAY_BUFFER, |
| 151 data, length))); | 151 data, length))); |
| 152 // Start processing request if only one in the queue. | 152 // Start processing request if only one in the queue. |
| 153 if (message_request_queue_.size() == 1) | 153 if (message_request_queue_.size() == 1) |
| 154 DoSendMessage(message_request_queue_.front().get()); | 154 DoSendMessage(message_request_queue_.front().get()); |
| 155 } | 155 } |
| 156 | 156 |
| 157 void PresentationDispatcher::sendBlobData( | 157 void PresentationDispatcher::sendBlobData( |
| 158 const blink::WebString& presentationUrl, | 158 const blink::WebString& presentationUrl, |
| 159 const blink::WebString& presentationId, | 159 const blink::WebString& presentationId, |
| 160 const uint8* data, | 160 const uint8* data, |
| 161 size_t length) { | 161 size_t length) { |
| 162 DCHECK(data); | 162 DCHECK(data); |
| 163 if (length > kMaxPresentationSessionMessageSize) { | 163 if (length > kMaxPresentationSessionMessageSize) { |
| 164 // TODO(crbug.com/459008): Same as in sendString(). | 164 // TODO(crbug.com/459008): Same as in sendString(). |
| 165 LOG(WARNING) << "data size exceeded limit!"; | 165 LOG(WARNING) << "data size exceeded limit!"; |
| 166 return; | 166 return; |
| 167 } | 167 } |
| 168 | 168 |
| 169 message_request_queue_.push(make_linked_ptr(CreateSendBinaryMessageRequest( | 169 message_request_queue_.push(make_scoped_ptr(CreateSendBinaryMessageRequest( |
| 170 presentationUrl, presentationId, | 170 presentationUrl, presentationId, |
| 171 presentation::PresentationMessageType::PRESENTATION_MESSAGE_TYPE_BLOB, | 171 presentation::PresentationMessageType::PRESENTATION_MESSAGE_TYPE_BLOB, |
| 172 data, length))); | 172 data, length))); |
| 173 // Start processing request if only one in the queue. | 173 // Start processing request if only one in the queue. |
| 174 if (message_request_queue_.size() == 1) | 174 if (message_request_queue_.size() == 1) |
| 175 DoSendMessage(message_request_queue_.front().get()); | 175 DoSendMessage(message_request_queue_.front().get()); |
| 176 } | 176 } |
| 177 | 177 |
| 178 void PresentationDispatcher::DoSendMessage(SendMessageRequest* request) { | 178 void PresentationDispatcher::DoSendMessage(SendMessageRequest* request) { |
| 179 ConnectToPresentationServiceIfNeeded(); | 179 ConnectToPresentationServiceIfNeeded(); |
| (...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 492 PresentationDispatcher::AvailabilityStatus::AvailabilityStatus( | 492 PresentationDispatcher::AvailabilityStatus::AvailabilityStatus( |
| 493 const std::string& availability_url) | 493 const std::string& availability_url) |
| 494 : url(availability_url), | 494 : url(availability_url), |
| 495 last_known_availability(false), | 495 last_known_availability(false), |
| 496 listening_state(ListeningState::INACTIVE) {} | 496 listening_state(ListeningState::INACTIVE) {} |
| 497 | 497 |
| 498 PresentationDispatcher::AvailabilityStatus::~AvailabilityStatus() { | 498 PresentationDispatcher::AvailabilityStatus::~AvailabilityStatus() { |
| 499 } | 499 } |
| 500 | 500 |
| 501 } // namespace content | 501 } // namespace content |
| OLD | NEW |