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

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

Issue 842033003: Cleanup RemotePlatformLayer when disconnecting RemoteFrame. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 11 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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef RemoteFrame_h 5 #ifndef RemoteFrame_h
6 #define RemoteFrame_h 6 #define RemoteFrame_h
7 7
8 #include "core/dom/RemoteSecurityContext.h" 8 #include "core/dom/RemoteSecurityContext.h"
9 #include "core/frame/Frame.h" 9 #include "core/frame/Frame.h"
10 10
11 namespace blink { 11 namespace blink {
12 12
13 class Event; 13 class Event;
14 class RemoteDOMWindow; 14 class RemoteDOMWindow;
15 class RemoteFrameClient; 15 class RemoteFrameClient;
16 class RemoteFrameView; 16 class RemoteFrameView;
17 class WebLayer;
17 18
18 class RemoteFrame: public Frame { 19 class RemoteFrame: public Frame {
19 public: 20 public:
20 static PassRefPtrWillBeRawPtr<RemoteFrame> create(RemoteFrameClient*, FrameH ost*, FrameOwner*); 21 static PassRefPtrWillBeRawPtr<RemoteFrame> create(RemoteFrameClient*, FrameH ost*, FrameOwner*);
21 22
22 virtual ~RemoteFrame(); 23 virtual ~RemoteFrame();
23 24
24 // Frame overrides: 25 // Frame overrides:
25 void trace(Visitor*) override; 26 void trace(Visitor*) override;
26 virtual bool isRemoteFrame() const override { return true; } 27 bool isRemoteFrame() const override { return true; }
27 virtual DOMWindow* domWindow() const override; 28 DOMWindow* domWindow() const override;
28 virtual void navigate(Document& originDocument, const KURL&, bool lockBackFo rwardList) override; 29 void navigate(Document& originDocument, const KURL&, bool lockBackForwardLis t) override;
29 virtual void reload(ReloadPolicy, ClientRedirectPolicy) override; 30 void reload(ReloadPolicy, ClientRedirectPolicy) override;
30 virtual void detach() override; 31 void detach() override;
31 virtual RemoteSecurityContext* securityContext() const override; 32 RemoteSecurityContext* securityContext() const override;
32 void printNavigationErrorMessage(const Frame&, const char* reason) { } 33 void printNavigationErrorMessage(const Frame&, const char* reason) { }
34 void disconnectOwnerElement() override;
33 35
34 // FIXME: Remove this method once we have input routing in the browser 36 // FIXME: Remove this method once we have input routing in the browser
35 // process. See http://crbug.com/339659. 37 // process. See http://crbug.com/339659.
36 void forwardInputEvent(Event*); 38 void forwardInputEvent(Event*);
37 39
40 void setRemotePlatformLayer(WebLayer*);
41 WebLayer* remotePlatformLayer() const { return m_remotePlatformLayer; }
42
38 void setView(PassRefPtrWillBeRawPtr<RemoteFrameView>); 43 void setView(PassRefPtrWillBeRawPtr<RemoteFrameView>);
39 void createView(); 44 void createView();
40 45
41 RemoteFrameView* view() const; 46 RemoteFrameView* view() const;
42 47
43 48
44 private: 49 private:
45 RemoteFrame(RemoteFrameClient*, FrameHost*, FrameOwner*); 50 RemoteFrame(RemoteFrameClient*, FrameHost*, FrameOwner*);
46 51
47 RemoteFrameClient* remoteFrameClient() const; 52 RemoteFrameClient* remoteFrameClient() const;
48 53
49 RefPtrWillBeMember<RemoteFrameView> m_view; 54 RefPtrWillBeMember<RemoteFrameView> m_view;
50 RefPtr<RemoteSecurityContext> m_securityContext; 55 RefPtr<RemoteSecurityContext> m_securityContext;
51 RefPtrWillBeMember<RemoteDOMWindow> m_domWindow; 56 RefPtrWillBeMember<RemoteDOMWindow> m_domWindow;
57
58 WebLayer* m_remotePlatformLayer;
52 }; 59 };
53 60
54 inline RemoteFrameView* RemoteFrame::view() const 61 inline RemoteFrameView* RemoteFrame::view() const
55 { 62 {
56 return m_view.get(); 63 return m_view.get();
57 } 64 }
58 65
59 DEFINE_TYPE_CASTS(RemoteFrame, Frame, remoteFrame, remoteFrame->isRemoteFrame(), remoteFrame.isRemoteFrame()); 66 DEFINE_TYPE_CASTS(RemoteFrame, Frame, remoteFrame, remoteFrame->isRemoteFrame(), remoteFrame.isRemoteFrame());
60 67
61 } // namespace blink 68 } // namespace blink
62 69
63 #endif // RemoteFrame_h 70 #endif // RemoteFrame_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698