summaryrefslogtreecommitdiffstats
path: root/WebCore/loader/loader.h
diff options
context:
space:
mode:
authorFeng Qian <fqian@google.com>2009-06-17 12:12:20 -0700
committerFeng Qian <fqian@google.com>2009-06-17 12:12:20 -0700
commit5f1ab04193ad0130ca8204aadaceae083aca9881 (patch)
tree5a92cd389e2cfe7fb67197ce14b38469462379f8 /WebCore/loader/loader.h
parent194315e5a908cc8ed67d597010544803eef1ac59 (diff)
downloadexternal_webkit-5f1ab04193ad0130ca8204aadaceae083aca9881.zip
external_webkit-5f1ab04193ad0130ca8204aadaceae083aca9881.tar.gz
external_webkit-5f1ab04193ad0130ca8204aadaceae083aca9881.tar.bz2
Get WebKit r44544.
Diffstat (limited to 'WebCore/loader/loader.h')
-rw-r--r--WebCore/loader/loader.h34
1 files changed, 14 insertions, 20 deletions
diff --git a/WebCore/loader/loader.h b/WebCore/loader/loader.h
index 19c3fda..c5b9416 100644
--- a/WebCore/loader/loader.h
+++ b/WebCore/loader/loader.h
@@ -49,15 +49,22 @@ namespace WebCore {
enum Priority { Low, Medium, High };
void servePendingRequests(Priority minimumPriority = Low);
+ bool isSuspendingPendingRequests() { return m_isSuspendingPendingRequests; }
+ void suspendPendingRequests();
+ void resumePendingRequests();
+
private:
Priority determinePriority(const CachedResource*) const;
void scheduleServePendingRequests();
void requestTimerFired(Timer<Loader>*);
- class Host : private SubresourceLoaderClient {
+ class Host : public RefCounted<Host>, private SubresourceLoaderClient {
public:
- Host(const AtomicString& name, unsigned maxRequestsInFlight);
+ static PassRefPtr<Host> create(const AtomicString& name, unsigned maxRequestsInFlight)
+ {
+ return adoptRef(new Host(name, maxRequestsInFlight));
+ }
~Host();
const AtomicString& name() const { return m_name; }
@@ -69,22 +76,7 @@ namespace WebCore {
bool processingResource() const { return m_numResourcesProcessing != 0; }
private:
- class ProcessingResource {
- public:
- ProcessingResource(Host* host)
- : m_host(host)
- {
- m_host->m_numResourcesProcessing++;
- }
-
- ~ProcessingResource()
- {
- m_host->m_numResourcesProcessing--;
- }
-
- private:
- Host* m_host;
- };
+ Host(const AtomicString&, unsigned);
virtual void didReceiveResponse(SubresourceLoader*, const ResourceResponse&);
virtual void didReceiveData(SubresourceLoader*, const char*, int);
@@ -103,11 +95,13 @@ namespace WebCore {
const int m_maxRequestsInFlight;
int m_numResourcesProcessing;
};
- typedef HashMap<AtomicStringImpl*, Host*> HostMap;
+ typedef HashMap<AtomicStringImpl*, RefPtr<Host> > HostMap;
HostMap m_hosts;
- Host m_nonHTTPProtocolHost;
+ RefPtr<Host> m_nonHTTPProtocolHost;
Timer<Loader> m_requestTimer;
+
+ bool m_isSuspendingPendingRequests;
};
}