Chromium Code Reviews| Index: chrome/browser/extensions/api/cast_channel/cast_channel_api.cc |
| diff --git a/chrome/browser/extensions/api/cast_channel/cast_channel_api.cc b/chrome/browser/extensions/api/cast_channel/cast_channel_api.cc |
| index d1a84e4a31261a8f61178ce6c93e854619311df5..90f159dd4c8c9d2dff60dda656a0387418538e48 100644 |
| --- a/chrome/browser/extensions/api/cast_channel/cast_channel_api.cc |
| +++ b/chrome/browser/extensions/api/cast_channel/cast_channel_api.cc |
| @@ -244,7 +244,7 @@ bool CastChannelOpenFunction::ParseChannelUrl(const GURL& url, |
| cast_channel::CHANNEL_AUTH_TYPE_SSL_VERIFIED : |
| cast_channel::CHANNEL_AUTH_TYPE_SSL; |
| return true; |
| -}; |
| +} |
| net::IPEndPoint* CastChannelOpenFunction::ParseConnectInfo( |
| const ConnectInfo& connect_info) { |
| @@ -280,6 +280,8 @@ bool CastChannelOpenFunction::Prepare() { |
| connect_info_.reset(new ConnectInfo); |
| if (!ParseChannelUrl(GURL(cast_url), connect_info_.get())) { |
| connect_info_.reset(); |
| + SetError("Invalid Cast URL " + cast_url); |
| + return false; |
| } |
| break; |
| case base::Value::TYPE_DICTIONARY: |
| @@ -288,12 +290,17 @@ bool CastChannelOpenFunction::Prepare() { |
| default: |
| break; |
| } |
| - if (connect_info_.get()) { |
| - channel_auth_ = connect_info_->auth; |
| - ip_endpoint_.reset(ParseConnectInfo(*connect_info_)); |
| - return ip_endpoint_.get() != NULL; |
| + if (!connect_info_.get()) { |
| + SetError("Invalid connect_info"); |
| + return false; |
| + } |
| + channel_auth_ = connect_info_->auth; |
| + ip_endpoint_.reset(ParseConnectInfo(*connect_info_)); |
| + if (!ip_endpoint_.get()) { |
| + SetError("Invalid connect_info"); |
|
Wez
2014/07/16 22:42:33
nit: May be helpful to be able to distinguish this
mark a. foltz
2014/07/17 19:26:51
Done.
|
| + return false; |
| } |
| - return false; |
| + return true; |
| } |
| void CastChannelOpenFunction::AsyncWorkStart() { |
| @@ -319,6 +326,26 @@ CastChannelSendFunction::~CastChannelSendFunction() { } |
| bool CastChannelSendFunction::Prepare() { |
| params_ = Send::Params::Create(*args_); |
| EXTENSION_FUNCTION_VALIDATE(params_.get()); |
| + if (params_->message.namespace_.empty()) { |
| + SetError("message_info.namespace_ is required"); |
| + return false; |
| + } |
| + if (params_->message.source_id.empty()) { |
| + SetError("message_info.source_id is required"); |
| + return false; |
| + } |
| + if (params_->message.destination_id.empty()) { |
| + SetError("message_info.destination_id is required"); |
| + return false; |
| + } |
| + switch (params_->message.data->GetType()) { |
| + case base::Value::TYPE_STRING: |
| + case base::Value::TYPE_BINARY: |
| + break; |
| + default: |
| + SetError("Invalid type of message_info.data"); |
| + return false; |
| + } |
| return true; |
| } |