diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
commit | 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch) | |
tree | 46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/css/MediaList.h | |
parent | 32761a6cee1d0dee366b885b7b9c777e67885688 (diff) | |
download | WebKitGtk-tarball-master.tar.gz |
webkitgtk-2.16.5HEADwebkitgtk-2.16.5master
Diffstat (limited to 'Source/WebCore/css/MediaList.h')
-rw-r--r-- | Source/WebCore/css/MediaList.h | 97 |
1 files changed, 47 insertions, 50 deletions
diff --git a/Source/WebCore/css/MediaList.h b/Source/WebCore/css/MediaList.h index 74976df48..0bb0a01c6 100644 --- a/Source/WebCore/css/MediaList.h +++ b/Source/WebCore/css/MediaList.h @@ -18,91 +18,83 @@ * Boston, MA 02110-1301, USA. */ -#ifndef MediaList_h -#define MediaList_h +#pragma once -#include "ExceptionCode.h" +#include "ExceptionOr.h" +#include <memory> #include <wtf/Forward.h> -#include <wtf/PassRefPtr.h> -#include <wtf/RefCounted.h> #include <wtf/Vector.h> -#include <wtf/text/WTFString.h> namespace WebCore { +class CSSParser; class CSSRule; class CSSStyleSheet; class Document; -class MediaList; class MediaQuery; -class MediaQuerySet : public RefCounted<MediaQuerySet> { +class MediaQuerySet final : public RefCounted<MediaQuerySet> { public: - static PassRefPtr<MediaQuerySet> create() + static Ref<MediaQuerySet> create() { - return adoptRef(new MediaQuerySet()); + return adoptRef(*new MediaQuerySet); } - static PassRefPtr<MediaQuerySet> create(const String& mediaString) - { - return adoptRef(new MediaQuerySet(mediaString, false)); - } - static PassRefPtr<MediaQuerySet> createAllowingDescriptionSyntax(const String& mediaString) - { - return adoptRef(new MediaQuerySet(mediaString, true)); - } - ~MediaQuerySet(); - - bool parse(const String&); + + static WEBCORE_EXPORT Ref<MediaQuerySet> create(const String& mediaString); + + WEBCORE_EXPORT ~MediaQuerySet(); + + bool set(const String&); bool add(const String&); bool remove(const String&); - void addMediaQuery(PassOwnPtr<MediaQuery>); + void addMediaQuery(MediaQuery&&); + + const Vector<MediaQuery>& queryVector() const { return m_queries; } - const Vector<OwnPtr<MediaQuery>>& queryVector() const { return m_queries; } - int lastLine() const { return m_lastLine; } void setLastLine(int lastLine) { m_lastLine = lastLine; } - - String mediaText() const; - PassRefPtr<MediaQuerySet> copy() const { return adoptRef(new MediaQuerySet(*this)); } + WEBCORE_EXPORT String mediaText() const; + + Ref<MediaQuerySet> copy() const { return adoptRef(*new MediaQuerySet(*this)); } + + void shrinkToFit(); private: MediaQuerySet(); - MediaQuerySet(const String& mediaQuery, bool fallbackToDescription); + WEBCORE_EXPORT MediaQuerySet(const String& mediaQuery); MediaQuerySet(const MediaQuerySet&); - - unsigned m_fallbackToDescriptor : 1; // true if failed media query parsing should fallback to media description parsing. - signed m_lastLine : 31; - Vector<OwnPtr<MediaQuery>> m_queries; + + signed m_lastLine; + Vector<MediaQuery> m_queries; }; -class MediaList : public RefCounted<MediaList> { +class MediaList final : public RefCounted<MediaList> { public: - static PassRefPtr<MediaList> create(MediaQuerySet* mediaQueries, CSSStyleSheet* parentSheet) + static Ref<MediaList> create(MediaQuerySet* mediaQueries, CSSStyleSheet* parentSheet) { - return adoptRef(new MediaList(mediaQueries, parentSheet)); + return adoptRef(*new MediaList(mediaQueries, parentSheet)); } - static PassRefPtr<MediaList> create(MediaQuerySet* mediaQueries, CSSRule* parentRule) + static Ref<MediaList> create(MediaQuerySet* mediaQueries, CSSRule* parentRule) { - return adoptRef(new MediaList(mediaQueries, parentRule)); + return adoptRef(*new MediaList(mediaQueries, parentRule)); } - ~MediaList(); + WEBCORE_EXPORT ~MediaList(); unsigned length() const { return m_mediaQueries->queryVector().size(); } - String item(unsigned index) const; - void deleteMedium(const String& oldMedium, ExceptionCode&); - void appendMedium(const String& newMedium, ExceptionCode&); + WEBCORE_EXPORT String item(unsigned index) const; + WEBCORE_EXPORT ExceptionOr<void> deleteMedium(const String& oldMedium); + WEBCORE_EXPORT ExceptionOr<void> appendMedium(const String& newMedium); String mediaText() const { return m_mediaQueries->mediaText(); } - void setMediaText(const String&, ExceptionCode&); + WEBCORE_EXPORT ExceptionOr<void> setMediaText(const String&); - // Not part of CSSOM. CSSRule* parentRule() const { return m_parentRule; } CSSStyleSheet* parentStyleSheet() const { return m_parentStyleSheet; } - void clearParentStyleSheet() { ASSERT(m_parentStyleSheet); m_parentStyleSheet = 0; } - void clearParentRule() { ASSERT(m_parentRule); m_parentRule = 0; } + void clearParentStyleSheet() { ASSERT(m_parentStyleSheet); m_parentStyleSheet = nullptr; } + void clearParentRule() { ASSERT(m_parentRule); m_parentRule = nullptr; } const MediaQuerySet* queries() const { return m_mediaQueries.get(); } void reattach(MediaQuerySet*); @@ -113,15 +105,20 @@ private: MediaList(MediaQuerySet*, CSSRule* parentRule); RefPtr<MediaQuerySet> m_mediaQueries; - CSSStyleSheet* m_parentStyleSheet; - CSSRule* m_parentRule; + CSSStyleSheet* m_parentStyleSheet { nullptr }; + CSSRule* m_parentRule { nullptr }; }; -#if ENABLE(RESOLUTION_MEDIA_QUERY) // Adds message to inspector console whenever dpi or dpcm values are used for "screen" media. +// FIXME: Seems strange to have this here in this file, and unclear exactly who should call this and when. void reportMediaQueryWarningIfNeeded(Document*, const MediaQuerySet*); -#endif -} // namespace +#if !ENABLE(RESOLUTION_MEDIA_QUERY) + +inline void reportMediaQueryWarningIfNeeded(Document*, const MediaQuerySet*) +{ +} #endif + +} // namespace |