Changeset 121127 in webkit
- Timestamp:
- Jun 24, 2012, 6:46:14 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 13 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/fast/css/image-resolution/image-resolution-expected.txt (modified) (1 diff)
-
LayoutTests/fast/css/image-resolution/image-resolution.html (modified) (4 diffs)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/css/CSSParser.cpp (modified) (3 diffs)
-
Source/WebCore/css/CSSValueKeywords.in (modified) (1 diff)
-
Source/WebCore/css/StyleBuilder.cpp (modified) (4 diffs)
-
Source/WebCore/rendering/RenderImage.cpp (modified) (2 diffs)
-
Source/WebCore/rendering/style/RenderStyle.cpp (modified) (1 diff)
-
Source/WebCore/rendering/style/RenderStyle.h (modified) (3 diffs)
-
Source/WebCore/rendering/style/RenderStyleConstants.h (modified) (1 diff)
-
Source/WebCore/rendering/style/StyleRareInheritedData.cpp (modified) (3 diffs)
-
Source/WebCore/rendering/style/StyleRareInheritedData.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r121121 r121127 1 2012-06-24 David Barr <davidbarr@chromium.org> 2 3 Add snap to css3-images image-resolution 4 https://bugs.webkit.org/show_bug.cgi?id=89745 5 6 Reviewed by Tony Chang. 7 8 * fast/css/image-resolution/image-resolution-expected.txt: 9 * fast/css/image-resolution/image-resolution.html: 10 1 11 2012-06-24 Oli Lan <olilan@chromium.org> 2 12 -
trunk/LayoutTests/fast/css/image-resolution/image-resolution-expected.txt
r120641 r121127 220 220 PASS img.offsetWidth is 16 221 221 PASS img.offsetHeight is 16 222 TEST "0dppx snap" 223 PASS img.style.cssText is "" 224 TEST "snap 0dppx" 225 PASS img.style.cssText is "" 226 TEST "1dppx snap" 227 PASS img.style.cssText is "image-resolution: 1dppx snap; " 228 PASS img.offsetWidth is 16 229 PASS img.offsetHeight is 16 230 TEST "snap 1dppx" 231 PASS img.style.cssText is "image-resolution: snap 1dppx; " 232 PASS img.offsetWidth is 16 233 PASS img.offsetHeight is 16 234 TEST "2dppx snap" 235 PASS img.style.cssText is "image-resolution: 2dppx snap; " 236 PASS img.offsetWidth is 8 237 PASS img.offsetHeight is 8 238 TEST "snap 2dppx" 239 PASS img.style.cssText is "image-resolution: snap 2dppx; " 240 PASS img.offsetWidth is 8 241 PASS img.offsetHeight is 8 242 TEST "3dppx snap" 243 PASS img.style.cssText is "image-resolution: 3dppx snap; " 244 PASS img.offsetWidth is 5 245 PASS img.offsetHeight is 5 246 TEST "snap 3dppx" 247 PASS img.style.cssText is "image-resolution: snap 3dppx; " 248 PASS img.offsetWidth is 5 249 PASS img.offsetHeight is 5 250 TEST "4dppx snap" 251 PASS img.style.cssText is "image-resolution: 4dppx snap; " 252 PASS img.offsetWidth is 4 253 PASS img.offsetHeight is 4 254 TEST "snap 4dppx" 255 PASS img.style.cssText is "image-resolution: snap 4dppx; " 256 PASS img.offsetWidth is 4 257 PASS img.offsetHeight is 4 258 TEST "0dpi snap" 259 PASS img.style.cssText is "" 260 TEST "snap 0dpi" 261 PASS img.style.cssText is "" 262 TEST "96dpi snap" 263 PASS img.style.cssText is "image-resolution: 96dpi snap; " 264 PASS img.offsetWidth is 16 265 PASS img.offsetHeight is 16 266 TEST "snap 96dpi" 267 PASS img.style.cssText is "image-resolution: snap 96dpi; " 268 PASS img.offsetWidth is 16 269 PASS img.offsetHeight is 16 270 TEST "192dpi snap" 271 PASS img.style.cssText is "image-resolution: 192dpi snap; " 272 PASS img.offsetWidth is 8 273 PASS img.offsetHeight is 8 274 TEST "snap 192dpi" 275 PASS img.style.cssText is "image-resolution: snap 192dpi; " 276 PASS img.offsetWidth is 8 277 PASS img.offsetHeight is 8 278 TEST "288dpi snap" 279 PASS img.style.cssText is "image-resolution: 288dpi snap; " 280 PASS img.offsetWidth is 5 281 PASS img.offsetHeight is 5 282 TEST "snap 288dpi" 283 PASS img.style.cssText is "image-resolution: snap 288dpi; " 284 PASS img.offsetWidth is 5 285 PASS img.offsetHeight is 5 286 TEST "384dpi snap" 287 PASS img.style.cssText is "image-resolution: 384dpi snap; " 288 PASS img.offsetWidth is 4 289 PASS img.offsetHeight is 4 290 TEST "snap 384dpi" 291 PASS img.style.cssText is "image-resolution: snap 384dpi; " 292 PASS img.offsetWidth is 4 293 PASS img.offsetHeight is 4 294 TEST "150dpi snap" 295 PASS img.style.cssText is "image-resolution: 150dpi snap; " 296 PASS img.offsetWidth is 16 297 PASS img.offsetHeight is 16 298 TEST "snap 150dpi" 299 PASS img.style.cssText is "image-resolution: snap 150dpi; " 300 PASS img.offsetWidth is 16 301 PASS img.offsetHeight is 16 302 TEST "300dpi snap" 303 PASS img.style.cssText is "image-resolution: 300dpi snap; " 304 PASS img.offsetWidth is 5 305 PASS img.offsetHeight is 5 306 TEST "snap 300dpi" 307 PASS img.style.cssText is "image-resolution: snap 300dpi; " 308 PASS img.offsetWidth is 5 309 PASS img.offsetHeight is 5 310 TEST "450dpi snap" 311 PASS img.style.cssText is "image-resolution: 450dpi snap; " 312 PASS img.offsetWidth is 4 313 PASS img.offsetHeight is 4 314 TEST "snap 450dpi" 315 PASS img.style.cssText is "image-resolution: snap 450dpi; " 316 PASS img.offsetWidth is 4 317 PASS img.offsetHeight is 4 318 TEST "600dpi snap" 319 PASS img.style.cssText is "image-resolution: 600dpi snap; " 320 PASS img.offsetWidth is 2 321 PASS img.offsetHeight is 2 322 TEST "snap 600dpi" 323 PASS img.style.cssText is "image-resolution: snap 600dpi; " 324 PASS img.offsetWidth is 2 325 PASS img.offsetHeight is 2 326 TEST "0dpcm snap" 327 PASS img.style.cssText is "" 328 TEST "snap 0dpcm" 329 PASS img.style.cssText is "" 330 TEST "37.7dpcm snap" 331 PASS img.style.cssText is "image-resolution: 37.7dpcm snap; " 332 PASS img.offsetWidth is 16 333 PASS img.offsetHeight is 16 334 TEST "snap 37.7dpcm" 335 PASS img.style.cssText is "image-resolution: snap 37.7dpcm; " 336 PASS img.offsetWidth is 16 337 PASS img.offsetHeight is 16 338 TEST "75.5dpcm snap" 339 PASS img.style.cssText is "image-resolution: 75.5dpcm snap; " 340 PASS img.offsetWidth is 8 341 PASS img.offsetHeight is 8 342 TEST "snap 75.5dpcm" 343 PASS img.style.cssText is "image-resolution: snap 75.5dpcm; " 344 PASS img.offsetWidth is 8 345 PASS img.offsetHeight is 8 346 TEST "113.3dpcm snap" 347 PASS img.style.cssText is "image-resolution: 113.3dpcm snap; " 348 PASS img.offsetWidth is 5 349 PASS img.offsetHeight is 5 350 TEST "snap 113.3dpcm" 351 PASS img.style.cssText is "image-resolution: snap 113.3dpcm; " 352 PASS img.offsetWidth is 5 353 PASS img.offsetHeight is 5 354 TEST "151.1dpcm snap" 355 PASS img.style.cssText is "image-resolution: 151.1dpcm snap; " 356 PASS img.offsetWidth is 4 357 PASS img.offsetHeight is 4 358 TEST "snap 151.1dpcm" 359 PASS img.style.cssText is "image-resolution: snap 151.1dpcm; " 360 PASS img.offsetWidth is 4 361 PASS img.offsetHeight is 4 362 TEST "snap" 363 PASS img.style.cssText is "" 364 TEST "0dppx from-image snap" 365 PASS img.style.cssText is "" 366 TEST "0dppx snap from-image" 367 PASS img.style.cssText is "" 368 TEST "from-image 0dppx snap" 369 PASS img.style.cssText is "" 370 TEST "from-image snap 0dppx" 371 PASS img.style.cssText is "" 372 TEST "snap 0dppx from-image" 373 PASS img.style.cssText is "" 374 TEST "snap from-image 0dppx" 375 PASS img.style.cssText is "" 376 TEST "1dppx from-image snap" 377 PASS img.style.cssText is "image-resolution: 1dppx from-image snap; " 378 PASS img.offsetWidth is 16 379 PASS img.offsetHeight is 16 380 TEST "1dppx snap from-image" 381 PASS img.style.cssText is "image-resolution: 1dppx snap from-image; " 382 PASS img.offsetWidth is 16 383 PASS img.offsetHeight is 16 384 TEST "from-image 1dppx snap" 385 PASS img.style.cssText is "image-resolution: from-image 1dppx snap; " 386 PASS img.offsetWidth is 16 387 PASS img.offsetHeight is 16 388 TEST "from-image snap 1dppx" 389 PASS img.style.cssText is "image-resolution: from-image snap 1dppx; " 390 PASS img.offsetWidth is 16 391 PASS img.offsetHeight is 16 392 TEST "snap 1dppx from-image" 393 PASS img.style.cssText is "image-resolution: snap 1dppx from-image; " 394 PASS img.offsetWidth is 16 395 PASS img.offsetHeight is 16 396 TEST "snap from-image 1dppx" 397 PASS img.style.cssText is "image-resolution: snap from-image 1dppx; " 398 PASS img.offsetWidth is 16 399 PASS img.offsetHeight is 16 400 TEST "2dppx from-image snap" 401 PASS img.style.cssText is "image-resolution: 2dppx from-image snap; " 402 PASS img.offsetWidth is 8 403 PASS img.offsetHeight is 8 404 TEST "2dppx snap from-image" 405 PASS img.style.cssText is "image-resolution: 2dppx snap from-image; " 406 PASS img.offsetWidth is 8 407 PASS img.offsetHeight is 8 408 TEST "from-image 2dppx snap" 409 PASS img.style.cssText is "image-resolution: from-image 2dppx snap; " 410 PASS img.offsetWidth is 8 411 PASS img.offsetHeight is 8 412 TEST "from-image snap 2dppx" 413 PASS img.style.cssText is "image-resolution: from-image snap 2dppx; " 414 PASS img.offsetWidth is 8 415 PASS img.offsetHeight is 8 416 TEST "snap 2dppx from-image" 417 PASS img.style.cssText is "image-resolution: snap 2dppx from-image; " 418 PASS img.offsetWidth is 8 419 PASS img.offsetHeight is 8 420 TEST "snap from-image 2dppx" 421 PASS img.style.cssText is "image-resolution: snap from-image 2dppx; " 422 PASS img.offsetWidth is 8 423 PASS img.offsetHeight is 8 424 TEST "3dppx from-image snap" 425 PASS img.style.cssText is "image-resolution: 3dppx from-image snap; " 426 PASS img.offsetWidth is 5 427 PASS img.offsetHeight is 5 428 TEST "3dppx snap from-image" 429 PASS img.style.cssText is "image-resolution: 3dppx snap from-image; " 430 PASS img.offsetWidth is 5 431 PASS img.offsetHeight is 5 432 TEST "from-image 3dppx snap" 433 PASS img.style.cssText is "image-resolution: from-image 3dppx snap; " 434 PASS img.offsetWidth is 5 435 PASS img.offsetHeight is 5 436 TEST "from-image snap 3dppx" 437 PASS img.style.cssText is "image-resolution: from-image snap 3dppx; " 438 PASS img.offsetWidth is 5 439 PASS img.offsetHeight is 5 440 TEST "snap 3dppx from-image" 441 PASS img.style.cssText is "image-resolution: snap 3dppx from-image; " 442 PASS img.offsetWidth is 5 443 PASS img.offsetHeight is 5 444 TEST "snap from-image 3dppx" 445 PASS img.style.cssText is "image-resolution: snap from-image 3dppx; " 446 PASS img.offsetWidth is 5 447 PASS img.offsetHeight is 5 448 TEST "4dppx from-image snap" 449 PASS img.style.cssText is "image-resolution: 4dppx from-image snap; " 450 PASS img.offsetWidth is 4 451 PASS img.offsetHeight is 4 452 TEST "4dppx snap from-image" 453 PASS img.style.cssText is "image-resolution: 4dppx snap from-image; " 454 PASS img.offsetWidth is 4 455 PASS img.offsetHeight is 4 456 TEST "from-image 4dppx snap" 457 PASS img.style.cssText is "image-resolution: from-image 4dppx snap; " 458 PASS img.offsetWidth is 4 459 PASS img.offsetHeight is 4 460 TEST "from-image snap 4dppx" 461 PASS img.style.cssText is "image-resolution: from-image snap 4dppx; " 462 PASS img.offsetWidth is 4 463 PASS img.offsetHeight is 4 464 TEST "snap 4dppx from-image" 465 PASS img.style.cssText is "image-resolution: snap 4dppx from-image; " 466 PASS img.offsetWidth is 4 467 PASS img.offsetHeight is 4 468 TEST "snap from-image 4dppx" 469 PASS img.style.cssText is "image-resolution: snap from-image 4dppx; " 470 PASS img.offsetWidth is 4 471 PASS img.offsetHeight is 4 472 TEST "0dpi from-image snap" 473 PASS img.style.cssText is "" 474 TEST "0dpi snap from-image" 475 PASS img.style.cssText is "" 476 TEST "from-image 0dpi snap" 477 PASS img.style.cssText is "" 478 TEST "from-image snap 0dpi" 479 PASS img.style.cssText is "" 480 TEST "snap 0dpi from-image" 481 PASS img.style.cssText is "" 482 TEST "snap from-image 0dpi" 483 PASS img.style.cssText is "" 484 TEST "96dpi from-image snap" 485 PASS img.style.cssText is "image-resolution: 96dpi from-image snap; " 486 PASS img.offsetWidth is 16 487 PASS img.offsetHeight is 16 488 TEST "96dpi snap from-image" 489 PASS img.style.cssText is "image-resolution: 96dpi snap from-image; " 490 PASS img.offsetWidth is 16 491 PASS img.offsetHeight is 16 492 TEST "from-image 96dpi snap" 493 PASS img.style.cssText is "image-resolution: from-image 96dpi snap; " 494 PASS img.offsetWidth is 16 495 PASS img.offsetHeight is 16 496 TEST "from-image snap 96dpi" 497 PASS img.style.cssText is "image-resolution: from-image snap 96dpi; " 498 PASS img.offsetWidth is 16 499 PASS img.offsetHeight is 16 500 TEST "snap 96dpi from-image" 501 PASS img.style.cssText is "image-resolution: snap 96dpi from-image; " 502 PASS img.offsetWidth is 16 503 PASS img.offsetHeight is 16 504 TEST "snap from-image 96dpi" 505 PASS img.style.cssText is "image-resolution: snap from-image 96dpi; " 506 PASS img.offsetWidth is 16 507 PASS img.offsetHeight is 16 508 TEST "192dpi from-image snap" 509 PASS img.style.cssText is "image-resolution: 192dpi from-image snap; " 510 PASS img.offsetWidth is 8 511 PASS img.offsetHeight is 8 512 TEST "192dpi snap from-image" 513 PASS img.style.cssText is "image-resolution: 192dpi snap from-image; " 514 PASS img.offsetWidth is 8 515 PASS img.offsetHeight is 8 516 TEST "from-image 192dpi snap" 517 PASS img.style.cssText is "image-resolution: from-image 192dpi snap; " 518 PASS img.offsetWidth is 8 519 PASS img.offsetHeight is 8 520 TEST "from-image snap 192dpi" 521 PASS img.style.cssText is "image-resolution: from-image snap 192dpi; " 522 PASS img.offsetWidth is 8 523 PASS img.offsetHeight is 8 524 TEST "snap 192dpi from-image" 525 PASS img.style.cssText is "image-resolution: snap 192dpi from-image; " 526 PASS img.offsetWidth is 8 527 PASS img.offsetHeight is 8 528 TEST "snap from-image 192dpi" 529 PASS img.style.cssText is "image-resolution: snap from-image 192dpi; " 530 PASS img.offsetWidth is 8 531 PASS img.offsetHeight is 8 532 TEST "288dpi from-image snap" 533 PASS img.style.cssText is "image-resolution: 288dpi from-image snap; " 534 PASS img.offsetWidth is 5 535 PASS img.offsetHeight is 5 536 TEST "288dpi snap from-image" 537 PASS img.style.cssText is "image-resolution: 288dpi snap from-image; " 538 PASS img.offsetWidth is 5 539 PASS img.offsetHeight is 5 540 TEST "from-image 288dpi snap" 541 PASS img.style.cssText is "image-resolution: from-image 288dpi snap; " 542 PASS img.offsetWidth is 5 543 PASS img.offsetHeight is 5 544 TEST "from-image snap 288dpi" 545 PASS img.style.cssText is "image-resolution: from-image snap 288dpi; " 546 PASS img.offsetWidth is 5 547 PASS img.offsetHeight is 5 548 TEST "snap 288dpi from-image" 549 PASS img.style.cssText is "image-resolution: snap 288dpi from-image; " 550 PASS img.offsetWidth is 5 551 PASS img.offsetHeight is 5 552 TEST "snap from-image 288dpi" 553 PASS img.style.cssText is "image-resolution: snap from-image 288dpi; " 554 PASS img.offsetWidth is 5 555 PASS img.offsetHeight is 5 556 TEST "384dpi from-image snap" 557 PASS img.style.cssText is "image-resolution: 384dpi from-image snap; " 558 PASS img.offsetWidth is 4 559 PASS img.offsetHeight is 4 560 TEST "384dpi snap from-image" 561 PASS img.style.cssText is "image-resolution: 384dpi snap from-image; " 562 PASS img.offsetWidth is 4 563 PASS img.offsetHeight is 4 564 TEST "from-image 384dpi snap" 565 PASS img.style.cssText is "image-resolution: from-image 384dpi snap; " 566 PASS img.offsetWidth is 4 567 PASS img.offsetHeight is 4 568 TEST "from-image snap 384dpi" 569 PASS img.style.cssText is "image-resolution: from-image snap 384dpi; " 570 PASS img.offsetWidth is 4 571 PASS img.offsetHeight is 4 572 TEST "snap 384dpi from-image" 573 PASS img.style.cssText is "image-resolution: snap 384dpi from-image; " 574 PASS img.offsetWidth is 4 575 PASS img.offsetHeight is 4 576 TEST "snap from-image 384dpi" 577 PASS img.style.cssText is "image-resolution: snap from-image 384dpi; " 578 PASS img.offsetWidth is 4 579 PASS img.offsetHeight is 4 580 TEST "150dpi from-image snap" 581 PASS img.style.cssText is "image-resolution: 150dpi from-image snap; " 582 PASS img.offsetWidth is 16 583 PASS img.offsetHeight is 16 584 TEST "150dpi snap from-image" 585 PASS img.style.cssText is "image-resolution: 150dpi snap from-image; " 586 PASS img.offsetWidth is 16 587 PASS img.offsetHeight is 16 588 TEST "from-image 150dpi snap" 589 PASS img.style.cssText is "image-resolution: from-image 150dpi snap; " 590 PASS img.offsetWidth is 16 591 PASS img.offsetHeight is 16 592 TEST "from-image snap 150dpi" 593 PASS img.style.cssText is "image-resolution: from-image snap 150dpi; " 594 PASS img.offsetWidth is 16 595 PASS img.offsetHeight is 16 596 TEST "snap 150dpi from-image" 597 PASS img.style.cssText is "image-resolution: snap 150dpi from-image; " 598 PASS img.offsetWidth is 16 599 PASS img.offsetHeight is 16 600 TEST "snap from-image 150dpi" 601 PASS img.style.cssText is "image-resolution: snap from-image 150dpi; " 602 PASS img.offsetWidth is 16 603 PASS img.offsetHeight is 16 604 TEST "300dpi from-image snap" 605 PASS img.style.cssText is "image-resolution: 300dpi from-image snap; " 606 PASS img.offsetWidth is 5 607 PASS img.offsetHeight is 5 608 TEST "300dpi snap from-image" 609 PASS img.style.cssText is "image-resolution: 300dpi snap from-image; " 610 PASS img.offsetWidth is 5 611 PASS img.offsetHeight is 5 612 TEST "from-image 300dpi snap" 613 PASS img.style.cssText is "image-resolution: from-image 300dpi snap; " 614 PASS img.offsetWidth is 5 615 PASS img.offsetHeight is 5 616 TEST "from-image snap 300dpi" 617 PASS img.style.cssText is "image-resolution: from-image snap 300dpi; " 618 PASS img.offsetWidth is 5 619 PASS img.offsetHeight is 5 620 TEST "snap 300dpi from-image" 621 PASS img.style.cssText is "image-resolution: snap 300dpi from-image; " 622 PASS img.offsetWidth is 5 623 PASS img.offsetHeight is 5 624 TEST "snap from-image 300dpi" 625 PASS img.style.cssText is "image-resolution: snap from-image 300dpi; " 626 PASS img.offsetWidth is 5 627 PASS img.offsetHeight is 5 628 TEST "450dpi from-image snap" 629 PASS img.style.cssText is "image-resolution: 450dpi from-image snap; " 630 PASS img.offsetWidth is 4 631 PASS img.offsetHeight is 4 632 TEST "450dpi snap from-image" 633 PASS img.style.cssText is "image-resolution: 450dpi snap from-image; " 634 PASS img.offsetWidth is 4 635 PASS img.offsetHeight is 4 636 TEST "from-image 450dpi snap" 637 PASS img.style.cssText is "image-resolution: from-image 450dpi snap; " 638 PASS img.offsetWidth is 4 639 PASS img.offsetHeight is 4 640 TEST "from-image snap 450dpi" 641 PASS img.style.cssText is "image-resolution: from-image snap 450dpi; " 642 PASS img.offsetWidth is 4 643 PASS img.offsetHeight is 4 644 TEST "snap 450dpi from-image" 645 PASS img.style.cssText is "image-resolution: snap 450dpi from-image; " 646 PASS img.offsetWidth is 4 647 PASS img.offsetHeight is 4 648 TEST "snap from-image 450dpi" 649 PASS img.style.cssText is "image-resolution: snap from-image 450dpi; " 650 PASS img.offsetWidth is 4 651 PASS img.offsetHeight is 4 652 TEST "600dpi from-image snap" 653 PASS img.style.cssText is "image-resolution: 600dpi from-image snap; " 654 PASS img.offsetWidth is 2 655 PASS img.offsetHeight is 2 656 TEST "600dpi snap from-image" 657 PASS img.style.cssText is "image-resolution: 600dpi snap from-image; " 658 PASS img.offsetWidth is 2 659 PASS img.offsetHeight is 2 660 TEST "from-image 600dpi snap" 661 PASS img.style.cssText is "image-resolution: from-image 600dpi snap; " 662 PASS img.offsetWidth is 2 663 PASS img.offsetHeight is 2 664 TEST "from-image snap 600dpi" 665 PASS img.style.cssText is "image-resolution: from-image snap 600dpi; " 666 PASS img.offsetWidth is 2 667 PASS img.offsetHeight is 2 668 TEST "snap 600dpi from-image" 669 PASS img.style.cssText is "image-resolution: snap 600dpi from-image; " 670 PASS img.offsetWidth is 2 671 PASS img.offsetHeight is 2 672 TEST "snap from-image 600dpi" 673 PASS img.style.cssText is "image-resolution: snap from-image 600dpi; " 674 PASS img.offsetWidth is 2 675 PASS img.offsetHeight is 2 676 TEST "0dpcm from-image snap" 677 PASS img.style.cssText is "" 678 TEST "0dpcm snap from-image" 679 PASS img.style.cssText is "" 680 TEST "from-image 0dpcm snap" 681 PASS img.style.cssText is "" 682 TEST "from-image snap 0dpcm" 683 PASS img.style.cssText is "" 684 TEST "snap 0dpcm from-image" 685 PASS img.style.cssText is "" 686 TEST "snap from-image 0dpcm" 687 PASS img.style.cssText is "" 688 TEST "37.7dpcm from-image snap" 689 PASS img.style.cssText is "image-resolution: 37.7dpcm from-image snap; " 690 PASS img.offsetWidth is 16 691 PASS img.offsetHeight is 16 692 TEST "37.7dpcm snap from-image" 693 PASS img.style.cssText is "image-resolution: 37.7dpcm snap from-image; " 694 PASS img.offsetWidth is 16 695 PASS img.offsetHeight is 16 696 TEST "from-image 37.7dpcm snap" 697 PASS img.style.cssText is "image-resolution: from-image 37.7dpcm snap; " 698 PASS img.offsetWidth is 16 699 PASS img.offsetHeight is 16 700 TEST "from-image snap 37.7dpcm" 701 PASS img.style.cssText is "image-resolution: from-image snap 37.7dpcm; " 702 PASS img.offsetWidth is 16 703 PASS img.offsetHeight is 16 704 TEST "snap 37.7dpcm from-image" 705 PASS img.style.cssText is "image-resolution: snap 37.7dpcm from-image; " 706 PASS img.offsetWidth is 16 707 PASS img.offsetHeight is 16 708 TEST "snap from-image 37.7dpcm" 709 PASS img.style.cssText is "image-resolution: snap from-image 37.7dpcm; " 710 PASS img.offsetWidth is 16 711 PASS img.offsetHeight is 16 712 TEST "75.5dpcm from-image snap" 713 PASS img.style.cssText is "image-resolution: 75.5dpcm from-image snap; " 714 PASS img.offsetWidth is 8 715 PASS img.offsetHeight is 8 716 TEST "75.5dpcm snap from-image" 717 PASS img.style.cssText is "image-resolution: 75.5dpcm snap from-image; " 718 PASS img.offsetWidth is 8 719 PASS img.offsetHeight is 8 720 TEST "from-image 75.5dpcm snap" 721 PASS img.style.cssText is "image-resolution: from-image 75.5dpcm snap; " 722 PASS img.offsetWidth is 8 723 PASS img.offsetHeight is 8 724 TEST "from-image snap 75.5dpcm" 725 PASS img.style.cssText is "image-resolution: from-image snap 75.5dpcm; " 726 PASS img.offsetWidth is 8 727 PASS img.offsetHeight is 8 728 TEST "snap 75.5dpcm from-image" 729 PASS img.style.cssText is "image-resolution: snap 75.5dpcm from-image; " 730 PASS img.offsetWidth is 8 731 PASS img.offsetHeight is 8 732 TEST "snap from-image 75.5dpcm" 733 PASS img.style.cssText is "image-resolution: snap from-image 75.5dpcm; " 734 PASS img.offsetWidth is 8 735 PASS img.offsetHeight is 8 736 TEST "113.3dpcm from-image snap" 737 PASS img.style.cssText is "image-resolution: 113.3dpcm from-image snap; " 738 PASS img.offsetWidth is 5 739 PASS img.offsetHeight is 5 740 TEST "113.3dpcm snap from-image" 741 PASS img.style.cssText is "image-resolution: 113.3dpcm snap from-image; " 742 PASS img.offsetWidth is 5 743 PASS img.offsetHeight is 5 744 TEST "from-image 113.3dpcm snap" 745 PASS img.style.cssText is "image-resolution: from-image 113.3dpcm snap; " 746 PASS img.offsetWidth is 5 747 PASS img.offsetHeight is 5 748 TEST "from-image snap 113.3dpcm" 749 PASS img.style.cssText is "image-resolution: from-image snap 113.3dpcm; " 750 PASS img.offsetWidth is 5 751 PASS img.offsetHeight is 5 752 TEST "snap 113.3dpcm from-image" 753 PASS img.style.cssText is "image-resolution: snap 113.3dpcm from-image; " 754 PASS img.offsetWidth is 5 755 PASS img.offsetHeight is 5 756 TEST "snap from-image 113.3dpcm" 757 PASS img.style.cssText is "image-resolution: snap from-image 113.3dpcm; " 758 PASS img.offsetWidth is 5 759 PASS img.offsetHeight is 5 760 TEST "151.1dpcm from-image snap" 761 PASS img.style.cssText is "image-resolution: 151.1dpcm from-image snap; " 762 PASS img.offsetWidth is 4 763 PASS img.offsetHeight is 4 764 TEST "151.1dpcm snap from-image" 765 PASS img.style.cssText is "image-resolution: 151.1dpcm snap from-image; " 766 PASS img.offsetWidth is 4 767 PASS img.offsetHeight is 4 768 TEST "from-image 151.1dpcm snap" 769 PASS img.style.cssText is "image-resolution: from-image 151.1dpcm snap; " 770 PASS img.offsetWidth is 4 771 PASS img.offsetHeight is 4 772 TEST "from-image snap 151.1dpcm" 773 PASS img.style.cssText is "image-resolution: from-image snap 151.1dpcm; " 774 PASS img.offsetWidth is 4 775 PASS img.offsetHeight is 4 776 TEST "snap 151.1dpcm from-image" 777 PASS img.style.cssText is "image-resolution: snap 151.1dpcm from-image; " 778 PASS img.offsetWidth is 4 779 PASS img.offsetHeight is 4 780 TEST "snap from-image 151.1dpcm" 781 PASS img.style.cssText is "image-resolution: snap from-image 151.1dpcm; " 782 PASS img.offsetWidth is 4 783 PASS img.offsetHeight is 4 784 TEST "from-image snap" 785 PASS img.style.cssText is "image-resolution: from-image snap; " 786 PASS img.offsetWidth is 16 787 PASS img.offsetHeight is 16 788 TEST "snap from-image" 789 PASS img.style.cssText is "image-resolution: snap from-image; " 790 PASS img.offsetWidth is 16 791 PASS img.offsetHeight is 16 222 792 PASS successfullyParsed is true 223 793 -
trunk/LayoutTests/fast/css/image-resolution/image-resolution.html
r120683 r121127 28 28 var unit = explicit && explicit[3]; 29 29 var dppx = 1; 30 if (!unit && !fromImage) 31 return; 30 32 if (unit && value <= 0) 31 33 return; … … 39 41 else if (unit === 'dpcm') 40 42 dppx = value / (cssPxPerIn / cmPerIn); 43 else 44 return; 41 45 } 42 46 if (fromImage && imgResolutionDppx) 43 47 dppx = imgResolutionDppx; 44 48 if (snap) 45 dppx = Math.floor(dppx );49 dppx = Math.floor(dppx + 0.01); 46 50 if (dppx <= 0) 47 51 dppx = 1; … … 49 53 } 50 54 51 function permute 2(rule) {55 function permute3(rule) { 52 56 var s = rule.trim().split(' '); 53 57 if (s.length == 1) 54 58 return s; 55 return [s.join(' '), [s[1], s[0]].join(' ')]; 59 if (s.length == 2) 60 return [s.join(' '), [s[1], s[0]].join(' ')]; 61 return [[s[0], s[1], s[2]].join(' '), [s[0], s[2], s[1]].join(' '), 62 [s[1], s[0], s[2]].join(' '), [s[1], s[2], s[0]].join(' '), 63 [s[2], s[0], s[1]].join(' '), [s[2], s[1], s[0]].join(' ')]; 56 64 } 57 65 … … 59 67 var tests = resolutions.slice(); 60 68 resolutions.forEach(function(resolution) { 61 tests.push.apply(tests, permute2(resolution + ' from-image')); 69 tests.push.apply(tests, permute3(resolution + ' from-image')); 70 }); 71 resolutions.forEach(function(resolution) { 72 tests.push.apply(tests, permute3(resolution + ' snap')); 73 }); 74 resolutions.forEach(function(resolution) { 75 tests.push.apply(tests, permute3(resolution + ' from-image snap')); 62 76 }); 63 77 return tests; -
trunk/Source/WebCore/ChangeLog
r121126 r121127 1 2012-06-24 David Barr <davidbarr@chromium.org> 2 3 Add snap to css3-images image-resolution 4 https://bugs.webkit.org/show_bug.cgi?id=89745 5 6 Reviewed by Tony Chang. 7 8 Due to floating point imprecision, it is difficult to be precise in dpcm. 9 So use PrimitiveValue::roundForImpreciseConversion rather than just floor. 10 11 No new tests; extended fast/css/image-resolution/image-resolution.html 12 13 * css/CSSParser.cpp: Accept snap identifier in image-resolution property. 14 (WebCore::CSSParser::parseImageResolution): Map CSSValueSnap to identifier value from cssValuePool. 15 * css/CSSValueKeywords.in: Add snap. 16 * css/StyleBuilder.cpp: Extend ApplyPropertyImageResolution to apply RenderStyle::imageResolutionSnap. 17 (WebCore::ApplyPropertyImageResolution::applyInheritValue): Apply RenderStyle::imageResolutionSnap. 18 (WebCore::ApplyPropertyImageResolution::applyInitialValue): Apply RenderStyle::imageResolutionSnap. 19 (WebCore::ApplyPropertyImageResolution::applyValue): Map CSSValueSnap to ImageResolutionSnapPixels. 20 * rendering/RenderImage.cpp: Extend conditions for recalculation of intrinsic size. 21 (WebCore::RenderImage::styleDidChange): Update intrinsic size if RenderStyle::imageResolutionSnap() has changed. 22 (WebCore::RenderImage::imageDimensionsChanged): Floor scale factor to int, round up if less than 0.01 away from ceiling. 23 * rendering/style/RenderStyle.cpp: Include StyleRareInheritedData::m_imageResolutionSnap in style diff. 24 (WebCore::RenderStyle::diff): Map change in StyleRareInheritedData::m_imageResolutionSnap to StyleDifferenceLayout. 25 * rendering/style/RenderStyle.h: Add RenderStyle::imageResolutionSnap, RenderStyle::setImageResolutionSnap, RenderStyle::initialImageResolutionSnap. 26 * rendering/style/RenderStyleConstants.h: Add enum ImageResolutionSnap. 27 * rendering/style/StyleRareInheritedData.cpp: Add StyleRareInheritedData::m_imageResolutionSnap. 28 (WebCore::StyleRareInheritedData::StyleRareInheritedData): Add m_imageResolutionSnap to default and copy constructor. 29 (WebCore::StyleRareInheritedData::operator==): Include m_imageResolutionSnap in comparison. 30 * rendering/style/StyleRareInheritedData.h: Add StyleRareInheritedData::m_imageResolutionSnap. 31 (StyleRareInheritedData): Add 1-bit field StyleRareInheritedData::m_imageResolutionSnap. 32 1 33 2012-06-24 Sheriff Bot <webkit.review.bot@gmail.com> 2 34 -
trunk/Source/WebCore/css/CSSParser.cpp
r120849 r121127 6905 6905 bool haveResolution = false; 6906 6906 bool haveFromImage = false; 6907 bool haveSnap = false; 6907 6908 6908 6909 CSSParserValue* value = valueList->current(); … … 6911 6912 list->append(cssValuePool().createIdentifierValue(value->id)); 6912 6913 haveFromImage = true; 6914 } else if (!haveSnap && value->id == CSSValueSnap) { 6915 list->append(cssValuePool().createIdentifierValue(value->id)); 6916 haveSnap = true; 6913 6917 } else if (!haveResolution && validUnit(value, FResolution | FNonNeg) && value->fValue > 0) { 6914 6918 list->append(createPrimitiveNumericValue(value)); … … 6919 6923 } 6920 6924 if (!list->length()) 6925 return 0; 6926 if (!haveFromImage && !haveResolution) 6921 6927 return 0; 6922 6928 return list; -
trunk/Source/WebCore/css/CSSValueKeywords.in
r121083 r121127 935 935 #if defined(ENABLE_CSS_IMAGE_RESOLUTION) && ENABLE_CSS_IMAGE_RESOLUTION 936 936 from-image 937 snap 937 938 #endif 938 939 -
trunk/Source/WebCore/css/StyleBuilder.cpp
r120849 r121127 1786 1786 { 1787 1787 ApplyPropertyDefaultBase<ImageResolutionSource, &RenderStyle::imageResolutionSource, ImageResolutionSource, &RenderStyle::setImageResolutionSource, ImageResolutionSource, &RenderStyle::initialImageResolutionSource>::applyInheritValue(styleResolver); 1788 ApplyPropertyDefaultBase<ImageResolutionSnap, &RenderStyle::imageResolutionSnap, ImageResolutionSnap, &RenderStyle::setImageResolutionSnap, ImageResolutionSnap, &RenderStyle::initialImageResolutionSnap>::applyInheritValue(styleResolver); 1788 1789 ApplyPropertyDefaultBase<float, &RenderStyle::imageResolution, float, &RenderStyle::setImageResolution, float, &RenderStyle::initialImageResolution>::applyInheritValue(styleResolver); 1789 1790 } … … 1792 1793 { 1793 1794 ApplyPropertyDefaultBase<ImageResolutionSource, &RenderStyle::imageResolutionSource, ImageResolutionSource, &RenderStyle::setImageResolutionSource, ImageResolutionSource, &RenderStyle::initialImageResolutionSource>::applyInitialValue(styleResolver); 1795 ApplyPropertyDefaultBase<ImageResolutionSnap, &RenderStyle::imageResolutionSnap, ImageResolutionSnap, &RenderStyle::setImageResolutionSnap, ImageResolutionSnap, &RenderStyle::initialImageResolutionSnap>::applyInitialValue(styleResolver); 1794 1796 ApplyPropertyDefaultBase<float, &RenderStyle::imageResolution, float, &RenderStyle::setImageResolution, float, &RenderStyle::initialImageResolution>::applyInitialValue(styleResolver); 1795 1797 } … … 1801 1803 CSSValueList* valueList = static_cast<CSSValueList*>(value); 1802 1804 ImageResolutionSource source = RenderStyle::initialImageResolutionSource(); 1805 ImageResolutionSnap snap = RenderStyle::initialImageResolutionSnap(); 1803 1806 double resolution = RenderStyle::initialImageResolution(); 1804 1807 for (size_t i = 0; i < valueList->length(); i++) { … … 1809 1812 if (primitiveValue->getIdent() == CSSValueFromImage) 1810 1813 source = ImageResolutionFromImage; 1814 else if (primitiveValue->getIdent() == CSSValueSnap) 1815 snap = ImageResolutionSnapPixels; 1811 1816 else 1812 1817 resolution = primitiveValue->getDoubleValue(CSSPrimitiveValue::CSS_DPPX); 1813 1818 } 1814 1819 styleResolver->style()->setImageResolutionSource(source); 1820 styleResolver->style()->setImageResolutionSnap(snap); 1815 1821 styleResolver->style()->setImageResolution(resolution); 1816 1822 } -
trunk/Source/WebCore/rendering/RenderImage.cpp
r121123 r121127 141 141 if (diff == StyleDifferenceLayout 142 142 && (oldStyle->imageResolution() != style()->imageResolution() 143 || oldStyle->imageResolutionSnap() != style()->imageResolutionSnap() 143 144 || oldStyle->imageResolutionSource() != style()->imageResolutionSource())) 144 145 imageDimensionsChanged(true /* imageSizeChanged */); … … 199 200 { 200 201 #if ENABLE(CSS_IMAGE_RESOLUTION) 201 bool intrinsicSizeChanged = updateIntrinsicSizeIfNeeded(m_imageResource->imageSize(style()->effectiveZoom() / style()->imageResolution()), imageSizeChanged); 202 double scale = style()->imageResolution(); 203 if (style()->imageResolutionSnap() == ImageResolutionSnapPixels) 204 scale = roundForImpreciseConversion<int>(scale); 205 if (scale <= 0) 206 scale = 1; 207 bool intrinsicSizeChanged = updateIntrinsicSizeIfNeeded(m_imageResource->imageSize(style()->effectiveZoom() / scale), imageSizeChanged); 202 208 #else 203 209 bool intrinsicSizeChanged = updateIntrinsicSizeIfNeeded(m_imageResource->imageSize(style()->effectiveZoom()), imageSizeChanged); -
trunk/Source/WebCore/rendering/style/RenderStyle.cpp
r120641 r121127 475 475 #if ENABLE(CSS_IMAGE_RESOLUTION) 476 476 || rareInheritedData->m_imageResolutionSource != other->rareInheritedData->m_imageResolutionSource 477 || rareInheritedData->m_imageResolutionSnap != other->rareInheritedData->m_imageResolutionSnap 477 478 || rareInheritedData->m_imageResolution != other->rareInheritedData->m_imageResolution 478 479 #endif -
trunk/Source/WebCore/rendering/style/RenderStyle.h
r121123 r121127 984 984 #if ENABLE(CSS_IMAGE_RESOLUTION) 985 985 ImageResolutionSource imageResolutionSource() const { return static_cast<ImageResolutionSource>(rareInheritedData->m_imageResolutionSource); } 986 ImageResolutionSnap imageResolutionSnap() const { return static_cast<ImageResolutionSnap>(rareInheritedData->m_imageResolutionSnap); } 986 987 float imageResolution() const { return rareInheritedData->m_imageResolution; } 987 988 #endif … … 1155 1156 #if ENABLE(CSS_IMAGE_RESOLUTION) 1156 1157 void setImageResolutionSource(ImageResolutionSource v) { SET_VAR(rareInheritedData, m_imageResolutionSource, v) } 1158 void setImageResolutionSnap(ImageResolutionSnap v) { SET_VAR(rareInheritedData, m_imageResolutionSnap, v) } 1157 1159 void setImageResolution(float f) { SET_VAR(rareInheritedData, m_imageResolution, f) } 1158 1160 #endif … … 1668 1670 static EImageRendering initialImageRendering() { return ImageRenderingAuto; } 1669 1671 static ImageResolutionSource initialImageResolutionSource() { return ImageResolutionSpecified; } 1672 static ImageResolutionSnap initialImageResolutionSnap() { return ImageResolutionNoSnap; } 1670 1673 static float initialImageResolution() { return 1; } 1671 1674 static StyleImage* initialBorderImageSource() { return 0; } -
trunk/Source/WebCore/rendering/style/RenderStyleConstants.h
r120735 r121127 453 453 enum ImageResolutionSource { ImageResolutionSpecified = 0, ImageResolutionFromImage }; 454 454 455 enum ImageResolutionSnap { ImageResolutionNoSnap = 0, ImageResolutionSnapPixels }; 456 455 457 enum Order { LogicalOrder = 0, VisualOrder }; 456 458 -
trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp
r120641 r121127 90 90 #if ENABLE(CSS_IMAGE_RESOLUTION) 91 91 , m_imageResolutionSource(RenderStyle::initialImageResolutionSource()) 92 , m_imageResolutionSnap(RenderStyle::initialImageResolutionSnap()) 92 93 #endif 93 94 , hyphenationLimitBefore(-1) … … 148 149 #if ENABLE(CSS_IMAGE_RESOLUTION) 149 150 , m_imageResolutionSource(o.m_imageResolutionSource) 151 , m_imageResolutionSnap(o.m_imageResolutionSnap) 150 152 #endif 151 153 , hyphenationString(o.hyphenationString) … … 232 234 #if ENABLE(CSS_IMAGE_RESOLUTION) 233 235 && m_imageResolutionSource == o.m_imageResolutionSource 236 && m_imageResolutionSnap == o.m_imageResolutionSnap 234 237 && m_imageResolution == o.m_imageResolution 235 238 #endif -
trunk/Source/WebCore/rendering/style/StyleRareInheritedData.h
r120641 r121127 104 104 #if ENABLE(CSS_IMAGE_RESOLUTION) 105 105 unsigned m_imageResolutionSource : 1; // ImageResolutionSource 106 unsigned m_imageResolutionSnap : 1; // ImageResolutionSnap 106 107 #endif 107 108
Note:
See TracChangeset
for help on using the changeset viewer.