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

Side by Side Diff: Source/core/css/MediaQueryExp.cpp

Issue 170283019: Change various helper classes to transition types to get CSSValue entirely onto the gc heap. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * CSS Media Query 2 * CSS Media Query
3 * 3 *
4 * Copyright (C) 2006 Kimmo Kinnunen <kimmo.t.kinnunen@nokia.com>. 4 * Copyright (C) 2006 Kimmo Kinnunen <kimmo.t.kinnunen@nokia.com>.
5 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). 5 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
6 * Copyright (C) 2013 Apple Inc. All rights reserved. 6 * Copyright (C) 2013 Apple Inc. All rights reserved.
7 * 7 *
8 * Redistribution and use in source and binary forms, with or without 8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions 9 * modification, are permitted provided that the following conditions
10 * are met: 10 * are met:
(...skipping 20 matching lines...) Expand all
31 #include "core/css/MediaQueryExp.h" 31 #include "core/css/MediaQueryExp.h"
32 32
33 #include "CSSValueKeywords.h" 33 #include "CSSValueKeywords.h"
34 #include "core/css/CSSAspectRatioValue.h" 34 #include "core/css/CSSAspectRatioValue.h"
35 #include "core/css/parser/BisonCSSParser.h" 35 #include "core/css/parser/BisonCSSParser.h"
36 #include "core/css/CSSPrimitiveValue.h" 36 #include "core/css/CSSPrimitiveValue.h"
37 #include "wtf/text/StringBuilder.h" 37 #include "wtf/text/StringBuilder.h"
38 38
39 namespace WebCore { 39 namespace WebCore {
40 40
41 DEFINE_GC_INFO(MediaQueryExp);
42
41 static inline bool featureWithCSSValueID(const AtomicString& mediaFeature, const CSSParserValue* value) 43 static inline bool featureWithCSSValueID(const AtomicString& mediaFeature, const CSSParserValue* value)
42 { 44 {
43 if (!value->id) 45 if (!value->id)
44 return false; 46 return false;
45 47
46 return mediaFeature == MediaFeatureNames::orientationMediaFeature 48 return mediaFeature == MediaFeatureNames::orientationMediaFeature
47 || mediaFeature == MediaFeatureNames::viewModeMediaFeature 49 || mediaFeature == MediaFeatureNames::viewModeMediaFeature
48 || mediaFeature == MediaFeatureNames::pointerMediaFeature 50 || mediaFeature == MediaFeatureNames::pointerMediaFeature
49 || mediaFeature == MediaFeatureNames::scanMediaFeature; 51 || mediaFeature == MediaFeatureNames::scanMediaFeature;
50 } 52 }
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 || m_mediaFeature == MediaFeatureNames::maxWidthMediaFeature 190 || m_mediaFeature == MediaFeatureNames::maxWidthMediaFeature
189 || m_mediaFeature == MediaFeatureNames::maxHeightMediaFeature 191 || m_mediaFeature == MediaFeatureNames::maxHeightMediaFeature
190 || m_mediaFeature == MediaFeatureNames::orientationMediaFeature 192 || m_mediaFeature == MediaFeatureNames::orientationMediaFeature
191 || m_mediaFeature == MediaFeatureNames::aspectRatioMediaFeature 193 || m_mediaFeature == MediaFeatureNames::aspectRatioMediaFeature
192 || m_mediaFeature == MediaFeatureNames::minAspectRatioMediaFeature 194 || m_mediaFeature == MediaFeatureNames::minAspectRatioMediaFeature
193 || m_mediaFeature == MediaFeatureNames::devicePixelRatioMediaFeature 195 || m_mediaFeature == MediaFeatureNames::devicePixelRatioMediaFeature
194 || m_mediaFeature == MediaFeatureNames::resolutionMediaFeature 196 || m_mediaFeature == MediaFeatureNames::resolutionMediaFeature
195 || m_mediaFeature == MediaFeatureNames::maxAspectRatioMediaFeature; 197 || m_mediaFeature == MediaFeatureNames::maxAspectRatioMediaFeature;
196 } 198 }
197 199
200 MediaQueryExp::MediaQueryExp(const MediaQueryExp& other)
haraken 2014/02/21 01:02:36 I'm just curious: Why do you need to add the copy
wibling-chromium 2014/02/21 08:43:08 Because of the copy method in the .h file. It call
201 : m_mediaFeature(other.mediaFeature())
202 , m_value(other.value())
203 {
204 }
205
198 MediaQueryExp::MediaQueryExp(const AtomicString& mediaFeature, PassRefPtrWillBeR awPtr<CSSValue> value) 206 MediaQueryExp::MediaQueryExp(const AtomicString& mediaFeature, PassRefPtrWillBeR awPtr<CSSValue> value)
199 : m_mediaFeature(mediaFeature) 207 : m_mediaFeature(mediaFeature)
200 , m_value(value) 208 , m_value(value)
201 { 209 {
202 } 210 }
203 211
204 PassOwnPtr<MediaQueryExp> MediaQueryExp::create(const AtomicString& mediaFeature , CSSParserValueList* valueList) 212 PassOwnPtrWillBeRawPtr<MediaQueryExp> MediaQueryExp::create(const AtomicString& mediaFeature, CSSParserValueList* valueList)
205 { 213 {
206 RefPtrWillBeRawPtr<CSSValue> cssValue; 214 RefPtrWillBeRawPtr<CSSValue> cssValue;
207 bool isValid = false; 215 bool isValid = false;
208 216
209 // Create value for media query expression that must have 1 or more values. 217 // Create value for media query expression that must have 1 or more values.
210 if (valueList) { 218 if (valueList) {
211 if (valueList->size() == 1) { 219 if (valueList->size() == 1) {
212 CSSParserValue* value = valueList->current(); 220 CSSParserValue* value = valueList->current();
213 221
214 if (featureWithCSSValueID(mediaFeature, value)) { 222 if (featureWithCSSValueID(mediaFeature, value)) {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 if (isValid) 269 if (isValid)
262 cssValue = CSSAspectRatioValue::create(numeratorValue, denominat orValue); 270 cssValue = CSSAspectRatioValue::create(numeratorValue, denominat orValue);
263 } 271 }
264 } else if (featureWithoutValue(mediaFeature)) { 272 } else if (featureWithoutValue(mediaFeature)) {
265 isValid = true; 273 isValid = true;
266 } 274 }
267 275
268 if (!isValid) 276 if (!isValid)
269 return nullptr; 277 return nullptr;
270 278
271 return adoptPtr(new MediaQueryExp(mediaFeature, cssValue)); 279 return adoptPtrWillBeNoop(new MediaQueryExp(mediaFeature, cssValue));
272 } 280 }
273 281
274 MediaQueryExp::~MediaQueryExp() 282 MediaQueryExp::~MediaQueryExp()
275 { 283 {
276 } 284 }
277 285
278 String MediaQueryExp::serialize() const 286 String MediaQueryExp::serialize() const
279 { 287 {
280 StringBuilder result; 288 StringBuilder result;
281 result.append("("); 289 result.append("(");
282 result.append(m_mediaFeature.lower()); 290 result.append(m_mediaFeature.lower());
283 if (m_value) { 291 if (m_value) {
284 result.append(": "); 292 result.append(": ");
285 result.append(m_value->cssText()); 293 result.append(m_value->cssText());
286 } 294 }
287 result.append(")"); 295 result.append(")");
288 296
289 return result.toString(); 297 return result.toString();
290 } 298 }
291 299
292 } // namespace 300 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698