bool isBackForwardLoadType(FrameLoadType);
-class FrameLoader FINAL {
+class FrameLoader final {
WTF_MAKE_NONCOPYABLE(FrameLoader);
DISALLOW_ALLOCATION();
public:
void init();
- LocalFrame* frame() const { return m_frame; }
-
MixedContentChecker* mixedContentChecker() const { return &m_mixedContentChecker; }
ProgressTracker& progress() const { return *m_progressTracker; }
// These functions start a load. All eventually call into loadWithNavigationAction() or loadInSameDocument().
void load(const FrameLoadRequest&); // The entry point for non-reload, non-history loads.
- void reload(ReloadPolicy = NormalReload, const KURL& overrideURL = KURL(), const AtomicString& overrideEncoding = nullAtom, ClientRedirectPolicy = NotClientRedirect);
- void loadHistoryItem(HistoryItem*, HistoryLoadType = HistoryDifferentDocumentLoad, ResourceRequestCachePolicy = UseProtocolCachePolicy); // The entry point for all back/forward loads
+ void reload(ReloadPolicy, const KURL& overrideURL = KURL(), ClientRedirectPolicy = NotClientRedirect);
+ void loadHistoryItem(HistoryItem*, FrameLoadType = FrameLoadTypeBackForward,
+ HistoryLoadType = HistoryDifferentDocumentLoad,
+ ResourceRequestCachePolicy = UseProtocolCachePolicy); // The entry point for all back/forward loads
static void reportLocalLoadFailed(LocalFrame*, const String& url);
Frame* opener();
void setOpener(LocalFrame*);
- void detachFromParent();
+ void detach();
void loadDone();
void finishedParsing();
void didAccessInitialDocumentTimerFired(Timer<FrameLoader>*);
bool prepareRequestForThisFrame(FrameLoadRequest&);
- void setReferrerForFrameRequest(ResourceRequest&, ShouldSendReferrer, Document*);
+ static void setReferrerForFrameRequest(ResourceRequest&, ShouldSendReferrer, Document*);
FrameLoadType determineFrameLoadType(const FrameLoadRequest&);
bool isScriptTriggeredFormSubmissionInChildFrame(const FrameLoadRequest&) const;
// Calls continueLoadAfterNavigationPolicy
void loadWithNavigationAction(const NavigationAction&, FrameLoadType, PassRefPtrWillBeRawPtr<FormState>,
- const SubstituteData&, ContentSecurityPolicyCheck shouldCheckMainWorldContentSecurityPolicy, ClientRedirectPolicy = NotClientRedirect, const AtomicString& overrideEncoding = nullAtom);
+ const SubstituteData&, ContentSecurityPolicyCheck shouldCheckMainWorldContentSecurityPolicy, ClientRedirectPolicy = NotClientRedirect);
bool validateTransitionNavigationMode();
bool dispatchNavigationTransitionData();
- void detachClient();
void setHistoryItemStateForCommit(HistoryCommitType, bool isPushOrReplaceState = false, PassRefPtr<SerializedScriptValue> = nullptr);
RefPtr<DocumentLoader> m_policyDocumentLoader;
OwnPtrWillBeMember<FetchContext> m_fetchContext;
- RefPtr<HistoryItem> m_currentItem;
- RefPtr<HistoryItem> m_provisionalItem;
+ RefPtrWillBeMember<HistoryItem> m_currentItem;
+ RefPtrWillBeMember<HistoryItem> m_provisionalItem;
+
struct DeferredHistoryLoad {
+ DISALLOW_ALLOCATION();
+ public:
DeferredHistoryLoad(HistoryItem* item, HistoryLoadType type, ResourceRequestCachePolicy cachePolicy)
: m_item(item)
, m_type(type)
bool isValid() { return m_item; }
- RefPtr<HistoryItem> m_item;
+ void trace(Visitor* visitor)
+ {
+ visitor->trace(m_item);
+ }
+
+ RefPtrWillBeMember<HistoryItem> m_item;
HistoryLoadType m_type;
ResourceRequestCachePolicy m_cachePolicy;
};
+
DeferredHistoryLoad m_deferredHistoryLoad;
bool m_inStopAllLoaders;