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

Side by Side Diff: third_party/WebKit/Source/web/WebFrame.cpp

Issue 2564633002: Don't create layout objects for children of display-none iframes. (Closed)
Patch Set: Add new layout tests. Created 4 years 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 #include "public/web/WebFrame.h" 5 #include "public/web/WebFrame.h"
6 6
7 #include "bindings/core/v8/WindowProxyManager.h" 7 #include "bindings/core/v8/WindowProxyManager.h"
8 #include "core/HTMLNames.h" 8 #include "core/HTMLNames.h"
9 #include "core/frame/FrameHost.h" 9 #include "core/frame/FrameHost.h"
10 #include "core/frame/FrameView.h" 10 #include "core/frame/FrameView.h"
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 // for frames with a remote owner. 139 // for frames with a remote owner.
140 RemoteFrameOwner* owner = toRemoteFrameOwner(toImplBase()->frame()->owner()); 140 RemoteFrameOwner* owner = toRemoteFrameOwner(toImplBase()->frame()->owner());
141 DCHECK(owner); 141 DCHECK(owner);
142 142
143 Frame* frame = toImplBase()->frame(); 143 Frame* frame = toImplBase()->frame();
144 DCHECK(frame); 144 DCHECK(frame);
145 145
146 if (frame->isLocalFrame()) { 146 if (frame->isLocalFrame()) {
147 toLocalFrame(frame)->document()->willChangeFrameOwnerProperties( 147 toLocalFrame(frame)->document()->willChangeFrameOwnerProperties(
148 properties.marginWidth, properties.marginHeight, 148 properties.marginWidth, properties.marginHeight,
149 static_cast<ScrollbarMode>(properties.scrollingMode)); 149 static_cast<ScrollbarMode>(properties.scrollingMode),
150 properties.isDisplayNone);
150 } 151 }
151 152
152 owner->setScrollingMode(properties.scrollingMode); 153 owner->setScrollingMode(properties.scrollingMode);
153 owner->setMarginWidth(properties.marginWidth); 154 owner->setMarginWidth(properties.marginWidth);
154 owner->setMarginHeight(properties.marginHeight); 155 owner->setMarginHeight(properties.marginHeight);
155 owner->setAllowFullscreen(properties.allowFullscreen); 156 owner->setAllowFullscreen(properties.allowFullscreen);
157 owner->setIsDisplayNone(properties.isDisplayNone);
156 owner->setCsp(properties.requiredCsp); 158 owner->setCsp(properties.requiredCsp);
157 owner->setDelegatedpermissions(properties.delegatedPermissions); 159 owner->setDelegatedpermissions(properties.delegatedPermissions);
158 } 160 }
159 161
160 WebFrame* WebFrame::opener() const { 162 WebFrame* WebFrame::opener() const {
161 return m_opener; 163 return m_opener;
162 } 164 }
163 165
164 void WebFrame::setOpener(WebFrame* opener) { 166 void WebFrame::setOpener(WebFrame* opener) {
165 if (m_opener) 167 if (m_opener)
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 void WebFrame::clearWeakFrames(VisitorDispatcher visitor) { \ 338 void WebFrame::clearWeakFrames(VisitorDispatcher visitor) { \
337 clearWeakFramesImpl(visitor); \ 339 clearWeakFramesImpl(visitor); \
338 } 340 }
339 341
340 DEFINE_VISITOR_METHOD(Visitor*) 342 DEFINE_VISITOR_METHOD(Visitor*)
341 DEFINE_VISITOR_METHOD(InlinedGlobalMarkingVisitor) 343 DEFINE_VISITOR_METHOD(InlinedGlobalMarkingVisitor)
342 344
343 #undef DEFINE_VISITOR_METHOD 345 #undef DEFINE_VISITOR_METHOD
344 346
345 } // namespace blink 347 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698