| Index: Source/core/frame/FrameView.h
|
| diff --git a/Source/core/frame/FrameView.h b/Source/core/frame/FrameView.h
|
| index 403aa55029bc50e2b53582f3f7ad3abde387319f..1fe0937a1be99e2f29d40ee40602f014a7efcd4d 100644
|
| --- a/Source/core/frame/FrameView.h
|
| +++ b/Source/core/frame/FrameView.h
|
| @@ -57,6 +57,7 @@ class RenderWidget;
|
|
|
| typedef unsigned long long DOMTimeStamp;
|
|
|
| +// FIXME: Oilpan: move FrameView (or ScrollView) to the heap.
|
| class FrameView FINAL : public ScrollView {
|
| public:
|
| friend class RenderView;
|
| @@ -414,7 +415,13 @@ private:
|
| // FIXME: These are just "children" of the FrameView and should be RefPtr<Widget> instead.
|
| WillBePersistentHeapHashSet<RefPtrWillBeMember<RenderWidget> > m_widgets;
|
|
|
| - RefPtr<LocalFrame> m_frame;
|
| + // Oilpan: the use of a persistent back reference 'emulates' the
|
| + // RefPtr-cycle that is kept between the two objects non-Oilpan.
|
| + //
|
| + // That cycle is broken when a LocalFrame is detached by
|
| + // FrameLoader::detachFromParent(), it then clearing its
|
| + // FrameView's m_frame reference by calling setView(nullptr).
|
| + RefPtrWillBePersistent<LocalFrame> m_frame;
|
|
|
| bool m_doFullPaintInvalidation;
|
|
|
|
|