OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 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 24 matching lines...) Expand all Loading... |
35 #include "core/frame/Frame.h" | 35 #include "core/frame/Frame.h" |
36 #include "core/loader/FrameLoader.h" | 36 #include "core/loader/FrameLoader.h" |
37 #include "core/loader/PrerendererClient.h" | 37 #include "core/loader/PrerendererClient.h" |
38 #include "platform/Prerender.h" | 38 #include "platform/Prerender.h" |
39 #include "platform/weborigin/ReferrerPolicy.h" | 39 #include "platform/weborigin/ReferrerPolicy.h" |
40 #include "platform/weborigin/SecurityPolicy.h" | 40 #include "platform/weborigin/SecurityPolicy.h" |
41 | 41 |
42 namespace WebCore { | 42 namespace WebCore { |
43 | 43 |
44 // static | 44 // static |
45 PassOwnPtr<PrerenderHandle> PrerenderHandle::create(Document& document, Prerende
rClient* client, const KURL& url) | 45 PassOwnPtr<PrerenderHandle> PrerenderHandle::create(Document& document, Prerende
rClient* client, const KURL& url, const unsigned prerenderRelTypes) |
46 { | 46 { |
47 // Prerenders are unlike requests in most ways (for instance, they pass down
fragments, and they don't return data), | 47 // Prerenders are unlike requests in most ways (for instance, they pass down
fragments, and they don't return data), |
48 // but they do have referrers. | 48 // but they do have referrers. |
49 const ReferrerPolicy referrerPolicy = document.referrerPolicy(); | 49 const ReferrerPolicy referrerPolicy = document.referrerPolicy(); |
50 | 50 |
51 if (!document.frame()) | 51 if (!document.frame()) |
52 return PassOwnPtr<PrerenderHandle>(); | 52 return PassOwnPtr<PrerenderHandle>(); |
53 | 53 |
54 const String referrer = SecurityPolicy::generateReferrerHeader(referrerPolic
y, url, document.outgoingReferrer()); | 54 const String referrer = SecurityPolicy::generateReferrerHeader(referrerPolic
y, url, document.outgoingReferrer()); |
55 | 55 |
56 RefPtr<Prerender> prerender = Prerender::create(client, url, referrer, refer
rerPolicy); | 56 RefPtr<Prerender> prerender = Prerender::create(client, url, prerenderRelTyp
es, referrer, referrerPolicy); |
57 | 57 |
58 PrerendererClient* prerendererClient = PrerendererClient::from(document.page
()); | 58 PrerendererClient* prerendererClient = PrerendererClient::from(document.page
()); |
59 if (prerendererClient) | 59 if (prerendererClient) |
60 prerendererClient->willAddPrerender(prerender.get()); | 60 prerendererClient->willAddPrerender(prerender.get()); |
61 prerender->add(); | 61 prerender->add(); |
62 | 62 |
63 return adoptPtr(new PrerenderHandle(document, prerender.release())); | 63 return adoptPtr(new PrerenderHandle(document, prerender.release())); |
64 } | 64 } |
65 | 65 |
66 PrerenderHandle::PrerenderHandle(Document& document, PassRefPtr<Prerender> prere
nder) | 66 PrerenderHandle::PrerenderHandle(Document& document, PassRefPtr<Prerender> prere
nder) |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 } | 99 } |
100 | 100 |
101 | 101 |
102 void PrerenderHandle::detach() | 102 void PrerenderHandle::detach() |
103 { | 103 { |
104 m_prerender->removeClient(); | 104 m_prerender->removeClient(); |
105 m_prerender.clear(); | 105 m_prerender.clear(); |
106 } | 106 } |
107 | 107 |
108 } | 108 } |
OLD | NEW |