Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / css / MediaValuesCached.h
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
32         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