| Index: Source/core/frame/Frame.h
|
| diff --git a/Source/core/frame/Frame.h b/Source/core/frame/Frame.h
|
| index 2bdfd460cef7a7b0a9ae3e8bc800dc332a701d27..77ed43bfdf68fab5c7a64f7c273a3c2822b84595 100644
|
| --- a/Source/core/frame/Frame.h
|
| +++ b/Source/core/frame/Frame.h
|
| @@ -55,6 +55,8 @@ class WindowProxy;
|
| class WindowProxyManager;
|
| struct FrameLoadRequest;
|
|
|
| +enum class FrameDetachType { Remove, Swap };
|
| +
|
| // Status of user gesture.
|
| enum class UserGestureStatus { Active, None };
|
|
|
| @@ -76,7 +78,7 @@ public:
|
| virtual void navigate(const FrameLoadRequest&) = 0;
|
| virtual void reload(FrameLoadType, ClientRedirectPolicy) = 0;
|
|
|
| - virtual void detach();
|
| + virtual void detach(FrameDetachType);
|
| void detachChildren();
|
| virtual void disconnectOwnerElement();
|
|
|
| @@ -103,6 +105,12 @@ public:
|
| Frame* findFrameForNavigation(const AtomicString& name, Frame& activeFrame);
|
| Frame* findUnsafeParentScrollPropagationBoundary();
|
|
|
| + // This prepares the Frame for the next commit. It will detach children,
|
| + // dispatch unload events, abort XHR requests and detach the document.
|
| + // Returns true if the frame is ready to receive the next commit, or false
|
| + // otherwise.
|
| + virtual bool prepareForCommit() = 0;
|
| + void prepareSwapFrom(Frame*);
|
| void finishSwapFrom(Frame*);
|
|
|
| bool canNavigate(const Frame&);
|
|
|