OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. |
3 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 3 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * | 8 * |
9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 14 matching lines...) Expand all Loading... |
25 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 25 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
28 */ | 28 */ |
29 | 29 |
30 #ifndef HistoryController_h | 30 #ifndef HistoryController_h |
31 #define HistoryController_h | 31 #define HistoryController_h |
32 | 32 |
33 #include "core/history/HistoryItem.h" | 33 #include "core/history/HistoryItem.h" |
34 #include "core/loader/FrameLoaderTypes.h" | 34 #include "core/loader/FrameLoaderTypes.h" |
| 35 #include "platform/network/ResourceRequest.h" |
35 #include "wtf/HashMap.h" | 36 #include "wtf/HashMap.h" |
36 #include "wtf/Noncopyable.h" | 37 #include "wtf/Noncopyable.h" |
37 #include "wtf/RefPtr.h" | 38 #include "wtf/RefPtr.h" |
38 #include "wtf/text/WTFString.h" | 39 #include "wtf/text/WTFString.h" |
39 | 40 |
40 namespace WebCore { | 41 namespace WebCore { |
41 | 42 |
42 class Frame; | 43 class Frame; |
43 class HistoryEntry; | 44 class HistoryEntry; |
44 class Page; | 45 class Page; |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 }; | 132 }; |
132 | 133 |
133 class HistoryController { | 134 class HistoryController { |
134 WTF_MAKE_NONCOPYABLE(HistoryController); | 135 WTF_MAKE_NONCOPYABLE(HistoryController); |
135 public: | 136 public: |
136 explicit HistoryController(Page*); | 137 explicit HistoryController(Page*); |
137 ~HistoryController(); | 138 ~HistoryController(); |
138 | 139 |
139 // Should only be called by embedder. To request a back/forward | 140 // Should only be called by embedder. To request a back/forward |
140 // navigation, call FrameLoaderClient::navigateBackForward(). | 141 // navigation, call FrameLoaderClient::navigateBackForward(). |
141 void goToItem(HistoryItem*); | 142 void goToItem(HistoryItem*, ResourceRequestCachePolicy); |
142 | 143 |
143 void updateBackForwardListForFragmentScroll(Frame*, HistoryItem*); | 144 void updateBackForwardListForFragmentScroll(Frame*, HistoryItem*); |
144 void updateForCommit(Frame*, HistoryItem*, HistoryCommitType); | 145 void updateForCommit(Frame*, HistoryItem*, HistoryCommitType); |
145 | 146 |
146 PassRefPtr<HistoryItem> currentItemForExport(Frame*); | 147 PassRefPtr<HistoryItem> currentItemForExport(Frame*); |
147 PassRefPtr<HistoryItem> previousItemForExport(Frame*); | 148 PassRefPtr<HistoryItem> previousItemForExport(Frame*); |
148 PassRefPtr<HistoryItem> provisionalItemForExport(Frame*); | 149 PassRefPtr<HistoryItem> provisionalItemForExport(Frame*); |
149 HistoryItem* itemForNewChildFrame(Frame*) const; | 150 HistoryItem* itemForNewChildFrame(Frame*) const; |
150 | 151 |
151 bool inSameDocumentLoad() const { return !m_sameDocumentLoadsInProgress.isEm
pty() && m_differentDocumentLoadsInProgress.isEmpty(); } | 152 bool inSameDocumentLoad() const { return !m_sameDocumentLoadsInProgress.isEm
pty() && m_differentDocumentLoadsInProgress.isEmpty(); } |
152 | 153 |
153 void setDefersLoading(bool); | 154 void setDefersLoading(bool); |
154 | 155 |
155 private: | 156 private: |
156 void goToEntry(PassOwnPtr<HistoryEntry>); | 157 void goToEntry(PassOwnPtr<HistoryEntry>, ResourceRequestCachePolicy); |
157 void recursiveGoToEntry(Frame*); | 158 void recursiveGoToEntry(Frame*); |
158 | 159 |
159 void updateForInitialLoadInChildFrame(Frame*, HistoryItem*); | 160 void updateForInitialLoadInChildFrame(Frame*, HistoryItem*); |
160 void createNewBackForwardItem(Frame*, HistoryItem*, bool doClip); | 161 void createNewBackForwardItem(Frame*, HistoryItem*, bool doClip); |
161 | 162 |
162 Page* m_page; | 163 Page* m_page; |
163 | 164 |
164 OwnPtr<HistoryEntry> m_currentEntry; | 165 OwnPtr<HistoryEntry> m_currentEntry; |
165 OwnPtr<HistoryEntry> m_previousEntry; | 166 OwnPtr<HistoryEntry> m_previousEntry; |
166 OwnPtr<HistoryEntry> m_provisionalEntry; | 167 OwnPtr<HistoryEntry> m_provisionalEntry; |
167 | 168 |
168 typedef HashMap<Frame*, HistoryItem*> HistoryFrameLoadSet; | 169 typedef HashMap<Frame*, HistoryItem*> HistoryFrameLoadSet; |
169 HistoryFrameLoadSet m_sameDocumentLoadsInProgress; | 170 HistoryFrameLoadSet m_sameDocumentLoadsInProgress; |
170 HistoryFrameLoadSet m_differentDocumentLoadsInProgress; | 171 HistoryFrameLoadSet m_differentDocumentLoadsInProgress; |
171 | 172 |
172 bool m_defersLoading; | 173 bool m_defersLoading; |
173 RefPtr<HistoryItem> m_deferredItem; | 174 RefPtr<HistoryItem> m_deferredItem; |
| 175 ResourceRequestCachePolicy m_deferredCachePolicy; |
174 }; | 176 }; |
175 | 177 |
176 } // namespace WebCore | 178 } // namespace WebCore |
177 | 179 |
178 #endif // HistoryController_h | 180 #endif // HistoryController_h |
OLD | NEW |