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

Unified Diff: Source/web/WebRemoteFrameImpl.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 side-by-side diff with in-line comments
Download patch
Index: Source/web/WebRemoteFrameImpl.h
diff --git a/Source/web/WebRemoteFrameImpl.h b/Source/web/WebRemoteFrameImpl.h
index 5a9ab49b9e49661f8aa9a5034b90ff288ed42f69..e9e76a536d538b49cc39146f118040d8729fee82 100644
--- a/Source/web/WebRemoteFrameImpl.h
+++ b/Source/web/WebRemoteFrameImpl.h
@@ -17,8 +17,9 @@ namespace blink {
class FrameHost;
class FrameOwner;
class RemoteFrame;
+class WebViewImpl;
-class WebRemoteFrameImpl : public WebRemoteFrame, public RefCounted<WebRemoteFrameImpl> {
+class WebRemoteFrameImpl FINAL : public RefCountedWillBeGarbageCollectedFinalized<WebRemoteFrameImpl>, public WebRemoteFrame {
public:
WebRemoteFrameImpl(WebRemoteFrameClient*);
virtual ~WebRemoteFrameImpl();
@@ -178,19 +179,23 @@ public:
void initializeCoreFrame(FrameHost*, FrameOwner*, const AtomicString& name);
- void setCoreFrame(PassRefPtr<RemoteFrame>);
+ void setCoreFrame(PassRefPtrWillBeRawPtr<RemoteFrame>);
RemoteFrame* frame() const { return m_frame.get(); }
WebRemoteFrameClient* client() const { return m_client; }
static WebRemoteFrameImpl* fromFrame(RemoteFrame&);
+ virtual void trace(Visitor*);
+
private:
RemoteFrameClient m_frameClient;
- RefPtr<RemoteFrame> m_frame;
+ RefPtrWillBeMember<RemoteFrame> m_frame;
WebRemoteFrameClient* m_client;
- HashMap<WebFrame*, OwnPtr<FrameOwner> > m_ownersForChildren;
+ WebViewImpl* viewImpl() const;
+
+ WillBeHeapHashMap<WebFrame*, OwnPtrWillBeMember<FrameOwner> > m_ownersForChildren;
};
DEFINE_TYPE_CASTS(WebRemoteFrameImpl, WebFrame, frame, frame->isWebRemoteFrame(), frame.isWebRemoteFrame());

Powered by Google App Engine
This is Rietveld 408576698