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

Unified Diff: Source/core/frame/LocalFrame.h

Issue 603193005: Move the Widget hierarchy to the Oilpan heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebased upto r183571 Created 6 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: Source/core/frame/LocalFrame.h
diff --git a/Source/core/frame/LocalFrame.h b/Source/core/frame/LocalFrame.h
index 924291b0510e7999881c880931773c6333d1ce8b..f26d18ecae6003207e554fe8cd8e4a0be69a68f0 100644
--- a/Source/core/frame/LocalFrame.h
+++ b/Source/core/frame/LocalFrame.h
@@ -51,6 +51,7 @@ namespace blink {
class FrameDestructionObserver;
class FrameSelection;
class FrameView;
+ class HTMLPlugInElement;
class InputMethodController;
class IntPoint;
class IntSize;
@@ -70,7 +71,7 @@ namespace blink {
virtual bool isLocalFrame() const override { return true; }
void init();
- void setView(PassRefPtr<FrameView>);
+ void setView(PassRefPtrWillBeRawPtr<FrameView>);
void createView(const IntSize&, const Color&, bool,
ScrollbarMode = ScrollbarAuto, bool horizontalLock = false,
ScrollbarMode = ScrollbarAuto, bool verticalLock = false);
@@ -157,6 +158,12 @@ namespace blink {
bool shouldReuseDefaultView(const KURL&) const;
void removeSpellingMarkersUnderWords(const Vector<String>& words);
+#if ENABLE(OILPAN)
+ void registerPluginElement(HTMLPlugInElement*);
+ void unregisterPluginElement(HTMLPlugInElement*);
+ void clearWeakMembers(Visitor*);
+#endif
+
// ========
private:
@@ -170,7 +177,7 @@ namespace blink {
mutable FrameLoader m_loader;
mutable NavigationScheduler m_navigationScheduler;
- RefPtr<FrameView> m_view;
+ RefPtrWillBeMember<FrameView> m_view;
// Usually 0. Non-null if this is the top frame of PagePopup.
RefPtrWillBeMember<Element> m_pagePopupOwner;
@@ -180,7 +187,20 @@ namespace blink {
const OwnPtrWillBeMember<FrameSelection> m_selection;
const OwnPtrWillBeMember<EventHandler> m_eventHandler;
const OwnPtrWillBeMember<FrameConsole> m_console;
- OwnPtrWillBeMember<InputMethodController> m_inputMethodController;
+ const OwnPtrWillBeMember<InputMethodController> m_inputMethodController;
+
+#if ENABLE(OILPAN)
+ // Oilpan: in order to reliably finalize plugin elements with
+ // renderer-less plugins, the frame keeps track of them. When
+ // the frame is detached and disposed, these will be disposed
+ // of in the process. This is needed as the plugin element
+ // might not itself be attached to a DOM tree and be
+ // explicitly detached&disposed of.
+ //
+ // A weak reference is all wanted; the plugin element must
+ // otherwise be referenced and kept alive.
+ HeapHashSet<WeakMember<HTMLPlugInElement> > m_pluginElements;
+#endif
float m_pageZoomFactor;
float m_textZoomFactor;

Powered by Google App Engine
This is Rietveld 408576698