OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * | 10 * |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 : m_requestId(requestId) | 75 : m_requestId(requestId) |
76 , m_loaderId(loaderId) | 76 , m_loaderId(loaderId) |
77 , m_base64Encoded(false) | 77 , m_base64Encoded(false) |
78 , m_isContentEvicted(false) | 78 , m_isContentEvicted(false) |
79 , m_type(InspectorPageAgent::OtherResource) | 79 , m_type(InspectorPageAgent::OtherResource) |
80 , m_httpStatusCode(0) | 80 , m_httpStatusCode(0) |
81 , m_cachedResource(nullptr) | 81 , m_cachedResource(nullptr) |
82 { | 82 { |
83 } | 83 } |
84 | 84 |
| 85 DEFINE_TRACE(NetworkResourcesData::ResourceData) |
| 86 { |
| 87 visitor->trace(m_xhrReplayData); |
| 88 visitor->trace(m_cachedResource); |
| 89 } |
| 90 |
85 void NetworkResourcesData::ResourceData::setContent(const String& content, bool
base64Encoded) | 91 void NetworkResourcesData::ResourceData::setContent(const String& content, bool
base64Encoded) |
86 { | 92 { |
87 ASSERT(!hasData()); | 93 ASSERT(!hasData()); |
88 ASSERT(!hasContent()); | 94 ASSERT(!hasContent()); |
89 m_content = content; | 95 m_content = content; |
90 m_base64Encoded = base64Encoded; | 96 m_base64Encoded = base64Encoded; |
91 } | 97 } |
92 | 98 |
93 static size_t contentSizeInBytes(const String& content) | 99 static size_t contentSizeInBytes(const String& content) |
94 { | 100 { |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
145 // NetworkResourcesData | 151 // NetworkResourcesData |
146 NetworkResourcesData::NetworkResourcesData() | 152 NetworkResourcesData::NetworkResourcesData() |
147 : m_contentSize(0) | 153 : m_contentSize(0) |
148 , m_maximumResourcesContentSize(maximumResourcesContentSize) | 154 , m_maximumResourcesContentSize(maximumResourcesContentSize) |
149 , m_maximumSingleResourceContentSize(maximumSingleResourceContentSize) | 155 , m_maximumSingleResourceContentSize(maximumSingleResourceContentSize) |
150 { | 156 { |
151 } | 157 } |
152 | 158 |
153 NetworkResourcesData::~NetworkResourcesData() | 159 NetworkResourcesData::~NetworkResourcesData() |
154 { | 160 { |
| 161 #if !ENABLE(OILPAN) |
155 clear(); | 162 clear(); |
| 163 #endif |
| 164 } |
| 165 |
| 166 DEFINE_TRACE(NetworkResourcesData) |
| 167 { |
| 168 #if ENABLE(OILPAN) |
| 169 visitor->trace(m_requestIdToResourceDataMap); |
| 170 #endif |
156 } | 171 } |
157 | 172 |
158 void NetworkResourcesData::resourceCreated(const String& requestId, const String
& loaderId) | 173 void NetworkResourcesData::resourceCreated(const String& requestId, const String
& loaderId) |
159 { | 174 { |
160 ensureNoDataForRequestId(requestId); | 175 ensureNoDataForRequestId(requestId); |
161 m_requestIdToResourceDataMap.set(requestId, new ResourceData(requestId, load
erId)); | 176 m_requestIdToResourceDataMap.set(requestId, new ResourceData(requestId, load
erId)); |
162 } | 177 } |
163 | 178 |
164 void NetworkResourcesData::responseReceived(const String& requestId, const Strin
g& frameId, const ResourceResponse& response) | 179 void NetworkResourcesData::responseReceived(const String& requestId, const Strin
g& frameId, const ResourceResponse& response) |
165 { | 180 { |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
288 for (auto& request : m_reusedXHRReplayDataRequestIds) { | 303 for (auto& request : m_reusedXHRReplayDataRequestIds) { |
289 if (request.value == requestId) | 304 if (request.value == requestId) |
290 setXHRReplayData(request.key, xhrReplayData); | 305 setXHRReplayData(request.key, xhrReplayData); |
291 } | 306 } |
292 return; | 307 return; |
293 } | 308 } |
294 | 309 |
295 resourceData->setXHRReplayData(xhrReplayData); | 310 resourceData->setXHRReplayData(xhrReplayData); |
296 } | 311 } |
297 | 312 |
298 Vector<NetworkResourcesData::ResourceData*> NetworkResourcesData::resources() | 313 WillBeHeapVector<RawPtrWillBeMember<NetworkResourcesData::ResourceData>> Network
ResourcesData::resources() |
299 { | 314 { |
300 Vector<ResourceData*> result; | 315 WillBeHeapVector<RawPtrWillBeMember<ResourceData>> result; |
301 for (auto& request : m_requestIdToResourceDataMap) | 316 for (auto& request : m_requestIdToResourceDataMap) |
302 result.append(request.value); | 317 result.append(request.value); |
303 return result; | 318 return result; |
304 } | 319 } |
305 | 320 |
306 Vector<String> NetworkResourcesData::removeResource(Resource* cachedResource) | 321 Vector<String> NetworkResourcesData::removeResource(Resource* cachedResource) |
307 { | 322 { |
308 Vector<String> result; | 323 Vector<String> result; |
309 for (auto& request : m_requestIdToResourceDataMap) { | 324 for (auto& request : m_requestIdToResourceDataMap) { |
310 ResourceData* resourceData = request.value; | 325 ResourceData* resourceData = request.value; |
(...skipping 10 matching lines...) Expand all Loading... |
321 { | 336 { |
322 m_requestIdsDeque.clear(); | 337 m_requestIdsDeque.clear(); |
323 m_contentSize = 0; | 338 m_contentSize = 0; |
324 | 339 |
325 ResourceDataMap preservedMap; | 340 ResourceDataMap preservedMap; |
326 | 341 |
327 for (auto& resource : m_requestIdToResourceDataMap) { | 342 for (auto& resource : m_requestIdToResourceDataMap) { |
328 ResourceData* resourceData = resource.value; | 343 ResourceData* resourceData = resource.value; |
329 if (!preservedLoaderId.isNull() && resourceData->loaderId() == preserved
LoaderId) | 344 if (!preservedLoaderId.isNull() && resourceData->loaderId() == preserved
LoaderId) |
330 preservedMap.set(resource.key, resource.value); | 345 preservedMap.set(resource.key, resource.value); |
| 346 #if !ENABLE(OILPAN) |
331 else | 347 else |
332 delete resourceData; | 348 delete resourceData; |
| 349 #endif |
333 } | 350 } |
334 m_requestIdToResourceDataMap.swap(preservedMap); | 351 m_requestIdToResourceDataMap.swap(preservedMap); |
335 | 352 |
336 m_reusedXHRReplayDataRequestIds.clear(); | 353 m_reusedXHRReplayDataRequestIds.clear(); |
337 m_maximumResourcesContentSize = maximumResourcesContentSize; | 354 m_maximumResourcesContentSize = maximumResourcesContentSize; |
338 m_maximumSingleResourceContentSize = maximumSingleResourceContentSize; | 355 m_maximumSingleResourceContentSize = maximumSingleResourceContentSize; |
339 } | 356 } |
340 | 357 |
341 void NetworkResourcesData::setResourcesDataSizeLimits(size_t resourcesContentSiz
e, size_t singleResourceContentSize) | 358 void NetworkResourcesData::setResourcesDataSizeLimits(size_t resourcesContentSiz
e, size_t singleResourceContentSize) |
342 { | 359 { |
343 clear(); | 360 clear(); |
344 m_maximumResourcesContentSize = resourcesContentSize; | 361 m_maximumResourcesContentSize = resourcesContentSize; |
345 m_maximumSingleResourceContentSize = singleResourceContentSize; | 362 m_maximumSingleResourceContentSize = singleResourceContentSize; |
346 } | 363 } |
347 | 364 |
348 NetworkResourcesData::ResourceData* NetworkResourcesData::resourceDataForRequest
Id(const String& requestId) | 365 NetworkResourcesData::ResourceData* NetworkResourcesData::resourceDataForRequest
Id(const String& requestId) |
349 { | 366 { |
350 if (requestId.isNull()) | 367 if (requestId.isNull()) |
351 return 0; | 368 return 0; |
352 return m_requestIdToResourceDataMap.get(requestId); | 369 return m_requestIdToResourceDataMap.get(requestId); |
353 } | 370 } |
354 | 371 |
355 void NetworkResourcesData::ensureNoDataForRequestId(const String& requestId) | 372 void NetworkResourcesData::ensureNoDataForRequestId(const String& requestId) |
356 { | 373 { |
357 ResourceData* resourceData = resourceDataForRequestId(requestId); | 374 ResourceData* resourceData = resourceDataForRequestId(requestId); |
358 if (!resourceData) | 375 if (!resourceData) |
359 return; | 376 return; |
360 if (resourceData->hasContent() || resourceData->hasData()) | 377 if (resourceData->hasContent() || resourceData->hasData()) |
361 m_contentSize -= resourceData->evictContent(); | 378 m_contentSize -= resourceData->evictContent(); |
| 379 #if !ENABLE(OILPAN) |
362 delete resourceData; | 380 delete resourceData; |
| 381 #endif |
363 m_requestIdToResourceDataMap.remove(requestId); | 382 m_requestIdToResourceDataMap.remove(requestId); |
364 } | 383 } |
365 | 384 |
366 bool NetworkResourcesData::ensureFreeSpace(size_t size) | 385 bool NetworkResourcesData::ensureFreeSpace(size_t size) |
367 { | 386 { |
368 if (size > m_maximumResourcesContentSize) | 387 if (size > m_maximumResourcesContentSize) |
369 return false; | 388 return false; |
370 | 389 |
371 while (size > m_maximumResourcesContentSize - m_contentSize) { | 390 while (size > m_maximumResourcesContentSize - m_contentSize) { |
372 String requestId = m_requestIdsDeque.takeFirst(); | 391 String requestId = m_requestIdsDeque.takeFirst(); |
373 ResourceData* resourceData = resourceDataForRequestId(requestId); | 392 ResourceData* resourceData = resourceDataForRequestId(requestId); |
374 if (resourceData) | 393 if (resourceData) |
375 m_contentSize -= resourceData->evictContent(); | 394 m_contentSize -= resourceData->evictContent(); |
376 } | 395 } |
377 return true; | 396 return true; |
378 } | 397 } |
379 | 398 |
380 } // namespace blink | 399 } // namespace blink |
381 | |
OLD | NEW |