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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutBoxModelObject.h

Issue 2761673005: Optimize scroll adjustment for paint invalidation
Patch Set: - Created 3 years, 9 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
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 * Copyright (C) 2003, 2006, 2007, 2009 Apple Inc. All rights reserved. 4 * Copyright (C) 2003, 2006, 2007, 2009 Apple Inc. All rights reserved.
5 * Copyright (C) 2010 Google Inc. All rights reserved. 5 * Copyright (C) 2010 Google Inc. All rights reserved.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 511 matching lines...) Expand 10 before | Expand all | Expand 10 after
522 LayoutObject* endChild, 522 LayoutObject* endChild,
523 bool fullRemoveInsert = false) { 523 bool fullRemoveInsert = false) {
524 moveChildrenTo(toBoxModelObject, startChild, endChild, 0, fullRemoveInsert); 524 moveChildrenTo(toBoxModelObject, startChild, endChild, 0, fullRemoveInsert);
525 } 525 }
526 virtual void moveChildrenTo(LayoutBoxModelObject* toBoxModelObject, 526 virtual void moveChildrenTo(LayoutBoxModelObject* toBoxModelObject,
527 LayoutObject* startChild, 527 LayoutObject* startChild,
528 LayoutObject* endChild, 528 LayoutObject* endChild,
529 LayoutObject* beforeChild, 529 LayoutObject* beforeChild,
530 bool fullRemoveInsert = false); 530 bool fullRemoveInsert = false);
531 531
532 // Non-composited scrolling should be included in the bounds of scrolled
533 // items. Since mapToVisualRectInAncestorSpace does not include scrolling of
534 // the ancestor, we need to add it back in after.
535 IntSize scrollAdjustmentForPaintInvalidation() const;
536
532 private: 537 private:
533 void createLayer(); 538 void createLayer();
534 539
535 LayoutUnit computedCSSPadding(const Length&) const; 540 LayoutUnit computedCSSPadding(const Length&) const;
536 bool isBoxModelObject() const final { return true; } 541 bool isBoxModelObject() const final { return true; }
537 542
538 LayoutBoxModelObjectRareData& ensureRareData() { 543 LayoutBoxModelObjectRareData& ensureRareData() {
539 if (!m_rareData) 544 if (!m_rareData)
540 m_rareData = WTF::makeUnique<LayoutBoxModelObjectRareData>(); 545 m_rareData = WTF::makeUnique<LayoutBoxModelObjectRareData>();
541 return *m_rareData.get(); 546 return *m_rareData.get();
542 } 547 }
543 548
544 // The PaintLayer associated with this object. |m_layer| can be nullptr 549 // The PaintLayer associated with this object. |m_layer| can be nullptr
545 // depending on the return value of layerTypeRequired(). 550 // depending on the return value of layerTypeRequired().
546 std::unique_ptr<PaintLayer> m_layer; 551 std::unique_ptr<PaintLayer> m_layer;
547 552
548 std::unique_ptr<LayoutBoxModelObjectRareData> m_rareData; 553 std::unique_ptr<LayoutBoxModelObjectRareData> m_rareData;
549 }; 554 };
550 555
551 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBoxModelObject, isBoxModelObject()); 556 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBoxModelObject, isBoxModelObject());
552 557
553 } // namespace blink 558 } // namespace blink
554 559
555 #endif // LayoutBoxModelObject_h 560 #endif // LayoutBoxModelObject_h
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698