1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef MediaValuesDynamic_h 6#define MediaValuesDynamic_h 7 8#include "core/css/MediaValues.h" 9 10namespace blink { 11 12class Document; 13 14class MediaValuesDynamic FINAL : public MediaValues { 15public: 16 static PassRefPtr<MediaValues> create(Document&); 17 static PassRefPtr<MediaValues> create(LocalFrame*); 18 virtual PassRefPtr<MediaValues> copy() const OVERRIDE; 19 virtual bool isSafeToSendToAnotherThread() const OVERRIDE; 20 virtual bool computeLength(double value, CSSPrimitiveValue::UnitType, int& result) const OVERRIDE; 21 virtual bool computeLength(double value, CSSPrimitiveValue::UnitType, double& result) const OVERRIDE; 22 23 virtual int viewportWidth() const OVERRIDE; 24 virtual int viewportHeight() const OVERRIDE; 25 virtual int deviceWidth() const OVERRIDE; 26 virtual int deviceHeight() const OVERRIDE; 27 virtual float devicePixelRatio() const OVERRIDE; 28 virtual int colorBitsPerComponent() const OVERRIDE; 29 virtual int monochromeBitsPerComponent() const OVERRIDE; 30 virtual PointerType primaryPointerType() const OVERRIDE; 31 virtual int availablePointerTypes() const OVERRIDE; 32 virtual HoverType primaryHoverType() const OVERRIDE; 33 virtual int availableHoverTypes() const OVERRIDE; 34 virtual bool threeDEnabled() const OVERRIDE; 35 virtual bool strictMode() const OVERRIDE; 36 virtual const String mediaType() const OVERRIDE; 37 virtual Document* document() const OVERRIDE; 38 virtual bool hasValues() const OVERRIDE; 39 40protected: 41 MediaValuesDynamic(LocalFrame*); 42 43 // This raw ptr is safe, as MediaValues would not outlive MediaQueryEvaluator, and 44 // MediaQueryEvaluator is reset on |Document::detach|. 45 // FIXME: Oilpan: This raw ptr should be changed to a Member when LocalFrame is migrated to the heap. 46 LocalFrame* m_frame; 47}; 48 49} // namespace 50 51#endif // MediaValuesDynamic_h 52