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

Side by Side Diff: third_party/WebKit/Source/core/css/MediaQueryEvaluator.cpp

Issue 2392343005: Reflow comments in core/css (Closed)
Patch Set: Revert clang-format Created 4 years, 2 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
OLDNEW
1 /* 1 /*
2 * CSS Media Query Evaluator 2 * CSS Media Query Evaluator
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) 2013 Apple Inc. All rights reserved. 5 * Copyright (C) 2013 Apple Inc. All rights reserved.
6 * Copyright (C) 2013 Intel Corporation. All rights reserved. 6 * Copyright (C) 2013 Intel Corporation. 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 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 } 109 }
110 110
111 bool MediaQueryEvaluator::eval( 111 bool MediaQueryEvaluator::eval(
112 const MediaQuery* query, 112 const MediaQuery* query,
113 MediaQueryResultList* viewportDependentMediaQueryResults, 113 MediaQueryResultList* viewportDependentMediaQueryResults,
114 MediaQueryResultList* deviceDependentMediaQueryResults) const { 114 MediaQueryResultList* deviceDependentMediaQueryResults) const {
115 if (!mediaTypeMatch(query->mediaType())) 115 if (!mediaTypeMatch(query->mediaType()))
116 return applyRestrictor(query->restrictor(), false); 116 return applyRestrictor(query->restrictor(), false);
117 117
118 const ExpressionHeapVector& expressions = query->expressions(); 118 const ExpressionHeapVector& expressions = query->expressions();
119 // Iterate through expressions, stop if any of them eval to false (AND semanti cs). 119 // Iterate through expressions, stop if any of them eval to false (AND
120 // semantics).
120 size_t i = 0; 121 size_t i = 0;
121 for (; i < expressions.size(); ++i) { 122 for (; i < expressions.size(); ++i) {
122 bool exprResult = eval(expressions.at(i).get()); 123 bool exprResult = eval(expressions.at(i).get());
123 if (viewportDependentMediaQueryResults && 124 if (viewportDependentMediaQueryResults &&
124 expressions.at(i)->isViewportDependent()) 125 expressions.at(i)->isViewportDependent())
125 viewportDependentMediaQueryResults->append( 126 viewportDependentMediaQueryResults->append(
126 new MediaQueryResult(*expressions.at(i), exprResult)); 127 new MediaQueryResult(*expressions.at(i), exprResult));
127 if (deviceDependentMediaQueryResults && 128 if (deviceDependentMediaQueryResults &&
128 expressions.at(i)->isDeviceDependent()) 129 expressions.at(i)->isDeviceDependent())
129 deviceDependentMediaQueryResults->append( 130 deviceDependentMediaQueryResults->append(
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 if (value.isValid()) 210 if (value.isValid())
210 return numberValue(value, number) && 211 return numberValue(value, number) &&
211 compareValue(bitsPerComponent, static_cast<int>(number), op); 212 compareValue(bitsPerComponent, static_cast<int>(number), op);
212 213
213 return bitsPerComponent != 0; 214 return bitsPerComponent != 0;
214 } 215 }
215 216
216 static bool colorIndexMediaFeatureEval(const MediaQueryExpValue& value, 217 static bool colorIndexMediaFeatureEval(const MediaQueryExpValue& value,
217 MediaFeaturePrefix op, 218 MediaFeaturePrefix op,
218 const MediaValues&) { 219 const MediaValues&) {
219 // FIXME: We currently assume that we do not support indexed displays, as it i s unknown 220 // FIXME: We currently assume that we do not support indexed displays, as it
220 // how to retrieve the information if the display mode is indexed. This matche s Firefox. 221 // is unknown how to retrieve the information if the display mode is indexed.
222 // This matches Firefox.
221 if (!value.isValid()) 223 if (!value.isValid())
222 return false; 224 return false;
223 225
224 // Acording to spec, if the device does not use a color lookup table, the valu e is zero. 226 // Acording to spec, if the device does not use a color lookup table, the
227 // value is zero.
225 float number; 228 float number;
226 return numberValue(value, number) && 229 return numberValue(value, number) &&
227 compareValue(0, static_cast<int>(number), op); 230 compareValue(0, static_cast<int>(number), op);
228 } 231 }
229 232
230 static bool monochromeMediaFeatureEval(const MediaQueryExpValue& value, 233 static bool monochromeMediaFeatureEval(const MediaQueryExpValue& value,
231 MediaFeaturePrefix op, 234 MediaFeaturePrefix op,
232 const MediaValues& mediaValues) { 235 const MediaValues& mediaValues) {
233 if (!mediaValues.monochromeBitsPerComponent()) { 236 if (!mediaValues.monochromeBitsPerComponent()) {
234 if (value.isValid()) { 237 if (value.isValid()) {
235 float number; 238 float number;
236 return numberValue(value, number) && 239 return numberValue(value, number) &&
237 compareValue(0, static_cast<int>(number), op); 240 compareValue(0, static_cast<int>(number), op);
238 } 241 }
239 return false; 242 return false;
240 } 243 }
241 244
242 return colorMediaFeatureEval(value, op, mediaValues); 245 return colorMediaFeatureEval(value, op, mediaValues);
243 } 246 }
244 247
245 static bool displayModeMediaFeatureEval(const MediaQueryExpValue& value, 248 static bool displayModeMediaFeatureEval(const MediaQueryExpValue& value,
246 MediaFeaturePrefix, 249 MediaFeaturePrefix,
247 const MediaValues& mediaValues) { 250 const MediaValues& mediaValues) {
248 // isValid() is false if there is no parameter. Without parameter we should re turn true to indicate that 251 // isValid() is false if there is no parameter. Without parameter we should
249 // displayModeMediaFeature is enabled in the browser. 252 // return true to indicate that displayModeMediaFeature is enabled in the
253 // browser.
250 if (!value.isValid()) 254 if (!value.isValid())
251 return true; 255 return true;
252 256
253 if (!value.isID) 257 if (!value.isID)
254 return false; 258 return false;
255 259
256 WebDisplayMode mode = mediaValues.displayMode(); 260 WebDisplayMode mode = mediaValues.displayMode();
257 switch (value.id) { 261 switch (value.id) {
258 case CSSValueFullscreen: 262 case CSSValueFullscreen:
259 return mode == WebDisplayModeFullscreen; 263 return mode == WebDisplayModeFullscreen;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 310
307 // ({,min-,max-}device-aspect-ratio) 311 // ({,min-,max-}device-aspect-ratio)
308 // assume if we have a device, its aspect ratio is non-zero. 312 // assume if we have a device, its aspect ratio is non-zero.
309 return true; 313 return true;
310 } 314 }
311 315
312 static bool evalResolution(const MediaQueryExpValue& value, 316 static bool evalResolution(const MediaQueryExpValue& value,
313 MediaFeaturePrefix op, 317 MediaFeaturePrefix op,
314 const MediaValues& mediaValues) { 318 const MediaValues& mediaValues) {
315 // According to MQ4, only 'screen', 'print' and 'speech' may match. 319 // According to MQ4, only 'screen', 'print' and 'speech' may match.
316 // FIXME: What should speech match? https://www.w3.org/Style/CSS/Tracker/issue s/348 320 // FIXME: What should speech match?
321 // https://www.w3.org/Style/CSS/Tracker/issues/348
317 float actualResolution = 0; 322 float actualResolution = 0;
318 323
319 // This checks the actual media type applied to the document, and we know 324 // This checks the actual media type applied to the document, and we know
320 // this method only got called if this media type matches the one defined 325 // this method only got called if this media type matches the one defined
321 // in the query. Thus, if if the document's media type is "print", the 326 // in the query. Thus, if if the document's media type is "print", the
322 // media type of the query will either be "print" or "all". 327 // media type of the query will either be "print" or "all".
323 if (equalIgnoringCase(mediaValues.mediaType(), MediaTypeNames::screen)) { 328 if (equalIgnoringCase(mediaValues.mediaType(), MediaTypeNames::screen)) {
324 actualResolution = clampTo<float>(mediaValues.devicePixelRatio()); 329 actualResolution = clampTo<float>(mediaValues.devicePixelRatio());
325 } else if (equalIgnoringCase(mediaValues.mediaType(), 330 } else if (equalIgnoringCase(mediaValues.mediaType(),
326 MediaTypeNames::print)) { 331 MediaTypeNames::print)) {
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 static bool widthMediaFeatureEval(const MediaQueryExpValue& value, 457 static bool widthMediaFeatureEval(const MediaQueryExpValue& value,
453 MediaFeaturePrefix op, 458 MediaFeaturePrefix op,
454 const MediaValues& mediaValues) { 459 const MediaValues& mediaValues) {
455 double width = mediaValues.viewportWidth(); 460 double width = mediaValues.viewportWidth();
456 if (value.isValid()) 461 if (value.isValid())
457 return computeLengthAndCompare(value, op, mediaValues, width); 462 return computeLengthAndCompare(value, op, mediaValues, width);
458 463
459 return width; 464 return width;
460 } 465 }
461 466
462 // Rest of the functions are trampolines which set the prefix according to the m edia feature expression used. 467 // Rest of the functions are trampolines which set the prefix according to the
468 // media feature expression used.
463 469
464 static bool minColorMediaFeatureEval(const MediaQueryExpValue& value, 470 static bool minColorMediaFeatureEval(const MediaQueryExpValue& value,
465 MediaFeaturePrefix, 471 MediaFeaturePrefix,
466 const MediaValues& mediaValues) { 472 const MediaValues& mediaValues) {
467 return colorMediaFeatureEval(value, MinPrefix, mediaValues); 473 return colorMediaFeatureEval(value, MinPrefix, mediaValues);
468 } 474 }
469 475
470 static bool maxColorMediaFeatureEval(const MediaQueryExpValue& value, 476 static bool maxColorMediaFeatureEval(const MediaQueryExpValue& value,
471 MediaFeaturePrefix, 477 MediaFeaturePrefix,
472 const MediaValues& mediaValues) { 478 const MediaValues& mediaValues) {
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
742 // Call the media feature evaluation function. Assume no prefix and let 748 // Call the media feature evaluation function. Assume no prefix and let
743 // trampoline functions override the prefix if prefix is used. 749 // trampoline functions override the prefix if prefix is used.
744 EvalFunc func = gFunctionMap->get(expr->mediaFeature().impl()); 750 EvalFunc func = gFunctionMap->get(expr->mediaFeature().impl());
745 if (func) 751 if (func)
746 return func(expr->expValue(), NoPrefix, *m_mediaValues); 752 return func(expr->expValue(), NoPrefix, *m_mediaValues);
747 753
748 return false; 754 return false;
749 } 755 }
750 756
751 } // namespace blink 757 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/MediaQueryEvaluator.h ('k') | third_party/WebKit/Source/core/css/MediaQueryExp.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698