[M108 Migration][VD] Avoid pending frame counter becoming negative
[platform/framework/web/chromium-efl.git] / cc / tiles / checker_image_tracker.h
index 1a8229f..daab8fd 100644 (file)
@@ -1,17 +1,19 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
+// Copyright 2017 The Chromium Authors
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
 #ifndef CC_TILES_CHECKER_IMAGE_TRACKER_H_
 #define CC_TILES_CHECKER_IMAGE_TRACKER_H_
 
+#include <memory>
 #include <unordered_map>
 #include <vector>
 
-#include "base/optional.h"
+#include "base/memory/raw_ptr.h"
 #include "cc/cc_export.h"
 #include "cc/paint/image_id.h"
 #include "cc/tiles/image_controller.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/skia/include/core/SkImage.h"
 
 namespace cc {
@@ -55,8 +57,11 @@ class CC_EXPORT CheckerImageTracker {
                       CheckerImageTrackerClient* client,
                       bool enable_checker_imaging,
                       size_t min_image_bytes_to_checker);
+  CheckerImageTracker(const CheckerImageTracker&) = delete;
   ~CheckerImageTracker();
 
+  CheckerImageTracker& operator=(const CheckerImageTracker&) = delete;
+
   // Returns true if the decode for |image| will be deferred to the image decode
   // service and it should be be skipped during raster.
   bool ShouldCheckerImage(const DrawImage& image, WhichTree tree);
@@ -134,8 +139,10 @@ class CC_EXPORT CheckerImageTracker {
   // queuing the image decode.
   struct DecodeState {
     DecodePolicy policy = DecodePolicy::SYNC;
-    SkFilterQuality filter_quality = kNone_SkFilterQuality;
+    bool use_dark_mode = false;
+    PaintFlags::FilterQuality filter_quality = PaintFlags::FilterQuality::kNone;
     SkSize scale = SkSize::MakeEmpty();
+    TargetColorParams target_color_params;
     size_t frame_index = PaintImage::kDefaultFrameIndex;
   };
 
@@ -146,13 +153,14 @@ class CC_EXPORT CheckerImageTracker {
     ScopedDecodeHolder(ImageController* controller,
                        ImageController::ImageDecodeRequestId request_id)
         : controller_(controller), request_id_(request_id) {}
+    ScopedDecodeHolder(const ScopedDecodeHolder&) = delete;
     ~ScopedDecodeHolder() { controller_->UnlockImageDecode(request_id_); }
 
+    ScopedDecodeHolder& operator=(const ScopedDecodeHolder&) = delete;
+
    private:
-    ImageController* controller_;
+    raw_ptr<ImageController> controller_;
     ImageController::ImageDecodeRequestId request_id_;
-
-    DISALLOW_COPY_AND_ASSIGN(ScopedDecodeHolder);
   };
 
   void DidFinishImageDecode(PaintImage::Id image_id,
@@ -166,8 +174,8 @@ class CC_EXPORT CheckerImageTracker {
                          PaintImage::Id paint_image_id,
                          DecodeState* decode_state);
 
-  ImageController* image_controller_;
-  CheckerImageTrackerClient* client_;
+  raw_ptr<ImageController> image_controller_;
+  raw_ptr<CheckerImageTrackerClient> client_;
   const bool enable_checker_imaging_;
   const size_t min_image_bytes_to_checker_;
 
@@ -192,7 +200,7 @@ class CC_EXPORT CheckerImageTracker {
 
   // The currently outstanding image decode that has been scheduled with the
   // decode service. There can be only one outstanding decode at a time.
-  base::Optional<PaintImage> outstanding_image_decode_;
+  absl::optional<PaintImage> outstanding_image_decode_;
 
   // A map of ImageId to its DecodePolicy.
   std::unordered_map<PaintImage::Id, DecodeState> image_async_decode_state_;
@@ -203,9 +211,7 @@ class CC_EXPORT CheckerImageTracker {
 
   base::flat_map<PaintImage::Id, PaintImage::DecodingMode> decoding_mode_map_;
 
-  base::WeakPtrFactory<CheckerImageTracker> weak_factory_;
-
-  DISALLOW_COPY_AND_ASSIGN(CheckerImageTracker);
+  base::WeakPtrFactory<CheckerImageTracker> weak_factory_{this};
 };
 
 }  // namespace cc