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

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

Issue 1615703002: Removal of rel=preload link elements should stop the download. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 11 months 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
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/ImageResourceClient.h" 10 #include "core/fetch/ImageResourceClient.h"
11 #include "core/fetch/ResourceLoader.h"
11 #include "core/fetch/ResourceOwner.h" 12 #include "core/fetch/ResourceOwner.h"
12 #include "core/fetch/ScriptResource.h" 13 #include "core/fetch/ScriptResource.h"
13 #include "core/fetch/StyleSheetResourceClient.h" 14 #include "core/fetch/StyleSheetResourceClient.h"
14 15
15 namespace blink { 16 namespace blink {
16 17
17 class LinkLoader; 18 class LinkLoader;
18 19
19 class LinkPreloadResourceClient : public NoBaseWillBeGarbageCollectedFinalized<L inkPreloadResourceClient> { 20 class LinkPreloadResourceClient : public NoBaseWillBeGarbageCollectedFinalized<L inkPreloadResourceClient> {
20 public: 21 public:
21 virtual ~LinkPreloadResourceClient() { } 22 virtual ~LinkPreloadResourceClient() { }
22 23
23 void triggerEvents(const Resource*); 24 void triggerEvents(const Resource*);
24 25
26 virtual void clear() = 0;
27
25 DEFINE_INLINE_VIRTUAL_TRACE() 28 DEFINE_INLINE_VIRTUAL_TRACE()
26 { 29 {
27 visitor->trace(m_loader); 30 visitor->trace(m_loader);
28 } 31 }
29 32
30 protected: 33 protected:
31 LinkPreloadResourceClient(LinkLoader* loader) 34 LinkPreloadResourceClient(LinkLoader* loader)
32 : m_loader(loader) 35 : m_loader(loader)
33 { 36 {
34 ASSERT(loader); 37 ASSERT(loader);
(...skipping 19 matching lines...) Expand all
54 ASSERT(this->resource() == resource); 57 ASSERT(this->resource() == resource);
55 triggerEvents(resource); 58 triggerEvents(resource);
56 } 59 }
57 60
58 DEFINE_INLINE_VIRTUAL_TRACE() 61 DEFINE_INLINE_VIRTUAL_TRACE()
59 { 62 {
60 LinkPreloadResourceClient::trace(visitor); 63 LinkPreloadResourceClient::trace(visitor);
61 ResourceOwner<ScriptResource, ScriptResourceClient>::trace(visitor); 64 ResourceOwner<ScriptResource, ScriptResourceClient>::trace(visitor);
62 } 65 }
63 66
67 void clear() override
68 {
69 clearResource();
70 }
71
64 private: 72 private:
65 LinkPreloadScriptResourceClient(LinkLoader* loader, ScriptResource* resource ) 73 LinkPreloadScriptResourceClient(LinkLoader* loader, ScriptResource* resource )
66 : LinkPreloadResourceClient(loader) 74 : LinkPreloadResourceClient(loader)
67 { 75 {
68 setResource(resource); 76 setResource(resource);
69 } 77 }
70 }; 78 };
71 79
72 class LinkPreloadStyleResourceClient: public LinkPreloadResourceClient, public R esourceOwner<CSSStyleSheetResource, StyleSheetResourceClient> { 80 class LinkPreloadStyleResourceClient: public LinkPreloadResourceClient, public R esourceOwner<CSSStyleSheetResource, StyleSheetResourceClient> {
73 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(LinkPreloadStyleResourceClient); 81 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(LinkPreloadStyleResourceClient);
(...skipping 11 matching lines...) Expand all
85 ASSERT(this->resource() == resource); 93 ASSERT(this->resource() == resource);
86 triggerEvents(static_cast<const Resource*>(resource)); 94 triggerEvents(static_cast<const Resource*>(resource));
87 } 95 }
88 96
89 DEFINE_INLINE_VIRTUAL_TRACE() 97 DEFINE_INLINE_VIRTUAL_TRACE()
90 { 98 {
91 LinkPreloadResourceClient::trace(visitor); 99 LinkPreloadResourceClient::trace(visitor);
92 ResourceOwner<CSSStyleSheetResource, StyleSheetResourceClient>::trace(vi sitor); 100 ResourceOwner<CSSStyleSheetResource, StyleSheetResourceClient>::trace(vi sitor);
93 } 101 }
94 102
103 void clear() override
104 {
105 clearResource();
106 }
107
95 private: 108 private:
96 LinkPreloadStyleResourceClient(LinkLoader* loader, CSSStyleSheetResource* re source) 109 LinkPreloadStyleResourceClient(LinkLoader* loader, CSSStyleSheetResource* re source)
97 : LinkPreloadResourceClient(loader) 110 : LinkPreloadResourceClient(loader)
98 { 111 {
99 setResource(resource); 112 setResource(resource);
100 } 113 }
101 }; 114 };
102 115
103 } 116 }
104 117
105 #endif // LinkPreloadResourceClients_h 118 #endif // LinkPreloadResourceClients_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698