| 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   double response_time; | 
| 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.response_time = | 
|  | 192         WTF::Time::FromInternalValue(response.ResponseTime()).ToDoubleT(); | 
| 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.response_time) | 
| 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 | 
|---|