| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef LinkPreloadResourceClients_h | 5 #ifndef LinkPreloadResourceClients_h |
| 6 #define LinkPreloadResourceClients_h | 6 #define LinkPreloadResourceClients_h |
| 7 | 7 |
| 8 #include "core/fetch/CSSStyleSheetResource.h" | 8 #include "core/fetch/CSSStyleSheetResource.h" |
| 9 #include "core/fetch/FontResource.h" | 9 #include "core/fetch/FontResource.h" |
| 10 #include "core/fetch/ImageResource.h" | 10 #include "core/fetch/ImageResource.h" |
| 11 #include "core/fetch/ImageResourceClient.h" | 11 #include "core/fetch/ImageResourceClient.h" |
| 12 #include "core/fetch/RawResource.h" | 12 #include "core/fetch/RawResource.h" |
| 13 #include "core/fetch/ResourceLoader.h" | 13 #include "core/fetch/ResourceLoader.h" |
| 14 #include "core/fetch/ResourceOwner.h" | 14 #include "core/fetch/ResourceOwner.h" |
| 15 #include "core/fetch/ScriptResource.h" | 15 #include "core/fetch/ScriptResource.h" |
| 16 #include "core/fetch/StyleSheetResourceClient.h" | 16 #include "core/fetch/StyleSheetResourceClient.h" |
| 17 | 17 |
| 18 namespace blink { | 18 namespace blink { |
| 19 | 19 |
| 20 class LinkLoader; | 20 class LinkLoader; |
| 21 | 21 |
| 22 class LinkPreloadResourceClient : public NoBaseWillBeGarbageCollectedFinalized<L
inkPreloadResourceClient> { | 22 class LinkPreloadResourceClient : public GarbageCollectedFinalized<LinkPreloadRe
sourceClient> { |
| 23 public: | 23 public: |
| 24 virtual ~LinkPreloadResourceClient() { } | 24 virtual ~LinkPreloadResourceClient() { } |
| 25 | 25 |
| 26 void triggerEvents(const Resource*); | 26 void triggerEvents(const Resource*); |
| 27 virtual void clear() = 0; | 27 virtual void clear() = 0; |
| 28 | 28 |
| 29 DEFINE_INLINE_VIRTUAL_TRACE() | 29 DEFINE_INLINE_VIRTUAL_TRACE() |
| 30 { | 30 { |
| 31 visitor->trace(m_loader); | 31 visitor->trace(m_loader); |
| 32 } | 32 } |
| 33 | 33 |
| 34 protected: | 34 protected: |
| 35 LinkPreloadResourceClient(LinkLoader* loader) | 35 LinkPreloadResourceClient(LinkLoader* loader) |
| 36 : m_loader(loader) | 36 : m_loader(loader) |
| 37 { | 37 { |
| 38 ASSERT(loader); | 38 ASSERT(loader); |
| 39 } | 39 } |
| 40 | 40 |
| 41 private: | 41 private: |
| 42 RawPtrWillBeMember<LinkLoader> m_loader; | 42 Member<LinkLoader> m_loader; |
| 43 }; | 43 }; |
| 44 | 44 |
| 45 class LinkPreloadScriptResourceClient: public LinkPreloadResourceClient, public
ResourceOwner<ScriptResource, ScriptResourceClient> { | 45 class LinkPreloadScriptResourceClient: public LinkPreloadResourceClient, public
ResourceOwner<ScriptResource, ScriptResourceClient> { |
| 46 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(LinkPreloadScriptResourceClient); | 46 USING_GARBAGE_COLLECTED_MIXIN(LinkPreloadScriptResourceClient); |
| 47 USING_FAST_MALLOC_WILL_BE_REMOVED(LinkPreloadScriptResourceClient); | |
| 48 public: | 47 public: |
| 49 static PassOwnPtrWillBeRawPtr<LinkPreloadScriptResourceClient> create(LinkLo
ader* loader, ScriptResource* resource) | 48 static RawPtr<LinkPreloadScriptResourceClient> create(LinkLoader* loader, Sc
riptResource* resource) |
| 50 { | 49 { |
| 51 return adoptPtrWillBeNoop(new LinkPreloadScriptResourceClient(loader, re
source)); | 50 return (new LinkPreloadScriptResourceClient(loader, resource)); |
| 52 } | 51 } |
| 53 | 52 |
| 54 virtual String debugName() const { return "LinkPreloadScript"; } | 53 virtual String debugName() const { return "LinkPreloadScript"; } |
| 55 virtual ~LinkPreloadScriptResourceClient() { } | 54 virtual ~LinkPreloadScriptResourceClient() { } |
| 56 | 55 |
| 57 void clear() override { clearResource(); } | 56 void clear() override { clearResource(); } |
| 58 | 57 |
| 59 void notifyFinished(Resource* resource) override | 58 void notifyFinished(Resource* resource) override |
| 60 { | 59 { |
| 61 ASSERT(this->resource() == resource); | 60 ASSERT(this->resource() == resource); |
| 62 triggerEvents(resource); | 61 triggerEvents(resource); |
| 63 } | 62 } |
| 64 | 63 |
| 65 DEFINE_INLINE_VIRTUAL_TRACE() | 64 DEFINE_INLINE_VIRTUAL_TRACE() |
| 66 { | 65 { |
| 67 LinkPreloadResourceClient::trace(visitor); | 66 LinkPreloadResourceClient::trace(visitor); |
| 68 ResourceOwner<ScriptResource, ScriptResourceClient>::trace(visitor); | 67 ResourceOwner<ScriptResource, ScriptResourceClient>::trace(visitor); |
| 69 } | 68 } |
| 70 | 69 |
| 71 private: | 70 private: |
| 72 LinkPreloadScriptResourceClient(LinkLoader* loader, ScriptResource* resource
) | 71 LinkPreloadScriptResourceClient(LinkLoader* loader, ScriptResource* resource
) |
| 73 : LinkPreloadResourceClient(loader) | 72 : LinkPreloadResourceClient(loader) |
| 74 { | 73 { |
| 75 setResource(resource); | 74 setResource(resource); |
| 76 } | 75 } |
| 77 }; | 76 }; |
| 78 | 77 |
| 79 class LinkPreloadStyleResourceClient: public LinkPreloadResourceClient, public R
esourceOwner<CSSStyleSheetResource, StyleSheetResourceClient> { | 78 class LinkPreloadStyleResourceClient: public LinkPreloadResourceClient, public R
esourceOwner<CSSStyleSheetResource, StyleSheetResourceClient> { |
| 80 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(LinkPreloadStyleResourceClient); | 79 USING_GARBAGE_COLLECTED_MIXIN(LinkPreloadStyleResourceClient); |
| 81 USING_FAST_MALLOC_WILL_BE_REMOVED(LinkPreloadStyleResourceClient); | |
| 82 public: | 80 public: |
| 83 static PassOwnPtrWillBeRawPtr<LinkPreloadStyleResourceClient> create(LinkLoa
der* loader, CSSStyleSheetResource* resource) | 81 static RawPtr<LinkPreloadStyleResourceClient> create(LinkLoader* loader, CSS
StyleSheetResource* resource) |
| 84 { | 82 { |
| 85 return adoptPtrWillBeNoop(new LinkPreloadStyleResourceClient(loader, res
ource)); | 83 return (new LinkPreloadStyleResourceClient(loader, resource)); |
| 86 } | 84 } |
| 87 | 85 |
| 88 virtual String debugName() const { return "LinkPreloadStyle"; } | 86 virtual String debugName() const { return "LinkPreloadStyle"; } |
| 89 virtual ~LinkPreloadStyleResourceClient() { } | 87 virtual ~LinkPreloadStyleResourceClient() { } |
| 90 | 88 |
| 91 void clear() override { clearResource(); } | 89 void clear() override { clearResource(); } |
| 92 | 90 |
| 93 void setCSSStyleSheet(const String&, const KURL&, const String&, const CSSSt
yleSheetResource* resource) override | 91 void setCSSStyleSheet(const String&, const KURL&, const String&, const CSSSt
yleSheetResource* resource) override |
| 94 { | 92 { |
| 95 ASSERT(this->resource() == resource); | 93 ASSERT(this->resource() == resource); |
| 96 triggerEvents(static_cast<const Resource*>(resource)); | 94 triggerEvents(static_cast<const Resource*>(resource)); |
| 97 } | 95 } |
| 98 | 96 |
| 99 DEFINE_INLINE_VIRTUAL_TRACE() | 97 DEFINE_INLINE_VIRTUAL_TRACE() |
| 100 { | 98 { |
| 101 LinkPreloadResourceClient::trace(visitor); | 99 LinkPreloadResourceClient::trace(visitor); |
| 102 ResourceOwner<CSSStyleSheetResource, StyleSheetResourceClient>::trace(vi
sitor); | 100 ResourceOwner<CSSStyleSheetResource, StyleSheetResourceClient>::trace(vi
sitor); |
| 103 } | 101 } |
| 104 | 102 |
| 105 private: | 103 private: |
| 106 LinkPreloadStyleResourceClient(LinkLoader* loader, CSSStyleSheetResource* re
source) | 104 LinkPreloadStyleResourceClient(LinkLoader* loader, CSSStyleSheetResource* re
source) |
| 107 : LinkPreloadResourceClient(loader) | 105 : LinkPreloadResourceClient(loader) |
| 108 { | 106 { |
| 109 setResource(resource); | 107 setResource(resource); |
| 110 } | 108 } |
| 111 }; | 109 }; |
| 112 | 110 |
| 113 class LinkPreloadImageResourceClient: public LinkPreloadResourceClient, public R
esourceOwner<ImageResource, ImageResourceClient> { | 111 class LinkPreloadImageResourceClient: public LinkPreloadResourceClient, public R
esourceOwner<ImageResource, ImageResourceClient> { |
| 114 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(LinkPreloadImageResourceClient); | 112 USING_GARBAGE_COLLECTED_MIXIN(LinkPreloadImageResourceClient); |
| 115 USING_FAST_MALLOC_WILL_BE_REMOVED(LinkPreloadImageResourceClient); | |
| 116 public: | 113 public: |
| 117 static PassOwnPtrWillBeRawPtr<LinkPreloadImageResourceClient> create(LinkLoa
der* loader, ImageResource* resource) | 114 static RawPtr<LinkPreloadImageResourceClient> create(LinkLoader* loader, Ima
geResource* resource) |
| 118 { | 115 { |
| 119 return adoptPtrWillBeNoop(new LinkPreloadImageResourceClient(loader, res
ource)); | 116 return (new LinkPreloadImageResourceClient(loader, resource)); |
| 120 } | 117 } |
| 121 | 118 |
| 122 virtual String debugName() const { return "LinkPreloadImage"; } | 119 virtual String debugName() const { return "LinkPreloadImage"; } |
| 123 virtual ~LinkPreloadImageResourceClient() { } | 120 virtual ~LinkPreloadImageResourceClient() { } |
| 124 | 121 |
| 125 void clear() override { clearResource(); } | 122 void clear() override { clearResource(); } |
| 126 | 123 |
| 127 void notifyFinished(Resource* resource) override | 124 void notifyFinished(Resource* resource) override |
| 128 { | 125 { |
| 129 ASSERT(this->resource() == toImageResource(resource)); | 126 ASSERT(this->resource() == toImageResource(resource)); |
| 130 triggerEvents(resource); | 127 triggerEvents(resource); |
| 131 } | 128 } |
| 132 | 129 |
| 133 DEFINE_INLINE_VIRTUAL_TRACE() | 130 DEFINE_INLINE_VIRTUAL_TRACE() |
| 134 { | 131 { |
| 135 LinkPreloadResourceClient::trace(visitor); | 132 LinkPreloadResourceClient::trace(visitor); |
| 136 ResourceOwner<ImageResource, ImageResourceClient>::trace(visitor); | 133 ResourceOwner<ImageResource, ImageResourceClient>::trace(visitor); |
| 137 } | 134 } |
| 138 | 135 |
| 139 private: | 136 private: |
| 140 LinkPreloadImageResourceClient(LinkLoader* loader, ImageResource* resource) | 137 LinkPreloadImageResourceClient(LinkLoader* loader, ImageResource* resource) |
| 141 : LinkPreloadResourceClient(loader) | 138 : LinkPreloadResourceClient(loader) |
| 142 { | 139 { |
| 143 setResource(resource); | 140 setResource(resource); |
| 144 } | 141 } |
| 145 }; | 142 }; |
| 146 | 143 |
| 147 class LinkPreloadFontResourceClient: public LinkPreloadResourceClient, public Re
sourceOwner<FontResource, FontResourceClient> { | 144 class LinkPreloadFontResourceClient: public LinkPreloadResourceClient, public Re
sourceOwner<FontResource, FontResourceClient> { |
| 148 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(LinkPreloadFontResourceClient); | 145 USING_GARBAGE_COLLECTED_MIXIN(LinkPreloadFontResourceClient); |
| 149 USING_FAST_MALLOC_WILL_BE_REMOVED(LinkPreloadFontResourceClient); | |
| 150 public: | 146 public: |
| 151 static PassOwnPtrWillBeRawPtr<LinkPreloadFontResourceClient> create(LinkLoad
er* loader, FontResource* resource) | 147 static RawPtr<LinkPreloadFontResourceClient> create(LinkLoader* loader, Font
Resource* resource) |
| 152 { | 148 { |
| 153 return adoptPtrWillBeNoop(new LinkPreloadFontResourceClient(loader, reso
urce)); | 149 return (new LinkPreloadFontResourceClient(loader, resource)); |
| 154 } | 150 } |
| 155 | 151 |
| 156 virtual String debugName() const { return "LinkPreloadFont"; } | 152 virtual String debugName() const { return "LinkPreloadFont"; } |
| 157 virtual ~LinkPreloadFontResourceClient() { } | 153 virtual ~LinkPreloadFontResourceClient() { } |
| 158 | 154 |
| 159 void clear() override { clearResource(); } | 155 void clear() override { clearResource(); } |
| 160 | 156 |
| 161 void fontLoaded(FontResource* resource) override | 157 void fontLoaded(FontResource* resource) override |
| 162 { | 158 { |
| 163 ASSERT(this->resource() == resource); | 159 ASSERT(this->resource() == resource); |
| 164 triggerEvents(resource); | 160 triggerEvents(resource); |
| 165 } | 161 } |
| 166 | 162 |
| 167 DEFINE_INLINE_VIRTUAL_TRACE() | 163 DEFINE_INLINE_VIRTUAL_TRACE() |
| 168 { | 164 { |
| 169 LinkPreloadResourceClient::trace(visitor); | 165 LinkPreloadResourceClient::trace(visitor); |
| 170 ResourceOwner<FontResource, FontResourceClient>::trace(visitor); | 166 ResourceOwner<FontResource, FontResourceClient>::trace(visitor); |
| 171 } | 167 } |
| 172 | 168 |
| 173 private: | 169 private: |
| 174 LinkPreloadFontResourceClient(LinkLoader* loader, FontResource* resource) | 170 LinkPreloadFontResourceClient(LinkLoader* loader, FontResource* resource) |
| 175 : LinkPreloadResourceClient(loader) | 171 : LinkPreloadResourceClient(loader) |
| 176 { | 172 { |
| 177 setResource(resource); | 173 setResource(resource); |
| 178 } | 174 } |
| 179 }; | 175 }; |
| 180 | 176 |
| 181 class LinkPreloadRawResourceClient: public LinkPreloadResourceClient, public Res
ourceOwner<RawResource, RawResourceClient> { | 177 class LinkPreloadRawResourceClient: public LinkPreloadResourceClient, public Res
ourceOwner<RawResource, RawResourceClient> { |
| 182 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(LinkPreloadRawResourceClient); | 178 USING_GARBAGE_COLLECTED_MIXIN(LinkPreloadRawResourceClient); |
| 183 USING_FAST_MALLOC_WILL_BE_REMOVED(LinkPreloadRawResourceClient); | |
| 184 public: | 179 public: |
| 185 static PassOwnPtrWillBeRawPtr<LinkPreloadRawResourceClient> create(LinkLoade
r* loader, RawResource* resource) | 180 static RawPtr<LinkPreloadRawResourceClient> create(LinkLoader* loader, RawRe
source* resource) |
| 186 { | 181 { |
| 187 return adoptPtrWillBeNoop(new LinkPreloadRawResourceClient(loader, resou
rce)); | 182 return (new LinkPreloadRawResourceClient(loader, resource)); |
| 188 } | 183 } |
| 189 | 184 |
| 190 virtual String debugName() const { return "LinkPreloadRaw"; } | 185 virtual String debugName() const { return "LinkPreloadRaw"; } |
| 191 virtual ~LinkPreloadRawResourceClient() { } | 186 virtual ~LinkPreloadRawResourceClient() { } |
| 192 | 187 |
| 193 void clear() override { clearResource(); } | 188 void clear() override { clearResource(); } |
| 194 | 189 |
| 195 void notifyFinished(Resource* resource) override | 190 void notifyFinished(Resource* resource) override |
| 196 { | 191 { |
| 197 ASSERT(this->resource() == toRawResource(resource)); | 192 ASSERT(this->resource() == toRawResource(resource)); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 208 LinkPreloadRawResourceClient(LinkLoader* loader, RawResource* resource) | 203 LinkPreloadRawResourceClient(LinkLoader* loader, RawResource* resource) |
| 209 : LinkPreloadResourceClient(loader) | 204 : LinkPreloadResourceClient(loader) |
| 210 { | 205 { |
| 211 setResource(resource); | 206 setResource(resource); |
| 212 } | 207 } |
| 213 }; | 208 }; |
| 214 | 209 |
| 215 } // namespace blink | 210 } // namespace blink |
| 216 | 211 |
| 217 #endif // LinkPreloadResourceClients_h | 212 #endif // LinkPreloadResourceClients_h |
| OLD | NEW |