#include "wtf/Assertions.h"
#include "wtf/CurrentTime.h"
-namespace WebCore {
+namespace blink {
ResourceLoader::RequestCountTracker::RequestCountTracker(ResourceLoaderHost* host, Resource* resource)
: m_host(host)
m_host->incrementRequestCount(m_resource);
}
-PassRefPtr<ResourceLoader> ResourceLoader::create(ResourceLoaderHost* host, Resource* resource, const ResourceRequest& request, const ResourceLoaderOptions& options)
+PassRefPtrWillBeRawPtr<ResourceLoader> ResourceLoader::create(ResourceLoaderHost* host, Resource* resource, const ResourceRequest& request, const ResourceLoaderOptions& options)
{
- RefPtr<ResourceLoader> loader(adoptRef(new ResourceLoader(host, resource, options)));
+ RefPtrWillBeRawPtr<ResourceLoader> loader(adoptRefWillBeNoop(new ResourceLoader(host, resource, options)));
loader->init(request);
return loader.release();
}
ASSERT(m_state == Terminated);
}
+void ResourceLoader::trace(Visitor* visitor)
+{
+ visitor->trace(m_host);
+ visitor->trace(m_resource);
+}
+
void ResourceLoader::releaseResources()
{
ASSERT(m_state != Terminated);
// deallocated and release the last reference to this object.
// We need to retain to avoid accessing the object after it
// has been deallocated and also to avoid reentering this method.
- RefPtr<ResourceLoader> protector(this);
+ RefPtrWillBeRawPtr<ResourceLoader> protector(this);
m_host.clear();
m_state = Terminated;
void ResourceLoader::didDownloadData(blink::WebURLLoader*, int length, int encodedDataLength)
{
- RefPtr<ResourceLoader> protect(this);
+ RefPtrWillBeRawPtr<ResourceLoader> protect(this);
RELEASE_ASSERT(m_connectionState == ConnectionStateReceivedResponse);
m_host->didDownloadData(m_resource, length, encodedDataLength);
m_resource->didDownloadData(length);
// This function calls out to clients at several points that might do
// something that causes the last reference to this object to go away.
- RefPtr<ResourceLoader> protector(this);
+ RefPtrWillBeRawPtr<ResourceLoader> protector(this);
WTF_LOG(ResourceLoading, "Cancelled load of '%s'.\n", m_resource->url().string().latin1().data());
if (m_state == Initialized)
void ResourceLoader::willSendRequest(blink::WebURLLoader*, blink::WebURLRequest& passedRequest, const blink::WebURLResponse& passedRedirectResponse)
{
- RefPtr<ResourceLoader> protect(this);
+ RefPtrWillBeRawPtr<ResourceLoader> protect(this);
ResourceRequest& request(applyOptions(passedRequest.toMutableResourceRequest()));
+
+ // FIXME: We should have a real context for redirect requests. Currently, we don't: see WebURLLoaderImpl::Context::OnReceivedRedirect in content/.
+ request.setRequestContext(blink::WebURLRequest::RequestContextInternal);
+
ASSERT(!request.isNull());
const ResourceResponse& redirectResponse(passedRedirectResponse.toResourceResponse());
ASSERT(!redirectResponse.isNull());
void ResourceLoader::didSendData(blink::WebURLLoader*, unsigned long long bytesSent, unsigned long long totalBytesToBeSent)
{
ASSERT(m_state == Initialized);
- RefPtr<ResourceLoader> protect(this);
+ RefPtrWillBeRawPtr<ResourceLoader> protect(this);
m_resource->didSendData(bytesSent, totalBytesToBeSent);
}
// Reference the object in this method since the additional processing can do
// anything including removing the last reference to this object.
- RefPtr<ResourceLoader> protect(this);
+ RefPtrWillBeRawPtr<ResourceLoader> protect(this);
m_resource->responseReceived(resourceResponse);
if (m_state == Terminated)
return;
// Reference the object in this method since the additional processing can do
// anything including removing the last reference to this object.
- RefPtr<ResourceLoader> protect(this);
+ RefPtrWillBeRawPtr<ResourceLoader> protect(this);
// FIXME: If we get a resource with more than 2B bytes, this code won't do the right thing.
// However, with today's computers and networking speeds, this won't happen in practice.
ASSERT(m_state != Terminated);
WTF_LOG(ResourceLoading, "Received '%s'.", m_resource->url().string().latin1().data());
- RefPtr<ResourceLoader> protect(this);
+ RefPtrWillBeRawPtr<ResourceLoader> protect(this);
ResourcePtr<Resource> protectResource(m_resource);
m_state = Finishing;
didFinishLoadingOnePart(finishTime, encodedDataLength);
ASSERT(m_state != Terminated);
WTF_LOG(ResourceLoading, "Failed to load '%s'.\n", m_resource->url().string().latin1().data());
- RefPtr<ResourceLoader> protect(this);
+ RefPtrWillBeRawPtr<ResourceLoader> protect(this);
RefPtrWillBeRawPtr<ResourceLoaderHost> protectHost(m_host.get());
ResourcePtr<Resource> protectResource(m_resource);
m_state = Finishing;
// downloadToFile is not supported for synchronous requests.
ASSERT(!m_request.downloadToFile());
- RefPtr<ResourceLoader> protect(this);
+ RefPtrWillBeRawPtr<ResourceLoader> protect(this);
RefPtrWillBeRawPtr<ResourceLoaderHost> protectHost(m_host.get());
ResourcePtr<Resource> protectResource(m_resource);