| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org) | 2 * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights |
| 4 * reserved. | 4 * reserved. |
| 5 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved. | 5 * Copyright (C) 2011 Adobe Systems Incorporated. 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 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 107 new_style->SetDisplay(display); | 107 new_style->SetDisplay(display); |
| 108 return new_style; | 108 return new_style; |
| 109 } | 109 } |
| 110 | 110 |
| 111 PassRefPtr<ComputedStyle> ComputedStyle::Clone(const ComputedStyle& other) { | 111 PassRefPtr<ComputedStyle> ComputedStyle::Clone(const ComputedStyle& other) { |
| 112 return AdoptRef(new ComputedStyle(other)); | 112 return AdoptRef(new ComputedStyle(other)); |
| 113 } | 113 } |
| 114 | 114 |
| 115 ALWAYS_INLINE ComputedStyle::ComputedStyle() | 115 ALWAYS_INLINE ComputedStyle::ComputedStyle() |
| 116 : ComputedStyleBase(), RefCounted<ComputedStyle>() { | 116 : ComputedStyleBase(), RefCounted<ComputedStyle>() { |
| 117 box_.Init(); | 117 box_data_.Init(); |
| 118 visual_.Init(); | 118 visual_data_.Init(); |
| 119 background_.Init(); | 119 background_data_.Init(); |
| 120 surround_.Init(); | 120 surround_data_.Init(); |
| 121 rare_non_inherited_data_.Init(); | 121 rare_non_inherited_data_.Init(); |
| 122 rare_non_inherited_data_.Access()->deprecated_flexible_box_.Init(); | 122 rare_non_inherited_data_.Access()->deprecated_flexible_box_.Init(); |
| 123 rare_non_inherited_data_.Access()->flexible_box_.Init(); | 123 rare_non_inherited_data_.Access()->flexible_box_.Init(); |
| 124 rare_non_inherited_data_.Access()->multi_col_.Init(); | 124 rare_non_inherited_data_.Access()->multi_col_.Init(); |
| 125 rare_non_inherited_data_.Access()->transform_.Init(); | 125 rare_non_inherited_data_.Access()->transform_.Init(); |
| 126 rare_non_inherited_data_.Access()->will_change_.Init(); | 126 rare_non_inherited_data_.Access()->will_change_.Init(); |
| 127 rare_non_inherited_data_.Access()->filter_.Init(); | 127 rare_non_inherited_data_.Access()->filter_.Init(); |
| 128 rare_non_inherited_data_.Access()->backdrop_filter_.Init(); | 128 rare_non_inherited_data_.Access()->backdrop_filter_.Init(); |
| 129 rare_non_inherited_data_.Access()->grid_.Init(); | 129 rare_non_inherited_data_.Access()->grid_.Init(); |
| 130 rare_non_inherited_data_.Access()->grid_item_.Init(); | 130 rare_non_inherited_data_.Access()->grid_item_.Init(); |
| 131 rare_non_inherited_data_.Access()->scroll_snap_.Init(); | 131 rare_non_inherited_data_.Access()->scroll_snap_.Init(); |
| 132 rare_inherited_data_.Init(); | 132 rare_inherited_data_.Init(); |
| 133 style_inherited_data_.Init(); | 133 style_inherited_data_.Init(); |
| 134 svg_style_.Init(); | 134 svg_style_.Init(); |
| 135 } | 135 } |
| 136 | 136 |
| 137 ALWAYS_INLINE ComputedStyle::ComputedStyle(const ComputedStyle& o) | 137 ALWAYS_INLINE ComputedStyle::ComputedStyle(const ComputedStyle& o) |
| 138 : ComputedStyleBase(o), | 138 : ComputedStyleBase(o), |
| 139 RefCounted<ComputedStyle>(), | 139 RefCounted<ComputedStyle>(), |
| 140 box_(o.box_), | 140 box_data_(o.box_data_), |
| 141 visual_(o.visual_), | 141 visual_data_(o.visual_data_), |
| 142 background_(o.background_), | 142 background_data_(o.background_data_), |
| 143 surround_(o.surround_), | 143 surround_data_(o.surround_data_), |
| 144 rare_non_inherited_data_(o.rare_non_inherited_data_), | 144 rare_non_inherited_data_(o.rare_non_inherited_data_), |
| 145 rare_inherited_data_(o.rare_inherited_data_), | 145 rare_inherited_data_(o.rare_inherited_data_), |
| 146 style_inherited_data_(o.style_inherited_data_), | 146 style_inherited_data_(o.style_inherited_data_), |
| 147 svg_style_(o.svg_style_) {} | 147 svg_style_(o.svg_style_) {} |
| 148 | 148 |
| 149 static StyleRecalcChange DiffPseudoStyles(const ComputedStyle& old_style, | 149 static StyleRecalcChange DiffPseudoStyles(const ComputedStyle& old_style, |
| 150 const ComputedStyle& new_style) { | 150 const ComputedStyle& new_style) { |
| 151 // If the pseudoStyles have changed, ensure layoutObject triggers setStyle. | 151 // If the pseudoStyles have changed, ensure layoutObject triggers setStyle. |
| 152 if (!old_style.HasAnyPublicPseudoStyles() && | 152 if (!old_style.HasAnyPublicPseudoStyles() && |
| 153 !new_style.HasAnyPublicPseudoStyles()) | 153 !new_style.HasAnyPublicPseudoStyles()) |
| (...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 326 } else { | 326 } else { |
| 327 rare_inherited_data_ = inherit_parent.rare_inherited_data_; | 327 rare_inherited_data_ = inherit_parent.rare_inherited_data_; |
| 328 } | 328 } |
| 329 style_inherited_data_ = inherit_parent.style_inherited_data_; | 329 style_inherited_data_ = inherit_parent.style_inherited_data_; |
| 330 if (svg_style_ != inherit_parent.svg_style_) | 330 if (svg_style_ != inherit_parent.svg_style_) |
| 331 svg_style_.Access()->InheritFrom(inherit_parent.svg_style_.Get()); | 331 svg_style_.Access()->InheritFrom(inherit_parent.svg_style_.Get()); |
| 332 } | 332 } |
| 333 | 333 |
| 334 void ComputedStyle::CopyNonInheritedFromCached(const ComputedStyle& other) { | 334 void ComputedStyle::CopyNonInheritedFromCached(const ComputedStyle& other) { |
| 335 ComputedStyleBase::CopyNonInheritedFromCached(other); | 335 ComputedStyleBase::CopyNonInheritedFromCached(other); |
| 336 box_ = other.box_; | 336 box_data_ = other.box_data_; |
| 337 visual_ = other.visual_; | 337 visual_data_ = other.visual_data_; |
| 338 background_ = other.background_; | 338 background_data_ = other.background_data_; |
| 339 surround_ = other.surround_; | 339 surround_data_ = other.surround_data_; |
| 340 rare_non_inherited_data_ = other.rare_non_inherited_data_; | 340 rare_non_inherited_data_ = other.rare_non_inherited_data_; |
| 341 | 341 |
| 342 // The flags are copied one-by-one because they contain | 342 // The flags are copied one-by-one because they contain |
| 343 // bunch of stuff other than real style data. | 343 // bunch of stuff other than real style data. |
| 344 // See comments for each skipped flag below. | 344 // See comments for each skipped flag below. |
| 345 | 345 |
| 346 // These are not generated in ComputedStyleBase | 346 // These are not generated in ComputedStyleBase |
| 347 SetOriginalDisplay(other.OriginalDisplay()); | 347 SetOriginalDisplay(other.OriginalDisplay()); |
| 348 SetVerticalAlign(other.VerticalAlign()); | 348 SetVerticalAlign(other.VerticalAlign()); |
| 349 SetHasViewportUnits(other.HasViewportUnits()); | 349 SetHasViewportUnits(other.HasViewportUnits()); |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 475 return GetFont().LoadingCustomFonts() == other.GetFont().LoadingCustomFonts(); | 475 return GetFont().LoadingCustomFonts() == other.GetFont().LoadingCustomFonts(); |
| 476 } | 476 } |
| 477 | 477 |
| 478 bool ComputedStyle::NonInheritedEqual(const ComputedStyle& other) const { | 478 bool ComputedStyle::NonInheritedEqual(const ComputedStyle& other) const { |
| 479 // compare everything except the pseudoStyle pointer | 479 // compare everything except the pseudoStyle pointer |
| 480 return ComputedStyleBase::NonInheritedEqual(other) && | 480 return ComputedStyleBase::NonInheritedEqual(other) && |
| 481 OriginalDisplay() == | 481 OriginalDisplay() == |
| 482 other.OriginalDisplay() && // Not generated in ComputedStyleBase | 482 other.OriginalDisplay() && // Not generated in ComputedStyleBase |
| 483 VerticalAlign() == other.VerticalAlign() && // Not generated in | 483 VerticalAlign() == other.VerticalAlign() && // Not generated in |
| 484 // ComputedStyleBase | 484 // ComputedStyleBase |
| 485 box_ == other.box_ && | 485 box_data_ == other.box_data_ && |
| 486 visual_ == other.visual_ && background_ == other.background_ && | 486 visual_data_ == other.visual_data_ && |
| 487 surround_ == other.surround_ && | 487 background_data_ == other.background_data_ && |
| 488 surround_data_ == other.surround_data_ && |
| 488 rare_non_inherited_data_ == other.rare_non_inherited_data_ && | 489 rare_non_inherited_data_ == other.rare_non_inherited_data_ && |
| 489 svg_style_->NonInheritedEqual(*other.svg_style_); | 490 svg_style_->NonInheritedEqual(*other.svg_style_); |
| 490 } | 491 } |
| 491 | 492 |
| 492 bool ComputedStyle::InheritedDataShared(const ComputedStyle& other) const { | 493 bool ComputedStyle::InheritedDataShared(const ComputedStyle& other) const { |
| 493 // This is a fast check that only looks if the data structures are shared. | 494 // This is a fast check that only looks if the data structures are shared. |
| 494 // TODO(sashab): Should ComputedStyleBase have an inheritedDataShared method? | 495 // TODO(sashab): Should ComputedStyleBase have an inheritedDataShared method? |
| 495 return ComputedStyleBase::InheritedEqual(other) && | 496 return ComputedStyleBase::InheritedEqual(other) && |
| 496 style_inherited_data_.Get() == other.style_inherited_data_.Get() && | 497 style_inherited_data_.Get() == other.style_inherited_data_.Get() && |
| 497 svg_style_.Get() == other.svg_style_.Get() && | 498 svg_style_.Get() == other.svg_style_.Get() && |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 571 | 572 |
| 572 return diff; | 573 return diff; |
| 573 } | 574 } |
| 574 | 575 |
| 575 bool ComputedStyle::ScrollAnchorDisablingPropertyChanged( | 576 bool ComputedStyle::ScrollAnchorDisablingPropertyChanged( |
| 576 const ComputedStyle& other, | 577 const ComputedStyle& other, |
| 577 const StyleDifference& diff) const { | 578 const StyleDifference& diff) const { |
| 578 if (GetPosition() != other.GetPosition()) | 579 if (GetPosition() != other.GetPosition()) |
| 579 return true; | 580 return true; |
| 580 | 581 |
| 581 if (box_.Get() != other.box_.Get()) { | 582 if (box_data_.Get() != other.box_data_.Get()) { |
| 582 if (box_->Width() != other.box_->Width() || | 583 if (box_data_->Width() != other.box_data_->Width() || |
| 583 box_->MinWidth() != other.box_->MinWidth() || | 584 box_data_->MinWidth() != other.box_data_->MinWidth() || |
| 584 box_->MaxWidth() != other.box_->MaxWidth() || | 585 box_data_->MaxWidth() != other.box_data_->MaxWidth() || |
| 585 box_->Height() != other.box_->Height() || | 586 box_data_->Height() != other.box_data_->Height() || |
| 586 box_->MinHeight() != other.box_->MinHeight() || | 587 box_data_->MinHeight() != other.box_data_->MinHeight() || |
| 587 box_->MaxHeight() != other.box_->MaxHeight()) | 588 box_data_->MaxHeight() != other.box_data_->MaxHeight()) |
| 588 return true; | 589 return true; |
| 589 } | 590 } |
| 590 | 591 |
| 591 if (surround_.Get() != other.surround_.Get()) { | 592 if (surround_data_.Get() != other.surround_data_.Get()) { |
| 592 if (!MarginEqual(other) || !OffsetEqual(other) || !PaddingEqual(other)) | 593 if (!MarginEqual(other) || !OffsetEqual(other) || !PaddingEqual(other)) |
| 593 return true; | 594 return true; |
| 594 } | 595 } |
| 595 | 596 |
| 596 if (diff.TransformChanged()) | 597 if (diff.TransformChanged()) |
| 597 return true; | 598 return true; |
| 598 | 599 |
| 599 return false; | 600 return false; |
| 600 } | 601 } |
| 601 | 602 |
| 602 bool ComputedStyle::DiffNeedsFullLayoutAndPaintInvalidation( | 603 bool ComputedStyle::DiffNeedsFullLayoutAndPaintInvalidation( |
| 603 const ComputedStyle& other) const { | 604 const ComputedStyle& other) const { |
| 604 // FIXME: Not all cases in this method need both full layout and paint | 605 // FIXME: Not all cases in this method need both full layout and paint |
| 605 // invalidation. | 606 // invalidation. |
| 606 // Should move cases into DiffNeedsFullLayout() if | 607 // Should move cases into DiffNeedsFullLayout() if |
| 607 // - don't need paint invalidation at all; | 608 // - don't need paint invalidation at all; |
| 608 // - or the layoutObject knows how to exactly invalidate paints caused by the | 609 // - or the layoutObject knows how to exactly invalidate paints caused by the |
| 609 // layout change instead of forced full paint invalidation. | 610 // layout change instead of forced full paint invalidation. |
| 610 | 611 |
| 611 if (surround_.Get() != other.surround_.Get()) { | 612 if (surround_data_.Get() != other.surround_data_.Get()) { |
| 612 // If our border widths change, then we need to layout. Other changes to | 613 // If our border widths change, then we need to layout. Other changes to |
| 613 // borders only necessitate a paint invalidation. | 614 // borders only necessitate a paint invalidation. |
| 614 if (BorderLeftWidth() != other.BorderLeftWidth() || | 615 if (BorderLeftWidth() != other.BorderLeftWidth() || |
| 615 BorderTopWidth() != other.BorderTopWidth() || | 616 BorderTopWidth() != other.BorderTopWidth() || |
| 616 BorderBottomWidth() != other.BorderBottomWidth() || | 617 BorderBottomWidth() != other.BorderBottomWidth() || |
| 617 BorderRightWidth() != other.BorderRightWidth()) | 618 BorderRightWidth() != other.BorderRightWidth()) |
| 618 return true; | 619 return true; |
| 619 | 620 |
| 620 if (!PaddingEqual(other)) | 621 if (!PaddingEqual(other)) |
| 621 return true; | 622 return true; |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 832 other.HasPseudoStyle(kPseudoIdScrollbar)) | 833 other.HasPseudoStyle(kPseudoIdScrollbar)) |
| 833 return true; | 834 return true; |
| 834 | 835 |
| 835 // Movement of non-static-positioned object is special cased in | 836 // Movement of non-static-positioned object is special cased in |
| 836 // ComputedStyle::VisualInvalidationDiff(). | 837 // ComputedStyle::VisualInvalidationDiff(). |
| 837 | 838 |
| 838 return false; | 839 return false; |
| 839 } | 840 } |
| 840 | 841 |
| 841 bool ComputedStyle::DiffNeedsFullLayout(const ComputedStyle& other) const { | 842 bool ComputedStyle::DiffNeedsFullLayout(const ComputedStyle& other) const { |
| 842 if (box_.Get() != other.box_.Get()) { | 843 if (box_data_.Get() != other.box_data_.Get()) { |
| 843 if (box_->Width() != other.box_->Width() || | 844 if (box_data_->Width() != other.box_data_->Width() || |
| 844 box_->MinWidth() != other.box_->MinWidth() || | 845 box_data_->MinWidth() != other.box_data_->MinWidth() || |
| 845 box_->MaxWidth() != other.box_->MaxWidth() || | 846 box_data_->MaxWidth() != other.box_data_->MaxWidth() || |
| 846 box_->Height() != other.box_->Height() || | 847 box_data_->Height() != other.box_data_->Height() || |
| 847 box_->MinHeight() != other.box_->MinHeight() || | 848 box_data_->MinHeight() != other.box_data_->MinHeight() || |
| 848 box_->MaxHeight() != other.box_->MaxHeight()) | 849 box_data_->MaxHeight() != other.box_data_->MaxHeight()) |
| 849 return true; | 850 return true; |
| 850 | 851 |
| 851 if (box_->VerticalAlign() != other.box_->VerticalAlign()) | 852 if (box_data_->VerticalAlign() != other.box_data_->VerticalAlign()) |
| 852 return true; | 853 return true; |
| 853 | 854 |
| 854 if (box_->BoxSizing() != other.box_->BoxSizing()) | 855 if (box_data_->BoxSizing() != other.box_data_->BoxSizing()) |
| 855 return true; | 856 return true; |
| 856 } | 857 } |
| 857 | 858 |
| 858 if (VerticalAlign() != other.VerticalAlign() || | 859 if (VerticalAlign() != other.VerticalAlign() || |
| 859 GetPosition() != other.GetPosition()) | 860 GetPosition() != other.GetPosition()) |
| 860 return true; | 861 return true; |
| 861 | 862 |
| 862 if (rare_non_inherited_data_.Get() != other.rare_non_inherited_data_.Get()) { | 863 if (rare_non_inherited_data_.Get() != other.rare_non_inherited_data_.Get()) { |
| 863 if (rare_non_inherited_data_->align_content_ != | 864 if (rare_non_inherited_data_->align_content_ != |
| 864 other.rare_non_inherited_data_->align_content_ || | 865 other.rare_non_inherited_data_->align_content_ || |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 898 | 899 |
| 899 return false; | 900 return false; |
| 900 } | 901 } |
| 901 | 902 |
| 902 bool ComputedStyle::DiffNeedsPaintInvalidationObject( | 903 bool ComputedStyle::DiffNeedsPaintInvalidationObject( |
| 903 const ComputedStyle& other) const { | 904 const ComputedStyle& other) const { |
| 904 if (Visibility() != other.Visibility() || | 905 if (Visibility() != other.Visibility() || |
| 905 PrintColorAdjust() != other.PrintColorAdjust() || | 906 PrintColorAdjust() != other.PrintColorAdjust() || |
| 906 InsideLink() != other.InsideLink() || | 907 InsideLink() != other.InsideLink() || |
| 907 !Border().VisuallyEqual(other.Border()) || | 908 !Border().VisuallyEqual(other.Border()) || |
| 908 *background_ != *other.background_) | 909 *background_data_ != *other.background_data_) |
| 909 return true; | 910 return true; |
| 910 | 911 |
| 911 if (rare_inherited_data_.Get() != other.rare_inherited_data_.Get()) { | 912 if (rare_inherited_data_.Get() != other.rare_inherited_data_.Get()) { |
| 912 if (rare_inherited_data_->user_modify != | 913 if (rare_inherited_data_->user_modify != |
| 913 other.rare_inherited_data_->user_modify || | 914 other.rare_inherited_data_->user_modify || |
| 914 rare_inherited_data_->user_select != | 915 rare_inherited_data_->user_select != |
| 915 other.rare_inherited_data_->user_select || | 916 other.rare_inherited_data_->user_select || |
| 916 rare_inherited_data_->image_rendering_ != | 917 rare_inherited_data_->image_rendering_ != |
| 917 other.rare_inherited_data_->image_rendering_) | 918 other.rare_inherited_data_->image_rendering_) |
| 918 return true; | 919 return true; |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1004 // Need to update visual rect of the resizer. | 1005 // Need to update visual rect of the resizer. |
| 1005 if (Resize() != other.Resize()) | 1006 if (Resize() != other.Resize()) |
| 1006 return true; | 1007 return true; |
| 1007 | 1008 |
| 1008 return false; | 1009 return false; |
| 1009 } | 1010 } |
| 1010 | 1011 |
| 1011 void ComputedStyle::UpdatePropertySpecificDifferences( | 1012 void ComputedStyle::UpdatePropertySpecificDifferences( |
| 1012 const ComputedStyle& other, | 1013 const ComputedStyle& other, |
| 1013 StyleDifference& diff) const { | 1014 StyleDifference& diff) const { |
| 1014 if (box_->ZIndex() != other.box_->ZIndex() || | 1015 if (box_data_->ZIndex() != other.box_data_->ZIndex() || |
| 1015 IsStackingContext() != other.IsStackingContext()) | 1016 IsStackingContext() != other.IsStackingContext()) |
| 1016 diff.SetZIndexChanged(); | 1017 diff.SetZIndexChanged(); |
| 1017 | 1018 |
| 1018 if (rare_non_inherited_data_.Get() != other.rare_non_inherited_data_.Get()) { | 1019 if (rare_non_inherited_data_.Get() != other.rare_non_inherited_data_.Get()) { |
| 1019 // It's possible for the old and new style transform data to be equivalent | 1020 // It's possible for the old and new style transform data to be equivalent |
| 1020 // while hasTransform() differs, as it checks a number of conditions aside | 1021 // while hasTransform() differs, as it checks a number of conditions aside |
| 1021 // from just the matrix, including but not limited to animation state. | 1022 // from just the matrix, including but not limited to animation state. |
| 1022 if (HasTransform() != other.HasTransform() || | 1023 if (HasTransform() != other.HasTransform() || |
| 1023 !TransformDataEquivalent(other) || | 1024 !TransformDataEquivalent(other) || |
| 1024 rare_non_inherited_data_->perspective_ != | 1025 rare_non_inherited_data_->perspective_ != |
| (...skipping 28 matching lines...) Expand all Loading... |
| 1053 } | 1054 } |
| 1054 | 1055 |
| 1055 if (!Border().VisualOverflowEqual(other.Border())) | 1056 if (!Border().VisualOverflowEqual(other.Border())) |
| 1056 diff.SetNeedsRecomputeOverflow(); | 1057 diff.SetNeedsRecomputeOverflow(); |
| 1057 | 1058 |
| 1058 if (!diff.NeedsFullPaintInvalidation()) { | 1059 if (!diff.NeedsFullPaintInvalidation()) { |
| 1059 if (style_inherited_data_->color != other.style_inherited_data_->color || | 1060 if (style_inherited_data_->color != other.style_inherited_data_->color || |
| 1060 style_inherited_data_->visited_link_color != | 1061 style_inherited_data_->visited_link_color != |
| 1061 other.style_inherited_data_->visited_link_color || | 1062 other.style_inherited_data_->visited_link_color || |
| 1062 HasSimpleUnderlineInternal() != other.HasSimpleUnderlineInternal() || | 1063 HasSimpleUnderlineInternal() != other.HasSimpleUnderlineInternal() || |
| 1063 visual_->text_decoration != other.visual_->text_decoration) { | 1064 visual_data_->text_decoration != other.visual_data_->text_decoration) { |
| 1064 diff.SetTextDecorationOrColorChanged(); | 1065 diff.SetTextDecorationOrColorChanged(); |
| 1065 } else if (rare_non_inherited_data_.Get() != | 1066 } else if (rare_non_inherited_data_.Get() != |
| 1066 other.rare_non_inherited_data_.Get() && | 1067 other.rare_non_inherited_data_.Get() && |
| 1067 (rare_non_inherited_data_->text_decoration_style_ != | 1068 (rare_non_inherited_data_->text_decoration_style_ != |
| 1068 other.rare_non_inherited_data_->text_decoration_style_ || | 1069 other.rare_non_inherited_data_->text_decoration_style_ || |
| 1069 rare_non_inherited_data_->text_decoration_color_ != | 1070 rare_non_inherited_data_->text_decoration_color_ != |
| 1070 other.rare_non_inherited_data_->text_decoration_color_ || | 1071 other.rare_non_inherited_data_->text_decoration_color_ || |
| 1071 rare_non_inherited_data_->visited_link_text_decoration_color_ != | 1072 rare_non_inherited_data_->visited_link_text_decoration_color_ != |
| 1072 other.rare_non_inherited_data_ | 1073 other.rare_non_inherited_data_ |
| 1073 ->visited_link_text_decoration_color_)) { | 1074 ->visited_link_text_decoration_color_)) { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 1095 rare_inherited_data_->applied_text_decorations != | 1096 rare_inherited_data_->applied_text_decorations != |
| 1096 other.rare_inherited_data_->applied_text_decorations || | 1097 other.rare_inherited_data_->applied_text_decorations || |
| 1097 rare_inherited_data_->CaretColor() != | 1098 rare_inherited_data_->CaretColor() != |
| 1098 other.rare_inherited_data_->CaretColor() || | 1099 other.rare_inherited_data_->CaretColor() || |
| 1099 rare_inherited_data_->VisitedLinkCaretColor() != | 1100 rare_inherited_data_->VisitedLinkCaretColor() != |
| 1100 other.rare_inherited_data_->VisitedLinkCaretColor())) { | 1101 other.rare_inherited_data_->VisitedLinkCaretColor())) { |
| 1101 diff.SetTextDecorationOrColorChanged(); | 1102 diff.SetTextDecorationOrColorChanged(); |
| 1102 } | 1103 } |
| 1103 } | 1104 } |
| 1104 | 1105 |
| 1105 bool has_clip = HasOutOfFlowPosition() && !visual_->has_auto_clip; | 1106 bool has_clip = HasOutOfFlowPosition() && !visual_data_->has_auto_clip; |
| 1106 bool other_has_clip = | 1107 bool other_has_clip = |
| 1107 other.HasOutOfFlowPosition() && !other.visual_->has_auto_clip; | 1108 other.HasOutOfFlowPosition() && !other.visual_data_->has_auto_clip; |
| 1108 if (has_clip != other_has_clip || | 1109 if (has_clip != other_has_clip || |
| 1109 (has_clip && visual_->clip != other.visual_->clip)) | 1110 (has_clip && visual_data_->clip != other.visual_data_->clip)) |
| 1110 diff.SetCSSClipChanged(); | 1111 diff.SetCSSClipChanged(); |
| 1111 } | 1112 } |
| 1112 | 1113 |
| 1113 void ComputedStyle::AddPaintImage(StyleImage* image) { | 1114 void ComputedStyle::AddPaintImage(StyleImage* image) { |
| 1114 if (!rare_non_inherited_data_.Access()->paint_images_) { | 1115 if (!rare_non_inherited_data_.Access()->paint_images_) { |
| 1115 rare_non_inherited_data_.Access()->paint_images_ = | 1116 rare_non_inherited_data_.Access()->paint_images_ = |
| 1116 WTF::MakeUnique<Vector<Persistent<StyleImage>>>(); | 1117 WTF::MakeUnique<Vector<Persistent<StyleImage>>>(); |
| 1117 } | 1118 } |
| 1118 rare_non_inherited_data_.Access()->paint_images_->push_back(image); | 1119 rare_non_inherited_data_.Access()->paint_images_->push_back(image); |
| 1119 } | 1120 } |
| (...skipping 1265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2385 NinePieceImage::ComputeOutset(image.Outset().Top(), BorderTopWidth()), | 2386 NinePieceImage::ComputeOutset(image.Outset().Top(), BorderTopWidth()), |
| 2386 NinePieceImage::ComputeOutset(image.Outset().Right(), BorderRightWidth()), | 2387 NinePieceImage::ComputeOutset(image.Outset().Right(), BorderRightWidth()), |
| 2387 NinePieceImage::ComputeOutset(image.Outset().Bottom(), | 2388 NinePieceImage::ComputeOutset(image.Outset().Bottom(), |
| 2388 BorderBottomWidth()), | 2389 BorderBottomWidth()), |
| 2389 NinePieceImage::ComputeOutset(image.Outset().Left(), BorderLeftWidth())); | 2390 NinePieceImage::ComputeOutset(image.Outset().Left(), BorderLeftWidth())); |
| 2390 } | 2391 } |
| 2391 | 2392 |
| 2392 void ComputedStyle::SetBorderImageSource(StyleImage* image) { | 2393 void ComputedStyle::SetBorderImageSource(StyleImage* image) { |
| 2393 if (Border().image_.GetImage() == image) | 2394 if (Border().image_.GetImage() == image) |
| 2394 return; | 2395 return; |
| 2395 surround_.Access()->border_.image_.SetImage(image); | 2396 surround_data_.Access()->border_.image_.SetImage(image); |
| 2396 } | 2397 } |
| 2397 | 2398 |
| 2398 void ComputedStyle::SetBorderImageSlices(const LengthBox& slices) { | 2399 void ComputedStyle::SetBorderImageSlices(const LengthBox& slices) { |
| 2399 if (Border().image_.ImageSlices() == slices) | 2400 if (Border().image_.ImageSlices() == slices) |
| 2400 return; | 2401 return; |
| 2401 surround_.Access()->border_.image_.SetImageSlices(slices); | 2402 surround_data_.Access()->border_.image_.SetImageSlices(slices); |
| 2402 } | 2403 } |
| 2403 | 2404 |
| 2404 void ComputedStyle::SetBorderImageSlicesFill(bool fill) { | 2405 void ComputedStyle::SetBorderImageSlicesFill(bool fill) { |
| 2405 if (Border().image_.Fill() == fill) | 2406 if (Border().image_.Fill() == fill) |
| 2406 return; | 2407 return; |
| 2407 surround_.Access()->border_.image_.SetFill(fill); | 2408 surround_data_.Access()->border_.image_.SetFill(fill); |
| 2408 } | 2409 } |
| 2409 | 2410 |
| 2410 void ComputedStyle::SetBorderImageWidth(const BorderImageLengthBox& slices) { | 2411 void ComputedStyle::SetBorderImageWidth(const BorderImageLengthBox& slices) { |
| 2411 if (Border().image_.BorderSlices() == slices) | 2412 if (Border().image_.BorderSlices() == slices) |
| 2412 return; | 2413 return; |
| 2413 surround_.Access()->border_.image_.SetBorderSlices(slices); | 2414 surround_data_.Access()->border_.image_.SetBorderSlices(slices); |
| 2414 } | 2415 } |
| 2415 | 2416 |
| 2416 void ComputedStyle::SetBorderImageOutset(const BorderImageLengthBox& outset) { | 2417 void ComputedStyle::SetBorderImageOutset(const BorderImageLengthBox& outset) { |
| 2417 if (Border().image_.Outset() == outset) | 2418 if (Border().image_.Outset() == outset) |
| 2418 return; | 2419 return; |
| 2419 surround_.Access()->border_.image_.SetOutset(outset); | 2420 surround_data_.Access()->border_.image_.SetOutset(outset); |
| 2420 } | 2421 } |
| 2421 | 2422 |
| 2422 bool ComputedStyle::BorderObscuresBackground() const { | 2423 bool ComputedStyle::BorderObscuresBackground() const { |
| 2423 if (!HasBorder()) | 2424 if (!HasBorder()) |
| 2424 return false; | 2425 return false; |
| 2425 | 2426 |
| 2426 // Bail if we have any border-image for now. We could look at the image alpha | 2427 // Bail if we have any border-image for now. We could look at the image alpha |
| 2427 // to improve this. | 2428 // to improve this. |
| 2428 if (BorderImage().GetImage()) | 2429 if (BorderImage().GetImage()) |
| 2429 return false; | 2430 return false; |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2503 if (value < 0) | 2504 if (value < 0) |
| 2504 fvalue -= 0.5f; | 2505 fvalue -= 0.5f; |
| 2505 else | 2506 else |
| 2506 fvalue += 0.5f; | 2507 fvalue += 0.5f; |
| 2507 } | 2508 } |
| 2508 | 2509 |
| 2509 return RoundForImpreciseConversion<int>(fvalue / zoom_factor); | 2510 return RoundForImpreciseConversion<int>(fvalue / zoom_factor); |
| 2510 } | 2511 } |
| 2511 | 2512 |
| 2512 } // namespace blink | 2513 } // namespace blink |
| OLD | NEW |