OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "cc/resources/tile_priority.h" | 5 #include "cc/resources/tile_priority.h" |
6 | 6 |
7 #include "base/debug/trace_event_argument.h" | |
8 #include "base/values.h" | 7 #include "base/values.h" |
9 #include "cc/base/math_util.h" | 8 #include "cc/base/math_util.h" |
10 | 9 |
11 namespace cc { | 10 namespace cc { |
12 | 11 |
13 std::string WhichTreeToString(WhichTree tree) { | 12 scoped_ptr<base::Value> WhichTreeAsValue(WhichTree tree) { |
14 switch (tree) { | 13 switch (tree) { |
15 case ACTIVE_TREE: | 14 case ACTIVE_TREE: |
16 return "ACTIVE_TREE"; | 15 return scoped_ptr<base::Value>(new base::StringValue("ACTIVE_TREE")); |
17 case PENDING_TREE: | 16 case PENDING_TREE: |
18 return "PENDING_TREE"; | 17 return scoped_ptr<base::Value>(new base::StringValue("PENDING_TREE")); |
19 default: | 18 default: |
20 DCHECK(false) << "Unrecognized WhichTree value " << tree; | 19 DCHECK(false) << "Unrecognized WhichTree value " << tree; |
21 return "<unknown WhichTree value>"; | 20 return scoped_ptr<base::Value>(new base::StringValue( |
| 21 "<unknown WhichTree value>")); |
22 } | 22 } |
23 } | 23 } |
24 | 24 |
25 std::string TileResolutionToString(TileResolution resolution) { | 25 scoped_ptr<base::Value> TileResolutionAsValue( |
| 26 TileResolution resolution) { |
26 switch (resolution) { | 27 switch (resolution) { |
27 case LOW_RESOLUTION: | 28 case LOW_RESOLUTION: |
28 return "LOW_RESOLUTION"; | 29 return scoped_ptr<base::Value>(new base::StringValue("LOW_RESOLUTION")); |
29 case HIGH_RESOLUTION: | 30 case HIGH_RESOLUTION: |
30 return "HIGH_RESOLUTION"; | 31 return scoped_ptr<base::Value>(new base::StringValue("HIGH_RESOLUTION")); |
31 case NON_IDEAL_RESOLUTION: | 32 case NON_IDEAL_RESOLUTION: |
32 return "NON_IDEAL_RESOLUTION"; | 33 return scoped_ptr<base::Value>(new base::StringValue( |
| 34 "NON_IDEAL_RESOLUTION")); |
33 } | 35 } |
34 DCHECK(false) << "Unrecognized TileResolution value " << resolution; | 36 DCHECK(false) << "Unrecognized TileResolution value " << resolution; |
35 return "<unknown TileResolution value>"; | 37 return scoped_ptr<base::Value>(new base::StringValue( |
| 38 "<unknown TileResolution value>")); |
36 } | 39 } |
37 | 40 |
38 std::string TilePriorityBinToString(TilePriority::PriorityBin bin) { | 41 scoped_ptr<base::Value> TilePriorityBinAsValue(TilePriority::PriorityBin bin) { |
39 switch (bin) { | 42 switch (bin) { |
40 case TilePriority::NOW: | 43 case TilePriority::NOW: |
41 return "NOW"; | 44 return scoped_ptr<base::Value>(new base::StringValue("NOW")); |
42 case TilePriority::SOON: | 45 case TilePriority::SOON: |
43 return "SOON"; | 46 return scoped_ptr<base::Value>(new base::StringValue("SOON")); |
44 case TilePriority::EVENTUALLY: | 47 case TilePriority::EVENTUALLY: |
45 return "EVENTUALLY"; | 48 return scoped_ptr<base::Value>(new base::StringValue("EVENTUALLY")); |
46 } | 49 } |
47 DCHECK(false) << "Unrecognized TilePriority::PriorityBin value " << bin; | 50 DCHECK(false) << "Unrecognized TilePriority::PriorityBin value " << bin; |
48 return "<unknown TilePriority::PriorityBin value>"; | 51 return scoped_ptr<base::Value>( |
| 52 new base::StringValue("<unknown TilePriority::PriorityBin value>")); |
49 } | 53 } |
50 | 54 |
51 void TilePriority::AsValueInto(base::debug::TracedValue* state) const { | 55 scoped_ptr<base::Value> TilePriority::AsValue() const { |
52 state->SetString("resolution", TileResolutionToString(resolution)); | 56 scoped_ptr<base::DictionaryValue> state(new base::DictionaryValue()); |
53 state->SetString("priority_bin", TilePriorityBinToString(priority_bin)); | 57 state->Set("resolution", TileResolutionAsValue(resolution).release()); |
54 state->SetDouble("distance_to_visible", | 58 state->Set("priority_bin", TilePriorityBinAsValue(priority_bin).release()); |
55 MathUtil::AsDoubleSafely(distance_to_visible)); | 59 state->Set("distance_to_visible", |
| 60 MathUtil::AsValueSafely(distance_to_visible).release()); |
| 61 return state.PassAs<base::Value>(); |
56 } | 62 } |
57 | 63 |
58 std::string TileMemoryLimitPolicyToString(TileMemoryLimitPolicy policy) { | 64 scoped_ptr<base::Value> TileMemoryLimitPolicyAsValue( |
| 65 TileMemoryLimitPolicy policy) { |
59 switch (policy) { | 66 switch (policy) { |
60 case ALLOW_NOTHING: | 67 case ALLOW_NOTHING: |
61 return "ALLOW_NOTHING"; | 68 return scoped_ptr<base::Value>(new base::StringValue("ALLOW_NOTHING")); |
62 case ALLOW_ABSOLUTE_MINIMUM: | 69 case ALLOW_ABSOLUTE_MINIMUM: |
63 return "ALLOW_ABSOLUTE_MINIMUM"; | 70 return scoped_ptr<base::Value>(new base::StringValue( |
| 71 "ALLOW_ABSOLUTE_MINIMUM")); |
64 case ALLOW_PREPAINT_ONLY: | 72 case ALLOW_PREPAINT_ONLY: |
65 return "ALLOW_PREPAINT_ONLY"; | 73 return scoped_ptr<base::Value>(new base::StringValue( |
| 74 "ALLOW_PREPAINT_ONLY")); |
66 case ALLOW_ANYTHING: | 75 case ALLOW_ANYTHING: |
67 return "ALLOW_ANYTHING"; | 76 return scoped_ptr<base::Value>(new base::StringValue( |
| 77 "ALLOW_ANYTHING")); |
68 default: | 78 default: |
69 DCHECK(false) << "Unrecognized policy value"; | 79 DCHECK(false) << "Unrecognized policy value"; |
70 return "<unknown>"; | 80 return scoped_ptr<base::Value>(new base::StringValue( |
| 81 "<unknown>")); |
71 } | 82 } |
72 } | 83 } |
73 | 84 |
74 std::string TreePriorityToString(TreePriority prio) { | 85 scoped_ptr<base::Value> TreePriorityAsValue(TreePriority prio) { |
75 switch (prio) { | 86 switch (prio) { |
76 case SAME_PRIORITY_FOR_BOTH_TREES: | 87 case SAME_PRIORITY_FOR_BOTH_TREES: |
77 return "SAME_PRIORITY_FOR_BOTH_TREES"; | 88 return scoped_ptr<base::Value>(new base::StringValue( |
| 89 "SAME_PRIORITY_FOR_BOTH_TREES")); |
78 case SMOOTHNESS_TAKES_PRIORITY: | 90 case SMOOTHNESS_TAKES_PRIORITY: |
79 return "SMOOTHNESS_TAKES_PRIORITY"; | 91 return scoped_ptr<base::Value>(new base::StringValue( |
| 92 "SMOOTHNESS_TAKES_PRIORITY")); |
80 case NEW_CONTENT_TAKES_PRIORITY: | 93 case NEW_CONTENT_TAKES_PRIORITY: |
81 return "NEW_CONTENT_TAKES_PRIORITY"; | 94 return scoped_ptr<base::Value>(new base::StringValue( |
| 95 "NEW_CONTENT_TAKES_PRIORITY")); |
82 default: | 96 default: |
83 DCHECK(false) << "Unrecognized priority value " << prio; | 97 DCHECK(false) << "Unrecognized priority value " << prio; |
84 return "<unknown>"; | 98 return scoped_ptr<base::Value>(new base::StringValue("<unknown>")); |
85 } | 99 } |
86 } | 100 } |
87 | 101 |
88 void GlobalStateThatImpactsTilePriority::AsValueInto( | 102 scoped_ptr<base::Value> GlobalStateThatImpactsTilePriority::AsValue() const { |
89 base::debug::TracedValue* state) const { | 103 scoped_ptr<base::DictionaryValue> state(new base::DictionaryValue()); |
90 state->SetString("memory_limit_policy", | 104 state->Set("memory_limit_policy", |
91 TileMemoryLimitPolicyToString(memory_limit_policy)); | 105 TileMemoryLimitPolicyAsValue(memory_limit_policy).release()); |
92 state->SetInteger("soft_memory_limit_in_bytes", soft_memory_limit_in_bytes); | 106 state->SetInteger("soft_memory_limit_in_bytes", soft_memory_limit_in_bytes); |
93 state->SetInteger("hard_memory_limit_in_bytes", hard_memory_limit_in_bytes); | 107 state->SetInteger("hard_memory_limit_in_bytes", hard_memory_limit_in_bytes); |
94 state->SetInteger("num_resources_limit", num_resources_limit); | 108 state->SetInteger("num_resources_limit", num_resources_limit); |
95 state->SetString("tree_priority", TreePriorityToString(tree_priority)); | 109 state->Set("tree_priority", TreePriorityAsValue(tree_priority).release()); |
| 110 return state.PassAs<base::Value>(); |
96 } | 111 } |
97 | 112 |
98 } // namespace cc | 113 } // namespace cc |
OLD | NEW |