// Copyright 2014 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 SKY_ENGINE_CORE_CSS_MEDIAVALUESCACHED_H_ #define SKY_ENGINE_CORE_CSS_MEDIAVALUESCACHED_H_ #include "sky/engine/core/css/MediaValues.h" namespace blink { class MediaValuesCached final : public MediaValues { public: struct MediaValuesCachedData { // Members variables must be thread safe, since they're copied to the parser thread int viewportWidth; int viewportHeight; int deviceWidth; int deviceHeight; float devicePixelRatio; int colorBitsPerComponent; int monochromeBitsPerComponent; PointerType primaryPointerType; int availablePointerTypes; HoverType primaryHoverType; int availableHoverTypes; int defaultFontSize; bool threeDEnabled; bool strictMode; String mediaType; MediaValuesCachedData() : viewportWidth(0) , viewportHeight(0) , deviceWidth(0) , deviceHeight(0) , devicePixelRatio(1.0) , colorBitsPerComponent(24) , monochromeBitsPerComponent(0) , primaryPointerType(PointerTypeNone) , availablePointerTypes(PointerTypeNone) , primaryHoverType(HoverTypeNone) , availableHoverTypes(HoverTypeNone) , defaultFontSize(16) , threeDEnabled(false) , strictMode(true) { } }; static PassRefPtr create(); static PassRefPtr create(Document&); static PassRefPtr create(LocalFrame*); static PassRefPtr create(MediaValuesCachedData&); virtual PassRefPtr copy() const override; virtual bool isSafeToSendToAnotherThread() const override; virtual bool computeLength(double value, CSSPrimitiveValue::UnitType, int& result) const override; virtual bool computeLength(double value, CSSPrimitiveValue::UnitType, double& result) const override; virtual int viewportWidth() const override; virtual int viewportHeight() const override; virtual int deviceWidth() const override; virtual int deviceHeight() const override; virtual float devicePixelRatio() const override; virtual int colorBitsPerComponent() const override; virtual int monochromeBitsPerComponent() const override; virtual PointerType primaryPointerType() const override; virtual int availablePointerTypes() const override; virtual HoverType primaryHoverType() const override; virtual int availableHoverTypes() const override; virtual bool threeDEnabled() const override; virtual bool strictMode() const override; virtual Document* document() const override; virtual bool hasValues() const override; virtual const String mediaType() const override; protected: MediaValuesCached(); MediaValuesCached(LocalFrame*); MediaValuesCached(const MediaValuesCachedData&); MediaValuesCachedData m_data; }; } // namespace #endif // SKY_ENGINE_CORE_CSS_MEDIAVALUESCACHED_H_