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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutObject.cpp

Issue 2394053004: Clear scroll anchor on all parent scrollers from ScrollAnchor::clear (Closed)
Patch Set: Apply review comments Created 4 years, 2 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) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2009 Google Inc. All rights reserved. 7 * Copyright (C) 2009 Google Inc. All rights reserved.
8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 2631 matching lines...) Expand 10 before | Expand all | Expand 10 after
2642 2642
2643 if (RuntimeEnabledFeatures::scrollAnchoringEnabled() && 2643 if (RuntimeEnabledFeatures::scrollAnchoringEnabled() &&
2644 m_bitfields.isScrollAnchorObject()) { 2644 m_bitfields.isScrollAnchorObject()) {
2645 // Clear the bit first so that anchor.clear() doesn't recurse into findRefer encingScrollAnchors. 2645 // Clear the bit first so that anchor.clear() doesn't recurse into findRefer encingScrollAnchors.
2646 m_bitfields.setIsScrollAnchorObject(false); 2646 m_bitfields.setIsScrollAnchorObject(false);
2647 findReferencingScrollAnchors(this, Clear); 2647 findReferencingScrollAnchors(this, Clear);
2648 } 2648 }
2649 } 2649 }
2650 2650
2651 void LayoutObject::maybeClearIsScrollAnchorObject() { 2651 void LayoutObject::maybeClearIsScrollAnchorObject() {
2652 if (m_bitfields.isScrollAnchorObject()) 2652 if (m_bitfields.isScrollAnchorObject()) {
2653 m_bitfields.setIsScrollAnchorObject( 2653 m_bitfields.setIsScrollAnchorObject(
2654 findReferencingScrollAnchors(this, DontClear)); 2654 findReferencingScrollAnchors(this, DontClear));
2655 }
2655 } 2656 }
2656 2657
2657 void LayoutObject::removeFromLayoutFlowThread() { 2658 void LayoutObject::removeFromLayoutFlowThread() {
2658 if (!isInsideFlowThread()) 2659 if (!isInsideFlowThread())
2659 return; 2660 return;
2660 2661
2661 // Sometimes we remove the element from the flow, but it's not destroyed at th at time. 2662 // Sometimes we remove the element from the flow, but it's not destroyed at th at time.
2662 // It's only until later when we actually destroy it and remove all the childr en from it. 2663 // It's only until later when we actually destroy it and remove all the childr en from it.
2663 // Currently, that happens for firstLetter elements and list markers. 2664 // Currently, that happens for firstLetter elements and list markers.
2664 // Pass in the flow thread so that we don't have to look it up for all the chi ldren. 2665 // Pass in the flow thread so that we don't have to look it up for all the chi ldren.
(...skipping 789 matching lines...) Expand 10 before | Expand all | Expand 10 after
3454 const blink::LayoutObject* root = object1; 3455 const blink::LayoutObject* root = object1;
3455 while (root->parent()) 3456 while (root->parent())
3456 root = root->parent(); 3457 root = root->parent();
3457 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); 3458 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0);
3458 } else { 3459 } else {
3459 WTFLogAlways("%s", "Cannot showLayoutTree. Root is (nil)"); 3460 WTFLogAlways("%s", "Cannot showLayoutTree. Root is (nil)");
3460 } 3461 }
3461 } 3462 }
3462 3463
3463 #endif 3464 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698