| Index: Source/core/frame/Frame.h
|
| diff --git a/Source/core/frame/Frame.h b/Source/core/frame/Frame.h
|
| index 498cb77c81bfd740d26d1fdc0c02b6131f656796..fc4820a39d356845c767035bf6fba0adc6f83175 100644
|
| --- a/Source/core/frame/Frame.h
|
| +++ b/Source/core/frame/Frame.h
|
| @@ -98,6 +98,9 @@ public:
|
| // method.
|
| bool isRemoteFrameTemporary() const { return m_remotePlatformLayer; }
|
|
|
| + bool hasBeenClosed() const { return m_hasBeenClosed; }
|
| + void setHasBeenClosed();
|
| +
|
| protected:
|
| Frame(FrameClient*, FrameHost*, FrameOwner*);
|
|
|
| @@ -111,6 +114,14 @@ protected:
|
| private:
|
| FrameClient* m_client;
|
| blink::WebLayer* m_remotePlatformLayer;
|
| +
|
| + // The closing of a frame by the embedder may not trigger the
|
| + // immediate release of this Frame object -- there might be
|
| + // other RefPtrs to the Frame, up the stack or elsewhere.
|
| + //
|
| + // Hence, keep a separate flag that's set when the frame is
|
| + // closed. It is consulted by window.closed.
|
| + bool m_hasBeenClosed;
|
| };
|
|
|
| inline FrameClient* Frame::client() const
|
|
|