| OLD | NEW |
| 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 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 310 return compareValue( | 310 return compareValue( |
| 311 floorf(0.5 + 100 * actualResolution) / 100, | 311 floorf(0.5 + 100 * actualResolution) / 100, |
| 312 floorf(0.5 + 100 * resolution->getFloatValue(CSSPrimitiveValue::CSS_
DPPX)) / 100, op); | 312 floorf(0.5 + 100 * resolution->getFloatValue(CSSPrimitiveValue::CSS_
DPPX)) / 100, op); |
| 313 } | 313 } |
| 314 | 314 |
| 315 return compareValue(actualResolution, resolution->getFloatValue(CSSPrimitive
Value::CSS_DPPX), op); | 315 return compareValue(actualResolution, resolution->getFloatValue(CSSPrimitive
Value::CSS_DPPX), op); |
| 316 } | 316 } |
| 317 | 317 |
| 318 static bool devicePixelRatioMediaFeatureEval(CSSValue *value, RenderStyle*, Fram
e* frame, MediaFeaturePrefix op) | 318 static bool devicePixelRatioMediaFeatureEval(CSSValue *value, RenderStyle*, Fram
e* frame, MediaFeaturePrefix op) |
| 319 { | 319 { |
| 320 UseCounter::count(frame->document(), UseCounter::PrefixedDevicePixelRatioMed
iaFeature); |
| 321 |
| 320 return (!value || toCSSPrimitiveValue(value)->isNumber()) && evalResolution(
value, frame, op); | 322 return (!value || toCSSPrimitiveValue(value)->isNumber()) && evalResolution(
value, frame, op); |
| 321 } | 323 } |
| 322 | 324 |
| 323 static bool resolutionMediaFeatureEval(CSSValue* value, RenderStyle*, Frame* fra
me, MediaFeaturePrefix op) | 325 static bool resolutionMediaFeatureEval(CSSValue* value, RenderStyle*, Frame* fra
me, MediaFeaturePrefix op) |
| 324 { | 326 { |
| 325 return (!value || toCSSPrimitiveValue(value)->isResolution()) && evalResolut
ion(value, frame, op); | 327 return (!value || toCSSPrimitiveValue(value)->isResolution()) && evalResolut
ion(value, frame, op); |
| 326 } | 328 } |
| 327 | 329 |
| 328 static bool gridMediaFeatureEval(CSSValue* value, RenderStyle*, Frame*, MediaFea
turePrefix op) | 330 static bool gridMediaFeatureEval(CSSValue* value, RenderStyle*, Frame*, MediaFea
turePrefix op) |
| 329 { | 331 { |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 467 return deviceAspectRatioMediaFeatureEval(value, style, frame, MinPrefix); | 469 return deviceAspectRatioMediaFeatureEval(value, style, frame, MinPrefix); |
| 468 } | 470 } |
| 469 | 471 |
| 470 static bool maxDeviceAspectRatioMediaFeatureEval(CSSValue* value, RenderStyle* s
tyle, Frame* frame, MediaFeaturePrefix) | 472 static bool maxDeviceAspectRatioMediaFeatureEval(CSSValue* value, RenderStyle* s
tyle, Frame* frame, MediaFeaturePrefix) |
| 471 { | 473 { |
| 472 return deviceAspectRatioMediaFeatureEval(value, style, frame, MaxPrefix); | 474 return deviceAspectRatioMediaFeatureEval(value, style, frame, MaxPrefix); |
| 473 } | 475 } |
| 474 | 476 |
| 475 static bool minDevicePixelRatioMediaFeatureEval(CSSValue* value, RenderStyle* st
yle, Frame* frame, MediaFeaturePrefix) | 477 static bool minDevicePixelRatioMediaFeatureEval(CSSValue* value, RenderStyle* st
yle, Frame* frame, MediaFeaturePrefix) |
| 476 { | 478 { |
| 479 UseCounter::count(frame->document(), UseCounter::PrefixedMinDevicePixelRatio
MediaFeature); |
| 480 |
| 477 return devicePixelRatioMediaFeatureEval(value, style, frame, MinPrefix); | 481 return devicePixelRatioMediaFeatureEval(value, style, frame, MinPrefix); |
| 478 } | 482 } |
| 479 | 483 |
| 480 static bool maxDevicePixelRatioMediaFeatureEval(CSSValue* value, RenderStyle* st
yle, Frame* frame, MediaFeaturePrefix) | 484 static bool maxDevicePixelRatioMediaFeatureEval(CSSValue* value, RenderStyle* st
yle, Frame* frame, MediaFeaturePrefix) |
| 481 { | 485 { |
| 486 UseCounter::count(frame->document(), UseCounter::PrefixedMaxDevicePixelRatio
MediaFeature); |
| 487 |
| 482 return devicePixelRatioMediaFeatureEval(value, style, frame, MaxPrefix); | 488 return devicePixelRatioMediaFeatureEval(value, style, frame, MaxPrefix); |
| 483 } | 489 } |
| 484 | 490 |
| 485 static bool minHeightMediaFeatureEval(CSSValue* value, RenderStyle* style, Frame
* frame, MediaFeaturePrefix) | 491 static bool minHeightMediaFeatureEval(CSSValue* value, RenderStyle* style, Frame
* frame, MediaFeaturePrefix) |
| 486 { | 492 { |
| 487 return heightMediaFeatureEval(value, style, frame, MinPrefix); | 493 return heightMediaFeatureEval(value, style, frame, MinPrefix); |
| 488 } | 494 } |
| 489 | 495 |
| 490 static bool maxHeightMediaFeatureEval(CSSValue* value, RenderStyle* style, Frame
* frame, MediaFeaturePrefix) | 496 static bool maxHeightMediaFeatureEval(CSSValue* value, RenderStyle* style, Frame
* frame, MediaFeaturePrefix) |
| 491 { | 497 { |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 525 static bool minResolutionMediaFeatureEval(CSSValue* value, RenderStyle* style, F
rame* frame, MediaFeaturePrefix) | 531 static bool minResolutionMediaFeatureEval(CSSValue* value, RenderStyle* style, F
rame* frame, MediaFeaturePrefix) |
| 526 { | 532 { |
| 527 return resolutionMediaFeatureEval(value, style, frame, MinPrefix); | 533 return resolutionMediaFeatureEval(value, style, frame, MinPrefix); |
| 528 } | 534 } |
| 529 | 535 |
| 530 static bool maxResolutionMediaFeatureEval(CSSValue* value, RenderStyle* style, F
rame* frame, MediaFeaturePrefix) | 536 static bool maxResolutionMediaFeatureEval(CSSValue* value, RenderStyle* style, F
rame* frame, MediaFeaturePrefix) |
| 531 { | 537 { |
| 532 return resolutionMediaFeatureEval(value, style, frame, MaxPrefix); | 538 return resolutionMediaFeatureEval(value, style, frame, MaxPrefix); |
| 533 } | 539 } |
| 534 | 540 |
| 535 static bool animationMediaFeatureEval(CSSValue* value, RenderStyle*, Frame*, Med
iaFeaturePrefix op) | 541 static bool animationMediaFeatureEval(CSSValue* value, RenderStyle*, Frame* fram
e, MediaFeaturePrefix op) |
| 536 { | 542 { |
| 543 UseCounter::count(frame->document(), UseCounter::PrefixedAnimationMediaFeatu
re); |
| 544 |
| 537 if (value) { | 545 if (value) { |
| 538 float number; | 546 float number; |
| 539 return numberValue(value, number) && compareValue(1, static_cast<int>(nu
mber), op); | 547 return numberValue(value, number) && compareValue(1, static_cast<int>(nu
mber), op); |
| 540 } | 548 } |
| 541 return true; | 549 return true; |
| 542 } | 550 } |
| 543 | 551 |
| 544 static bool transform2dMediaFeatureEval(CSSValue* value, RenderStyle*, Frame*, M
ediaFeaturePrefix op) | 552 static bool transform2dMediaFeatureEval(CSSValue* value, RenderStyle*, Frame* fr
ame, MediaFeaturePrefix op) |
| 545 { | 553 { |
| 554 UseCounter::count(frame->document(), UseCounter::PrefixedTransform2dMediaFea
ture); |
| 555 |
| 546 if (value) { | 556 if (value) { |
| 547 float number; | 557 float number; |
| 548 return numberValue(value, number) && compareValue(1, static_cast<int>(nu
mber), op); | 558 return numberValue(value, number) && compareValue(1, static_cast<int>(nu
mber), op); |
| 549 } | 559 } |
| 550 return true; | 560 return true; |
| 551 } | 561 } |
| 552 | 562 |
| 553 static bool transform3dMediaFeatureEval(CSSValue* value, RenderStyle*, Frame* fr
ame, MediaFeaturePrefix op) | 563 static bool transform3dMediaFeatureEval(CSSValue* value, RenderStyle*, Frame* fr
ame, MediaFeaturePrefix op) |
| 554 { | 564 { |
| 565 UseCounter::count(frame->document(), UseCounter::PrefixedTransform3dMediaFea
ture); |
| 566 |
| 555 bool returnValueIfNoParameter; | 567 bool returnValueIfNoParameter; |
| 556 int have3dRendering; | 568 int have3dRendering; |
| 557 | 569 |
| 558 bool threeDEnabled = false; | 570 bool threeDEnabled = false; |
| 559 if (RenderView* view = frame->contentRenderer()) | 571 if (RenderView* view = frame->contentRenderer()) |
| 560 threeDEnabled = view->compositor()->canRender3DTransforms(); | 572 threeDEnabled = view->compositor()->canRender3DTransforms(); |
| 561 | 573 |
| 562 returnValueIfNoParameter = threeDEnabled; | 574 returnValueIfNoParameter = threeDEnabled; |
| 563 have3dRendering = threeDEnabled ? 1 : 0; | 575 have3dRendering = threeDEnabled ? 1 : 0; |
| 564 | 576 |
| 565 if (value) { | 577 if (value) { |
| 566 float number; | 578 float number; |
| 567 return numberValue(value, number) && compareValue(have3dRendering, stati
c_cast<int>(number), op); | 579 return numberValue(value, number) && compareValue(have3dRendering, stati
c_cast<int>(number), op); |
| 568 } | 580 } |
| 569 return returnValueIfNoParameter; | 581 return returnValueIfNoParameter; |
| 570 } | 582 } |
| 571 | 583 |
| 572 static bool viewModeMediaFeatureEval(CSSValue* value, RenderStyle*, Frame* frame
, MediaFeaturePrefix) | 584 static bool viewModeMediaFeatureEval(CSSValue* value, RenderStyle*, Frame* frame
, MediaFeaturePrefix) |
| 573 { | 585 { |
| 586 UseCounter::count(frame->document(), UseCounter::PrefixedViewModeMediaFeatur
e); |
| 587 |
| 574 if (!value) | 588 if (!value) |
| 575 return true; | 589 return true; |
| 576 | 590 |
| 577 return toCSSPrimitiveValue(value)->getValueID() == CSSValueWindowed; | 591 return toCSSPrimitiveValue(value)->getValueID() == CSSValueWindowed; |
| 578 } | 592 } |
| 579 | 593 |
| 580 enum PointerDeviceType { TouchPointer, MousePointer, NoPointer, UnknownPointer }
; | 594 enum PointerDeviceType { TouchPointer, MousePointer, NoPointer, UnknownPointer }
; |
| 581 | 595 |
| 582 static PointerDeviceType leastCapablePrimaryPointerDeviceType(Frame* frame) | 596 static PointerDeviceType leastCapablePrimaryPointerDeviceType(Frame* frame) |
| 583 { | 597 { |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 676 // Call the media feature evaluation function. Assume no prefix and let | 690 // Call the media feature evaluation function. Assume no prefix and let |
| 677 // trampoline functions override the prefix if prefix is used. | 691 // trampoline functions override the prefix if prefix is used. |
| 678 EvalFunc func = gFunctionMap->get(expr->mediaFeature().impl()); | 692 EvalFunc func = gFunctionMap->get(expr->mediaFeature().impl()); |
| 679 if (func) | 693 if (func) |
| 680 return func(expr->value(), m_style.get(), m_frame, NoPrefix); | 694 return func(expr->value(), m_style.get(), m_frame, NoPrefix); |
| 681 | 695 |
| 682 return false; | 696 return false; |
| 683 } | 697 } |
| 684 | 698 |
| 685 } // namespace | 699 } // namespace |
| OLD | NEW |