| Index: net/base/sdch_filter.cc
|
| ===================================================================
|
| --- net/base/sdch_filter.cc (revision 5301)
|
| +++ net/base/sdch_filter.cc (working copy)
|
| @@ -42,7 +42,7 @@
|
| base::TimeDelta duration = time_of_last_read_ - connect_time();
|
| // Note: connect_time may be somewhat incorrect if this is cached data, as
|
| // it will reflect the time the connect was done for the original read :-(.
|
| - // To avoid any chances of overflow (and since SDCH is meant to primarilly
|
| + // To avoid any chances of overflow, and since SDCH is meant to primarilly
|
| // handle short downloads, we'll restrict what results we log to effectively
|
| // discard bogus large numbers. Note that IF the number is large enough, it
|
| // would DCHECK in histogram as the square of the value is summed. The
|
| @@ -50,9 +50,9 @@
|
| // seconds, so the discarded data would not be that readable anyway.
|
| if (30 >= duration.InSeconds()) {
|
| if (DECODING_IN_PROGRESS == decoding_status_)
|
| - UMA_HISTOGRAM_TIMES(L"Sdch.Transit_Latency", duration);
|
| + UMA_HISTOGRAM_TIMES(L"Sdch.Transit_Latency_2", duration);
|
| if (PASS_THROUGH == decoding_status_)
|
| - UMA_HISTOGRAM_TIMES(L"Sdch.Transit_Pass-through_Latency", duration);
|
| + UMA_HISTOGRAM_TIMES(L"Sdch.Transit_Pass-through_Latency_2", duration);
|
| }
|
| }
|
|
|
| @@ -90,7 +90,9 @@
|
| if (!dest_buffer || available_space <= 0)
|
| return FILTER_ERROR;
|
|
|
| - time_of_last_read_ = base::Time::Now();
|
| + // Don't update when we're called to just flush out our internal buffers.
|
| + if (next_stream_data_ && stream_data_len_ > 0)
|
| + time_of_last_read_ = base::Time::Now();
|
|
|
| if (WAITING_FOR_DICTIONARY_SELECTION == decoding_status_) {
|
| FilterStatus status = InitializeDictionary();
|
|
|