| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 290 ImageFrame::DisposalMethod disposalMethod; | 290 ImageFrame::DisposalMethod disposalMethod; |
| 291 ImageFrame::AlphaBlendSource alphaBlendSource; | 291 ImageFrame::AlphaBlendSource alphaBlendSource; |
| 292 unsigned duration; | 292 unsigned duration; |
| 293 bool hasAlpha; | 293 bool hasAlpha; |
| 294 } frameParameters[] = { | 294 } frameParameters[] = { |
| 295 { 0, 0, 11, 29, ImageFrame::DisposeKeep, ImageFrame::BlendAtopPreviousFr
ame, 1000u, true }, | 295 { 0, 0, 11, 29, ImageFrame::DisposeKeep, ImageFrame::BlendAtopPreviousFr
ame, 1000u, true }, |
| 296 { 2, 10, 7, 17, ImageFrame::DisposeKeep, ImageFrame::BlendAtopPreviousFr
ame, 500u, true }, | 296 { 2, 10, 7, 17, ImageFrame::DisposeKeep, ImageFrame::BlendAtopPreviousFr
ame, 500u, true }, |
| 297 { 2, 2, 7, 16, ImageFrame::DisposeKeep, ImageFrame::BlendAtopPreviousFra
me, 1000u, true }, | 297 { 2, 2, 7, 16, ImageFrame::DisposeKeep, ImageFrame::BlendAtopPreviousFra
me, 1000u, true }, |
| 298 }; | 298 }; |
| 299 | 299 |
| 300 for (size_t i = 0; i < ARRAY_SIZE(frameParameters); ++i) { | 300 for (size_t i = 0; i < WTF_ARRAY_LENGTH(frameParameters); ++i) { |
| 301 const ImageFrame* const frame = decoder->frameBufferAtIndex(i); | 301 const ImageFrame* const frame = decoder->frameBufferAtIndex(i); |
| 302 EXPECT_EQ(ImageFrame::FrameComplete, frame->status()); | 302 EXPECT_EQ(ImageFrame::FrameComplete, frame->status()); |
| 303 EXPECT_EQ(canvasWidth, frame->getSkBitmap().width()); | 303 EXPECT_EQ(canvasWidth, frame->getSkBitmap().width()); |
| 304 EXPECT_EQ(canvasHeight, frame->getSkBitmap().height()); | 304 EXPECT_EQ(canvasHeight, frame->getSkBitmap().height()); |
| 305 EXPECT_EQ(frameParameters[i].xOffset, frame->originalFrameRect().x()); | 305 EXPECT_EQ(frameParameters[i].xOffset, frame->originalFrameRect().x()); |
| 306 EXPECT_EQ(frameParameters[i].yOffset, frame->originalFrameRect().y()); | 306 EXPECT_EQ(frameParameters[i].yOffset, frame->originalFrameRect().y()); |
| 307 EXPECT_EQ(frameParameters[i].width, frame->originalFrameRect().width()); | 307 EXPECT_EQ(frameParameters[i].width, frame->originalFrameRect().width()); |
| 308 EXPECT_EQ(frameParameters[i].height, frame->originalFrameRect().height()
); | 308 EXPECT_EQ(frameParameters[i].height, frame->originalFrameRect().height()
); |
| 309 EXPECT_EQ(frameParameters[i].disposalMethod, frame->disposalMethod()); | 309 EXPECT_EQ(frameParameters[i].disposalMethod, frame->disposalMethod()); |
| 310 EXPECT_EQ(frameParameters[i].alphaBlendSource, frame->alphaBlendSource()
); | 310 EXPECT_EQ(frameParameters[i].alphaBlendSource, frame->alphaBlendSource()
); |
| 311 EXPECT_EQ(frameParameters[i].duration, frame->duration()); | 311 EXPECT_EQ(frameParameters[i].duration, frame->duration()); |
| 312 EXPECT_EQ(frameParameters[i].hasAlpha, frame->hasAlpha()); | 312 EXPECT_EQ(frameParameters[i].hasAlpha, frame->hasAlpha()); |
| 313 } | 313 } |
| 314 | 314 |
| 315 EXPECT_EQ(ARRAY_SIZE(frameParameters), decoder->frameCount()); | 315 EXPECT_EQ(WTF_ARRAY_LENGTH(frameParameters), decoder->frameCount()); |
| 316 EXPECT_EQ(cAnimationLoopInfinite, decoder->repetitionCount()); | 316 EXPECT_EQ(cAnimationLoopInfinite, decoder->repetitionCount()); |
| 317 } | 317 } |
| 318 | 318 |
| 319 TEST(AnimatedWebPTests, verifyAnimationParametersOpaqueFramesTransparentBackgrou
nd) | 319 TEST(AnimatedWebPTests, verifyAnimationParametersOpaqueFramesTransparentBackgrou
nd) |
| 320 { | 320 { |
| 321 OwnPtr<ImageDecoder> decoder = createDecoder(); | 321 OwnPtr<ImageDecoder> decoder = createDecoder(); |
| 322 EXPECT_EQ(cAnimationLoopOnce, decoder->repetitionCount()); | 322 EXPECT_EQ(cAnimationLoopOnce, decoder->repetitionCount()); |
| 323 | 323 |
| 324 RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/web
p-animated-opaque.webp"); | 324 RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/web
p-animated-opaque.webp"); |
| 325 ASSERT_TRUE(data.get()); | 325 ASSERT_TRUE(data.get()); |
| 326 decoder->setData(data.get(), true); | 326 decoder->setData(data.get(), true); |
| 327 | 327 |
| 328 const int canvasWidth = 94; | 328 const int canvasWidth = 94; |
| 329 const int canvasHeight = 87; | 329 const int canvasHeight = 87; |
| 330 const struct AnimParam { | 330 const struct AnimParam { |
| 331 int xOffset, yOffset, width, height; | 331 int xOffset, yOffset, width, height; |
| 332 ImageFrame::DisposalMethod disposalMethod; | 332 ImageFrame::DisposalMethod disposalMethod; |
| 333 ImageFrame::AlphaBlendSource alphaBlendSource; | 333 ImageFrame::AlphaBlendSource alphaBlendSource; |
| 334 unsigned duration; | 334 unsigned duration; |
| 335 bool hasAlpha; | 335 bool hasAlpha; |
| 336 } frameParameters[] = { | 336 } frameParameters[] = { |
| 337 { 4, 10, 33, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::BlendA
topPreviousFrame, 1000u, true }, | 337 { 4, 10, 33, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::BlendA
topPreviousFrame, 1000u, true }, |
| 338 { 34, 30, 33, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopPreviousFrame, 1000u, true }, | 338 { 34, 30, 33, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopPreviousFrame, 1000u, true }, |
| 339 { 62, 50, 32, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopPreviousFrame, 1000u, true }, | 339 { 62, 50, 32, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopPreviousFrame, 1000u, true }, |
| 340 { 10, 54, 32, 33, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopPreviousFrame, 1000u, true }, | 340 { 10, 54, 32, 33, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopPreviousFrame, 1000u, true }, |
| 341 }; | 341 }; |
| 342 | 342 |
| 343 for (size_t i = 0; i < ARRAY_SIZE(frameParameters); ++i) { | 343 for (size_t i = 0; i < WTF_ARRAY_LENGTH(frameParameters); ++i) { |
| 344 const ImageFrame* const frame = decoder->frameBufferAtIndex(i); | 344 const ImageFrame* const frame = decoder->frameBufferAtIndex(i); |
| 345 EXPECT_EQ(ImageFrame::FrameComplete, frame->status()); | 345 EXPECT_EQ(ImageFrame::FrameComplete, frame->status()); |
| 346 EXPECT_EQ(canvasWidth, frame->getSkBitmap().width()); | 346 EXPECT_EQ(canvasWidth, frame->getSkBitmap().width()); |
| 347 EXPECT_EQ(canvasHeight, frame->getSkBitmap().height()); | 347 EXPECT_EQ(canvasHeight, frame->getSkBitmap().height()); |
| 348 EXPECT_EQ(frameParameters[i].xOffset, frame->originalFrameRect().x()); | 348 EXPECT_EQ(frameParameters[i].xOffset, frame->originalFrameRect().x()); |
| 349 EXPECT_EQ(frameParameters[i].yOffset, frame->originalFrameRect().y()); | 349 EXPECT_EQ(frameParameters[i].yOffset, frame->originalFrameRect().y()); |
| 350 EXPECT_EQ(frameParameters[i].width, frame->originalFrameRect().width()); | 350 EXPECT_EQ(frameParameters[i].width, frame->originalFrameRect().width()); |
| 351 EXPECT_EQ(frameParameters[i].height, frame->originalFrameRect().height()
); | 351 EXPECT_EQ(frameParameters[i].height, frame->originalFrameRect().height()
); |
| 352 EXPECT_EQ(frameParameters[i].disposalMethod, frame->disposalMethod()); | 352 EXPECT_EQ(frameParameters[i].disposalMethod, frame->disposalMethod()); |
| 353 EXPECT_EQ(frameParameters[i].alphaBlendSource, frame->alphaBlendSource()
); | 353 EXPECT_EQ(frameParameters[i].alphaBlendSource, frame->alphaBlendSource()
); |
| 354 EXPECT_EQ(frameParameters[i].duration, frame->duration()); | 354 EXPECT_EQ(frameParameters[i].duration, frame->duration()); |
| 355 EXPECT_EQ(frameParameters[i].hasAlpha, frame->hasAlpha()); | 355 EXPECT_EQ(frameParameters[i].hasAlpha, frame->hasAlpha()); |
| 356 } | 356 } |
| 357 | 357 |
| 358 EXPECT_EQ(ARRAY_SIZE(frameParameters), decoder->frameCount()); | 358 EXPECT_EQ(WTF_ARRAY_LENGTH(frameParameters), decoder->frameCount()); |
| 359 EXPECT_EQ(cAnimationLoopInfinite, decoder->repetitionCount()); | 359 EXPECT_EQ(cAnimationLoopInfinite, decoder->repetitionCount()); |
| 360 } | 360 } |
| 361 | 361 |
| 362 TEST(AnimatedWebPTests, verifyAnimationParametersBlendOverwrite) | 362 TEST(AnimatedWebPTests, verifyAnimationParametersBlendOverwrite) |
| 363 { | 363 { |
| 364 OwnPtr<ImageDecoder> decoder = createDecoder(); | 364 OwnPtr<ImageDecoder> decoder = createDecoder(); |
| 365 EXPECT_EQ(cAnimationLoopOnce, decoder->repetitionCount()); | 365 EXPECT_EQ(cAnimationLoopOnce, decoder->repetitionCount()); |
| 366 | 366 |
| 367 RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/web
p-animated-no-blend.webp"); | 367 RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/web
p-animated-no-blend.webp"); |
| 368 ASSERT_TRUE(data.get()); | 368 ASSERT_TRUE(data.get()); |
| 369 decoder->setData(data.get(), true); | 369 decoder->setData(data.get(), true); |
| 370 | 370 |
| 371 const int canvasWidth = 94; | 371 const int canvasWidth = 94; |
| 372 const int canvasHeight = 87; | 372 const int canvasHeight = 87; |
| 373 const struct AnimParam { | 373 const struct AnimParam { |
| 374 int xOffset, yOffset, width, height; | 374 int xOffset, yOffset, width, height; |
| 375 ImageFrame::DisposalMethod disposalMethod; | 375 ImageFrame::DisposalMethod disposalMethod; |
| 376 ImageFrame::AlphaBlendSource alphaBlendSource; | 376 ImageFrame::AlphaBlendSource alphaBlendSource; |
| 377 unsigned duration; | 377 unsigned duration; |
| 378 bool hasAlpha; | 378 bool hasAlpha; |
| 379 } frameParameters[] = { | 379 } frameParameters[] = { |
| 380 { 4, 10, 33, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::BlendA
topBgcolor, 1000u, true }, | 380 { 4, 10, 33, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::BlendA
topBgcolor, 1000u, true }, |
| 381 { 34, 30, 33, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopBgcolor, 1000u, true }, | 381 { 34, 30, 33, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopBgcolor, 1000u, true }, |
| 382 { 62, 50, 32, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopBgcolor, 1000u, true }, | 382 { 62, 50, 32, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopBgcolor, 1000u, true }, |
| 383 { 10, 54, 32, 33, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopBgcolor, 1000u, true }, | 383 { 10, 54, 32, 33, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopBgcolor, 1000u, true }, |
| 384 }; | 384 }; |
| 385 | 385 |
| 386 for (size_t i = 0; i < ARRAY_SIZE(frameParameters); ++i) { | 386 for (size_t i = 0; i < WTF_ARRAY_LENGTH(frameParameters); ++i) { |
| 387 const ImageFrame* const frame = decoder->frameBufferAtIndex(i); | 387 const ImageFrame* const frame = decoder->frameBufferAtIndex(i); |
| 388 EXPECT_EQ(ImageFrame::FrameComplete, frame->status()); | 388 EXPECT_EQ(ImageFrame::FrameComplete, frame->status()); |
| 389 EXPECT_EQ(canvasWidth, frame->getSkBitmap().width()); | 389 EXPECT_EQ(canvasWidth, frame->getSkBitmap().width()); |
| 390 EXPECT_EQ(canvasHeight, frame->getSkBitmap().height()); | 390 EXPECT_EQ(canvasHeight, frame->getSkBitmap().height()); |
| 391 EXPECT_EQ(frameParameters[i].xOffset, frame->originalFrameRect().x()); | 391 EXPECT_EQ(frameParameters[i].xOffset, frame->originalFrameRect().x()); |
| 392 EXPECT_EQ(frameParameters[i].yOffset, frame->originalFrameRect().y()); | 392 EXPECT_EQ(frameParameters[i].yOffset, frame->originalFrameRect().y()); |
| 393 EXPECT_EQ(frameParameters[i].width, frame->originalFrameRect().width()); | 393 EXPECT_EQ(frameParameters[i].width, frame->originalFrameRect().width()); |
| 394 EXPECT_EQ(frameParameters[i].height, frame->originalFrameRect().height()
); | 394 EXPECT_EQ(frameParameters[i].height, frame->originalFrameRect().height()
); |
| 395 EXPECT_EQ(frameParameters[i].disposalMethod, frame->disposalMethod()); | 395 EXPECT_EQ(frameParameters[i].disposalMethod, frame->disposalMethod()); |
| 396 EXPECT_EQ(frameParameters[i].alphaBlendSource, frame->alphaBlendSource()
); | 396 EXPECT_EQ(frameParameters[i].alphaBlendSource, frame->alphaBlendSource()
); |
| 397 EXPECT_EQ(frameParameters[i].duration, frame->duration()); | 397 EXPECT_EQ(frameParameters[i].duration, frame->duration()); |
| 398 EXPECT_EQ(frameParameters[i].hasAlpha, frame->hasAlpha()); | 398 EXPECT_EQ(frameParameters[i].hasAlpha, frame->hasAlpha()); |
| 399 } | 399 } |
| 400 | 400 |
| 401 EXPECT_EQ(ARRAY_SIZE(frameParameters), decoder->frameCount()); | 401 EXPECT_EQ(WTF_ARRAY_LENGTH(frameParameters), decoder->frameCount()); |
| 402 EXPECT_EQ(cAnimationLoopInfinite, decoder->repetitionCount()); | 402 EXPECT_EQ(cAnimationLoopInfinite, decoder->repetitionCount()); |
| 403 } | 403 } |
| 404 | 404 |
| 405 TEST(AnimatedWebPTests, parseAndDecodeByteByByte) | 405 TEST(AnimatedWebPTests, parseAndDecodeByteByByte) |
| 406 { | 406 { |
| 407 testByteByByteDecode(&createDecoder, "/LayoutTests/fast/images/resources/web
p-animated.webp", 3u, cAnimationLoopInfinite); | 407 testByteByByteDecode(&createDecoder, "/LayoutTests/fast/images/resources/web
p-animated.webp", 3u, cAnimationLoopInfinite); |
| 408 testByteByByteDecode(&createDecoder, "/LayoutTests/fast/images/resources/web
p-animated-icc-xmp.webp", 13u, 31999); | 408 testByteByByteDecode(&createDecoder, "/LayoutTests/fast/images/resources/web
p-animated-icc-xmp.webp", 13u, 31999); |
| 409 } | 409 } |
| 410 | 410 |
| 411 TEST(AnimatedWebPTests, invalidImages) | 411 TEST(AnimatedWebPTests, invalidImages) |
| (...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 682 { | 682 { |
| 683 OwnPtr<ImageDecoder> decoder = createDecoder(); | 683 OwnPtr<ImageDecoder> decoder = createDecoder(); |
| 684 RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/web
p-color-profile-lossy.webp"); | 684 RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/web
p-color-profile-lossy.webp"); |
| 685 ASSERT_TRUE(data.get()); | 685 ASSERT_TRUE(data.get()); |
| 686 decoder->setData(data.get(), true); | 686 decoder->setData(data.get(), true); |
| 687 EXPECT_EQ(1u, decoder->frameCount()); | 687 EXPECT_EQ(1u, decoder->frameCount()); |
| 688 EXPECT_EQ(cAnimationNone, decoder->repetitionCount()); | 688 EXPECT_EQ(cAnimationNone, decoder->repetitionCount()); |
| 689 } | 689 } |
| 690 | 690 |
| 691 } // namespace blink | 691 } // namespace blink |
| OLD | NEW |