OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2016 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 LinkPreloadResourceClients_h | |
6 #define LinkPreloadResourceClients_h | |
7 | |
8 #include "core/fetch/FontResource.h" | |
9 #include "core/fetch/ImageResourceClient.h" | |
10 #include "core/fetch/ResourceOwner.h" | |
11 #include "core/fetch/ScriptResource.h" | |
12 #include "core/fetch/StyleSheetResourceClient.h" | |
13 | |
14 namespace blink { | |
15 | |
16 class LinkLoader; | |
17 | |
18 class LinkPreloadResourceClient : public NoBaseWillBeGarbageCollectedFinalized<L inkPreloadResourceClient> { | |
19 public: | |
20 virtual ~LinkPreloadResourceClient() { } | |
21 | |
22 void triggerEvents(Resource*); | |
23 | |
24 protected: | |
25 LinkPreloadResourceClient(LinkLoader* loader) | |
26 : m_loader(loader) | |
27 { | |
28 ASSERT(loader); | |
29 } | |
30 | |
31 private: | |
32 LinkLoader* m_loader; | |
33 }; | |
34 | |
35 class LinkPreloadScriptResourceClient: public LinkPreloadResourceClient, public ResourceOwner<Resource, ScriptResourceClient> { | |
Nate Chapin
2016/01/15 18:53:58
Maybe just hold this as a ResourceOwner<ScriptReso
Yoav Weiss
2016/01/15 21:40:25
sure
| |
36 public: | |
37 static PassOwnPtr<LinkPreloadScriptResourceClient> create(LinkLoader* loader , Resource* resource) | |
38 { | |
39 if (!loader || !resource) | |
40 return nullptr; | |
41 return adoptPtr(new LinkPreloadScriptResourceClient(loader, resource)); | |
42 } | |
43 | |
44 virtual String debugName() const { return "LinkPreloadScript"; } | |
45 | |
46 void notifyFinished(Resource* resource) override | |
47 { | |
48 ASSERT(this->resource() == resource); | |
49 triggerEvents(resource); | |
50 } | |
51 | |
52 private: | |
53 LinkPreloadScriptResourceClient(LinkLoader* loader, Resource* resource) | |
54 : LinkPreloadResourceClient(loader) | |
55 { | |
56 setResource(resource); | |
57 } | |
58 }; | |
59 | |
60 class LinkPreloadStyleResourceClient: public LinkPreloadResourceClient, public R esourceOwner<Resource, StyleSheetResourceClient> { | |
Nate Chapin
2016/01/15 18:53:58
Ditto here and CSSStyleSheetResource.
Yoav Weiss
2016/01/15 21:40:25
ok
| |
61 public: | |
62 static PassOwnPtr<LinkPreloadStyleResourceClient> create(LinkLoader* loader, Resource* resource) | |
63 { | |
64 if (!loader || !resource) | |
65 return nullptr; | |
66 return adoptPtr(new LinkPreloadStyleResourceClient(loader, resource)); | |
67 } | |
68 | |
69 virtual String debugName() const { return "LinkPreloadStyle"; } | |
70 | |
71 void notifyFinished(Resource* resource) override | |
Nate Chapin
2016/01/15 18:53:58
Should this be setCSSStyleSheet()?
Yoav Weiss
2016/01/15 21:40:25
changed
| |
72 { | |
73 ASSERT(this->resource() == resource); | |
74 triggerEvents(resource); | |
75 } | |
76 | |
77 private: | |
78 LinkPreloadStyleResourceClient(LinkLoader* loader, Resource* resource) | |
79 : LinkPreloadResourceClient(loader) | |
80 { | |
81 setResource(resource); | |
82 } | |
83 }; | |
84 | |
85 } | |
86 | |
87 #endif // LinkPreloadResourceClients_h | |
OLD | NEW |