| 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;
|
|
|