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

Side by Side Diff: third_party/WebKit/Source/web/RemoteBridgeFrameOwner.h

Issue 1307013004: Propagate scrolling/marginwidth/marginheight property values to child frame. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: content_unittests compile fix Created 5 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be found 2 // Use of this source code is governed by a BSD-style license that can be found
3 // in the LICENSE file. 3 // in the LICENSE file.
4 4
5 #ifndef RemoteBridgeFrameOwner_h 5 #ifndef RemoteBridgeFrameOwner_h
6 #define RemoteBridgeFrameOwner_h 6 #define RemoteBridgeFrameOwner_h
7 7
8 #include "core/frame/FrameOwner.h" 8 #include "core/frame/FrameOwner.h"
9 #include "platform/scroll/ScrollTypes.h"
10 #include "public/web/WebFrameOwnerProperties.h"
9 #include "web/WebLocalFrameImpl.h" 11 #include "web/WebLocalFrameImpl.h"
10 12
11 namespace blink { 13 namespace blink {
12 14
13 // Helper class to bridge communication for a frame with a remote parent. 15 // Helper class to bridge communication for a frame with a remote parent.
14 // Currently, it serves two purposes: 16 // Currently, it serves two purposes:
15 // 1. Allows the local frame's loader to retrieve sandbox flags associated with 17 // 1. Allows the local frame's loader to retrieve sandbox flags associated with
16 // its owner element in another process. 18 // its owner element in another process.
17 // 2. Trigger a load event on its owner element once it finishes a load. 19 // 2. Trigger a load event on its owner element once it finishes a load.
18 class RemoteBridgeFrameOwner final : public NoBaseWillBeGarbageCollectedFinalize d<RemoteBridgeFrameOwner>, public FrameOwner { 20 class RemoteBridgeFrameOwner final : public NoBaseWillBeGarbageCollectedFinalize d<RemoteBridgeFrameOwner>, public FrameOwner {
19 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(RemoteBridgeFrameOwner); 21 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(RemoteBridgeFrameOwner);
20 public: 22 public:
21 static PassOwnPtrWillBeRawPtr<RemoteBridgeFrameOwner> create(PassRefPtrWillB eRawPtr<WebLocalFrameImpl> frame, SandboxFlags flags) 23 static PassOwnPtrWillBeRawPtr<RemoteBridgeFrameOwner> create(PassRefPtrWillB eRawPtr<WebLocalFrameImpl> frame, SandboxFlags flags, const WebFrameOwnerPropert ies& frameOwnerProperties)
22 { 24 {
23 return adoptPtrWillBeNoop(new RemoteBridgeFrameOwner(frame, flags)); 25 return adoptPtrWillBeNoop(new RemoteBridgeFrameOwner(frame, flags, frame OwnerProperties));
24 } 26 }
25 27
26 bool isLocal() const override 28 bool isLocal() const override
27 { 29 {
28 return false; 30 return false;
29 } 31 }
30 32
31 SandboxFlags sandboxFlags() const override 33 SandboxFlags sandboxFlags() const override
32 { 34 {
33 return m_sandboxFlags; 35 return m_sandboxFlags;
34 } 36 }
35 37
36 void setSandboxFlags(SandboxFlags flags) 38 void setSandboxFlags(SandboxFlags flags)
37 { 39 {
38 m_sandboxFlags = flags; 40 m_sandboxFlags = flags;
39 } 41 }
40 42
41 void setContentFrame(PassRefPtrWillBeRawPtr<WebLocalFrameImpl> frame) 43 void setContentFrame(PassRefPtrWillBeRawPtr<WebLocalFrameImpl> frame)
42 { 44 {
43 m_frame = frame; 45 m_frame = frame;
44 } 46 }
45 47
46 void dispatchLoad() override; 48 void dispatchLoad() override;
47 49
48 void renderFallbackContent() override 50 void renderFallbackContent() override
49 { 51 {
50 // TODO(dcheng): Implement. 52 // TODO(dcheng): Implement.
51 } 53 }
52 54
55 void setScrollingMode(WebFrameOwnerProperties::ScrollingMode);
56 void setMarginWidth(int marginWidth) { m_marginWidth = marginWidth; }
57 void setMarginHeight(int marginHeight) { m_marginHeight = marginHeight; }
58
59 ScrollbarMode scrollingMode() const override { return m_scrolling; }
60 int marginWidth() const override { return m_marginWidth; }
61 int marginHeight() const override { return m_marginHeight; }
62
53 DECLARE_VIRTUAL_TRACE(); 63 DECLARE_VIRTUAL_TRACE();
54 64
55 private: 65 private:
56 RemoteBridgeFrameOwner(PassRefPtrWillBeRawPtr<WebLocalFrameImpl>, SandboxFla gs); 66 RemoteBridgeFrameOwner(PassRefPtrWillBeRawPtr<WebLocalFrameImpl>, SandboxFla gs, const WebFrameOwnerProperties&);
57 67
58 RefPtrWillBeMember<WebLocalFrameImpl> m_frame; 68 RefPtrWillBeMember<WebLocalFrameImpl> m_frame;
59 SandboxFlags m_sandboxFlags; 69 SandboxFlags m_sandboxFlags;
70 ScrollbarMode m_scrolling;
71 int m_marginWidth;
72 int m_marginHeight;
60 }; 73 };
61 74
62 DEFINE_TYPE_CASTS(RemoteBridgeFrameOwner, FrameOwner, owner, !owner->isLocal(), !owner.isLocal()); 75 DEFINE_TYPE_CASTS(RemoteBridgeFrameOwner, FrameOwner, owner, !owner->isLocal(), !owner.isLocal());
63 76
64 } // namespace blink 77 } // namespace blink
65 78
66 #endif // RemoteBridgeFrameOwner_h 79 #endif // RemoteBridgeFrameOwner_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp ('k') | third_party/WebKit/Source/web/RemoteBridgeFrameOwner.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698