- roll back some network changes accidentally committed with a previous patch.
* WebCore.xcodeproj/project.pbxproj:
* bridge/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge getData:andResponse:forURL:]):
(-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
* loader/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::checkNotify):
* loader/CachedImage.cpp:
(WebCore::CachedImage::createImage):
* loader/CachedResource.cpp:
(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::~CachedResource):
(WebCore::CachedResource::setExpireDate):
(WebCore::CachedResource::isExpired):
* loader/CachedResource.h:
(WebCore::CachedResource::response):
* loader/LoaderFunctions.h:
* loader/loader.cpp:
(WebCore::Loader::receivedResponse):
(WebCore::Loader::didReceivedResponse):
* loader/loader.h:
* loader/mac/FormDataStream.h:
* loader/mac/FormDataStream.m:
(WebCore::formCreate):
(WebCore::formFinalize):
* loader/mac/ImageDocumentMac.mm:
(WebCore::finishImageLoad):
* loader/mac/LoaderFunctionsMac.mm:
(WebCore::CheckCacheObjectStatus):
(WebCore::CachedResource::setResponse):
* loader/mac/SubresourceLoaderMac.mm:
(WebCore::SubresourceLoader::willSendRequest):
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::receivedRedirect):
* platform/network/ResourceRequest.h:
* platform/network/ResourceResponse.h:
(WebCore::ResourceResponse::ResourceResponse):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::redirectedToURL):
* xml/xmlhttprequest.cpp:
(WebCore::XMLHttpRequest::receivedRedirect):
* xml/xmlhttprequest.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@17582
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2006-11-03 Maciej Stachowiak <mjs@apple.com>
+
+ Not reviewed, fix for accidental commit.
+
+ - roll back some network changes accidentally committed with a previous patch.
+
+ * WebCore.xcodeproj/project.pbxproj:
+ * bridge/mac/WebCoreFrameBridge.mm:
+ (-[WebCoreFrameBridge getData:andResponse:forURL:]):
+ (-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
+ * loader/CachedCSSStyleSheet.cpp:
+ (WebCore::CachedCSSStyleSheet::checkNotify):
+ * loader/CachedImage.cpp:
+ (WebCore::CachedImage::createImage):
+ * loader/CachedResource.cpp:
+ (WebCore::CachedResource::CachedResource):
+ (WebCore::CachedResource::~CachedResource):
+ (WebCore::CachedResource::setExpireDate):
+ (WebCore::CachedResource::isExpired):
+ * loader/CachedResource.h:
+ (WebCore::CachedResource::response):
+ * loader/LoaderFunctions.h:
+ * loader/loader.cpp:
+ (WebCore::Loader::receivedResponse):
+ (WebCore::Loader::didReceivedResponse):
+ * loader/loader.h:
+ * loader/mac/FormDataStream.h:
+ * loader/mac/FormDataStream.m:
+ (WebCore::formCreate):
+ (WebCore::formFinalize):
+ * loader/mac/ImageDocumentMac.mm:
+ (WebCore::finishImageLoad):
+ * loader/mac/LoaderFunctionsMac.mm:
+ (WebCore::CheckCacheObjectStatus):
+ (WebCore::CachedResource::setResponse):
+ * loader/mac/SubresourceLoaderMac.mm:
+ (WebCore::SubresourceLoader::willSendRequest):
+ * platform/network/ResourceHandle.h:
+ * platform/network/ResourceHandleClient.h:
+ (WebCore::ResourceHandleClient::receivedRedirect):
+ * platform/network/ResourceRequest.h:
+ * platform/network/ResourceResponse.h:
+ (WebCore::ResourceResponse::ResourceResponse):
+ * platform/network/mac/ResourceHandleMac.mm:
+ (WebCore::ResourceHandle::redirectedToURL):
+ * xml/xmlhttprequest.cpp:
+ (WebCore::XMLHttpRequest::receivedRedirect):
+ * xml/xmlhttprequest.h:
+
2006-11-03 Anders Carlsson <acarlsson@apple.com>
Rubber-stamped by Oliver.
51F11E150A48C2920034A24E /* SQLTransaction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F11E140A48C2920034A24E /* SQLTransaction.cpp */; };
550A0BC9085F6039007353D6 /* QualifiedName.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 550A0BC7085F6039007353D6 /* QualifiedName.cpp */; };
550A0BCA085F6039007353D6 /* QualifiedName.h in Headers */ = {isa = PBXBuildFile; fileRef = 550A0BC8085F6039007353D6 /* QualifiedName.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 650E3F690AF6C168001FA3AD /* ResourceRequestMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 650E3F670AF6C168001FA3AD /* ResourceRequestMac.h */; };
- 650E3F6A0AF6C168001FA3AD /* ResourceRequestMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 650E3F680AF6C168001FA3AD /* ResourceRequestMac.mm */; };
650F53DC09D15DDA00C9B0C8 /* CSSGrammar.h in Headers */ = {isa = PBXBuildFile; fileRef = 650F53DB09D15DDA00C9B0C8 /* CSSGrammar.h */; };
650F53DD09D15DDF00C9B0C8 /* CSSGrammar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6565814409D13043000E61D7 /* CSSGrammar.cpp */; };
651B4D8509AC83370029F1EF /* DeprecatedStringList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 651B4D8309AC83370029F1EF /* DeprecatedStringList.cpp */; };
6550B6A6099DF0270090D781 /* Text.h in Headers */ = {isa = PBXBuildFile; fileRef = 6550B69C099DF0270090D781 /* Text.h */; settings = {ATTRIBUTES = (Private, ); }; };
6552E7AA096AA11B0006F248 /* WebCoreFrameNamespaces.h in Headers */ = {isa = PBXBuildFile; fileRef = 6552E7A8096AA11B0006F248 /* WebCoreFrameNamespaces.h */; settings = {ATTRIBUTES = (Private, ); }; };
6552E7AB096AA11B0006F248 /* WebCoreFrameNamespaces.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6552E7A9096AA11B0006F248 /* WebCoreFrameNamespaces.mm */; };
- 655A81BE0AEF67E6000975F0 /* HTTPHeaderMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 655A81BD0AEF67E6000975F0 /* HTTPHeaderMap.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 655A81BE0AEF67E6000975F0 /* HTTPHeaderMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 655A81BD0AEF67E6000975F0 /* HTTPHeaderMap.h */; };
6563A9A70ADF4094000ED2CD /* LoaderNSURLRequestExtras.h in Headers */ = {isa = PBXBuildFile; fileRef = 6563A9A50ADF4094000ED2CD /* LoaderNSURLRequestExtras.h */; };
6563A9A80ADF4094000ED2CD /* LoaderNSURLRequestExtras.m in Sources */ = {isa = PBXBuildFile; fileRef = 6563A9A60ADF4094000ED2CD /* LoaderNSURLRequestExtras.m */; };
656580F409D12B20000E61D7 /* CSSPropertyNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 656580EF09D12B20000E61D7 /* CSSPropertyNames.h */; };
6582A16309999D6D00BEEB6D /* SystemTimeMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6582A15509999D6D00BEEB6D /* SystemTimeMac.cpp */; };
6582A17809999EA000BEEB6D /* DeprecatedStringMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6582A17709999EA000BEEB6D /* DeprecatedStringMac.mm */; };
658436860AE01B7400E53753 /* FrameLoadRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 658436850AE01B7400E53753 /* FrameLoadRequest.h */; };
- 658821660AF4CDF700F01D1F /* ResourceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 658821650AF4CDF700F01D1F /* ResourceResponse.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 658821660AF4CDF700F01D1F /* ResourceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 658821650AF4CDF700F01D1F /* ResourceResponse.h */; };
6588216B0AF4CE1200F01D1F /* ResourceResponseMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 658821680AF4CE1200F01D1F /* ResourceResponseMac.h */; };
6588216C0AF4CE1200F01D1F /* ResourceResponseMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 658821690AF4CE1200F01D1F /* ResourceResponseMac.mm */; };
65901A4409FC6039005BD752 /* WebCoreStringTruncator.h in Headers */ = {isa = PBXBuildFile; fileRef = 65901A4209FC6039005BD752 /* WebCoreStringTruncator.h */; settings = {ATTRIBUTES = (Private, ); }; };
55998A5B052B59CC0017A6C1 /* WebCoreAXObject.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebCoreAXObject.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
55998A5C052B59CC0017A6C1 /* AXObjectCache.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = AXObjectCache.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
55998A5D052B59CC0017A6C1 /* AXObjectCacheMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AXObjectCacheMac.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
- 650E3F670AF6C168001FA3AD /* ResourceRequestMac.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ResourceRequestMac.h; sourceTree = "<group>"; };
- 650E3F680AF6C168001FA3AD /* ResourceRequestMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = ResourceRequestMac.mm; sourceTree = "<group>"; };
650F53DB09D15DDA00C9B0C8 /* CSSGrammar.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CSSGrammar.h; sourceTree = "<group>"; };
651B4D8309AC83370029F1EF /* DeprecatedStringList.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DeprecatedStringList.cpp; sourceTree = "<group>"; };
651B4D8409AC83370029F1EF /* DeprecatedStringList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DeprecatedStringList.h; sourceTree = "<group>"; };
isa = PBXGroup;
children = (
656B84EA0AEA1DDA00A095B4 /* ResourceHandleMac.mm */,
- 650E3F670AF6C168001FA3AD /* ResourceRequestMac.h */,
- 650E3F680AF6C168001FA3AD /* ResourceRequestMac.mm */,
658821680AF4CE1200F01D1F /* ResourceResponseMac.h */,
658821690AF4CE1200F01D1F /* ResourceResponseMac.mm */,
);
93E22A730AF5E94C00D48324 /* PageState.h in Headers */,
658821660AF4CDF700F01D1F /* ResourceResponse.h in Headers */,
6588216B0AF4CE1200F01D1F /* ResourceResponseMac.h in Headers */,
- 650E3F690AF6C168001FA3AD /* ResourceRequestMac.h in Headers */,
93CCF0270AF6C52900018E89 /* NavigationAction.h in Headers */,
B2A015A90AF6CD53006BCE0E /* GraphicsContext.h in Headers */,
B2A015AB0AF6CD53006BCE0E /* GraphicsTypes.h in Headers */,
93E227E30AF589AD00D48324 /* ResourceLoader.cpp in Sources */,
93E227E40AF589AD00D48324 /* SubresourceLoader.cpp in Sources */,
93E22A6F0AF5E94100D48324 /* PageState.cpp in Sources */,
- 650E3F6A0AF6C168001FA3AD /* ResourceRequestMac.mm in Sources */,
93CCF0580AF6C9FE00018E89 /* NavigationActionMac.mm in Sources */,
93CCF0600AF6CA7600018E89 /* NavigationAction.cpp in Sources */,
B2A015A80AF6CD53006BCE0E /* GraphicsContext.cpp in Sources */,
return NO;
*data = resource->allData();
- *response = resource->platformResponse();
+ *response = resource->response();
return YES;
}
HashMap<String, CachedResource*>::const_iterator end = allResources.end();
for (HashMap<String, CachedResource*>::const_iterator it = allResources.begin(); it != end; ++it) {
[d addObject:it->second->allData()];
- [r addObject:it->second->platformResponse()];
+ [r addObject:it->second->response()];
}
*datas = [d autorelease];
return;
CachedResourceClientWalker w(m_clients);
- while (CachedResourceClient *c = w.next())
- c->setCSSStyleSheet(m_response.url().url(), m_decoder->encoding().name(), m_sheet);
+ while (CachedResourceClient *c = w.next()) {
+ if (m_response && !IsResponseURLEqualToURL(m_response, m_url))
+ c->setCSSStyleSheet(ResponseURL(m_response), m_decoder->encoding().name(), m_sheet);
+ else
+ c->setCSSStyleSheet(m_url, m_decoder->encoding().name(), m_sheet);
+ }
}
void CachedCSSStyleSheet::error()
{
// Create the image if it doesn't yet exist.
if (!m_image)
- m_image = new Image(this, m_response.mimeType() == "application/pdf");
+ m_image = new Image(this, ResponseMIMEType(m_response) == "application/pdf");
}
Vector<char>& CachedImage::bufferData(const char* bytes, int addedSize, Request* request)
namespace WebCore {
-CachedResource::CachedResource(const String& URL, Type type, CachePolicy cachePolicy, unsigned size)
+CachedResource::CachedResource(const String& URL, Type type, CachePolicy cachePolicy, time_t expireDate, unsigned size)
{
m_url = URL;
m_type = type;
m_inCache = false;
m_cachePolicy = cachePolicy;
m_request = 0;
- m_platformResponse = 0;
+ m_response = 0;
m_allData = 0;
+ m_expireDate = expireDate;
m_expireDateChanged = false;
m_accessCount = 0;
m_nextInLRUList = 0;
#ifndef NDEBUG
m_deleted = true;
#endif
- setPlatformResponse(0);
+ setResponse(0);
setAllData(0);
}
m_expireDateChanged = false;
}
+void CachedResource::setExpireDate(time_t expireDate, bool changeHttpCache)
+{
+ if (expireDate == m_expireDate)
+ return;
+
+ if (m_status == Cached)
+ finish();
+
+ m_expireDate = expireDate;
+ if (changeHttpCache && m_expireDate)
+ m_expireDateChanged = true;
+}
+
bool CachedResource::isExpired() const
{
- if (!m_response.expirationDate())
+ if (!m_expireDate)
return false;
time_t now = time(0);
- return (difftime(now, m_response.expirationDate()) >= 0);
+ return (difftime(now, m_expireDate) >= 0);
}
void CachedResource::setRequest(Request* request)
#include "CachePolicy.h"
#include "PlatformString.h"
#include "ResourceHandleClient.h" // defines PlatformResponse and PlatformData
-#include "ResourceResponse.h"
#include <wtf/HashSet.h>
#include <wtf/Vector.h>
#include <time.h>
Cached // regular case
};
- CachedResource(const String& URL, Type type, CachePolicy cachePolicy, unsigned size = 0);
+ CachedResource(const String& URL, Type type, CachePolicy cachePolicy, time_t expireDate, unsigned size = 0);
virtual ~CachedResource();
virtual void setEncoding(const String&) { }
void setRequest(Request*);
- PlatformResponse platformResponse() const { return m_platformResponse; }
- void setPlatformResponse(PlatformResponse);
+ PlatformResponse response() const { return m_response; }
+ void setResponse(PlatformResponse);
PlatformData allData() const { return m_allData; }
void setAllData(PlatformData);
- void setResponse(const ResourceResponse& response) { m_response = response; }
-
bool canDelete() const { return !referenced() && !m_request; }
+ void setExpireDate(time_t expireDate, bool changeHttpCache);
+
bool isExpired() const;
virtual bool schedule() const { return false; }
RetainPtr<NSURLRequest> m_nsURLRequest;
#endif
- ResourceResponse m_response;
- PlatformResponse m_platformResponse;
+ PlatformResponse m_response;
PlatformData m_allData;
Type m_type;
unsigned m_accessCount;
protected:
+ time_t m_expireDate;
CachePolicy m_cachePolicy;
bool m_inCache;
bool m_loading;
void CheckCacheObjectStatus(DocLoader*, CachedResource*);
bool CheckIfReloading(DocLoader*);
+bool IsResponseURLEqualToURL(PlatformResponse , const String& URL);
+DeprecatedString ResponseURL(PlatformResponse);
+DeprecatedString ResponseMIMEType(PlatformResponse);
+bool ResponseIsMultipart(PlatformResponse);
+NSString* HeaderStringFromDictionary(NSDictionary* headers, int statusCode);
}
// FIXME: the win32 platform does not have PlatformResponse yet.
ASSERT(response);
#endif
- req->cachedResource()->setPlatformResponse(response);
+ req->cachedResource()->setResponse(response);
}
-void Loader::didReceiveResponse(ResourceHandle* handle, const ResourceResponse& response)
+void Loader::didReceivedResponse(ResourceHandle* handle, const ResourceResponse& response)
{
Request* req = m_requestsLoading.get(handle);
ASSERT(req);
- req->cachedResource()->setResponse(response);
+ req->cachedResource()->setExpireDate(response.expirationDate(), false);
String encoding = response.textEncodingName();
if (!encoding.isNull())
private:
virtual void receivedResponse(ResourceHandle*, PlatformResponse);
- virtual void didReceiveResponse(ResourceHandle* handle, const ResourceResponse& response);
+ virtual void didReceivedResponse(ResourceHandle* handle, const ResourceResponse& response);
virtual void didReceiveData(ResourceHandle*, const char*, int);
virtual void receivedAllData(ResourceHandle*, PlatformData);
namespace WebCore {
class FormData;
void setHTTPBody(NSMutableURLRequest *, const FormData&);
- const FormData* httpBodyFromStream(NSInputStream* stream);
}
#import <sys/stat.h>
#import <sys/types.h>
#import <wtf/Assertions.h>
-#import <wtf/HashMap.h>
namespace WebCore {
-static HashMap<CFReadStreamRef, const FormData*>* streamFormDatas = 0;
-
-static HashMap<CFReadStreamRef, const FormData*>* getStreamFormDatas()
-{
- if (!streamFormDatas)
- streamFormDatas = new HashMap<CFReadStreamRef, const FormData*>();
- return streamFormDatas;
-}
-
static void formEventCallback(CFReadStreamRef stream, CFStreamEventType type, void* context);
struct FormStreamFields {
for (size_t i = 0; i < size; ++i)
newInfo->remainingElements.append(formData->elements()[size - i - 1]);
- getStreamFormDatas()->set(stream, new FormData(*formData));
-
return newInfo;
}
{
FormStreamFields* form = static_cast<FormStreamFields*>(context);
- delete getStreamFormDatas()->get(stream);
- getStreamFormDatas()->remove(stream);
-
closeCurrentStream(form);
CFRelease(form->scheduledRunLoopPairs);
delete form;
CFRelease(stream);
}
-
-const FormData* httpBodyFromStream(NSInputStream* stream)
-{
- return getStreamFormDatas()->get((CFReadStreamRef)stream);
-}
-
}
Frame* frame = document->frame();
NSURLResponse *response = frame->loader()->documentLoader()->response();
- image->setPlatformResponse(response);
+ image->setResponse(response);
IntSize size = image->imageSize();
if (size.width())
return;
}
- ASSERT(cachedResource->platformResponse());
+ ASSERT(cachedResource->response());
// Notify the caller that we "loaded".
FrameMac *frame = static_cast<FrameMac *>(loader->frame());
return;
NSURLRequest *request = cachedResource->getNSURLRequest();
- NSURLResponse *response = cachedResource->platformResponse();
+ NSURLResponse *response = cachedResource->response();
NSData *data = cachedResource->allData();
// FIXME: If the WebKit client changes or cancels the request, WebCore does not respect this and continues the load.
return false;
}
-void CachedResource::setPlatformResponse(PlatformResponse response)
+void CachedResource::setResponse(PlatformResponse response)
{
HardRetain(response);
BEGIN_BLOCK_OBJC_EXCEPTIONS;
- HardRelease(m_platformResponse);
+ HardRelease(m_response);
END_BLOCK_OBJC_EXCEPTIONS;
- m_platformResponse = response;
+ m_response = response;
}
void CachedResource::setAllData(PlatformData allData)
NSURL *oldURL = [request() URL];
NSURLRequest *clientRequest = ResourceLoader::willSendRequest(newRequest, redirectResponse);
if (clientRequest && oldURL != [clientRequest URL] && ![oldURL isEqual:[clientRequest URL]])
- clientRequest = m_handle->willSendRequest(clientRequest, redirectResponse);
+ m_handle->redirectedToURL([clientRequest URL]);
return clientRequest;
}
#if PLATFORM(MAC)
#ifdef __OBJC__
@class WebCoreResourceLoaderImp;
-@class NSURLRequest;
-@class NSURLResponse;
#else
class WebCoreResourceLoaderImp;
-class NSURLRequest;
-class NSURLResponse;
#endif
#endif
void kill();
#if PLATFORM(MAC)
- NSURLRequest *willSendRequest(NSURLRequest *, NSURLResponse *);
+ void redirectedToURL(NSURL *url);
void addData(NSData *data);
void finishJobAndHandle(NSData *data);
void reportError();
class KURL;
class ResourceHandle;
- class ResourceRequest;
class ResourceResponse;
class ResourceHandleClient {
virtual ~ResourceHandleClient() { }
// request may be modified
- virtual void willSendRequest(ResourceHandle*, ResourceRequest&, const ResourceResponse& redirectResponse) { }
+ // void willSendRequest(ResourceHandle*, Request&, const ResourceResonse& redirectResponse) { }
// void didReceiveAuthenticationChallenge(ResourceHandle*, const AuthenticationChallenge&) { }
// void didCancelAuthenticationChallenge(ResourceHandle*, const AuthenticationChallenge&) { }
// void willCacheResponse(ResourceHandle*, CachedResourceResponse&) { }
// old-style methods
+ virtual void receivedRedirect(ResourceHandle*, const KURL&) { }
virtual void receivedResponse(ResourceHandle*, PlatformResponse) { }
virtual void receivedAllData(ResourceHandle*, PlatformData) { }
};
FormData& httpBody() { return m_httpBody; }
void setHTTPBody(const FormData& httpBody) { m_httpBody = httpBody; }
- bool allowHTTPCookies() const { return m_allowHTTPCookies; }
- void setAllowHTTPCookies(bool allowHTTPCookies) { m_allowHTTPCookies = allowHTTPCookies; }
+ bool allowHTTPCookies() const;
+ void setAllowHTTPCookies(bool);
private:
static const int defaultTimeoutInterval = 60;
class ResourceResponse {
public:
- ResourceResponse()
- : m_expectedContentLength(0)
- , m_httpStatusCode(0)
- , m_expirationDate(0)
- {
- }
+ ResourceResponse() : m_expectedContentLength(0), m_httpStatusCode(0) {}
ResourceResponse(const KURL& url, const String& mimeType, long long expectedLength, const String& textEncodingName, const String& filename)
: m_url(url)
, m_textEncodingName(textEncodingName)
, m_suggestedFilename(filename)
, m_httpStatusCode(0)
- , m_expirationDate(0)
{
}
const HTTPHeaderMap& httpHeaderFields() const { return m_httpHeaderFields; }
HTTPHeaderMap& httpHeaderFields() { return m_httpHeaderFields; }
+ // possibly add calculated expiration info
+ // lastModifiedDate (date)
+
bool isMultipart() const { return m_mimeType == "multipart/x-mixed-replace"; }
void setExpirationDate(time_t expirationDate) { m_expirationDate = expirationDate; }
/*
- * Copyright (C) 2004, 2006 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2004 Apple Computer, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
#import "KURL.h"
#import "LoaderFunctions.h"
#import "Logging.h"
-#import "ResourceRequestMac.h"
#import "ResourceResponse.h"
#import "ResourceResponseMac.h"
#import "WebCoreFrameBridge.h"
d->m_subresourceLoader->cancel();
}
-NSURLRequest *ResourceHandle::willSendRequest(NSURLRequest *nsRequest, NSURLResponse* nsRedirectResponse)
+void ResourceHandle::redirectedToURL(NSURL *url)
{
- ASSERT(nsRequest);
- if (ResourceHandleClient* c = client()) {
- ResourceRequest request;
- getResourceRequest(request, nsRequest);
- ResourceResponse redirectResponse;
- getResourceResponse(redirectResponse, nsRedirectResponse);
- c->willSendRequest(this, request, redirectResponse);
- return nsURLRequest(request);
- }
-
- return nsRequest;
+ ASSERT(url);
+ if (ResourceHandleClient* c = client())
+ c->receivedRedirect(this, KURL(url));
}
void ResourceHandle::addData(NSData *data)
}
}
-void XMLHttpRequest::willSendRequest(ResourceHandle*, ResourceRequest& request, const ResourceResponse& redirectResponse)
+void XMLHttpRequest::receivedRedirect(ResourceHandle*, const KURL& m_url)
{
- if (!urlMatchesDocumentDomain(request.url()))
+ if (!urlMatchesDocumentDomain(m_url))
abort();
}
private:
bool urlMatchesDocumentDomain(const KURL&) const;
- virtual void willSendRequest(ResourceHandle*, ResourceRequest& request, const ResourceResponse& redirectResponse);
+ virtual void receivedRedirect(ResourceHandle*, const KURL&);
virtual void didReceiveResponse(ResourceHandle*, const ResourceResponse&);
virtual void didReceiveData(ResourceHandle*, const char* data, int size);
virtual void didFinishLoading(ResourceHandle*);