summaryrefslogtreecommitdiff
path: root/Source/WebCore/inspector/NetworkResourcesData.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/inspector/NetworkResourcesData.cpp')
-rw-r--r--Source/WebCore/inspector/NetworkResourcesData.cpp130
1 files changed, 18 insertions, 112 deletions
diff --git a/Source/WebCore/inspector/NetworkResourcesData.cpp b/Source/WebCore/inspector/NetworkResourcesData.cpp
index 2af001c5a..c17d8e1f7 100644
--- a/Source/WebCore/inspector/NetworkResourcesData.cpp
+++ b/Source/WebCore/inspector/NetworkResourcesData.cpp
@@ -27,50 +27,20 @@
*/
#include "config.h"
-
-#if ENABLE(INSPECTOR)
-
#include "NetworkResourcesData.h"
#include "CachedResource.h"
-#include "DOMImplementation.h"
#include "ResourceResponse.h"
#include "SharedBuffer.h"
#include "TextResourceDecoder.h"
-namespace {
-// 100MB
-static size_t maximumResourcesContentSize = 100 * 1000 * 1000;
-
-// 10MB
-static size_t maximumSingleResourceContentSize = 10 * 1000 * 1000;
-}
-
using namespace Inspector;
namespace WebCore {
+static const size_t maximumResourcesContentSize = 100 * 1000 * 1000; // 100MB
+static const size_t maximumSingleResourceContentSize = 10 * 1000 * 1000; // 10MB
-PassRefPtr<XHRReplayData> XHRReplayData::create(const String &method, const URL& url, bool async, PassRefPtr<FormData> formData, bool includeCredentials)
-{
- return adoptRef(new XHRReplayData(method, url, async, formData, includeCredentials));
-}
-
-void XHRReplayData::addHeader(const AtomicString& key, const String& value)
-{
- m_headers.set(key, value);
-}
-
-XHRReplayData::XHRReplayData(const String &method, const URL& url, bool async, PassRefPtr<FormData> formData, bool includeCredentials)
- : m_method(method)
- , m_url(url)
- , m_async(async)
- , m_formData(formData)
- , m_includeCredentials(includeCredentials)
-{
-}
-
-// ResourceData
NetworkResourcesData::ResourceData::ResourceData(const String& requestId, const String& loaderId)
: m_requestId(requestId)
, m_loaderId(loaderId)
@@ -135,13 +105,11 @@ size_t NetworkResourcesData::ResourceData::decodeDataToContent()
{
ASSERT(!hasContent());
size_t dataLength = m_dataBuffer->size();
- m_content = m_decoder->decode(m_dataBuffer->data(), m_dataBuffer->size());
- m_content.append(m_decoder->flush());
+ m_content = m_decoder->decodeAndFlush(m_dataBuffer->data(), m_dataBuffer->size());
m_dataBuffer = nullptr;
return contentSizeInBytes(m_content) - dataLength;
}
-// NetworkResourcesData
NetworkResourcesData::NetworkResourcesData()
: m_contentSize(0)
, m_maximumResourcesContentSize(maximumResourcesContentSize)
@@ -160,21 +128,6 @@ void NetworkResourcesData::resourceCreated(const String& requestId, const String
m_requestIdToResourceDataMap.set(requestId, new ResourceData(requestId, loaderId));
}
-static PassRefPtr<TextResourceDecoder> createOtherResourceTextDecoder(const String& mimeType, const String& textEncodingName)
-{
- RefPtr<TextResourceDecoder> decoder;
- if (!textEncodingName.isEmpty())
- decoder = TextResourceDecoder::create("text/plain", textEncodingName);
- else if (DOMImplementation::isXMLMIMEType(mimeType.lower())) {
- decoder = TextResourceDecoder::create("application/xml");
- decoder->useLenientXMLDecoding();
- } else if (equalIgnoringCase(mimeType, "text/html"))
- decoder = TextResourceDecoder::create("text/html", "UTF-8");
- else if (mimeType == "text/plain")
- decoder = TextResourceDecoder::create("text/plain", "ISO-8859-1");
- return decoder;
-}
-
void NetworkResourcesData::responseReceived(const String& requestId, const String& frameId, const ResourceResponse& response)
{
ResourceData* resourceData = resourceDataForRequestId(requestId);
@@ -182,7 +135,7 @@ void NetworkResourcesData::responseReceived(const String& requestId, const Strin
return;
resourceData->setFrameId(frameId);
resourceData->setUrl(response.url());
- resourceData->setDecoder(createOtherResourceTextDecoder(response.mimeType(), response.textEncodingName()));
+ resourceData->setDecoder(InspectorPageAgent::createTextDecoder(response.mimeType(), response.textEncodingName()));
resourceData->setHTTPStatusCode(response.httpStatusCode());
}
@@ -214,7 +167,7 @@ void NetworkResourcesData::setResourceContent(const String& requestId, const Str
return;
if (ensureFreeSpace(dataLength) && !resourceData->isContentEvicted()) {
// We can not be sure that we didn't try to save this request data while it was loading, so remove it, if any.
- if (resourceData->hasContent())
+ if (resourceData->hasContent() || resourceData->hasData())
m_contentSize -= resourceData->removeContent();
m_requestIdsDeque.append(requestId);
resourceData->setContent(content, base64Encoded);
@@ -261,12 +214,12 @@ void NetworkResourcesData::addCachedResource(const String& requestId, CachedReso
resourceData->setCachedResource(cachedResource);
}
-void NetworkResourcesData::addResourceSharedBuffer(const String& requestId, PassRefPtr<SharedBuffer> buffer, const String& textEncodingName)
+void NetworkResourcesData::addResourceSharedBuffer(const String& requestId, RefPtr<SharedBuffer>&& buffer, const String& textEncodingName)
{
ResourceData* resourceData = resourceDataForRequestId(requestId);
if (!resourceData)
return;
- resourceData->setBuffer(buffer);
+ resourceData->setBuffer(WTFMove(buffer));
resourceData->setTextEncodingName(textEncodingName);
}
@@ -275,56 +228,14 @@ NetworkResourcesData::ResourceData const* NetworkResourcesData::data(const Strin
return resourceDataForRequestId(requestId);
}
-XHRReplayData* NetworkResourcesData::xhrReplayData(const String& requestId)
-{
- if (m_reusedXHRReplayDataRequestIds.contains(requestId))
- return xhrReplayData(m_reusedXHRReplayDataRequestIds.get(requestId));
-
- ResourceData* resourceData = resourceDataForRequestId(requestId);
- if (!resourceData)
- return nullptr;
- return resourceData->xhrReplayData();
-}
-
-void NetworkResourcesData::setXHRReplayData(const String& requestId, XHRReplayData* xhrReplayData)
-{
- ResourceData* resourceData = resourceDataForRequestId(requestId);
- if (!resourceData) {
- Vector<String> result;
- ReusedRequestIds::iterator it;
- ReusedRequestIds::iterator end = m_reusedXHRReplayDataRequestIds.end();
- for (it = m_reusedXHRReplayDataRequestIds.begin(); it != end; ++it) {
- if (it->value == requestId)
- setXHRReplayData(it->key, xhrReplayData);
- }
- return;
- }
-
- resourceData->setXHRReplayData(xhrReplayData);
-}
-
-void NetworkResourcesData::reuseXHRReplayData(const String& requestId, const String& reusedRequestId)
-{
- ResourceData* reusedResourceData = resourceDataForRequestId(reusedRequestId);
- ResourceData* resourceData = resourceDataForRequestId(requestId);
- if (!reusedResourceData || !resourceData) {
- m_reusedXHRReplayDataRequestIds.set(requestId, reusedRequestId);
- return;
- }
-
- resourceData->setXHRReplayData(reusedResourceData->xhrReplayData());
-}
-
Vector<String> NetworkResourcesData::removeCachedResource(CachedResource* cachedResource)
{
Vector<String> result;
- ResourceDataMap::iterator it;
- ResourceDataMap::iterator end = m_requestIdToResourceDataMap.end();
- for (it = m_requestIdToResourceDataMap.begin(); it != end; ++it) {
- ResourceData* resourceData = it->value;
+ for (auto& entry : m_requestIdToResourceDataMap) {
+ ResourceData* resourceData = entry.value;
if (resourceData->cachedResource() == cachedResource) {
resourceData->setCachedResource(nullptr);
- result.append(it->key);
+ result.append(entry.key);
}
}
@@ -338,25 +249,22 @@ void NetworkResourcesData::clear(const String& preservedLoaderId)
ResourceDataMap preservedMap;
- ResourceDataMap::iterator it;
- ResourceDataMap::iterator end = m_requestIdToResourceDataMap.end();
- for (it = m_requestIdToResourceDataMap.begin(); it != end; ++it) {
- ResourceData* resourceData = it->value;
+ for (auto& entry : m_requestIdToResourceDataMap) {
+ ResourceData* resourceData = entry.value;
+ ASSERT(resourceData);
if (!preservedLoaderId.isNull() && resourceData->loaderId() == preservedLoaderId)
- preservedMap.set(it->key, it->value);
+ preservedMap.set(entry.key, entry.value);
else
delete resourceData;
}
m_requestIdToResourceDataMap.swap(preservedMap);
-
- m_reusedXHRReplayDataRequestIds.clear();
}
-void NetworkResourcesData::setResourcesDataSizeLimits(size_t maximumResourcesContentSize, size_t maximumSingleResourceContentSize)
+Vector<NetworkResourcesData::ResourceData*> NetworkResourcesData::resources()
{
- clear();
- m_maximumResourcesContentSize = maximumResourcesContentSize;
- m_maximumSingleResourceContentSize = maximumSingleResourceContentSize;
+ Vector<NetworkResourcesData::ResourceData*> resources;
+ copyValuesToVector(m_requestIdToResourceDataMap, resources);
+ return resources;
}
NetworkResourcesData::ResourceData* NetworkResourcesData::resourceDataForRequestId(const String& requestId)
@@ -392,5 +300,3 @@ bool NetworkResourcesData::ensureFreeSpace(size_t size)
}
} // namespace WebCore
-
-#endif // ENABLE(INSPECTOR)