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

Side by Side Diff: third_party/WebKit/Source/core/frame/RemoteFrameView.h

Issue 2431473003: Intersection Observer support for OOPIF (Closed)
Patch Set: Enabled test, fixed bugs Created 4 years, 1 month 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 RemoteFrameView_h 5 #ifndef RemoteFrameView_h
6 #define RemoteFrameView_h 6 #define RemoteFrameView_h
7 7
8 #include "platform/Widget.h" 8 #include "platform/Widget.h"
9 #include "platform/geometry/IntRect.h" 9 #include "platform/geometry/IntRect.h"
10 #include "platform/heap/Handle.h" 10 #include "platform/heap/Handle.h"
11 11
12 namespace blink { 12 namespace blink {
13 13
14 class RemoteFrame; 14 class RemoteFrame;
15 15
16 class RemoteFrameView final : public Widget { 16 class RemoteFrameView final : public Widget {
17 public: 17 public:
18 static RemoteFrameView* create(RemoteFrame*); 18 static RemoteFrameView* create(RemoteFrame*);
19 19
20 ~RemoteFrameView() override; 20 ~RemoteFrameView() override;
21 21
22 bool isRemoteFrameView() const override { return true; }
23 void setParent(Widget*) override;
24
25 RemoteFrame& frame() const { 22 RemoteFrame& frame() const {
26 ASSERT(m_remoteFrame); 23 ASSERT(m_remoteFrame);
27 return *m_remoteFrame; 24 return *m_remoteFrame;
28 } 25 }
29 26
27 // Called on the view of a RemoteFrame with a LocalFrame parent, to update
28 // the viewport intersection in the process where the RemoteFrame is rendered.
29 void updateRemoteViewportIntersection();
30
31 bool isRemoteFrameView() const override { return true; }
32 void setParent(Widget*) override;
33
30 void dispose() override; 34 void dispose() override;
31
32 // Override to notify remote frame that its viewport size has changed. 35 // Override to notify remote frame that its viewport size has changed.
33 void frameRectsChanged() override; 36 void frameRectsChanged() override;
34
35 void invalidateRect(const IntRect&) override; 37 void invalidateRect(const IntRect&) override;
36
37 void setFrameRect(const IntRect&) override; 38 void setFrameRect(const IntRect&) override;
38
39 void hide() override; 39 void hide() override;
40 void show() override; 40 void show() override;
41 void setParentVisible(bool) override; 41 void setParentVisible(bool) override;
42 42
43 DECLARE_VIRTUAL_TRACE(); 43 DECLARE_VIRTUAL_TRACE();
44 44
45 private: 45 private:
46 explicit RemoteFrameView(RemoteFrame*); 46 explicit RemoteFrameView(RemoteFrame*);
47 47
48 // The properties and handling of the cycle between RemoteFrame 48 // The properties and handling of the cycle between RemoteFrame
49 // and its RemoteFrameView corresponds to that between LocalFrame 49 // and its RemoteFrameView corresponds to that between LocalFrame
50 // and FrameView. Please see the FrameView::m_frame comment for 50 // and FrameView. Please see the FrameView::m_frame comment for
51 // details. 51 // details.
52 Member<RemoteFrame> m_remoteFrame; 52 Member<RemoteFrame> m_remoteFrame;
53
54 IntRect m_lastViewportIntersection;
53 }; 55 };
54 56
55 DEFINE_TYPE_CASTS(RemoteFrameView, 57 DEFINE_TYPE_CASTS(RemoteFrameView,
56 Widget, 58 Widget,
57 widget, 59 widget,
58 widget->isRemoteFrameView(), 60 widget->isRemoteFrameView(),
59 widget.isRemoteFrameView()); 61 widget.isRemoteFrameView());
60 62
61 } // namespace blink 63 } // namespace blink
62 64
63 #endif // RemoteFrameView_h 65 #endif // RemoteFrameView_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698