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

Side by Side Diff: Source/core/loader/FrameLoader.h

Issue 28983004: Split the frame tree logic out of HistoryItem (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/history/HistoryItem.cpp ('k') | Source/core/loader/FrameLoader.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008, 2009, 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2008, 2009, 2011 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 * Copyright (C) Research In Motion Limited 2009. All rights reserved. 4 * Copyright (C) Research In Motion Limited 2009. All rights reserved.
5 * Copyright (C) 2011 Google Inc. All rights reserved. 5 * Copyright (C) 2011 Google Inc. All rights reserved.
6 * 6 *
7 * Redistribution and use in source and binary forms, with or without 7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions 8 * modification, are permitted provided that the following conditions
9 * are met: 9 * are met:
10 * 10 *
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 class FrameLoader { 75 class FrameLoader {
76 WTF_MAKE_NONCOPYABLE(FrameLoader); 76 WTF_MAKE_NONCOPYABLE(FrameLoader);
77 public: 77 public:
78 FrameLoader(Frame*, FrameLoaderClient*); 78 FrameLoader(Frame*, FrameLoaderClient*);
79 ~FrameLoader(); 79 ~FrameLoader();
80 80
81 void init(); 81 void init();
82 82
83 Frame* frame() const { return m_frame; } 83 Frame* frame() const { return m_frame; }
84 84
85 HistoryController* history() const { return &m_history; }
86
87 MixedContentChecker* mixedContentChecker() const { return &m_mixedContentChe cker; } 85 MixedContentChecker* mixedContentChecker() const { return &m_mixedContentChe cker; }
88 86
89 void prepareForHistoryNavigation();
90
91 // These functions start a load. All eventually call into loadWithNavigation Action() or loadInSameDocument(). 87 // These functions start a load. All eventually call into loadWithNavigation Action() or loadInSameDocument().
92 void load(const FrameLoadRequest&); // The entry point for non-reload, non-h istory loads. 88 void load(const FrameLoadRequest&); // The entry point for non-reload, non-h istory loads.
93 void reload(ReloadPolicy = NormalReload, const KURL& overrideURL = KURL(), c onst String& overrideEncoding = String()); 89 void reload(ReloadPolicy = NormalReload, const KURL& overrideURL = KURL(), c onst String& overrideEncoding = String());
94 void loadHistoryItem(HistoryItem*); // The entry point for all back/forward loads 90 void loadHistoryItem(HistoryItem*, HistoryLoadType = HistoryDifferentDocumen tLoad); // The entry point for all back/forward loads
95 91
96 static void reportLocalLoadFailed(Frame*, const String& url); 92 static void reportLocalLoadFailed(Frame*, const String& url);
97 93
98 // FIXME: These are all functions which stop loads. We have too many. 94 // FIXME: These are all functions which stop loads. We have too many.
99 // Warning: stopAllLoaders can and will detach the Frame out from under you. All callers need to either protect the Frame 95 // Warning: stopAllLoaders can and will detach the Frame out from under you. All callers need to either protect the Frame
100 // or guarantee they won't in any way access the Frame after stopAllLoaders returns. 96 // or guarantee they won't in any way access the Frame after stopAllLoaders returns.
101 void stopAllLoaders(); 97 void stopAllLoaders();
102 void stopLoading(); 98 void stopLoading();
103 bool closeURL(); 99 bool closeURL();
104 // FIXME: clear() is trying to do too many things. We should break it down i nto smaller functions. 100 // FIXME: clear() is trying to do too many things. We should break it down i nto smaller functions.
(...skipping 22 matching lines...) Expand all
127 FrameState state() const { return m_state; } 123 FrameState state() const { return m_state; }
128 FetchContext& fetchContext() const { return *m_fetchContext; } 124 FetchContext& fetchContext() const { return *m_fetchContext; }
129 125
130 const ResourceRequest& originalRequest() const; 126 const ResourceRequest& originalRequest() const;
131 void receivedMainResourceError(const ResourceError&); 127 void receivedMainResourceError(const ResourceError&);
132 128
133 bool isLoadingMainFrame() const; 129 bool isLoadingMainFrame() const;
134 130
135 bool subframeIsLoading() const; 131 bool subframeIsLoading() const;
136 132
133 bool shouldTreatURLAsSameAsCurrent(const KURL&) const;
137 bool shouldTreatURLAsSrcdocDocument(const KURL&) const; 134 bool shouldTreatURLAsSrcdocDocument(const KURL&) const;
138 135
139 FrameLoadType loadType() const; 136 FrameLoadType loadType() const;
140 void setLoadType(FrameLoadType loadType) { m_loadType = loadType; } 137 void setLoadType(FrameLoadType loadType) { m_loadType = loadType; }
141 138
142 CachePolicy subresourceCachePolicy() const; 139 CachePolicy subresourceCachePolicy() const;
143 140
144 void didFirstLayout(); 141 void didFirstLayout();
145 142
146 void checkLoadComplete(DocumentLoader*); 143 void checkLoadComplete(DocumentLoader*);
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 199
203 bool allowPlugins(ReasonForCallingAllowPlugins); 200 bool allowPlugins(ReasonForCallingAllowPlugins);
204 201
205 enum UpdateBackForwardListPolicy { 202 enum UpdateBackForwardListPolicy {
206 UpdateBackForwardList, 203 UpdateBackForwardList,
207 DoNotUpdateBackForwardList 204 DoNotUpdateBackForwardList
208 }; 205 };
209 void updateForSameDocumentNavigation(const KURL&, SameDocumentNavigationSour ce, PassRefPtr<SerializedScriptValue>, UpdateBackForwardListPolicy); 206 void updateForSameDocumentNavigation(const KURL&, SameDocumentNavigationSour ce, PassRefPtr<SerializedScriptValue>, UpdateBackForwardListPolicy);
210 207
211 private: 208 private:
209 HistoryController* history() const;
210
212 bool allChildrenAreComplete() const; // immediate children, not all descenda nts 211 bool allChildrenAreComplete() const; // immediate children, not all descenda nts
213 212
214 void completed(); 213 void completed();
215 214
216 void checkTimerFired(Timer<FrameLoader>*); 215 void checkTimerFired(Timer<FrameLoader>*);
217 void didAccessInitialDocumentTimerFired(Timer<FrameLoader>*); 216 void didAccessInitialDocumentTimerFired(Timer<FrameLoader>*);
218 217
219 void insertDummyHistoryItem();
220
221 bool prepareRequestForThisFrame(FrameLoadRequest&); 218 bool prepareRequestForThisFrame(FrameLoadRequest&);
222 void setReferrerForFrameRequest(ResourceRequest&, ShouldSendReferrer); 219 void setReferrerForFrameRequest(ResourceRequest&, ShouldSendReferrer);
223 FrameLoadType determineFrameLoadType(const FrameLoadRequest&); 220 FrameLoadType determineFrameLoadType(const FrameLoadRequest&);
224 bool isScriptTriggeredFormSubmissionInChildFrame(const FrameLoadRequest&) co nst; 221 bool isScriptTriggeredFormSubmissionInChildFrame(const FrameLoadRequest&) co nst;
225 222
226 SubstituteData defaultSubstituteDataForURL(const KURL&); 223 SubstituteData defaultSubstituteDataForURL(const KURL&);
227 224
228 void checkNavigationPolicyAndContinueFragmentScroll(const NavigationAction&, bool isNewNavigation, ClientRedirectPolicy); 225 void checkNavigationPolicyAndContinueFragmentScroll(const NavigationAction&, bool isNewNavigation, ClientRedirectPolicy);
229 226
230 bool shouldPerformFragmentNavigation(bool isFormSubmission, const String& ht tpMethod, FrameLoadType, const KURL&); 227 bool shouldPerformFragmentNavigation(bool isFormSubmission, const String& ht tpMethod, FrameLoadType, const KURL&);
231 void scrollToFragmentWithParentBoundary(const KURL&); 228 void scrollToFragmentWithParentBoundary(const KURL&);
232 229
233 void checkLoadCompleteForThisFrame(); 230 void checkLoadCompleteForThisFrame();
234 231
235 void closeOldDataSources(); 232 void closeOldDataSources();
236 233
237 // Calls continueLoadAfterNavigationPolicy 234 // Calls continueLoadAfterNavigationPolicy
238 void loadWithNavigationAction(const NavigationAction&, FrameLoadType, PassRe fPtr<FormState>, 235 void loadWithNavigationAction(const NavigationAction&, FrameLoadType, PassRe fPtr<FormState>,
239 const SubstituteData&, ClientRedirectPolicy = NotClientRedirect, const S tring& overrideEncoding = String()); 236 const SubstituteData&, ClientRedirectPolicy = NotClientRedirect, const S tring& overrideEncoding = String());
240 237
241 void detachChildren(); 238 void detachChildren();
242 void closeAndRemoveChild(Frame*); 239 void closeAndRemoveChild(Frame*);
243 240
244 void loadInSameDocument(const KURL&, PassRefPtr<SerializedScriptValue> state Object, bool isNewNavigation, ClientRedirectPolicy); 241 void loadInSameDocument(const KURL&, PassRefPtr<SerializedScriptValue> state Object, bool isNewNavigation, ClientRedirectPolicy);
245 242
246 void scheduleCheckCompleted(); 243 void scheduleCheckCompleted();
247 void startCheckCompleteTimer(); 244 void startCheckCompleteTimer();
248 245
249 bool shouldTreatURLAsSameAsCurrent(const KURL&) const;
250
251 Frame* m_frame; 246 Frame* m_frame;
252 FrameLoaderClient* m_client; 247 FrameLoaderClient* m_client;
253 248
254 // FIXME: These should be OwnPtr<T> to reduce build times and simplify 249 // FIXME: These should be OwnPtr<T> to reduce build times and simplify
255 // header dependencies unless performance testing proves otherwise. 250 // header dependencies unless performance testing proves otherwise.
256 // Some of these could be lazily created for memory savings on devices. 251 // Some of these could be lazily created for memory savings on devices.
257 mutable HistoryController m_history;
258 mutable FrameLoaderStateMachine m_stateMachine; 252 mutable FrameLoaderStateMachine m_stateMachine;
259 mutable MixedContentChecker m_mixedContentChecker; 253 mutable MixedContentChecker m_mixedContentChecker;
260 254
261 class FrameProgressTracker; 255 class FrameProgressTracker;
262 OwnPtr<FrameProgressTracker> m_progressTracker; 256 OwnPtr<FrameProgressTracker> m_progressTracker;
263 257
264 FrameState m_state; 258 FrameState m_state;
265 FrameLoadType m_loadType; 259 FrameLoadType m_loadType;
266 260
267 // Document loaders for the three phases of frame loading. Note that while 261 // Document loaders for the three phases of frame loading. Note that while
(...skipping 20 matching lines...) Expand all
288 282
289 bool m_didAccessInitialDocument; 283 bool m_didAccessInitialDocument;
290 Timer<FrameLoader> m_didAccessInitialDocumentTimer; 284 Timer<FrameLoader> m_didAccessInitialDocumentTimer;
291 285
292 SandboxFlags m_forcedSandboxFlags; 286 SandboxFlags m_forcedSandboxFlags;
293 }; 287 };
294 288
295 } // namespace WebCore 289 } // namespace WebCore
296 290
297 #endif // FrameLoader_h 291 #endif // FrameLoader_h
OLDNEW
« no previous file with comments | « Source/core/history/HistoryItem.cpp ('k') | Source/core/loader/FrameLoader.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698