Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(431)

Side by Side Diff: Source/core/frame/FrameView.h

Issue 517043003: Move Frame to the Oilpan heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Add LocalFrame::detachView() + more Oilpan frame finalization comments Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 Copyright (C) 1997 Martin Jones (mjones@kde.org) 2 Copyright (C) 1997 Martin Jones (mjones@kde.org)
3 (C) 1998 Waldo Bastian (bastian@kde.org) 3 (C) 1998 Waldo Bastian (bastian@kde.org)
4 (C) 1998, 1999 Torben Weis (weis@kde.org) 4 (C) 1998, 1999 Torben Weis (weis@kde.org)
5 (C) 1999 Lars Knoll (knoll@kde.org) 5 (C) 1999 Lars Knoll (knoll@kde.org)
6 (C) 1999 Antti Koivisto (koivisto@kde.org) 6 (C) 1999 Antti Koivisto (koivisto@kde.org)
7 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed. 7 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed.
8 8
9 This library is free software; you can redistribute it and/or 9 This library is free software; you can redistribute it and/or
10 modify it under the terms of the GNU Library General Public 10 modify it under the terms of the GNU Library General Public
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 class RenderBox; 50 class RenderBox;
51 class RenderEmbeddedObject; 51 class RenderEmbeddedObject;
52 class RenderObject; 52 class RenderObject;
53 class RenderScrollbarPart; 53 class RenderScrollbarPart;
54 class RenderStyle; 54 class RenderStyle;
55 class RenderView; 55 class RenderView;
56 class RenderWidget; 56 class RenderWidget;
57 57
58 typedef unsigned long long DOMTimeStamp; 58 typedef unsigned long long DOMTimeStamp;
59 59
60 // FIXME: Oilpan: move FrameView (or ScrollView) to the heap.
60 class FrameView FINAL : public ScrollView { 61 class FrameView FINAL : public ScrollView {
61 public: 62 public:
62 friend class RenderView; 63 friend class RenderView;
63 friend class Internals; 64 friend class Internals;
64 65
65 static PassRefPtr<FrameView> create(LocalFrame*); 66 static PassRefPtr<FrameView> create(LocalFrame*);
66 static PassRefPtr<FrameView> create(LocalFrame*, const IntSize& initialSize) ; 67 static PassRefPtr<FrameView> create(LocalFrame*, const IntSize& initialSize) ;
67 68
68 virtual ~FrameView(); 69 virtual ~FrameView();
69 70
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 static bool s_inPaintContents; 408 static bool s_inPaintContents;
408 409
409 LayoutSize m_size; 410 LayoutSize m_size;
410 411
411 typedef WillBeHeapHashSet<RefPtrWillBeMember<RenderEmbeddedObject> > Embedde dObjectSet; 412 typedef WillBeHeapHashSet<RefPtrWillBeMember<RenderEmbeddedObject> > Embedde dObjectSet;
412 WillBePersistentHeapHashSet<RefPtrWillBeMember<RenderEmbeddedObject> > m_wid getUpdateSet; 413 WillBePersistentHeapHashSet<RefPtrWillBeMember<RenderEmbeddedObject> > m_wid getUpdateSet;
413 414
414 // FIXME: These are just "children" of the FrameView and should be RefPtr<Wi dget> instead. 415 // FIXME: These are just "children" of the FrameView and should be RefPtr<Wi dget> instead.
415 WillBePersistentHeapHashSet<RefPtrWillBeMember<RenderWidget> > m_widgets; 416 WillBePersistentHeapHashSet<RefPtrWillBeMember<RenderWidget> > m_widgets;
416 417
417 RefPtr<LocalFrame> m_frame; 418 // Oilpan: the use of a persistent back reference 'emulates' the
419 // RefPtr-cycle that is kept between the two objects non-Oilpan.
420 //
421 // That cycle is broken when a LocalFrame is detached by
422 // FrameLoader::detachFromParent(), it then clearing its
Mads Ager (chromium) 2014/09/16 12:17:45 clearing -> clears
sof 2014/09/17 09:42:57 Done.
423 // FrameView's m_frame reference by calling setView(nullptr).
424 RefPtrWillBePersistent<LocalFrame> m_frame;
418 425
419 bool m_doFullPaintInvalidation; 426 bool m_doFullPaintInvalidation;
420 427
421 bool m_canHaveScrollbars; 428 bool m_canHaveScrollbars;
422 unsigned m_slowRepaintObjectCount; 429 unsigned m_slowRepaintObjectCount;
423 430
424 bool m_hasPendingLayout; 431 bool m_hasPendingLayout;
425 RenderObject* m_layoutSubtreeRoot; 432 RenderObject* m_layoutSubtreeRoot;
426 433
427 bool m_layoutSchedulingEnabled; 434 bool m_layoutSchedulingEnabled;
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 m_view->setCanInvalidatePaintDuringPerformLayout(m_originalValue); 542 m_view->setCanInvalidatePaintDuringPerformLayout(m_originalValue);
536 } 543 }
537 private: 544 private:
538 FrameView* m_view; 545 FrameView* m_view;
539 bool m_originalValue; 546 bool m_originalValue;
540 }; 547 };
541 548
542 } // namespace blink 549 } // namespace blink
543 550
544 #endif // FrameView_h 551 #endif // FrameView_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698