1 // Copyright 2018 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "third_party/blink/renderer/platform/graphics/subtree_paint_property_update_reason.h" 6 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h" 7 8 namespace blink { 9 namespace { 10 operator &(unsigned mask,SubtreePaintPropertyUpdateReason reason)11unsigned operator&(unsigned mask, SubtreePaintPropertyUpdateReason reason) { 12 return mask & static_cast<unsigned>(reason); 13 } 14 15 } // namespace 16 SubtreePaintPropertyUpdateReasonsToString(unsigned bitmask)17String SubtreePaintPropertyUpdateReasonsToString(unsigned bitmask) { 18 StringBuilder result; 19 bool need_separator = false; 20 auto append = [&result, &need_separator](const char* name) { 21 if (need_separator) 22 result.Append("|"); 23 result.Append(name); 24 need_separator = true; 25 }; 26 27 result.Append("("); 28 if (bitmask == static_cast<unsigned>(SubtreePaintPropertyUpdateReason::kNone)) 29 append("kNone"); 30 if (bitmask & SubtreePaintPropertyUpdateReason::kContainerChainMayChange) 31 append("kContainerChainMayChange"); 32 if (bitmask & SubtreePaintPropertyUpdateReason::kFragmentsChanged) 33 append("kFragmentsChanged"); 34 if (bitmask & SubtreePaintPropertyUpdateReason::kPreviouslySkipped) 35 append("kPreviouslySkipped"); 36 if (bitmask & SubtreePaintPropertyUpdateReason::kPrinting) 37 append("kPrinting"); 38 if (bitmask & SubtreePaintPropertyUpdateReason::kTransformStyleChanged) 39 append("kTransformStyleChanged"); 40 result.Append(")"); 41 return result.ToString(); 42 } 43 44 } // namespace blink 45