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 10 namespace blink { 11 12 class Document; 13 14 class MediaValuesDynamic FINAL : public MediaValues { 15 public: 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 40 protected: 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