diff options
author | Steve Block <steveblock@google.com> | 2010-09-29 17:32:26 +0100 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2010-09-29 17:35:08 +0100 |
commit | 68513a70bcd92384395513322f1b801e7bf9c729 (patch) | |
tree | 161b50f75a5921d61731bb25e730005994fcec85 /WebCore/inspector/InspectorResource.h | |
parent | fd5c6425ce58eb75211be7718d5dee960842a37e (diff) | |
download | external_webkit-68513a70bcd92384395513322f1b801e7bf9c729.zip external_webkit-68513a70bcd92384395513322f1b801e7bf9c729.tar.gz external_webkit-68513a70bcd92384395513322f1b801e7bf9c729.tar.bz2 |
Merge WebKit at r67908: Initial merge by Git
Change-Id: I43a553e7b3299b28cb6ee8aa035ed70fe342b972
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 |