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

Side by Side Diff: third_party/WebKit/Source/core/paint/PaintLayer.h

Issue 1459953002: Fix the reference box computation for CSS filter effects. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add TODO per review 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 /* 1 /*
2 * Copyright (C) 2003, 2009, 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2003, 2009, 2012 Apple Inc. All rights reserved.
3 * Copyright (C) 2013 Intel Corporation. All rights reserved. 3 * Copyright (C) 2013 Intel Corporation. All rights reserved.
4 * 4 *
5 * Portions are Copyright (C) 1998 Netscape Communications Corporation. 5 * Portions are Copyright (C) 1998 Netscape Communications Corporation.
6 * 6 *
7 * Other contributors: 7 * Other contributors:
8 * Robert O'Callahan <roc+@cs.cmu.edu> 8 * Robert O'Callahan <roc+@cs.cmu.edu>
9 * David Baron <dbaron@fas.harvard.edu> 9 * David Baron <dbaron@fas.harvard.edu>
10 * Christian Biesinger <cbiesinger@web.de> 10 * Christian Biesinger <cbiesinger@web.de>
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after
411 411
412 bool paintsWithTransform(GlobalPaintFlags) const; 412 bool paintsWithTransform(GlobalPaintFlags) const;
413 413
414 // Returns true if background phase is painted opaque in the given rect. 414 // Returns true if background phase is painted opaque in the given rect.
415 // The query rect is given in local coordinates. 415 // The query rect is given in local coordinates.
416 bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect&) const; 416 bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect&) const;
417 417
418 bool containsDirtyOverlayScrollbars() const { return m_containsDirtyOverlayS crollbars; } 418 bool containsDirtyOverlayScrollbars() const { return m_containsDirtyOverlayS crollbars; }
419 void setContainsDirtyOverlayScrollbars(bool dirtyScrollbars) { m_containsDir tyOverlayScrollbars = dirtyScrollbars; } 419 void setContainsDirtyOverlayScrollbars(bool dirtyScrollbars) { m_containsDir tyOverlayScrollbars = dirtyScrollbars; }
420 420
421 FilterOperations computeFilterOperations(const ComputedStyle&); 421 FilterOperations computeFilterOperations(const ComputedStyle&) const;
422 FilterOperations computeBackdropFilterOperations(const ComputedStyle&); 422 FilterOperations computeBackdropFilterOperations(const ComputedStyle&) const ;
423 bool paintsWithFilters() const; 423 bool paintsWithFilters() const;
424 bool paintsWithBackdropFilters() const; 424 bool paintsWithBackdropFilters() const;
425 FilterEffectBuilder* filterEffectBuilder() const 425 FilterEffect* lastFilterEffect() const;
426 { 426 FilterOutsets filterOutsets() const;
427 PaintLayerFilterInfo* filterInfo = this->filterInfo();
428 return filterInfo ? filterInfo->builder() : 0;
429 }
430 427
431 PaintLayerFilterInfo* filterInfo() const { return hasFilterInfo() ? PaintLay erFilterInfo::filterInfoForLayer(this) : 0; } 428 PaintLayerFilterInfo* filterInfo() const { return hasFilterInfo() ? PaintLay erFilterInfo::filterInfoForLayer(this) : 0; }
432 PaintLayerFilterInfo* ensureFilterInfo() { return PaintLayerFilterInfo::crea teFilterInfoForLayerIfNeeded(this); } 429 PaintLayerFilterInfo* ensureFilterInfo() { return PaintLayerFilterInfo::crea teFilterInfoForLayerIfNeeded(this); }
433 void removeFilterInfoIfNeeded() 430 void removeFilterInfoIfNeeded()
434 { 431 {
435 if (hasFilterInfo()) 432 if (hasFilterInfo())
436 PaintLayerFilterInfo::removeFilterInfoForLayer(this); 433 PaintLayerFilterInfo::removeFilterInfoForLayer(this);
437 } 434 }
438 435
439 bool hasFilterInfo() const { return m_hasFilterInfo; } 436 bool hasFilterInfo() const { return m_hasFilterInfo; }
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
662 659
663 bool childBackgroundIsKnownToBeOpaqueInRect(const LayoutRect&) const; 660 bool childBackgroundIsKnownToBeOpaqueInRect(const LayoutRect&) const;
664 661
665 bool shouldBeSelfPaintingLayer() const; 662 bool shouldBeSelfPaintingLayer() const;
666 663
667 // FIXME: We should only create the stacking node if needed. 664 // FIXME: We should only create the stacking node if needed.
668 bool requiresStackingNode() const { return true; } 665 bool requiresStackingNode() const { return true; }
669 void updateStackingNode(); 666 void updateStackingNode();
670 667
671 void updateReflectionInfo(const ComputedStyle*); 668 void updateReflectionInfo(const ComputedStyle*);
669 FilterEffectBuilder* updateFilterEffectBuilder() const;
672 670
673 // FIXME: We could lazily allocate our ScrollableArea based on style propert ies ('overflow', ...) 671 // FIXME: We could lazily allocate our ScrollableArea based on style propert ies ('overflow', ...)
674 // but for now, we are always allocating it for LayoutBox as it's safer. crb ug.com/467721. 672 // but for now, we are always allocating it for LayoutBox as it's safer. crb ug.com/467721.
675 bool requiresScrollableArea() const { return layoutBox(); } 673 bool requiresScrollableArea() const { return layoutBox(); }
676 void updateScrollableArea(); 674 void updateScrollableArea();
677 675
678 void dirtyAncestorChainVisibleDescendantStatus(); 676 void dirtyAncestorChainVisibleDescendantStatus();
679 677
680 bool attemptDirectCompositingUpdate(StyleDifference, const ComputedStyle* ol dStyle); 678 bool attemptDirectCompositingUpdate(StyleDifference, const ComputedStyle* ol dStyle);
681 void updateTransform(const ComputedStyle* oldStyle, const ComputedStyle& new Style); 679 void updateTransform(const ComputedStyle* oldStyle, const ComputedStyle& new Style);
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
810 808
811 } // namespace blink 809 } // namespace blink
812 810
813 #ifndef NDEBUG 811 #ifndef NDEBUG
814 // Outside the WebCore namespace for ease of invocation from gdb. 812 // Outside the WebCore namespace for ease of invocation from gdb.
815 void showLayerTree(const blink::PaintLayer*); 813 void showLayerTree(const blink::PaintLayer*);
816 void showLayerTree(const blink::LayoutObject*); 814 void showLayerTree(const blink::LayoutObject*);
817 #endif 815 #endif
818 816
819 #endif // Layer_h 817 #endif // Layer_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/paint/FilterPainter.cpp ('k') | third_party/WebKit/Source/core/paint/PaintLayer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698