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

Side by Side Diff: third_party/WebKit/Source/platform/Prerender.h

Issue 1862593005: Prerender need to be on the Oilpan heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 15 matching lines...) Expand all
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 * 29 *
30 */ 30 */
31 31
32 #ifndef Prerender_h 32 #ifndef Prerender_h
33 #define Prerender_h 33 #define Prerender_h
34 34
35 #include "platform/PlatformExport.h" 35 #include "platform/PlatformExport.h"
36 #include "platform/heap/Handle.h"
36 #include "platform/weborigin/KURL.h" 37 #include "platform/weborigin/KURL.h"
37 #include "platform/weborigin/Referrer.h" 38 #include "platform/weborigin/Referrer.h"
38 #include "wtf/OwnPtr.h" 39 #include "wtf/OwnPtr.h"
39 #include "wtf/PassOwnPtr.h"
40 #include "wtf/PassRefPtr.h" 40 #include "wtf/PassRefPtr.h"
41 #include "wtf/RefCounted.h"
42 #include "wtf/RefPtr.h" 41 #include "wtf/RefPtr.h"
43 #include "wtf/text/WTFString.h" 42 #include "wtf/text/WTFString.h"
44 43
45 namespace blink { 44 namespace blink {
46 45
47 class PrerenderClient; 46 class PrerenderClient;
48 47
49 class PLATFORM_EXPORT Prerender : public RefCounted<Prerender> { 48 class PLATFORM_EXPORT Prerender final : public GarbageCollectedFinalized<Prerend er> {
50 WTF_MAKE_NONCOPYABLE(Prerender); 49 WTF_MAKE_NONCOPYABLE(Prerender);
51 public: 50 public:
52 class ExtraData : public RefCounted<ExtraData> { 51 class ExtraData : public RefCounted<ExtraData> {
53 public: 52 public:
54 virtual ~ExtraData() { } 53 virtual ~ExtraData() { }
55 }; 54 };
56 55
57 static PassRefPtr<Prerender> create(PrerenderClient*, const KURL&, unsigned relTypes, const Referrer&); 56 static Prerender* create(PrerenderClient* client, const KURL& url, unsigned relTypes, const Referrer& referrer)
57 {
58 return new Prerender(client, url, relTypes, referrer);
59 }
60
58 ~Prerender(); 61 ~Prerender();
62 DECLARE_TRACE();
59 63
60 void removeClient(); 64 void dispose();
61 65
62 void add(); 66 void add();
63 void cancel(); 67 void cancel();
64 void abandon(); 68 void abandon();
65 69
66 const KURL& url() const { return m_url; } 70 const KURL& url() const { return m_url; }
67 unsigned relTypes() const { return m_relTypes; } 71 unsigned relTypes() const { return m_relTypes; }
68 const String& referrer() const { return m_referrer.referrer; } 72 const String& referrer() const { return m_referrer.referrer; }
69 ReferrerPolicy getReferrerPolicy() const { return m_referrer.referrerPolicy; } 73 ReferrerPolicy getReferrerPolicy() const { return m_referrer.referrerPolicy; }
70 74
71 void setExtraData(PassRefPtr<ExtraData> extraData) { m_extraData = extraData ; } 75 void setExtraData(PassRefPtr<ExtraData> extraData) { m_extraData = extraData ; }
72 ExtraData* getExtraData() { return m_extraData.get(); } 76 ExtraData* getExtraData() { return m_extraData.get(); }
73 77
74 void didStartPrerender(); 78 void didStartPrerender();
75 void didStopPrerender(); 79 void didStopPrerender();
76 void didSendLoadForPrerender(); 80 void didSendLoadForPrerender();
77 void didSendDOMContentLoadedForPrerender(); 81 void didSendDOMContentLoadedForPrerender();
78 82
79 private: 83 private:
80 Prerender(PrerenderClient*, const KURL&, unsigned relTypes, const Referrer&) ; 84 Prerender(PrerenderClient*, const KURL&, unsigned relTypes, const Referrer&) ;
81 85
82 PrerenderClient* m_client; 86 Member<PrerenderClient> m_client;
83 87
84 const KURL m_url; 88 const KURL m_url;
85 const unsigned m_relTypes; 89 const unsigned m_relTypes;
86 const Referrer m_referrer; 90 const Referrer m_referrer;
87 91
88 RefPtr<ExtraData> m_extraData; 92 RefPtr<ExtraData> m_extraData;
89 }; 93 };
90 94
91 } // namespace blink 95 } // namespace blink
92 96
93 #endif // Prerender_h 97 #endif // Prerender_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698