// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_CSS_CSSOM_CROSS_THREAD_STYLE_VALUE_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_CSSOM_CROSS_THREAD_STYLE_VALUE_H_

#include <memory>

#include "third_party/blink/renderer/core/core_export.h"

namespace blink {

class CSSStyleValue;

// This class is designed for CSS Paint such that its instance can be safely
// passed cross threads.
class CORE_EXPORT CrossThreadStyleValue {
 public:
  enum class StyleValueType {
    kUnknownType,
    kUnparsedType,
    kKeywordType,
    kUnitType,
    kColorType,
  };

  CrossThreadStyleValue(const CrossThreadStyleValue&) = delete;
  CrossThreadStyleValue& operator=(const CrossThreadStyleValue&) = delete;
  virtual ~CrossThreadStyleValue() = default;

  virtual StyleValueType GetType() const = 0;
  virtual CSSStyleValue* ToCSSStyleValue() = 0;
  virtual std::unique_ptr<CrossThreadStyleValue> IsolatedCopy() const = 0;

  virtual bool operator==(const CrossThreadStyleValue&) const = 0;

 protected:
  CrossThreadStyleValue() = default;
};

}  // namespace blink

#endif
