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 MediaValuesCached_h 6 #define MediaValuesCached_h 7 8 #include "core/css/MediaValues.h" 9 10 namespace blink { 11 12 class MediaValuesCached FINAL : public MediaValues { 13 public: 14 struct MediaValuesCachedData { 15 // Members variables must be thread safe, since they're copied to the parser thread 16 int viewportWidth; 17 int viewportHeight; 18 int deviceWidth; 19 int deviceHeight; 20 float devicePixelRatio; 21 int colorBitsPerComponent; 22 int monochromeBitsPerComponent; 23 PointerType primaryPointerType; 24 int availablePointerTypes; 25 HoverType primaryHoverType; 26 int availableHoverTypes; 27 int defaultFontSize; 28 bool threeDEnabled; 29 bool strictMode; 30 String mediaType; 31 MediaValuesCachedDataMediaValuesCachedData32 MediaValuesCachedData() 33 : viewportWidth(0) 34 , viewportHeight(0) 35 , deviceWidth(0) 36 , deviceHeight(0) 37 , devicePixelRatio(1.0) 38 , colorBitsPerComponent(24) 39 , monochromeBitsPerComponent(0) 40 , primaryPointerType(PointerTypeNone) 41 , availablePointerTypes(PointerTypeNone) 42 , primaryHoverType(HoverTypeNone) 43 , availableHoverTypes(HoverTypeNone) 44 , defaultFontSize(16) 45 , threeDEnabled(false) 46 , strictMode(true) 47 { 48 } 49 }; 50 51 static PassRefPtr<MediaValues> create(); 52 static PassRefPtr<MediaValues> create(Document&); 53 static PassRefPtr<MediaValues> create(LocalFrame*); 54 static PassRefPtr<MediaValues> create(MediaValuesCachedData&); 55 virtual PassRefPtr<MediaValues> copy() const OVERRIDE; 56 virtual bool isSafeToSendToAnotherThread() const OVERRIDE; 57 virtual bool computeLength(double value, CSSPrimitiveValue::UnitType, int& result) const OVERRIDE; 58 virtual bool computeLength(double value, CSSPrimitiveValue::UnitType, double& result) const OVERRIDE; 59 60 virtual int viewportWidth() const OVERRIDE; 61 virtual int viewportHeight() const OVERRIDE; 62 virtual int deviceWidth() const OVERRIDE; 63 virtual int deviceHeight() const OVERRIDE; 64 virtual float devicePixelRatio() const OVERRIDE; 65 virtual int colorBitsPerComponent() const OVERRIDE; 66 virtual int monochromeBitsPerComponent() const OVERRIDE; 67 virtual PointerType primaryPointerType() const OVERRIDE; 68 virtual int availablePointerTypes() const OVERRIDE; 69 virtual HoverType primaryHoverType() const OVERRIDE; 70 virtual int availableHoverTypes() const OVERRIDE; 71 virtual bool threeDEnabled() const OVERRIDE; 72 virtual bool strictMode() const OVERRIDE; 73 virtual Document* document() const OVERRIDE; 74 virtual bool hasValues() const OVERRIDE; 75 virtual const String mediaType() const OVERRIDE; 76 77 protected: 78 MediaValuesCached(); 79 MediaValuesCached(LocalFrame*); 80 MediaValuesCached(const MediaValuesCachedData&); 81 82 MediaValuesCachedData m_data; 83 }; 84 85 } // namespace 86 87 #endif // MediaValuesCached_h 88