diff options
Diffstat (limited to 'WebCore/loader/FrameLoader.h')
-rw-r--r-- | WebCore/loader/FrameLoader.h | 59 |
1 files changed, 31 insertions, 28 deletions
diff --git a/WebCore/loader/FrameLoader.h b/WebCore/loader/FrameLoader.h index abe3b3a..adfebd4 100644 --- a/WebCore/loader/FrameLoader.h +++ b/WebCore/loader/FrameLoader.h @@ -32,6 +32,7 @@ #define FrameLoader_h #include "CachePolicy.h" +#include "DocumentWriter.h" #include "FrameLoaderTypes.h" #include "HistoryController.h" #include "PolicyCallback.h" @@ -67,7 +68,10 @@ class HTMLFrameOwnerElement; class IconLoader; class IntSize; class NavigationAction; -class RenderPart; +#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) +class Node; +#endif +class RenderEmbeddedObject; class ResourceError; class ResourceLoader; class ResourceResponse; @@ -98,6 +102,7 @@ public: PolicyChecker* policyChecker() const { return &m_policyChecker; } HistoryController* history() const { return &m_history; } ResourceLoadNotifier* notifier() const { return &m_notifer; } + DocumentWriter* writer() const { return &m_writer; } // FIXME: This is not cool, people. There are too many different functions that all start loads. // We should aim to consolidate these into a smaller set of functions, and try to reuse more of @@ -215,7 +220,7 @@ public: void changeLocation(const KURL&, const String& referrer, bool lockHistory = true, bool lockBackForwardList = true, bool userGesture = false, bool refresh = false); void urlSelected(const ResourceRequest&, const String& target, PassRefPtr<Event>, bool lockHistory, bool lockBackForwardList, bool userGesture, ReferrerPolicy); - bool requestFrame(HTMLFrameOwnerElement*, const String& url, const AtomicString& frameName); + bool requestFrame(HTMLFrameOwnerElement*, const String& url, const AtomicString& frameName, bool lockHistory = true, bool lockBackForwardList = true); void submitForm(const char* action, const String& url, PassRefPtr<FormData>, const String& target, const String& contentType, const String& boundary, @@ -227,24 +232,16 @@ public: void didExplicitOpen(); + // Callbacks from DocumentWriter + void didBeginDocument(bool dispatchWindowObjectAvailable); + void didEndDocument(); + void willSetEncoding(); + KURL iconURL(); void commitIconURLToIconDatabase(const KURL&); KURL baseURL() const; - void replaceDocument(const String&); - - void begin(); - void begin(const KURL&, bool dispatchWindowObjectAvailable = true, SecurityOrigin* forcedSecurityOrigin = 0); - - void write(const char* string, int length = -1, bool flush = false); - void write(const String&); - void end(); - void endIfNotLoadingMainResource(); - - void setEncoding(const String& encoding, bool userChosen); - String encoding() const; - void tokenizerProcessedData(); void handledOnloadEvents(); @@ -260,6 +257,9 @@ public: bool isSandboxed(SandboxFlags mask) const { return m_sandboxFlags & mask; } SandboxFlags sandboxFlags() const { return m_sandboxFlags; } + // The following sandbox flags will be forced, regardless of changes to + // the sandbox attribute of any parent frames. + void setForcedSandboxFlags(SandboxFlags flags) { m_forcedSandboxFlags = flags; m_sandboxFlags |= flags; } // Mixed content related functions. static bool isMixedContent(SecurityOrigin* context, const KURL&); @@ -281,9 +281,10 @@ public: const KURL& url() const { return m_URL; } - void setResponseMIMEType(const String&); - const String& responseMIMEType() const; + // setURL is a low-level setter and does not trigger loading. + void setURL(const KURL&); + bool allowPlugins(ReasonForCallingAllowPlugins); bool containsPlugins() const; void loadDone(); @@ -294,7 +295,7 @@ public: bool isComplete() const; - bool requestObject(RenderPart* frame, const String& url, const AtomicString& frameName, + bool requestObject(RenderEmbeddedObject*, const String& url, const AtomicString& frameName, const String& serviceType, const Vector<String>& paramNames, const Vector<String>& paramValues); KURL completeURL(const String& url); @@ -323,6 +324,10 @@ public: void open(CachedFrameBase&); +#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) + PassRefPtr<Widget> loadMediaPlayerProxyPlugin(Node*, const KURL&, const Vector<String>& paramNames, const Vector<String>& paramValues); +#endif + // FIXME: Should these really be public? void completed(); bool allAncestorsAreComplete() const; // including this @@ -340,6 +345,10 @@ public: static ObjectContentType defaultObjectContentType(const KURL& url, const String& mimeType); + bool isDisplayingInitialEmptyDocument() const { return m_isDisplayingInitialEmptyDocument; } + + void clear(bool clearWindowProperties = true, bool clearScriptObjects = true, bool clearFrameView = true); + private: bool canCachePageContainingThisFrame(); #ifndef NDEBUG @@ -352,8 +361,8 @@ private: void started(); 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 loadPlugin(RenderEmbeddedObject*, const KURL&, const String& mimeType, + const Vector<String>& paramNames, const Vector<String>& paramValues, bool useFallback); void navigateWithinDocument(HistoryItem*); void navigateToDifferentDocument(HistoryItem*, FrameLoadType); @@ -404,8 +413,6 @@ private: void updateHistoryAfterClientRedirect(); - void clear(bool clearWindowProperties = true, bool clearScriptObjects = true, bool clearFrameView = true); - bool shouldReloadToHandleUnreachableURL(DocumentLoader*); void dispatchDidCommitLoad(); @@ -465,6 +472,7 @@ private: mutable PolicyChecker m_policyChecker; mutable HistoryController m_history; mutable ResourceLoadNotifier m_notifer; + mutable DocumentWriter m_writer; FrameState m_state; FrameLoadType m_loadType; @@ -488,8 +496,6 @@ private: bool m_isExecutingJavaScriptFormAction; - String m_responseMIMEType; - bool m_didCallImplicitClose; bool m_wasUnloadEventEmitted; bool m_unloadEventBeingDispatched; @@ -509,10 +515,6 @@ private: bool m_needsClear; bool m_receivedData; - bool m_encodingWasChosenByUser; - String m_encoding; - RefPtr<TextResourceDecoder> m_decoder; - bool m_containsPlugIns; KURL m_submittedFormURL; @@ -533,6 +535,7 @@ private: bool m_suppressOpenerInNewFrame; SandboxFlags m_sandboxFlags; + SandboxFlags m_forcedSandboxFlags; #ifndef NDEBUG bool m_didDispatchDidCommitLoad; |