summaryrefslogtreecommitdiffstats
path: root/WebCore/loader/loader.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/loader/loader.h')
-rw-r--r--WebCore/loader/loader.h24
1 files changed, 21 insertions, 3 deletions
diff --git a/WebCore/loader/loader.h b/WebCore/loader/loader.h
index c51374c..19c3fda 100644
--- a/WebCore/loader/loader.h
+++ b/WebCore/loader/loader.h
@@ -65,9 +65,27 @@ namespace WebCore {
void servePendingRequests(Priority minimumPriority = Low);
void cancelRequests(DocLoader*);
bool hasRequests() const;
- bool processingResource() const { return m_processingResource; }
-
+
+ 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;
+ };
+
virtual void didReceiveResponse(SubresourceLoader*, const ResourceResponse&);
virtual void didReceiveData(SubresourceLoader*, const char*, int);
virtual void didFinishLoading(SubresourceLoader*);
@@ -83,7 +101,7 @@ namespace WebCore {
RequestMap m_requestsLoading;
const AtomicString m_name;
const int m_maxRequestsInFlight;
- bool m_processingResource;
+ int m_numResourcesProcessing;
};
typedef HashMap<AtomicStringImpl*, Host*> HostMap;
HostMap m_hosts;