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 ee1d1464db63c8864269332977cda2288352e6be..4624db917c5335ea07f1c61387e00caa94680181 100644 |
--- a/third_party/WebKit/Source/core/css/MediaList.cpp |
+++ b/third_party/WebKit/Source/core/css/MediaList.cpp |
@@ -22,7 +22,6 @@ |
#include <memory> |
#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 "platform/wtf/text/StringBuilder.h" |
@@ -58,7 +57,7 @@ MediaQuerySet::MediaQuerySet(const MediaQuerySet& o) |
queries_[i] = o.queries_[i]->Copy(); |
} |
-MediaQuerySet* MediaQuerySet::Create(const String& media_string) { |
+PassRefPtr<MediaQuerySet> MediaQuerySet::Create(const String& media_string) { |
if (media_string.IsEmpty()) |
return MediaQuerySet::Create(); |
@@ -66,7 +65,7 @@ MediaQuerySet* MediaQuerySet::Create(const String& media_string) { |
} |
bool MediaQuerySet::Set(const String& media_string) { |
- MediaQuerySet* result = Create(media_string); |
+ RefPtr<MediaQuerySet> result = Create(media_string); |
// TODO(keishi) Changed DCHECK to CHECK for crbug.com/699269 diagnosis |
for (const auto& query : result->queries_) { |
CHECK(query); |
@@ -79,25 +78,25 @@ bool MediaQuerySet::Add(const String& query_string) { |
// 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(query_string); |
+ RefPtr<MediaQuerySet> result = Create(query_string); |
// Only continue if exactly one media query is found, as described above. |
if (result->queries_.size() != 1) |
return true; |
- MediaQuery* new_query = result->queries_[0].Release(); |
+ std::unique_ptr<MediaQuery> new_query = std::move(result->queries_[0]); |
// TODO(keishi) Changed DCHECK to CHECK for crbug.com/699269 diagnosis |
CHECK(new_query); |
// 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 < queries_.size(); ++i) { |
- MediaQuery* query = queries_[i].Get(); |
- if (*query == *new_query) |
+ MediaQuery& query = *queries_[i]; |
+ if (query == *new_query) |
return true; |
} |
- queries_.push_back(new_query); |
+ queries_.push_back(std::move(new_query)); |
return true; |
} |
@@ -105,13 +104,13 @@ bool MediaQuerySet::Remove(const String& query_string_to_remove) { |
// 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(query_string_to_remove); |
+ RefPtr<MediaQuerySet> result = Create(query_string_to_remove); |
// Only continue if exactly one media query is found, as described above. |
if (result->queries_.size() != 1) |
return true; |
- MediaQuery* new_query = result->queries_[0].Release(); |
+ std::unique_ptr<MediaQuery> new_query = std::move(result->queries_[0]); |
// TODO(keishi) Changed DCHECK to CHECK for crbug.com/699269 diagnosis |
CHECK(new_query); |
@@ -119,8 +118,8 @@ bool MediaQuerySet::Remove(const String& query_string_to_remove) { |
// comparing with the media query returns true. |
bool found = false; |
for (size_t i = 0; i < queries_.size(); ++i) { |
- MediaQuery* query = queries_[i].Get(); |
- if (*query == *new_query) { |
+ MediaQuery& query = *queries_[i]; |
+ if (query == *new_query) { |
queries_.erase(i); |
--i; |
found = true; |
@@ -130,10 +129,10 @@ bool MediaQuerySet::Remove(const String& query_string_to_remove) { |
return found; |
} |
-void MediaQuerySet::AddMediaQuery(MediaQuery* media_query) { |
+void MediaQuerySet::AddMediaQuery(std::unique_ptr<MediaQuery> media_query) { |
// TODO(keishi) Changed DCHECK to CHECK for crbug.com/699269 diagnosis |
CHECK(media_query); |
- queries_.push_back(media_query); |
+ queries_.push_back(std::move(media_query)); |
} |
String MediaQuerySet::MediaText() const { |
@@ -150,16 +149,13 @@ String MediaQuerySet::MediaText() const { |
return text.ToString(); |
} |
-DEFINE_TRACE(MediaQuerySet) { |
- visitor->Trace(queries_); |
-} |
- |
-MediaList::MediaList(MediaQuerySet* media_queries, CSSStyleSheet* parent_sheet) |
+MediaList::MediaList(RefPtr<MediaQuerySet> media_queries, |
+ CSSStyleSheet* parent_sheet) |
: media_queries_(media_queries), |
parent_style_sheet_(parent_sheet), |
parent_rule_(nullptr) {} |
-MediaList::MediaList(MediaQuerySet* media_queries, CSSRule* parent_rule) |
+MediaList::MediaList(RefPtr<MediaQuerySet> media_queries, CSSRule* parent_rule) |
: media_queries_(media_queries), |
parent_style_sheet_(nullptr), |
parent_rule_(parent_rule) {} |
@@ -174,7 +170,8 @@ void MediaList::setMediaText(const String& value) { |
} |
String MediaList::item(unsigned index) const { |
- const HeapVector<Member<MediaQuery>>& queries = media_queries_->QueryVector(); |
+ const Vector<std::unique_ptr<MediaQuery>>& queries = |
+ media_queries_->QueryVector(); |
if (index < queries.size()) |
return queries[index]->CssText(); |
return String(); |
@@ -210,7 +207,7 @@ void MediaList::appendMedium(const String& medium, |
parent_style_sheet_->DidMutate(); |
} |
-void MediaList::Reattach(MediaQuerySet* media_queries) { |
+void MediaList::Reattach(RefPtr<MediaQuerySet> media_queries) { |
// TODO(keishi) Changed DCHECK to CHECK for crbug.com/699269 diagnosis |
CHECK(media_queries); |
for (const auto& query : media_queries->QueryVector()) { |
@@ -220,7 +217,6 @@ void MediaList::Reattach(MediaQuerySet* media_queries) { |
} |
DEFINE_TRACE(MediaList) { |
- visitor->Trace(media_queries_); |
visitor->Trace(parent_style_sheet_); |
visitor->Trace(parent_rule_); |
} |