| Index: components/gcm_driver/gcm_channel_status_request.cc
|
| diff --git a/components/gcm_driver/gcm_channel_status_request.cc b/components/gcm_driver/gcm_channel_status_request.cc
|
| index 6db949b166307d1d974c224e24518a5e0dfceed8..90f3a906b1c0dd252d8daf9676f9cd937270aa22 100644
|
| --- a/components/gcm_driver/gcm_channel_status_request.cc
|
| +++ b/components/gcm_driver/gcm_channel_status_request.cc
|
| @@ -93,15 +93,20 @@ bool GCMChannelStatusRequest::ParseResponse(const net::URLFetcher* source) {
|
| }
|
|
|
| std::string response_string;
|
| - if (!source->GetResponseAsString(&response_string) ||
|
| - response_string.empty()) {
|
| + if (!source->GetResponseAsString(&response_string)) {
|
| LOG(ERROR) << "GCM channel response failed to be retrieved.";
|
| return false;
|
| }
|
|
|
| + // Empty response means to keep the existing values.
|
| + if (response_string.empty()) {
|
| + callback_.Run(false, false, 0);
|
| + return true;
|
| + }
|
| +
|
| sync_pb::ExperimentStatusResponse response_proto;
|
| if (!response_proto.ParseFromString(response_string)) {
|
| - LOG(ERROR) << "GCM channel response failed to be parse as proto.";
|
| + LOG(ERROR) << "GCM channel response failed to be parsed as proto.";
|
| return false;
|
| }
|
|
|
| @@ -120,7 +125,7 @@ bool GCMChannelStatusRequest::ParseResponse(const net::URLFetcher* source) {
|
| if (poll_interval_seconds < kMinPollIntervalSeconds)
|
| poll_interval_seconds = kMinPollIntervalSeconds;
|
|
|
| - callback_.Run(enabled, poll_interval_seconds);
|
| + callback_.Run(true, enabled, poll_interval_seconds);
|
|
|
| return true;
|
| }
|
|
|