summaryrefslogtreecommitdiffstats
path: root/WebCore/inspector/InspectorResource.h
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2010-09-29 17:32:26 +0100
committerSteve Block <steveblock@google.com>2010-09-29 17:35:08 +0100
commit68513a70bcd92384395513322f1b801e7bf9c729 (patch)
tree161b50f75a5921d61731bb25e730005994fcec85 /WebCore/inspector/InspectorResource.h
parentfd5c6425ce58eb75211be7718d5dee960842a37e (diff)
downloadexternal_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.h40
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