| Index: third_party/WebKit/Source/core/css/MediaList.cpp
|
| diff --git a/third_party/WebKit/Source/core/css/MediaList.cpp b/third_party/WebKit/Source/core/css/MediaList.cpp
|
| index a9f4a1bd5fa115b1d37a845a6135ff61bcde652d..9da794baee94108f826c2f995df0ad60dada1ab7 100644
|
| --- a/third_party/WebKit/Source/core/css/MediaList.cpp
|
| +++ b/third_party/WebKit/Source/core/css/MediaList.cpp
|
| @@ -21,7 +21,6 @@
|
|
|
| #include "bindings/core/v8/ExceptionState.h"
|
| #include "core/css/CSSStyleSheet.h"
|
| -#include "core/css/MediaQuery.h"
|
| #include "core/css/MediaQueryExp.h"
|
| #include "core/css/parser/MediaQueryParser.h"
|
| #include "wtf/text/StringBuilder.h"
|
| @@ -58,7 +57,7 @@ MediaQuerySet::MediaQuerySet(const MediaQuerySet& o)
|
| m_queries[i] = o.m_queries[i]->copy();
|
| }
|
|
|
| -MediaQuerySet* MediaQuerySet::create(const String& mediaString) {
|
| +RefPtr<MediaQuerySet> MediaQuerySet::create(const String& mediaString) {
|
| if (mediaString.isEmpty())
|
| return MediaQuerySet::create();
|
|
|
| @@ -66,7 +65,7 @@ MediaQuerySet* MediaQuerySet::create(const String& mediaString) {
|
| }
|
|
|
| bool MediaQuerySet::set(const String& mediaString) {
|
| - MediaQuerySet* result = create(mediaString);
|
| + RefPtr<MediaQuerySet> result = create(mediaString);
|
| m_queries.swap(result->m_queries);
|
| return true;
|
| }
|
| @@ -75,24 +74,24 @@ bool MediaQuerySet::add(const String& queryString) {
|
| // To "parse a media query" for a given string means to follow "the parse
|
| // a media query list" steps and return "null" if more than one media query
|
| // is returned, or else the returned media query.
|
| - MediaQuerySet* result = create(queryString);
|
| + RefPtr<MediaQuerySet> result = create(queryString);
|
|
|
| // Only continue if exactly one media query is found, as described above.
|
| if (result->m_queries.size() != 1)
|
| return true;
|
|
|
| - MediaQuery* newQuery = result->m_queries[0].release();
|
| + std::unique_ptr<MediaQuery> newQuery = std::move(result->m_queries[0]);
|
| ASSERT(newQuery);
|
|
|
| // If comparing with any of the media queries in the collection of media
|
| // queries returns true terminate these steps.
|
| for (size_t i = 0; i < m_queries.size(); ++i) {
|
| - MediaQuery* query = m_queries[i].get();
|
| - if (*query == *newQuery)
|
| + MediaQuery& query = *m_queries[i];
|
| + if (query == *newQuery)
|
| return true;
|
| }
|
|
|
| - m_queries.push_back(newQuery);
|
| + m_queries.push_back(std::move(newQuery));
|
| return true;
|
| }
|
|
|
| @@ -100,21 +99,21 @@ bool MediaQuerySet::remove(const String& queryStringToRemove) {
|
| // To "parse a media query" for a given string means to follow "the parse
|
| // a media query list" steps and return "null" if more than one media query
|
| // is returned, or else the returned media query.
|
| - MediaQuerySet* result = create(queryStringToRemove);
|
| + RefPtr<MediaQuerySet> result = create(queryStringToRemove);
|
|
|
| // Only continue if exactly one media query is found, as described above.
|
| if (result->m_queries.size() != 1)
|
| return true;
|
|
|
| - MediaQuery* newQuery = result->m_queries[0].release();
|
| + std::unique_ptr<MediaQuery> newQuery = std::move(result->m_queries[0]);
|
| ASSERT(newQuery);
|
|
|
| // Remove any media query from the collection of media queries for which
|
| // comparing with the media query returns true.
|
| bool found = false;
|
| for (size_t i = 0; i < m_queries.size(); ++i) {
|
| - MediaQuery* query = m_queries[i].get();
|
| - if (*query == *newQuery) {
|
| + MediaQuery& query = *m_queries[i];
|
| + if (query == *newQuery) {
|
| m_queries.remove(i);
|
| --i;
|
| found = true;
|
| @@ -124,8 +123,8 @@ bool MediaQuerySet::remove(const String& queryStringToRemove) {
|
| return found;
|
| }
|
|
|
| -void MediaQuerySet::addMediaQuery(MediaQuery* mediaQuery) {
|
| - m_queries.push_back(mediaQuery);
|
| +void MediaQuerySet::addMediaQuery(std::unique_ptr<MediaQuery> mediaQuery) {
|
| + m_queries.push_back(std::move(mediaQuery));
|
| }
|
|
|
| String MediaQuerySet::mediaText() const {
|
| @@ -142,16 +141,13 @@ String MediaQuerySet::mediaText() const {
|
| return text.toString();
|
| }
|
|
|
| -DEFINE_TRACE(MediaQuerySet) {
|
| - visitor->trace(m_queries);
|
| -}
|
| -
|
| -MediaList::MediaList(MediaQuerySet* mediaQueries, CSSStyleSheet* parentSheet)
|
| +MediaList::MediaList(RefPtr<MediaQuerySet> mediaQueries,
|
| + CSSStyleSheet* parentSheet)
|
| : m_mediaQueries(mediaQueries),
|
| m_parentStyleSheet(parentSheet),
|
| m_parentRule(nullptr) {}
|
|
|
| -MediaList::MediaList(MediaQuerySet* mediaQueries, CSSRule* parentRule)
|
| +MediaList::MediaList(RefPtr<MediaQuerySet> mediaQueries, CSSRule* parentRule)
|
| : m_mediaQueries(mediaQueries),
|
| m_parentStyleSheet(nullptr),
|
| m_parentRule(parentRule) {}
|
| @@ -166,7 +162,8 @@ void MediaList::setMediaText(const String& value) {
|
| }
|
|
|
| String MediaList::item(unsigned index) const {
|
| - const HeapVector<Member<MediaQuery>>& queries = m_mediaQueries->queryVector();
|
| + const Vector<std::unique_ptr<MediaQuery>>& queries =
|
| + m_mediaQueries->queryVector();
|
| if (index < queries.size())
|
| return queries[index]->cssText();
|
| return String();
|
| @@ -202,13 +199,12 @@ void MediaList::appendMedium(const String& medium,
|
| m_parentStyleSheet->didMutate();
|
| }
|
|
|
| -void MediaList::reattach(MediaQuerySet* mediaQueries) {
|
| +void MediaList::reattach(RefPtr<MediaQuerySet> mediaQueries) {
|
| ASSERT(mediaQueries);
|
| m_mediaQueries = mediaQueries;
|
| }
|
|
|
| DEFINE_TRACE(MediaList) {
|
| - visitor->trace(m_mediaQueries);
|
| visitor->trace(m_parentStyleSheet);
|
| visitor->trace(m_parentRule);
|
| }
|
|
|