Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / cc / resources / tile_priority.h
index 49d9d79..d161057 100644 (file)
@@ -7,13 +7,11 @@
 
 #include <algorithm>
 #include <limits>
+#include <string>
 
-#include "base/memory/ref_counted.h"
+#include "base/debug/trace_event_argument.h"
 #include "base/memory/scoped_ptr.h"
-#include "cc/resources/picture_pile.h"
-#include "ui/gfx/quad_f.h"
-#include "ui/gfx/rect.h"
-#include "ui/gfx/size.h"
+#include "cc/base/cc_export.h"
 
 namespace base {
 class Value;
@@ -29,23 +27,20 @@ enum WhichTree {
   NUM_TREES = 2
   // Be sure to update WhichTreeAsValue when adding new fields.
 };
-scoped_ptr<base::Value> WhichTreeAsValue(
-    WhichTree tree);
+scoped_ptr<base::Value> WhichTreeAsValue(WhichTree tree);
 
 enum TileResolution {
   LOW_RESOLUTION = 0 ,
   HIGH_RESOLUTION = 1,
   NON_IDEAL_RESOLUTION = 2,
 };
-scoped_ptr<base::Value> TileResolutionAsValue(
-    TileResolution resolution);
+std::string TileResolutionToString(TileResolution resolution);
 
 struct CC_EXPORT TilePriority {
   enum PriorityBin { NOW, SOON, EVENTUALLY };
 
   TilePriority()
       : resolution(NON_IDEAL_RESOLUTION),
-        required_for_activation(false),
         priority_bin(EVENTUALLY),
         distance_to_visible(std::numeric_limits<float>::infinity()) {}
 
@@ -53,7 +48,6 @@ struct CC_EXPORT TilePriority {
                PriorityBin bin,
                float distance_to_visible)
       : resolution(resolution),
-        required_for_activation(false),
         priority_bin(bin),
         distance_to_visible(distance_to_visible) {}
 
@@ -67,9 +61,6 @@ struct CC_EXPORT TilePriority {
     else
       resolution = NON_IDEAL_RESOLUTION;
 
-    required_for_activation =
-        active.required_for_activation || pending.required_for_activation;
-
     if (active.priority_bin < pending.priority_bin) {
       priority_bin = active.priority_bin;
       distance_to_visible = active.distance_to_visible;
@@ -83,29 +74,33 @@ struct CC_EXPORT TilePriority {
     }
   }
 
-  scoped_ptr<base::Value> AsValue() const;
+  void AsValueInto(base::debug::TracedValue* dict) const;
 
   bool operator ==(const TilePriority& other) const {
     return resolution == other.resolution &&
            priority_bin == other.priority_bin &&
-           distance_to_visible == other.distance_to_visible &&
-           required_for_activation == other.required_for_activation;
+           distance_to_visible == other.distance_to_visible;
   }
 
   bool operator !=(const TilePriority& other) const {
     return !(*this == other);
   }
 
+  bool IsHigherPriorityThan(const TilePriority& other) const {
+    return priority_bin < other.priority_bin ||
+           (priority_bin == other.priority_bin &&
+            distance_to_visible < other.distance_to_visible);
+  }
+
   TileResolution resolution;
-  bool required_for_activation;
   PriorityBin priority_bin;
   float distance_to_visible;
 };
 
-scoped_ptr<base::Value> TilePriorityBinAsValue(TilePriority::PriorityBin bin);
+std::string TilePriorityBinToString(TilePriority::PriorityBin bin);
 
 enum TileMemoryLimitPolicy {
-  // Nothing.
+  // Nothing. This mode is used when visible is set to false.
   ALLOW_NOTHING = 0,
 
   // You might be made visible, but you're not being interacted with.
@@ -115,24 +110,18 @@ enum TileMemoryLimitPolicy {
   ALLOW_PREPAINT_ONLY = 2,  // Grande.
 
   // You're the only thing in town. Go crazy.
-  ALLOW_ANYTHING = 3,  // Venti.
-
-  NUM_TILE_MEMORY_LIMIT_POLICIES = 4,
-
-  // NOTE: Be sure to update TreePriorityAsValue and kBinPolicyMap when adding
-  // or reordering fields.
+  ALLOW_ANYTHING = 3  // Venti.
 };
-scoped_ptr<base::Value> TileMemoryLimitPolicyAsValue(
-    TileMemoryLimitPolicy policy);
+std::string TileMemoryLimitPolicyToString(TileMemoryLimitPolicy policy);
 
 enum TreePriority {
   SAME_PRIORITY_FOR_BOTH_TREES,
   SMOOTHNESS_TAKES_PRIORITY,
-  NEW_CONTENT_TAKES_PRIORITY
-
+  NEW_CONTENT_TAKES_PRIORITY,
+  NUM_TREE_PRIORITIES
   // Be sure to update TreePriorityAsValue when adding new fields.
 };
-scoped_ptr<base::Value> TreePriorityAsValue(TreePriority prio);
+std::string TreePriorityToString(TreePriority prio);
 
 class GlobalStateThatImpactsTilePriority {
  public:
@@ -140,7 +129,6 @@ class GlobalStateThatImpactsTilePriority {
       : memory_limit_policy(ALLOW_NOTHING),
         soft_memory_limit_in_bytes(0),
         hard_memory_limit_in_bytes(0),
-        unused_memory_limit_in_bytes(0),
         num_resources_limit(0),
         tree_priority(SAME_PRIORITY_FOR_BOTH_TREES) {}
 
@@ -148,7 +136,6 @@ class GlobalStateThatImpactsTilePriority {
 
   size_t soft_memory_limit_in_bytes;
   size_t hard_memory_limit_in_bytes;
-  size_t unused_memory_limit_in_bytes;
   size_t num_resources_limit;
 
   TreePriority tree_priority;
@@ -157,7 +144,6 @@ class GlobalStateThatImpactsTilePriority {
     return memory_limit_policy == other.memory_limit_policy &&
            soft_memory_limit_in_bytes == other.soft_memory_limit_in_bytes &&
            hard_memory_limit_in_bytes == other.hard_memory_limit_in_bytes &&
-           unused_memory_limit_in_bytes == other.unused_memory_limit_in_bytes &&
            num_resources_limit == other.num_resources_limit &&
            tree_priority == other.tree_priority;
   }
@@ -165,7 +151,7 @@ class GlobalStateThatImpactsTilePriority {
     return !(*this == other);
   }
 
-  scoped_ptr<base::Value> AsValue() const;
+  void AsValueInto(base::debug::TracedValue* dict) const;
 };
 
 }  // namespace cc