Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1330)

Unified Diff: third_party/WebKit/Source/core/css/MediaList.h

Issue 2837023005: Move MediaQuery classes off BlinkGC heap (Closed)
Patch Set: fix Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/css/MediaList.h
diff --git a/third_party/WebKit/Source/core/css/MediaList.h b/third_party/WebKit/Source/core/css/MediaList.h
index 4942ad110a9d26181a069663d283369adfdb7ac6..c05e07627712dedb38d9f37f310c525a004ae28f 100644
--- a/third_party/WebKit/Source/core/css/MediaList.h
+++ b/third_party/WebKit/Source/core/css/MediaList.h
@@ -24,6 +24,7 @@
#include "bindings/core/v8/ScriptWrappable.h"
#include "core/CoreExport.h"
+#include "core/css/MediaQuery.h"
#include "core/dom/ExceptionCode.h"
#include "platform/heap/Handle.h"
#include "platform/wtf/Forward.h"
@@ -38,43 +39,48 @@ class ExceptionState;
class MediaList;
class MediaQuery;
-class CORE_EXPORT MediaQuerySet : public GarbageCollected<MediaQuerySet> {
+class CORE_EXPORT MediaQuerySet : public RefCounted<MediaQuerySet> {
public:
- static MediaQuerySet* Create() { return new MediaQuerySet(); }
- static MediaQuerySet* Create(const String& media_string);
+ static PassRefPtr<MediaQuerySet> Create() {
+ return AdoptRef(new MediaQuerySet());
+ }
+ static PassRefPtr<MediaQuerySet> Create(const String& media_string);
bool Set(const String&);
bool Add(const String&);
bool Remove(const String&);
- void AddMediaQuery(MediaQuery*);
+ void AddMediaQuery(std::unique_ptr<MediaQuery>);
- const HeapVector<Member<MediaQuery>>& QueryVector() const { return queries_; }
+ const Vector<std::unique_ptr<MediaQuery>>& QueryVector() const {
+ return queries_;
+ }
String MediaText() const;
- MediaQuerySet* Copy() const { return new MediaQuerySet(*this); }
-
- DECLARE_TRACE();
+ PassRefPtr<MediaQuerySet> Copy() const {
+ return AdoptRef(new MediaQuerySet(*this));
+ }
private:
MediaQuerySet();
MediaQuerySet(const MediaQuerySet&);
- HeapVector<Member<MediaQuery>> queries_;
+ Vector<std::unique_ptr<MediaQuery>> queries_;
};
-class MediaList final : public GarbageCollected<MediaList>,
+class MediaList final : public GarbageCollectedFinalized<MediaList>,
public ScriptWrappable {
DEFINE_WRAPPERTYPEINFO();
public:
- static MediaList* Create(MediaQuerySet* media_queries,
+ static MediaList* Create(RefPtr<MediaQuerySet> media_queries,
CSSStyleSheet* parent_sheet) {
return new MediaList(media_queries, parent_sheet);
}
- static MediaList* Create(MediaQuerySet* media_queries, CSSRule* parent_rule) {
+ static MediaList* Create(RefPtr<MediaQuerySet> media_queries,
+ CSSRule* parent_rule) {
return new MediaList(media_queries, parent_rule);
haraken 2017/04/26 09:09:32 std::move(media_queries)?
keishi 2017/04/26 09:44:35 Done.
}
@@ -92,19 +98,16 @@ class MediaList final : public GarbageCollected<MediaList>,
const MediaQuerySet* Queries() const { return media_queries_.Get(); }
- void Reattach(MediaQuerySet*);
+ void Reattach(RefPtr<MediaQuerySet>);
DECLARE_TRACE();
private:
- MediaList(MediaQuerySet*, CSSStyleSheet* parent_sheet);
- MediaList(MediaQuerySet*, CSSRule* parent_rule);
+ MediaList(RefPtr<MediaQuerySet>, CSSStyleSheet* parent_sheet);
+ MediaList(RefPtr<MediaQuerySet>, CSSRule* parent_rule);
- Member<MediaQuerySet> media_queries_;
- // Cleared in ~CSSStyleSheet destructor when oilpan is not enabled.
+ RefPtr<MediaQuerySet> media_queries_;
Member<CSSStyleSheet> parent_style_sheet_;
- // Cleared in the ~CSSMediaRule and ~CSSImportRule destructors when oilpan is
- // not enabled.
Member<CSSRule> parent_rule_;
};

Powered by Google App Engine
This is Rietveld 408576698