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

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

Issue 1577073005: Add <link rel=preload> onload support for scripts and styles (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review comments 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
(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> {
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 ~LinkPreloadScriptResourceClient() override { clearResource(); }
45
46 virtual String debugName() const { return "LinkPreloadScript"; }
47
48 void notifyFinished(Resource* resource) override
49 {
50 ASSERT(this->resource() == resource);
51 triggerEvents(resource);
52 }
53
54 private:
55 LinkPreloadScriptResourceClient(LinkLoader* loader, Resource* resource)
56 : LinkPreloadResourceClient(loader)
57 {
58 setResource(resource);
59 }
60 };
61
62 class LinkPreloadStyleResourceClient: public ResourceOwner<Resource, StyleSheetR esourceClient>, public LinkPreloadResourceClient {
63 public:
64 static PassOwnPtr<LinkPreloadStyleResourceClient> create(LinkLoader* loader, Resource* resource)
65 {
66 if (!loader || !resource)
67 return nullptr;
68 return adoptPtr(new LinkPreloadStyleResourceClient(loader, resource));
69 }
70
71 virtual String debugName() const { return "LinkPreloadStyle"; }
72
73 void notifyFinished(Resource* resource) override
74 {
75 ASSERT(this->resource() == resource);
76 triggerEvents(resource);
77 }
78
79 private:
80 LinkPreloadStyleResourceClient(LinkLoader* loader, Resource* resource)
81 : LinkPreloadResourceClient(loader)
82 {
83 setResource(resource);
84 }
85 };
86
87 class LinkPreloadImageResourceClient: public ResourceOwner<Resource, ImageResour ceClient>, public LinkPreloadResourceClient {
Nate Chapin 2016/01/14 23:10:53 Looks like you missed this one for reversing the s
88 public:
89 static PassOwnPtr<LinkPreloadImageResourceClient> create(LinkLoader* loader, Resource* resource)
90 {
91 if (!loader || !resource)
92 return nullptr;
93 return adoptPtr(new LinkPreloadImageResourceClient(loader, resource));
94 }
95
96 virtual String debugName() const { return "LinkPreloadImage"; }
97
98 void notifyFinished(Resource* resource) override
99 {
100 ASSERT(this->resource() == resource);
101 triggerEvents(resource);
102 }
103
104 private:
105 LinkPreloadImageResourceClient(LinkLoader* loader, Resource* resource)
106 : LinkPreloadResourceClient(loader)
107 {
108 setResource(resource);
109 }
110 };
111
112 }
113
114 #endif // LinkPreloadResourceClients_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698