Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Side by Side Diff: third_party/WebKit/Source/core/loader/LinkPreloadResourceClients.h

Issue 2497463004: Loading: move core/fetch/*Resource* to core/loader/resource/ (Closed)
Patch Set: [rebase] Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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/CSSStyleSheetResource.h"
9 #include "core/fetch/FontResource.h"
10 #include "core/fetch/ImageResource.h"
11 #include "core/fetch/RawResource.h"
12 #include "core/fetch/ResourceOwner.h"
13 #include "core/fetch/ScriptResource.h"
14 #include "core/fetch/StyleSheetResourceClient.h"
15
16 namespace blink {
17
18 class LinkLoader;
19
20 class LinkPreloadResourceClient
21 : public GarbageCollectedFinalized<LinkPreloadResourceClient> {
22 public:
23 virtual ~LinkPreloadResourceClient() {}
24
25 void triggerEvents(const Resource*);
26 virtual void clear() = 0;
27
28 DEFINE_INLINE_VIRTUAL_TRACE() { visitor->trace(m_loader); }
29
30 protected:
31 explicit LinkPreloadResourceClient(LinkLoader* loader) : m_loader(loader) {
32 DCHECK(loader);
33 }
34
35 private:
36 Member<LinkLoader> m_loader;
37 };
38
39 class LinkPreloadScriptResourceClient
40 : public LinkPreloadResourceClient,
41 public ResourceOwner<ScriptResource, ScriptResourceClient> {
42 USING_GARBAGE_COLLECTED_MIXIN(LinkPreloadScriptResourceClient);
43
44 public:
45 static LinkPreloadScriptResourceClient* create(LinkLoader* loader,
46 ScriptResource* resource) {
47 return new LinkPreloadScriptResourceClient(loader, resource);
48 }
49
50 virtual String debugName() const { return "LinkPreloadScript"; }
51 virtual ~LinkPreloadScriptResourceClient() {}
52
53 void clear() override { clearResource(); }
54
55 void notifyFinished(Resource* resource) override {
56 DCHECK_EQ(this->resource(), resource);
57 triggerEvents(resource);
58 }
59
60 DEFINE_INLINE_VIRTUAL_TRACE() {
61 LinkPreloadResourceClient::trace(visitor);
62 ResourceOwner<ScriptResource, ScriptResourceClient>::trace(visitor);
63 }
64
65 private:
66 LinkPreloadScriptResourceClient(LinkLoader* loader, ScriptResource* resource)
67 : LinkPreloadResourceClient(loader) {
68 setResource(resource, Resource::DontMarkAsReferenced);
69 }
70 };
71
72 class LinkPreloadStyleResourceClient
73 : public LinkPreloadResourceClient,
74 public ResourceOwner<CSSStyleSheetResource, StyleSheetResourceClient> {
75 USING_GARBAGE_COLLECTED_MIXIN(LinkPreloadStyleResourceClient);
76
77 public:
78 static LinkPreloadStyleResourceClient* create(
79 LinkLoader* loader,
80 CSSStyleSheetResource* resource) {
81 return new LinkPreloadStyleResourceClient(loader, resource);
82 }
83
84 virtual String debugName() const { return "LinkPreloadStyle"; }
85 virtual ~LinkPreloadStyleResourceClient() {}
86
87 void clear() override { clearResource(); }
88
89 void setCSSStyleSheet(const String&,
90 const KURL&,
91 const String&,
92 const CSSStyleSheetResource* resource) override {
93 DCHECK_EQ(this->resource(), resource);
94 triggerEvents(static_cast<const Resource*>(resource));
95 }
96
97 DEFINE_INLINE_VIRTUAL_TRACE() {
98 LinkPreloadResourceClient::trace(visitor);
99 ResourceOwner<CSSStyleSheetResource, StyleSheetResourceClient>::trace(
100 visitor);
101 }
102
103 private:
104 LinkPreloadStyleResourceClient(LinkLoader* loader,
105 CSSStyleSheetResource* resource)
106 : LinkPreloadResourceClient(loader) {
107 setResource(resource, Resource::DontMarkAsReferenced);
108 }
109 };
110
111 class LinkPreloadImageResourceClient : public LinkPreloadResourceClient,
112 public ResourceOwner<ImageResource> {
113 USING_GARBAGE_COLLECTED_MIXIN(LinkPreloadImageResourceClient);
114
115 public:
116 static LinkPreloadImageResourceClient* create(LinkLoader* loader,
117 ImageResource* resource) {
118 return new LinkPreloadImageResourceClient(loader, resource);
119 }
120
121 virtual String debugName() const { return "LinkPreloadImage"; }
122 virtual ~LinkPreloadImageResourceClient() {}
123
124 void clear() override { clearResource(); }
125
126 void notifyFinished(Resource* resource) override {
127 DCHECK_EQ(this->resource(), toImageResource(resource));
128 triggerEvents(resource);
129 }
130
131 DEFINE_INLINE_VIRTUAL_TRACE() {
132 LinkPreloadResourceClient::trace(visitor);
133 ResourceOwner<ImageResource>::trace(visitor);
134 }
135
136 private:
137 LinkPreloadImageResourceClient(LinkLoader* loader, ImageResource* resource)
138 : LinkPreloadResourceClient(loader) {
139 setResource(resource, Resource::DontMarkAsReferenced);
140 }
141 };
142
143 class LinkPreloadFontResourceClient
144 : public LinkPreloadResourceClient,
145 public ResourceOwner<FontResource, FontResourceClient> {
146 USING_GARBAGE_COLLECTED_MIXIN(LinkPreloadFontResourceClient);
147
148 public:
149 static LinkPreloadFontResourceClient* create(LinkLoader* loader,
150 FontResource* resource) {
151 return new LinkPreloadFontResourceClient(loader, resource);
152 }
153
154 virtual String debugName() const { return "LinkPreloadFont"; }
155 virtual ~LinkPreloadFontResourceClient() {}
156
157 void clear() override { clearResource(); }
158
159 void notifyFinished(Resource* resource) override {
160 DCHECK_EQ(this->resource(), toFontResource(resource));
161 triggerEvents(resource);
162 }
163
164 DEFINE_INLINE_VIRTUAL_TRACE() {
165 LinkPreloadResourceClient::trace(visitor);
166 ResourceOwner<FontResource, FontResourceClient>::trace(visitor);
167 }
168
169 private:
170 LinkPreloadFontResourceClient(LinkLoader* loader, FontResource* resource)
171 : LinkPreloadResourceClient(loader) {
172 setResource(resource, Resource::DontMarkAsReferenced);
173 }
174 };
175
176 class LinkPreloadRawResourceClient
177 : public LinkPreloadResourceClient,
178 public ResourceOwner<RawResource, RawResourceClient> {
179 USING_GARBAGE_COLLECTED_MIXIN(LinkPreloadRawResourceClient);
180
181 public:
182 static LinkPreloadRawResourceClient* create(LinkLoader* loader,
183 RawResource* resource) {
184 return new LinkPreloadRawResourceClient(loader, resource);
185 }
186
187 virtual String debugName() const { return "LinkPreloadRaw"; }
188 virtual ~LinkPreloadRawResourceClient() {}
189
190 void clear() override { clearResource(); }
191
192 void notifyFinished(Resource* resource) override {
193 DCHECK_EQ(this->resource(), toRawResource(resource));
194 triggerEvents(resource);
195 }
196
197 DEFINE_INLINE_VIRTUAL_TRACE() {
198 LinkPreloadResourceClient::trace(visitor);
199 ResourceOwner<RawResource, RawResourceClient>::trace(visitor);
200 }
201
202 private:
203 LinkPreloadRawResourceClient(LinkLoader* loader, RawResource* resource)
204 : LinkPreloadResourceClient(loader) {
205 setResource(resource, Resource::DontMarkAsReferenced);
206 }
207 };
208
209 } // namespace blink
210
211 #endif // LinkPreloadResourceClients_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698