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 WebCore { 11 12 class Document; 13 14 class MediaValuesDynamic FINAL : public MediaValues { 15 public: 16 static PassRefPtr<MediaValues> create(LocalFrame*); 17 virtual PassRefPtr<MediaValues> copy() const OVERRIDE; 18 virtual bool isSafeToSendToAnotherThread() const OVERRIDE; 19 virtual bool computeLength(double value, CSSPrimitiveValue::UnitType, int& result) const OVERRIDE; 20 virtual bool computeLength(double value, CSSPrimitiveValue::UnitType, double& result) const OVERRIDE; 21 22 virtual int viewportWidth() const OVERRIDE; 23 virtual int viewportHeight() const OVERRIDE; 24 virtual int deviceWidth() const OVERRIDE; 25 virtual int deviceHeight() const OVERRIDE; 26 virtual float devicePixelRatio() const OVERRIDE; 27 virtual int colorBitsPerComponent() const OVERRIDE; 28 virtual int monochromeBitsPerComponent() const OVERRIDE; 29 virtual PointerDeviceType pointer() const OVERRIDE; 30 virtual bool threeDEnabled() const OVERRIDE; 31 virtual bool scanMediaType() const OVERRIDE; 32 virtual bool screenMediaType() const OVERRIDE; 33 virtual bool printMediaType() const OVERRIDE; 34 virtual bool strictMode() const OVERRIDE; 35 virtual Document* document() const OVERRIDE; 36 virtual bool hasValues() const OVERRIDE; 37 38 protected: 39 MediaValuesDynamic(LocalFrame*); 40 41 // This raw ptr is safe, as MediaValues would not outlive MediaQueryEvaluator, and 42 // MediaQueryEvaluator is reset on |Document::detach|. 43 // FIXME: Oilpan: This raw ptr should be changed to a Member when LocalFrame is migrated to the heap. 44 LocalFrame* m_frame; 45 }; 46 47 } // namespace 48 49 #endif // MediaValuesDynamic_h 50