1 // Copyright 2014 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/paint_invalidation_reason.h"
6 
7 #include "third_party/blink/renderer/platform/wtf/assertions.h"
8 
9 namespace blink {
10 
PaintInvalidationReasonToString(PaintInvalidationReason reason)11 const char* PaintInvalidationReasonToString(PaintInvalidationReason reason) {
12   switch (reason) {
13     case PaintInvalidationReason::kNone:
14       return "none";
15     case PaintInvalidationReason::kIncremental:
16       return "incremental";
17     case PaintInvalidationReason::kRectangle:
18       return "invalidate paint rectangle";
19     case PaintInvalidationReason::kHitTest:
20       return "hit testing change";
21     case PaintInvalidationReason::kFull:
22       return "full";
23     case PaintInvalidationReason::kStyle:
24       return "style change";
25     case PaintInvalidationReason::kBackplate:
26       return "backplate";
27     case PaintInvalidationReason::kGeometry:
28       return "geometry";
29     case PaintInvalidationReason::kCompositing:
30       return "compositing update";
31     case PaintInvalidationReason::kBackground:
32       return "background";
33     case PaintInvalidationReason::kAppeared:
34       return "appeared";
35     case PaintInvalidationReason::kDisappeared:
36       return "disappeared";
37     case PaintInvalidationReason::kScroll:
38       return "scroll";
39     case PaintInvalidationReason::kScrollControl:
40       return "scroll control";
41     case PaintInvalidationReason::kSelection:
42       return "selection";
43     case PaintInvalidationReason::kOutline:
44       return "outline";
45     case PaintInvalidationReason::kSubtree:
46       return "subtree";
47     case PaintInvalidationReason::kSVGResource:
48       return "SVG resource change";
49     case PaintInvalidationReason::kCaret:
50       return "caret";
51     case PaintInvalidationReason::kDocumentMarker:
52       return "DocumentMarker change";
53     case PaintInvalidationReason::kImage:
54       return "image";
55     case PaintInvalidationReason::kUncacheable:
56       return "uncacheable";
57     case PaintInvalidationReason::kJustCreated:
58       return "just created";
59     case PaintInvalidationReason::kReordered:
60       return "reordered";
61     case PaintInvalidationReason::kChunkAppeared:
62       return "chunk appeared";
63     case PaintInvalidationReason::kChunkDisappeared:
64       return "chunk disappeared";
65     case PaintInvalidationReason::kChunkUncacheable:
66       return "chunk uncacheable";
67     case PaintInvalidationReason::kChunkReordered:
68       return "chunk reordered";
69     case PaintInvalidationReason::kPaintProperty:
70       return "paint property change";
71     case PaintInvalidationReason::kFullLayer:
72       return "full layer";
73     case PaintInvalidationReason::kForTesting:
74       return "for testing";
75   }
76   NOTREACHED();
77   return "";
78 }
79 
operator <<(std::ostream & out,PaintInvalidationReason reason)80 std::ostream& operator<<(std::ostream& out, PaintInvalidationReason reason) {
81   return out << PaintInvalidationReasonToString(reason);
82 }
83 
84 }  // namespace blink
85