// 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_MEDIAVALUESDYNAMIC_H_ #define SKY_ENGINE_CORE_CSS_MEDIAVALUESDYNAMIC_H_ #include "sky/engine/core/css/MediaValues.h" namespace blink { class Document; class MediaValuesDynamic final : public MediaValues { public: static PassRefPtr create(Document&); static PassRefPtr create(LocalFrame*); 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 const String mediaType() const override; virtual Document* document() const override; virtual bool hasValues() const override; protected: MediaValuesDynamic(LocalFrame*); // This raw ptr is safe, as MediaValues would not outlive MediaQueryEvaluator, and // MediaQueryEvaluator is reset on |Document::detach|. // FIXME: Oilpan: This raw ptr should be changed to a Member when LocalFrame is migrated to the heap. LocalFrame* m_frame; }; } // namespace #endif // SKY_ENGINE_CORE_CSS_MEDIAVALUESDYNAMIC_H_