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

Side by Side Diff: third_party/WebKit/Source/core/frame/FrameView.cpp

Issue 1544973002: Document lifecycle violation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move marked further downstream instead. Created 4 years, 12 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 /* 1 /*
2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org>
3 * 1999 Lars Knoll <knoll@kde.org> 3 * 1999 Lars Knoll <knoll@kde.org>
4 * 1999 Antti Koivisto <koivisto@kde.org> 4 * 1999 Antti Koivisto <koivisto@kde.org>
5 * 2000 Dirk Mueller <mueller@kde.org> 5 * 2000 Dirk Mueller <mueller@kde.org>
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) 7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com)
8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) 8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com)
9 * Copyright (C) 2009 Google Inc. All rights reserved. 9 * Copyright (C) 2009 Google Inc. All rights reserved.
10 * 10 *
(...skipping 2524 matching lines...) Expand 10 before | Expand all | Expand 10 after
2535 for (Frame* child = m_frame->tree().firstChild(); child; child = child->tree ().nextSibling()) { 2535 for (Frame* child = m_frame->tree().firstChild(); child; child = child->tree ().nextSibling()) {
2536 if (!child->isLocalFrame()) 2536 if (!child->isLocalFrame())
2537 continue; 2537 continue;
2538 if (FrameView* view = toLocalFrame(child)->view()) 2538 if (FrameView* view = toLocalFrame(child)->view())
2539 frameViews.append(view); 2539 frameViews.append(view);
2540 } 2540 }
2541 2541
2542 for (const auto& frameView : frameViews) 2542 for (const auto& frameView : frameViews)
2543 frameView->updateStyleAndLayoutIfNeededRecursive(); 2543 frameView->updateStyleAndLayoutIfNeededRecursive();
2544 2544
2545 // When an <iframe> gets composited, it triggers an extra style recalc in it s containing FrameView. 2545 // When SVG filters are invalidated using Document::scheduleSVGFilterLayerUp dateHack() they may require an
2546 // To avoid pushing an invalid tree for display, we have to check for this c ase and do another 2546 // extra layout tree update.
2547 // style recalc. The extra style recalc needs to happen after our child <ifr ames> were updated.
2548 // FIXME: We shouldn't be triggering an extra style recalc in the first plac e.
2549 if (m_frame->document()->hasSVGFilterElementsRequiringLayerUpdate()) { 2547 if (m_frame->document()->hasSVGFilterElementsRequiringLayerUpdate()) {
2550 m_frame->document()->updateLayoutTreeIfNeeded(); 2548 m_frame->document()->updateLayoutTreeIfNeeded();
2551 2549
2552 if (needsLayout()) 2550 if (needsLayout())
2553 layout(); 2551 layout();
2554 } 2552 }
2555 2553
2556 // These asserts ensure that parent frames are clean, when child frames fini shed updating layout and style. 2554 // These asserts ensure that parent frames are clean, when child frames fini shed updating layout and style.
2557 ASSERT(!needsLayout()); 2555 ASSERT(!needsLayout());
2558 ASSERT(!m_frame->document()->hasSVGFilterElementsRequiringLayerUpdate()); 2556 ASSERT(!m_frame->document()->hasSVGFilterElementsRequiringLayerUpdate());
(...skipping 1450 matching lines...) Expand 10 before | Expand all | Expand 10 after
4009 return m_hiddenForThrottling && m_crossOriginForThrottling; 4007 return m_hiddenForThrottling && m_crossOriginForThrottling;
4010 } 4008 }
4011 4009
4012 LayoutBox& FrameView::boxForScrollControlPaintInvalidation() const 4010 LayoutBox& FrameView::boxForScrollControlPaintInvalidation() const
4013 { 4011 {
4014 ASSERT(layoutView()); 4012 ASSERT(layoutView());
4015 return *layoutView(); 4013 return *layoutView();
4016 } 4014 }
4017 4015
4018 } // namespace blink 4016 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698