blob: 92a123779efff78b6c69ec7fca5abcf0c7613025 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/core/style/style_difference.h"
namespace blink {
std::ostream& operator<<(std::ostream& out, const StyleDifference& diff) {
out << "StyleDifference{layoutType=";
switch (diff.layout_type_) {
case StyleDifference::kNoLayout:
out << "NoLayout";
break;
case StyleDifference::kPositionedMovement:
out << "PositionedMovement";
break;
case StyleDifference::kFullLayout:
out << "FullLayout";
break;
default:
NOTREACHED();
break;
}
out << ", collectInlines=" << diff.needs_collect_inlines_;
out << ", reshape=" << diff.needs_reshape_;
out << ", paintInvalidationType=";
switch (diff.paint_invalidation_type_) {
case StyleDifference::kNoPaintInvalidation:
out << "NoPaintInvalidation";
break;
case StyleDifference::kPaintInvalidationObject:
out << "PaintInvalidationObject";
break;
case StyleDifference::kPaintInvalidationSubtree:
out << "PaintInvalidationSubtree";
break;
default:
NOTREACHED();
break;
}
out << ", recomputeVisualOverflow=" << diff.recompute_visual_overflow_;
out << ", visualRectUpdate=" << diff.visual_rect_update_;
out << ", propertySpecificDifferences=";
int diff_count = 0;
for (int i = 0; i < StyleDifference::kPropertyDifferenceCount; i++) {
unsigned bit_test = 1 << i;
if (diff.property_specific_differences_ & bit_test) {
if (diff_count++ > 0)
out << "|";
switch (bit_test) {
case StyleDifference::kTransformChanged:
out << "TransformChanged";
break;
case StyleDifference::kOpacityChanged:
out << "OpacityChanged";
break;
case StyleDifference::kZIndexChanged:
out << "ZIndexChanged";
break;
case StyleDifference::kFilterChanged:
out << "FilterChanged";
break;
case StyleDifference::kBackdropFilterChanged:
out << "BackdropFilterChanged";
break;
case StyleDifference::kCSSClipChanged:
out << "CSSClipChanged";
break;
case StyleDifference::kTextDecorationOrColorChanged:
out << "TextDecorationOrColorChanged";
break;
case StyleDifference::kBlendModeChanged:
out << "BlendModeChanged";
break;
default:
NOTREACHED();
break;
}
}
}
out << ", scrollAnchorDisablingPropertyChanged="
<< diff.scroll_anchor_disabling_property_changed_;
return out << "}";
}
} // namespace blink