| Index: Source/core/css/MediaQueryEvaluator.h
 | 
| diff --git a/Source/core/css/MediaQueryEvaluator.h b/Source/core/css/MediaQueryEvaluator.h
 | 
| index eb67ac718d906854f33dfc8d455d5496654bfb8d..42e1ee9464d597c64016b44ffe57d0b555714bc1 100644
 | 
| --- a/Source/core/css/MediaQueryEvaluator.h
 | 
| +++ b/Source/core/css/MediaQueryEvaluator.h
 | 
| @@ -28,6 +28,7 @@
 | 
|  #ifndef MediaQueryEvaluator_h
 | 
|  #define MediaQueryEvaluator_h
 | 
|  
 | 
| +#include "wtf/RefCounted.h"
 | 
|  #include "wtf/text/WTFString.h"
 | 
|  
 | 
|  namespace WebCore {
 | 
| @@ -36,6 +37,64 @@ class MediaQueryExp;
 | 
|  class MediaQuerySet;
 | 
|  class RenderStyle;
 | 
|  class StyleResolver;
 | 
| +class Document;
 | 
| +
 | 
| +class MediaValues : public RefCounted<MediaValues> {
 | 
| +public:
 | 
| +    // Should return a pointer that auto destructs when copied
 | 
| +    static PassRefPtr<MediaValues> create(Document*);
 | 
| +    static PassRefPtr<MediaValues> copy(const MediaValues*);
 | 
| +
 | 
| +    int getViewportWidth() { return m_viewportWidth; }
 | 
| +    int getViewportHeight() { return m_viewportHeight; }
 | 
| +    int getDeviceWidth() { return m_deviceWidth; }
 | 
| +    int getDeviceHeight() { return m_deviceHeight; }
 | 
| +    float getPixelRatio() { return m_pixelRatio; }
 | 
| +    int getColorBitsPerComponent() { return m_colorBitsPerComponent; }
 | 
| +    int getMonochromeBitsPerComponent() { return m_monochromeBitsPerComponent; }
 | 
| +    int getPointer() { return m_pointer; }
 | 
| +    int getDefaultFontSize() { return m_defaultFontSize; }
 | 
| +    bool getThreeDEnabled() { return m_threeDEnabled; }
 | 
| +    String getMediaType() { return m_mediaType; }
 | 
| +
 | 
| +private:
 | 
| +    MediaValues(int viewportWidth,
 | 
| +        int viewportHeight,
 | 
| +        int deviceWidth,
 | 
| +        int deviceHeight,
 | 
| +        float pixelRatio,
 | 
| +        int colorBitsPerComponent,
 | 
| +        int monochromeBitsPerComponent,
 | 
| +        int pointer,
 | 
| +        int defaultFontSize,
 | 
| +        int threeDEnabled,
 | 
| +        String mediaType)
 | 
| +    : m_viewportWidth(viewportWidth)
 | 
| +    , m_viewportHeight(viewportHeight)
 | 
| +    , m_deviceWidth(deviceWidth)
 | 
| +    , m_deviceHeight(deviceHeight)
 | 
| +    , m_pixelRatio(pixelRatio)
 | 
| +    , m_colorBitsPerComponent(colorBitsPerComponent)
 | 
| +    , m_monochromeBitsPerComponent(monochromeBitsPerComponent)
 | 
| +    , m_pointer(pointer)
 | 
| +    , m_defaultFontSize(defaultFontSize)
 | 
| +    , m_threeDEnabled(threeDEnabled)
 | 
| +    , m_mediaType(mediaType.isolatedCopy())
 | 
| +    {
 | 
| +    }
 | 
| +
 | 
| +    int m_viewportWidth;
 | 
| +    int m_viewportHeight;
 | 
| +    int m_deviceWidth;
 | 
| +    int m_deviceHeight;
 | 
| +    float m_pixelRatio;
 | 
| +    int m_colorBitsPerComponent;
 | 
| +    int m_monochromeBitsPerComponent;
 | 
| +    int m_pointer;
 | 
| +    int m_defaultFontSize;
 | 
| +    bool m_threeDEnabled;
 | 
| +    String m_mediaType;
 | 
| +};
 | 
|  
 | 
|  /**
 | 
|   * Class that evaluates css media queries as defined in
 | 
| @@ -68,6 +127,10 @@ public:
 | 
|      /** Creates evaluator which evaluates full media queries */
 | 
|      MediaQueryEvaluator(const AtomicString& acceptedMediaType, Frame*, RenderStyle*);
 | 
|  
 | 
| +    /** Creates evaluator which evaluates in a thread-safe manner a subset of media values
 | 
| +     */
 | 
| +    MediaQueryEvaluator(const String& acceptedMediaType, const MediaValues* , bool mediaFeatureResult);
 | 
| +
 | 
|      ~MediaQueryEvaluator();
 | 
|  
 | 
|      bool mediaTypeMatch(const AtomicString& mediaTypeToMatch) const;
 | 
| @@ -84,6 +147,7 @@ private:
 | 
|      Frame* m_frame; // Not owned.
 | 
|      RefPtr<RenderStyle> m_style;
 | 
|      bool m_expResult;
 | 
| +    RefPtr<MediaValues> m_mediaValues;
 | 
|  };
 | 
|  
 | 
|  } // namespace
 | 
| 
 |