eadbc97ca2ff94c562512a878e4cf1c3058ce861
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / modules / serviceworkers / FetchManager.h
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef FetchManager_h
6 #define FetchManager_h
7
8 #include "bindings/v8/ScriptPromise.h"
9 #include "wtf/HashSet.h"
10 #include "wtf/OwnPtr.h"
11
12 namespace WebCore {
13
14 class ExecutionContext;
15 class ScriptState;
16 class ResourceRequest;
17
18 class FetchManager {
19 public:
20     FetchManager(ExecutionContext*);
21     ~FetchManager();
22     ScriptPromise fetch(ScriptState*, PassOwnPtr<ResourceRequest>);
23
24 private:
25     class Loader;
26
27     // Removes loader from |m_loaders|.
28     void onLoaderFinished(Loader*);
29
30     ExecutionContext* m_executionContext;
31     HashSet<OwnPtr<Loader> > m_loaders;
32 };
33
34 } // namespace WebCore
35
36 #endif // FetchManager_h