#include "core/loader/ThreadableLoaderClient.h"
#include "core/page/Page.h"
#include "core/xml/XMLHttpRequest.h"
-#include "modules/websockets/WebSocketFrame.h"
#include "platform/JSONValues.h"
#include "platform/network/HTTPHeaderMap.h"
#include "platform/network/ResourceError.h"
else
headers = buildObjectForHeaders(response.httpHeaderFields());
+ int64_t encodedDataLength = response.resourceLoadInfo() ? response.resourceLoadInfo()->encodedDataLength : -1;
+
RefPtr<TypeBuilder::Network::Response> responseObject = TypeBuilder::Network::Response::create()
.setUrl(urlWithoutFragment(response.url()).string())
.setStatus(status)
.setHeaders(headers)
.setMimeType(response.mimeType())
.setConnectionReused(response.connectionReused())
- .setConnectionId(response.connectionID());
+ .setConnectionId(response.connectionID())
+ .setEncodedDataLength(encodedDataLength);
responseObject->setFromDiskCache(response.wasCached());
if (response.resourceLoadTiming())
responseObject->setRequestHeadersText(response.resourceLoadInfo()->requestHeadersText);
}
+ AtomicString remoteIPAddress = response.remoteIPAddress();
+ if (!remoteIPAddress.isEmpty()) {
+ responseObject->setRemoteIPAddress(remoteIPAddress);
+ responseObject->setRemotePort(response.remotePort());
+ }
+
return responseObject;
}
m_frontend->dataReceived(requestId, currentTime(), dataLength, encodedDataLength);
}
-void InspectorResourceAgent::didFinishLoading(unsigned long identifier, DocumentLoader* loader, double monotonicFinishTime)
+void InspectorResourceAgent::didFinishLoading(unsigned long identifier, DocumentLoader* loader, double monotonicFinishTime, int64_t encodedDataLength)
{
double finishTime = 0.0;
// FIXME: Expose all of the timing details to inspector and have it calculate finishTime.
m_resourcesData->maybeDecodeDataToContent(requestId);
if (!finishTime)
finishTime = currentTime();
- m_frontend->loadingFinished(requestId, finishTime);
+ m_frontend->loadingFinished(requestId, finishTime, encodedDataLength);
}
void InspectorResourceAgent::didReceiveCORSRedirectResponse(Frame* frame, unsigned long identifier, DocumentLoader* loader, const ResourceResponse& response, ResourceLoader* resourceLoader)
{
// Update the response and finish loading
didReceiveResourceResponse(frame, identifier, loader, response, resourceLoader);
- didFinishLoading(identifier, loader, 0);
+ didFinishLoading(identifier, loader, 0, blink::WebURLLoaderClient::kUnknownEncodedDataLength);
}
-void InspectorResourceAgent::didFailLoading(unsigned long identifier, DocumentLoader* loader, const ResourceError& error)
+void InspectorResourceAgent::didFailLoading(unsigned long identifier, const ResourceError& error)
{
String requestId = IdentifiersFactory::requestId(identifier);
bool canceled = error.isCancellation();
m_frontend->webSocketClosed(IdentifiersFactory::requestId(identifier), currentTime());
}
-void InspectorResourceAgent::didReceiveWebSocketFrame(unsigned long identifier, const WebSocketFrame& frame)
+void InspectorResourceAgent::didReceiveWebSocketFrame(unsigned long identifier, int opCode, bool masked, const char* payload, size_t payloadLength)
{
RefPtr<TypeBuilder::Network::WebSocketFrame> frameObject = TypeBuilder::Network::WebSocketFrame::create()
- .setOpcode(frame.opCode)
- .setMask(frame.masked)
- .setPayloadData(String(frame.payload, frame.payloadLength));
+ .setOpcode(opCode)
+ .setMask(masked)
+ .setPayloadData(String(payload, payloadLength));
m_frontend->webSocketFrameReceived(IdentifiersFactory::requestId(identifier), currentTime(), frameObject);
}
-void InspectorResourceAgent::didSendWebSocketFrame(unsigned long identifier, const WebSocketFrame& frame)
+void InspectorResourceAgent::didSendWebSocketFrame(unsigned long identifier, int opCode, bool masked, const char* payload, size_t payloadLength)
{
RefPtr<TypeBuilder::Network::WebSocketFrame> frameObject = TypeBuilder::Network::WebSocketFrame::create()
- .setOpcode(frame.opCode)
- .setMask(frame.masked)
- .setPayloadData(String(frame.payload, frame.payloadLength));
+ .setOpcode(opCode)
+ .setMask(masked)
+ .setPayloadData(String(payload, payloadLength));
m_frontend->webSocketFrameSent(IdentifiersFactory::requestId(identifier), currentTime(), frameObject);
}