📄 frameloader.h
字号:
ScriptValue executeScript(const String& script, bool forceUserGesture = false); void gotoAnchor(); bool gotoAnchor(const String& name); // returns true if the anchor was found void scrollToAnchor(const KURL&); void tokenizerProcessedData(); void handledOnloadEvents(); String userAgent(const KURL&) const; Widget* createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const HashMap<String, String>& args); void dispatchWindowObjectAvailable(); void dispatchDocumentElementAvailable(); void restoreDocumentState(); Frame* opener(); void setOpener(Frame*); bool openedByDOM() const; void setOpenedByDOM(); void provisionalLoadStarted(); bool userGestureHint(); void resetMultipleFormSubmissionProtection(); void didNotOpenURL(const KURL&); void addData(const char* bytes, int length); bool canCachePage(); void checkCallImplicitClose(); bool didOpenURL(const KURL&); void frameDetached(); const KURL& url() const { return m_URL; } void updateBaseURLForEmptyDocument(); void setResponseMIMEType(const String&); const String& responseMIMEType() const; bool containsPlugins() const; void loadDone(); void finishedParsing(); void checkCompleted(); void scheduleCheckCompleted(); void scheduleCheckLoadComplete(); void clearRecordedFormValues(); void setFormAboutToBeSubmitted(PassRefPtr<HTMLFormElement> element); void recordFormValue(const String& name, const String& value); bool isComplete() const; bool requestObject(RenderPart* frame, const String& url, const AtomicString& frameName, const String& serviceType, const Vector<String>& paramNames, const Vector<String>& paramValues); KURL completeURL(const String& url); KURL originalRequestURL() const; void cancelAndClear(); void setTitle(const String&); bool shouldTreatURLAsSameAsCurrent(const KURL&) const; void commitProvisionalLoad(PassRefPtr<CachedPage>); void goToItem(HistoryItem*, FrameLoadType); void saveDocumentAndScrollState(); void saveScrollPositionAndViewStateToItem(HistoryItem*); // FIXME: These accessors are here for a dwindling number of users in WebKit, WebFrame // being the primary one. After they're no longer needed there, they can be removed! HistoryItem* currentHistoryItem(); void setCurrentHistoryItem(PassRefPtr<HistoryItem>); void setProvisionalHistoryItem(PassRefPtr<HistoryItem>); void continueLoadWithData(SharedBuffer*, const String& mimeType, const String& textEncoding, const KURL&); enum LocalLoadPolicy { AllowLocalLoadsForAll, // No restriction on local loads. AllowLocalLoadsForLocalAndSubstituteData, AllowLocalLoadsForLocalOnly, }; static void setLocalLoadPolicy(LocalLoadPolicy); static bool restrictAccessToLocal(); static bool allowSubstituteDataAccessToLocal(); static void registerURLSchemeAsLocal(const String& scheme); static bool shouldTreatURLAsLocal(const String&); static bool shouldTreatSchemeAsLocal(const String&); bool committingFirstRealLoad() const { return !m_creatingInitialEmptyDocument && !m_committedFirstRealDocumentLoad; } void iconLoadDecisionAvailable(); bool shouldAllowNavigation(Frame* targetFrame) const; Frame* findFrameForNavigation(const AtomicString& name); void startIconLoader(); void applyUserAgent(ResourceRequest& request); private: PassRefPtr<HistoryItem> createHistoryItem(bool useOriginal); PassRefPtr<HistoryItem> createHistoryItemTree(Frame* targetFrame, bool clipAtTarget); bool canCachePageContainingThisFrame();#ifndef NDEBUG void logCanCachePageDecision(); bool logCanCacheFrameDecision(int indentLevel);#endif void addBackForwardItemClippedAtTarget(bool doClip); void restoreScrollPositionAndViewState(); void saveDocumentState(); void loadItem(HistoryItem*, FrameLoadType); bool urlsMatchItem(HistoryItem*) const; void invalidateCurrentItemCachedPage(); void recursiveGoToItem(HistoryItem*, HistoryItem*, FrameLoadType); bool childFramesMatchItem(HistoryItem*) const; void updateHistoryForBackForwardNavigation(); void updateHistoryForReload(); void updateHistoryForStandardLoad(); void updateHistoryForRedirectWithLockedBackForwardList(); void updateHistoryForClientRedirect(); void updateHistoryForCommit(); void updateHistoryForAnchorScroll(); void redirectionTimerFired(Timer<FrameLoader>*); void checkCompletedTimerFired(Timer<FrameLoader>*); void checkLoadCompleteTimerFired(Timer<FrameLoader>*); void cancelRedirection(bool newLoadInProgress = false); void started(); void completed(); void parentCompleted(); bool shouldUsePlugin(const KURL&, const String& mimeType, bool hasFallback, bool& useFallback); bool loadPlugin(RenderPart*, const KURL&, const String& mimeType, const Vector<String>& paramNames, const Vector<String>& paramValues, bool useFallback); bool loadProvisionalItemFromCachedPage(); void cachePageForHistoryItem(HistoryItem*); void receivedFirstData(); void updatePolicyBaseURL(); void setPolicyBaseURL(const KURL&); void addExtraFieldsToRequest(ResourceRequest&, FrameLoadType loadType, bool isMainResource, bool cookiePolicyURLFromRequest); // Also not cool. void stopLoadingSubframes(); void clearProvisionalLoad(); void markLoadComplete(); void transitionToCommitted(PassRefPtr<CachedPage>); void frameLoadCompleted(); void mainReceivedError(const ResourceError&, bool isComplete); void setLoadType(FrameLoadType); void checkNavigationPolicy(const ResourceRequest&, DocumentLoader*, PassRefPtr<FormState>, NavigationPolicyDecisionFunction, void* argument); void checkNewWindowPolicy(const NavigationAction&, const ResourceRequest&, PassRefPtr<FormState>, const String& frameName); void continueAfterNavigationPolicy(PolicyAction); void continueAfterNewWindowPolicy(PolicyAction); void continueAfterContentPolicy(PolicyAction); void continueLoadAfterWillSubmitForm(PolicyAction = PolicyUse); static void callContinueLoadAfterNavigationPolicy(void*, const ResourceRequest&, PassRefPtr<FormState>, bool shouldContinue); void continueLoadAfterNavigationPolicy(const ResourceRequest&, PassRefPtr<FormState>, bool shouldContinue); static void callContinueLoadAfterNewWindowPolicy(void*, const ResourceRequest&, PassRefPtr<FormState>, const String& frameName, bool shouldContinue); void continueLoadAfterNewWindowPolicy(const ResourceRequest&, PassRefPtr<FormState>, const String& frameName, bool shouldContinue); static void callContinueFragmentScrollAfterNavigationPolicy(void*, const ResourceRequest&, PassRefPtr<FormState>, bool shouldContinue); void continueFragmentScrollAfterNavigationPolicy(const ResourceRequest&, bool shouldContinue); bool shouldScrollToAnchor(bool isFormSubmission, FrameLoadType loadType, const KURL& url); void addHistoryItemForFragmentScroll(); void stopPolicyCheck(); void closeDocument(); void checkLoadCompleteForThisFrame(); void setDocumentLoader(DocumentLoader*); void setPolicyDocumentLoader(DocumentLoader*); void setProvisionalDocumentLoader(DocumentLoader*); void setState(FrameState); void closeOldDataSources(); void open(CachedPage&); void open(CachedFrame&); void updateHistoryAfterClientRedirect(); void clear(bool clearWindowProperties = true, bool clearScriptObjects = true); bool shouldReloadToHandleUnreachableURL(DocumentLoader*); void handleUnimplementablePolicy(const ResourceError&); void scheduleRedirection(ScheduledRedirection*); void startRedirectionTimer(); void stopRedirectionTimer(); void dispatchDidCommitLoad(); void dispatchAssignIdentifierToInitialRequest(unsigned long identifier, DocumentLoader*, const ResourceRequest&); void dispatchWillSendRequest(DocumentLoader*, unsigned long identifier, ResourceRequest&, const ResourceResponse& redirectResponse); void dispatchDidReceiveResponse(DocumentLoader*, unsigned long identifier, const ResourceResponse&); void dispatchDidReceiveContentLength(DocumentLoader*, unsigned long identifier, int length); void dispatchDidFinishLoading(DocumentLoader*, unsigned long identifier); static bool isLocationChange(const ScheduledRedirection&); Frame* m_frame; FrameLoaderClient* m_client; FrameState m_state; FrameLoadType m_loadType; // Document loaders for the three phases of frame loading. Note that while // a new request is being loaded, the old document loader may still be referenced. // E.g. while a new request is in the "policy" state, the old document loader may // be consulted in particular as it makes sense to imply certain settings on the new loader. RefPtr<DocumentLoader> m_documentLoader; RefPtr<DocumentLoader> m_provisionalDocumentLoader; RefPtr<DocumentLoader> m_policyDocumentLoader; // This identifies the type of navigation action which prompted this load. Note // that WebKit conveys this value as the WebActionNavigationTypeKey value // on navigation action delegate callbacks. FrameLoadType m_policyLoadType; PolicyCheck m_policyCheck; bool m_delegateIsHandlingProvisionalLoadError; bool m_delegateIsDecidingNavigationPolicy; bool m_delegateIsHandlingUnimplementablePolicy; bool m_firstLayoutDone; bool m_quickRedirectComing; bool m_sentRedirectNotification; bool m_inStopAllLoaders; bool m_navigationDuringLoad; String m_outgoingReferrer; OwnPtr<FormSubmission> m_deferredFormSubmission; bool m_isExecutingJavaScriptFormAction; bool m_isRunningScript; String m_responseMIMEType; bool m_didCallImplicitClose; bool m_wasUnloadEventEmitted; bool m_isComplete; bool m_isLoadingMainResource; KURL m_URL; KURL m_workingURL; OwnPtr<IconLoader> m_iconLoader; bool m_mayLoadIconLater; bool m_cancellingWithLoadInProgress; OwnPtr<ScheduledRedirection> m_scheduledRedirection; bool m_needsClear; bool m_receivedData; bool m_encodingWasChosenByUser; String m_encoding; RefPtr<TextResourceDecoder> m_decoder; bool m_containsPlugIns; RefPtr<HTMLFormElement> m_formAboutToBeSubmitted; HashMap<String, String> m_formValuesAboutToBeSubmitted; KURL m_submittedFormURL; Timer<FrameLoader> m_redirectionTimer; Timer<FrameLoader> m_checkCompletedTimer; Timer<FrameLoader> m_checkLoadCompleteTimer; Frame* m_opener; HashSet<Frame*> m_openedFrames; bool m_openedByDOM; bool m_creatingInitialEmptyDocument; bool m_isDisplayingInitialEmptyDocument; bool m_committedFirstRealDocumentLoad; RefPtr<HistoryItem> m_currentHistoryItem; RefPtr<HistoryItem> m_previousHistoryItem; RefPtr<HistoryItem> m_provisionalHistoryItem; bool m_didPerformFirstNavigation; #ifndef NDEBUG bool m_didDispatchDidCommitLoad;#endif#if ENABLE(WML) bool m_forceReloadWmlDeck;#endif };} // namespace WebCore#endif // FrameLoader_h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -