Chromium Code Reviews| Index: content/browser/presentation/presentation_service_impl.cc |
| diff --git a/content/browser/presentation/presentation_service_impl.cc b/content/browser/presentation/presentation_service_impl.cc |
| index f3870970f70712e3ba73eefc00d2362524f9005c..6546c600c359bdb07ca731e4675fceca9edc2332 100644 |
| --- a/content/browser/presentation/presentation_service_impl.cc |
| +++ b/content/browser/presentation/presentation_service_impl.cc |
| @@ -457,18 +457,23 @@ void PresentationServiceImpl::ListenForSessionMessages( |
| void PresentationServiceImpl::OnSessionMessages( |
| scoped_ptr<ScopedVector<PresentationSessionMessage>> messages) { |
| - DCHECK(messages.get() && !messages->empty()); |
| if (!on_session_messages_callback_.get()) { |
| // The Reset method of this class was invoked. |
| return; |
| } |
| - mojo::Array<presentation::SessionMessagePtr> mojoMessages(messages->size()); |
| - for (size_t i = 0; i < messages->size(); ++i) { |
| - mojoMessages[i] = ToMojoSessionMessage((*messages)[i]); |
| + if (!messages.get() || messages->empty()) { |
| + // Error handling. Session is either closed or in error state. |
| + on_session_messages_callback_->Run( |
| + mojo::Array<presentation::SessionMessagePtr>()); |
| + } else { |
| + mojo::Array<presentation::SessionMessagePtr> mojoMessages(messages->size()); |
| + for (size_t i = 0; i < messages->size(); ++i) { |
|
Kevin M
2015/06/25 22:51:56
for (const auto& next_message : *messages)
haibinlu
2015/06/26 00:12:00
with "for", I can not reverse the array size.
mo
|
| + mojoMessages[i] = ToMojoSessionMessage((*messages)[i]); |
| + } |
| + on_session_messages_callback_->Run(mojoMessages.Pass()); |
| } |
| - on_session_messages_callback_->Run(mojoMessages.Pass()); |
| on_session_messages_callback_.reset(); |
| } |