Get rid of PlatformResponse, the platform specific response object is stored inside of
the ResourceResponse object now. This also gets rid of receivedResponse in ResourceHandleClient.
* bridge/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge getData:andResponse:forURL:]):
(-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
* loader/CachedResource.cpp:
(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::~CachedResource):
* loader/CachedResource.h:
(WebCore::CachedResource::response):
* loader/loader.cpp:
* loader/loader.h:
* loader/mac/ImageDocumentMac.mm:
(WebCore::finishImageLoad):
* loader/mac/LoaderFunctionsMac.mm:
(WebCore::CheckCacheObjectStatus):
* loader/mac/SubresourceLoaderMac.mm:
(WebCore::SubresourceLoader::didReceiveResponse):
* platform/network/ResourceHandle.h:
* platform/network/ResourceResponse.h:
(WebCore::ResourceResponse::nsURLResponse):
(WebCore::ResourceResponse::cfURLResponse):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::didReceiveResponse):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@17937
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2006-11-29 Anders Carlsson <acarlsson@apple.com>
+
+ Reviewed by Brady.
+
+ Get rid of PlatformResponse, the platform specific response object is stored inside of
+ the ResourceResponse object now. This also gets rid of receivedResponse in ResourceHandleClient.
+
+ * bridge/mac/WebCoreFrameBridge.mm:
+ (-[WebCoreFrameBridge getData:andResponse:forURL:]):
+ (-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
+ * loader/CachedResource.cpp:
+ (WebCore::CachedResource::CachedResource):
+ (WebCore::CachedResource::~CachedResource):
+ * loader/CachedResource.h:
+ (WebCore::CachedResource::response):
+ * loader/loader.cpp:
+ * loader/loader.h:
+ * loader/mac/ImageDocumentMac.mm:
+ (WebCore::finishImageLoad):
+ * loader/mac/LoaderFunctionsMac.mm:
+ (WebCore::CheckCacheObjectStatus):
+ * loader/mac/SubresourceLoaderMac.mm:
+ (WebCore::SubresourceLoader::didReceiveResponse):
+ * platform/network/ResourceHandle.h:
+ * platform/network/ResourceResponse.h:
+ (WebCore::ResourceResponse::nsURLResponse):
+ (WebCore::ResourceResponse::cfURLResponse):
+ * platform/network/mac/ResourceHandleMac.mm:
+ (WebCore::ResourceHandle::didReceiveResponse):
+
2006-11-29 Justin Garcia <justin.garcia@apple.com>
Reviewed by sullivan
return NO;
*data = resource->allData();
- *response = resource->platformResponse();
+ *response = resource->response().nsURLResponse();
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().nsURLResponse()];
}
*datas = [d autorelease];
m_inCache = false;
m_cachePolicy = cachePolicy;
m_request = 0;
- m_platformResponse = 0;
m_allData = 0;
m_expireDateChanged = false;
m_accessCount = 0;
#ifndef NDEBUG
m_deleted = true;
#endif
- setPlatformResponse(0);
setAllData(0);
}
void setRequest(Request*);
- PlatformResponse platformResponse() const { return m_platformResponse; }
- void setPlatformResponse(PlatformResponse);
PlatformData allData() const { return m_allData; }
void setAllData(PlatformData);
void setResponse(const ResourceResponse& response) { m_response = response; }
-
+ const ResourceResponse& response() const { return m_response; }
+
bool canDelete() const { return !referenced() && !m_request; }
bool isExpired() const;
#endif
ResourceResponse m_response;
- PlatformResponse m_platformResponse;
PlatformData m_allData;
Type m_type;
servePendingRequests();
}
-void Loader::receivedResponse(ResourceHandle* handle, PlatformResponse response)
-{
- Request* req = m_requestsLoading.get(handle);
- ASSERT(req);
-#if !PLATFORM(WIN)
- // FIXME: the win32 platform does not have PlatformResponse yet.
- ASSERT(response);
-#endif
- req->cachedResource()->setPlatformResponse(response);
-}
-
void Loader::didReceiveResponse(ResourceHandle* handle, const ResourceResponse& response)
{
Request* req = m_requestsLoading.get(handle);
ResourceHandle* jobForRequest(const String& URL) const;
private:
- virtual void receivedResponse(ResourceHandle*, PlatformResponse);
virtual void didReceiveResponse(ResourceHandle*, const ResourceResponse&);
virtual void didReceiveData(ResourceHandle*, const char*, int);
virtual void receivedAllData(ResourceHandle*, PlatformData);
Frame* frame = document->frame();
NSURLResponse *response = frame->loader()->documentLoader()->response();
- image->setPlatformResponse(response);
IntSize size = image->imageSize();
if (size.width())
return;
}
- ASSERT(cachedResource->platformResponse());
-
// 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().nsURLResponse();
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)
-{
- HardRetain(response);
- BEGIN_BLOCK_OBJC_EXCEPTIONS;
- HardRelease(m_platformResponse);
- END_BLOCK_OBJC_EXCEPTIONS;
-
- m_platformResponse = response;
-}
-
void CachedResource::setAllData(PlatformData allData)
{
HardRetain(allData);
// anything including removing the last reference to this object; one example of this is 3266216.
RefPtr<SubresourceLoader> protect(this);
- m_handle->receivedResponse(r);
+ m_handle->didReceiveResponse(r);
// The loader can cancel a load if it receives a multipart response for a non-image
if (reachedTerminalState())
return;
#if PLATFORM(MAC)
NSURLRequest *willSendRequest(NSURLRequest *, NSURLResponse *);
+ void didReceiveResponse(NSURLResponse *);
void addData(NSData *);
void finishJobAndHandle(NSData *);
void reportError(NSError* error);
ResourceHandleClient* client() const;
- void receivedResponse(PlatformResponse);
-
const HTTPHeaderMap& requestHeaders() const;
const KURL& url() const;
const String& method() const;
ResourceResponse(NSURLResponse* nsResponse)
: m_isUpToDate(false)
, m_nsResponse(nsResponse) { }
+
+ NSURLResponse *nsURLResponse() const { return m_nsResponse.get(); }
#elif USE(CFNETWORK)
ResourceResponse(CFURLResponseRef cfResponse)
: m_isUpToDate(false)
, m_cfResponse(cfResponse) { }
+
+ CFURLResponseRef cfURLResponse() const { return m_cfResponse.get(); }
#endif
private:
return false;
}
-void ResourceHandle::receivedResponse(NSURLResponse* nsResponse)
+void ResourceHandle::didReceiveResponse(NSURLResponse* nsResponse)
{
ASSERT(nsResponse);
- if (client()) {
- client()->receivedResponse(this, nsResponse);
- client()->didReceiveResponse(this, nsResponse);
- }
+ if (ResourceHandleClient* c = client())
+ c->didReceiveResponse(this, nsResponse);
}
void ResourceHandle::cancel()