diff options
Diffstat (limited to 'WebCore/inspector/InspectorResource.h')
-rw-r--r-- | WebCore/inspector/InspectorResource.h | 40 |
1 files changed, 35 insertions, 5 deletions
diff --git a/WebCore/inspector/InspectorResource.h b/WebCore/inspector/InspectorResource.h index 4004142..914232e 100644 --- a/WebCore/inspector/InspectorResource.h +++ b/WebCore/inspector/InspectorResource.h @@ -34,6 +34,8 @@ #include "HTTPHeaderMap.h" #include "KURL.h" #include "ScriptString.h" +#include "WebSocketHandshakeRequest.h" +#include "WebSocketHandshakeResponse.h" #include <wtf/CurrentTime.h> #include <wtf/OwnPtr.h> @@ -51,6 +53,11 @@ namespace WebCore { class ResourceRequest; class ResourceResponse; +#if ENABLE(WEB_SOCKETS) + class WebSocketHandshakeRequest; + class WebSocketHandshakeResponse; +#endif + class InspectorResource : public RefCounted<InspectorResource> { public: @@ -63,16 +70,19 @@ namespace WebCore { Script, XHR, Media, + WebSocket, Other }; - static PassRefPtr<InspectorResource> create(unsigned long identifier, DocumentLoader* loader, const KURL& requestURL) - { - return adoptRef(new InspectorResource(identifier, loader, requestURL)); - } + static PassRefPtr<InspectorResource> create(unsigned long identifier, DocumentLoader* loader, const KURL& requestURL); static PassRefPtr<InspectorResource> createCached(unsigned long identifier, DocumentLoader*, const CachedResource*); +#if ENABLE(WEB_SOCKETS) + // WebSocket resource doesn't have its loader. For WebSocket resources, m_loader and m_frame will become null. + static PassRefPtr<InspectorResource> createWebSocket(unsigned long identifier, const KURL& requestURL, const KURL& documentURL); +#endif + ~InspectorResource(); PassRefPtr<InspectorResource> appendRedirect(unsigned long identifier, const KURL& redirectURL); @@ -80,8 +90,14 @@ namespace WebCore { void releaseScriptObject(InspectorFrontend* frontend); void updateRequest(const ResourceRequest&); + void markAsCached(); void updateResponse(const ResourceResponse&); +#if ENABLE(WEB_SOCKETS) + void updateWebSocketRequest(const WebSocketHandshakeRequest&); + void updateWebSocketResponse(const WebSocketHandshakeResponse&); +#endif + void setOverrideContent(const ScriptString& data, Type); String sourceString() const; @@ -102,7 +118,7 @@ namespace WebCore { void startTiming(); void markLoadEventTime(); void markDOMContentEventTime(); - void endTiming(); + void endTiming(double actualEndTime); void markFailed(); void addLength(int lengthReceived); @@ -149,10 +165,15 @@ namespace WebCore { Type cachedResourceType() const; CachedResource* cachedResource() const; +#if ENABLE(WEB_SOCKETS) + void markWebSocket() { m_isWebSocket = true; } +#endif + unsigned long m_identifier; RefPtr<DocumentLoader> m_loader; RefPtr<Frame> m_frame; KURL m_requestURL; + KURL m_documentURL; HTTPHeaderMap m_requestHeaderFields; HTTPHeaderMap m_responseHeaderFields; String m_mimeType; @@ -179,6 +200,15 @@ namespace WebCore { String m_requestMethod; String m_requestFormData; Vector<RefPtr<InspectorResource> > m_redirects; + +#if ENABLE(WEB_SOCKETS) + bool m_isWebSocket; + + // The following fields are not used for resources other than WebSocket. + // We allocate them dynamically to reduce memory consumption for regular resources. + OwnPtr<WebSocketHandshakeRequest::Key3> m_webSocketRequestKey3; + OwnPtr<WebSocketHandshakeResponse::ChallengeResponse> m_webSocketChallengeResponse; +#endif }; } // namespace WebCore |