 Chromium Code Reviews
 Chromium Code Reviews Issue 2928833002:
  [CacheStorage] [DevTools] Added "Time Received" column to cache storage data grid  (Closed)
    
  
    Issue 2928833002:
  [CacheStorage] [DevTools] Added "Time Received" column to cache storage data grid  (Closed) 
  | OLD | NEW | 
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "modules/cachestorage/InspectorCacheStorageAgent.h" | 5 #include "modules/cachestorage/InspectorCacheStorageAgent.h" | 
| 6 | 6 | 
| 7 #include <algorithm> | 7 #include <algorithm> | 
| 8 #include <memory> | 8 #include <memory> | 
| 9 #include <utility> | 9 #include <utility> | 
| 10 #include "platform/heap/Handle.h" | 10 #include "platform/heap/Handle.h" | 
| 11 #include "platform/weborigin/KURL.h" | 11 #include "platform/weborigin/KURL.h" | 
| 12 #include "platform/weborigin/SecurityOrigin.h" | 12 #include "platform/weborigin/SecurityOrigin.h" | 
| 13 #include "platform/wtf/Noncopyable.h" | 13 #include "platform/wtf/Noncopyable.h" | 
| 14 #include "platform/wtf/PassRefPtr.h" | 14 #include "platform/wtf/PassRefPtr.h" | 
| 15 #include "platform/wtf/PtrUtil.h" | 15 #include "platform/wtf/PtrUtil.h" | 
| 16 #include "platform/wtf/RefCounted.h" | 16 #include "platform/wtf/RefCounted.h" | 
| 17 #include "platform/wtf/RefPtr.h" | 17 #include "platform/wtf/RefPtr.h" | 
| 18 #include "platform/wtf/Time.h" | |
| 18 #include "platform/wtf/Vector.h" | 19 #include "platform/wtf/Vector.h" | 
| 19 #include "platform/wtf/text/StringBuilder.h" | 20 #include "platform/wtf/text/StringBuilder.h" | 
| 20 #include "public/platform/Platform.h" | 21 #include "public/platform/Platform.h" | 
| 21 #include "public/platform/WebSecurityOrigin.h" | 22 #include "public/platform/WebSecurityOrigin.h" | 
| 22 #include "public/platform/WebString.h" | 23 #include "public/platform/WebString.h" | 
| 23 #include "public/platform/WebURL.h" | 24 #include "public/platform/WebURL.h" | 
| 24 #include "public/platform/WebVector.h" | 25 #include "public/platform/WebVector.h" | 
| 25 #include "public/platform/modules/serviceworker/WebServiceWorkerCache.h" | 26 #include "public/platform/modules/serviceworker/WebServiceWorkerCache.h" | 
| 26 #include "public/platform/modules/serviceworker/WebServiceWorkerCacheError.h" | 27 #include "public/platform/modules/serviceworker/WebServiceWorkerCacheError.h" | 
| 27 #include "public/platform/modules/serviceworker/WebServiceWorkerCacheStorage.h" | 28 #include "public/platform/modules/serviceworker/WebServiceWorkerCacheStorage.h" | 
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 158 int skip_count; | 159 int skip_count; | 
| 159 int page_size; | 160 int page_size; | 
| 160 }; | 161 }; | 
| 161 | 162 | 
| 162 struct RequestResponse { | 163 struct RequestResponse { | 
| 163 RequestResponse() {} | 164 RequestResponse() {} | 
| 164 RequestResponse(const String& request, const String& response) | 165 RequestResponse(const String& request, const String& response) | 
| 165 : request(request), response(response) {} | 166 : request(request), response(response) {} | 
| 166 String request; | 167 String request; | 
| 167 String response; | 168 String response; | 
| 169 int64_t responseTime; | |
| 168 }; | 170 }; | 
| 169 | 171 | 
| 170 class ResponsesAccumulator : public RefCounted<ResponsesAccumulator> { | 172 class ResponsesAccumulator : public RefCounted<ResponsesAccumulator> { | 
| 171 WTF_MAKE_NONCOPYABLE(ResponsesAccumulator); | 173 WTF_MAKE_NONCOPYABLE(ResponsesAccumulator); | 
| 172 | 174 | 
| 173 public: | 175 public: | 
| 174 ResponsesAccumulator(int num_responses, | 176 ResponsesAccumulator(int num_responses, | 
| 175 const DataRequestParams& params, | 177 const DataRequestParams& params, | 
| 176 std::unique_ptr<RequestEntriesCallback> callback) | 178 std::unique_ptr<RequestEntriesCallback> callback) | 
| 177 : params_(params), | 179 : params_(params), | 
| 178 num_responses_left_(num_responses), | 180 num_responses_left_(num_responses), | 
| 179 responses_(static_cast<size_t>(num_responses)), | 181 responses_(static_cast<size_t>(num_responses)), | 
| 180 callback_(std::move(callback)) {} | 182 callback_(std::move(callback)) {} | 
| 181 | 183 | 
| 182 void AddRequestResponsePair(const WebServiceWorkerRequest& request, | 184 void AddRequestResponsePair(const WebServiceWorkerRequest& request, | 
| 183 const WebServiceWorkerResponse& response) { | 185 const WebServiceWorkerResponse& response) { | 
| 184 DCHECK_GT(num_responses_left_, 0); | 186 DCHECK_GT(num_responses_left_, 0); | 
| 185 RequestResponse& request_response = | 187 RequestResponse& request_response = | 
| 186 responses_.at(responses_.size() - num_responses_left_); | 188 responses_.at(responses_.size() - num_responses_left_); | 
| 187 request_response.request = request.Url().GetString(); | 189 request_response.request = request.Url().GetString(); | 
| 188 request_response.response = response.StatusText(); | 190 request_response.response = response.StatusText(); | 
| 191 request_response.responseTime = | |
| 192 WTF::Time::FromInternalValue(response.ResponseTime()).ToTimeT(); | |
| 189 | 193 | 
| 190 if (--num_responses_left_ != 0) | 194 if (--num_responses_left_ != 0) | 
| 191 return; | 195 return; | 
| 192 | 196 | 
| 193 std::sort(responses_.begin(), responses_.end(), | 197 std::sort(responses_.begin(), responses_.end(), | 
| 194 [](const RequestResponse& a, const RequestResponse& b) { | 198 [](const RequestResponse& a, const RequestResponse& b) { | 
| 195 return WTF::CodePointCompareLessThan(a.request, b.request); | 199 return WTF::CodePointCompareLessThan(a.request, b.request); | 
| 196 }); | 200 }); | 
| 197 if (params_.skip_count > 0) | 201 if (params_.skip_count > 0) | 
| 198 responses_.erase(0, params_.skip_count); | 202 responses_.erase(0, params_.skip_count); | 
| 199 bool has_more = false; | 203 bool has_more = false; | 
| 200 if (static_cast<size_t>(params_.page_size) < responses_.size()) { | 204 if (static_cast<size_t>(params_.page_size) < responses_.size()) { | 
| 201 responses_.erase(params_.page_size, | 205 responses_.erase(params_.page_size, | 
| 202 responses_.size() - params_.page_size); | 206 responses_.size() - params_.page_size); | 
| 203 has_more = true; | 207 has_more = true; | 
| 204 } | 208 } | 
| 205 std::unique_ptr<Array<DataEntry>> array = Array<DataEntry>::create(); | 209 std::unique_ptr<Array<DataEntry>> array = Array<DataEntry>::create(); | 
| 206 for (const auto& request_response : responses_) { | 210 for (const auto& request_response : responses_) { | 
| 207 std::unique_ptr<DataEntry> entry = | 211 std::unique_ptr<DataEntry> entry = | 
| 208 DataEntry::create() | 212 DataEntry::create() | 
| 209 .setRequest(request_response.request) | 213 .setRequest(request_response.request) | 
| 210 .setResponse(request_response.response) | 214 .setResponse(request_response.response) | 
| 215 .setResponseTime(request_response.responseTime) | |
| 
dgozman
2017/06/07 21:32:06
We usually send a double which means "Number of se
 
kristipark
2017/06/07 22:42:37
Done.
 | |
| 211 .build(); | 216 .build(); | 
| 212 array->addItem(std::move(entry)); | 217 array->addItem(std::move(entry)); | 
| 213 } | 218 } | 
| 214 callback_->sendSuccess(std::move(array), has_more); | 219 callback_->sendSuccess(std::move(array), has_more); | 
| 215 } | 220 } | 
| 216 | 221 | 
| 217 void SendFailure(const Response& error) { callback_->sendFailure(error); } | 222 void SendFailure(const Response& error) { callback_->sendFailure(error); } | 
| 218 | 223 | 
| 219 private: | 224 private: | 
| 220 DataRequestParams params_; | 225 DataRequestParams params_; | 
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 486 if (!response.isSuccess()) { | 491 if (!response.isSuccess()) { | 
| 487 callback->sendFailure(response); | 492 callback->sendFailure(response); | 
| 488 return; | 493 return; | 
| 489 } | 494 } | 
| 490 cache->DispatchOpen(WTF::MakeUnique<GetCacheForDeleteEntry>( | 495 cache->DispatchOpen(WTF::MakeUnique<GetCacheForDeleteEntry>( | 
| 491 request, cache_name, std::move(callback)), | 496 request, cache_name, std::move(callback)), | 
| 492 WebString(cache_name)); | 497 WebString(cache_name)); | 
| 493 } | 498 } | 
| 494 | 499 | 
| 495 } // namespace blink | 500 } // namespace blink | 
| OLD | NEW |