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

Side by Side Diff: cc/tiles/software_image_decode_controller_unittest.cc

Issue 1890903002: cc: Simplify Task and its derived classes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@remove_tile_task_runner
Patch Set: nits Created 4 years, 8 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 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/tiles/software_image_decode_controller.h" 5 #include "cc/tiles/software_image_decode_controller.h"
6 6
7 #include "cc/playback/draw_image.h" 7 #include "cc/playback/draw_image.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 namespace cc { 10 namespace cc {
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 TEST(SoftwareImageDecodeControllerTest, GetTaskForImageSameImage) { 352 TEST(SoftwareImageDecodeControllerTest, GetTaskForImageSameImage) {
353 SoftwareImageDecodeController controller; 353 SoftwareImageDecodeController controller;
354 skia::RefPtr<SkImage> image = CreateImage(100, 100); 354 skia::RefPtr<SkImage> image = CreateImage(100, 100);
355 bool is_decomposable = true; 355 bool is_decomposable = true;
356 SkFilterQuality quality = kHigh_SkFilterQuality; 356 SkFilterQuality quality = kHigh_SkFilterQuality;
357 uint64_t prepare_tiles_id = 1; 357 uint64_t prepare_tiles_id = 1;
358 358
359 DrawImage draw_image( 359 DrawImage draw_image(
360 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality, 360 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
361 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); 361 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
362 scoped_refptr<ImageDecodeTask> task; 362 scoped_refptr<Task> task;
363 bool need_unref = 363 bool need_unref =
364 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task); 364 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
365 EXPECT_TRUE(need_unref); 365 EXPECT_TRUE(need_unref);
366 EXPECT_TRUE(task); 366 EXPECT_TRUE(task);
367 367
368 DrawImage another_draw_image( 368 DrawImage another_draw_image(
369 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality, 369 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
370 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); 370 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
371 scoped_refptr<ImageDecodeTask> another_task; 371 scoped_refptr<Task> another_task;
372 need_unref = controller.GetTaskForImageAndRef( 372 need_unref = controller.GetTaskForImageAndRef(
373 another_draw_image, prepare_tiles_id, &another_task); 373 another_draw_image, prepare_tiles_id, &another_task);
374 EXPECT_TRUE(need_unref); 374 EXPECT_TRUE(need_unref);
375 EXPECT_TRUE(task.get() == another_task.get()); 375 EXPECT_TRUE(task.get() == another_task.get());
376 376
377 controller.UnrefImage(draw_image); 377 controller.UnrefImage(draw_image);
378 controller.UnrefImage(draw_image); 378 controller.UnrefImage(draw_image);
379 } 379 }
380 380
381 TEST(SoftwareImageDecodeControllerTest, 381 TEST(SoftwareImageDecodeControllerTest,
382 GetTaskForImageSameImageDifferentQuality) { 382 GetTaskForImageSameImageDifferentQuality) {
383 SoftwareImageDecodeController controller; 383 SoftwareImageDecodeController controller;
384 skia::RefPtr<SkImage> image = CreateImage(100, 100); 384 skia::RefPtr<SkImage> image = CreateImage(100, 100);
385 bool is_decomposable = true; 385 bool is_decomposable = true;
386 uint64_t prepare_tiles_id = 1; 386 uint64_t prepare_tiles_id = 1;
387 387
388 DrawImage high_quality_draw_image( 388 DrawImage high_quality_draw_image(
389 image.get(), SkIRect::MakeWH(image->width(), image->height()), 389 image.get(), SkIRect::MakeWH(image->width(), image->height()),
390 kHigh_SkFilterQuality, 390 kHigh_SkFilterQuality,
391 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); 391 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
392 scoped_refptr<ImageDecodeTask> high_quality_task; 392 scoped_refptr<Task> high_quality_task;
393 bool need_unref = controller.GetTaskForImageAndRef( 393 bool need_unref = controller.GetTaskForImageAndRef(
394 high_quality_draw_image, prepare_tiles_id, &high_quality_task); 394 high_quality_draw_image, prepare_tiles_id, &high_quality_task);
395 EXPECT_TRUE(need_unref); 395 EXPECT_TRUE(need_unref);
396 EXPECT_TRUE(high_quality_task); 396 EXPECT_TRUE(high_quality_task);
397 397
398 DrawImage medium_quality_draw_image( 398 DrawImage medium_quality_draw_image(
399 image.get(), SkIRect::MakeWH(image->width(), image->height()), 399 image.get(), SkIRect::MakeWH(image->width(), image->height()),
400 kMedium_SkFilterQuality, 400 kMedium_SkFilterQuality,
401 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); 401 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
402 scoped_refptr<ImageDecodeTask> medium_quality_task; 402 scoped_refptr<Task> medium_quality_task;
403 need_unref = controller.GetTaskForImageAndRef( 403 need_unref = controller.GetTaskForImageAndRef(
404 medium_quality_draw_image, prepare_tiles_id, &medium_quality_task); 404 medium_quality_draw_image, prepare_tiles_id, &medium_quality_task);
405 // Medium quality isn't handled by the controller, so it won't ref it. Note 405 // Medium quality isn't handled by the controller, so it won't ref it. Note
406 // that this will change when medium quality is handled and will need to be 406 // that this will change when medium quality is handled and will need to be
407 // updated. 407 // updated.
408 EXPECT_FALSE(need_unref); 408 EXPECT_FALSE(need_unref);
409 EXPECT_TRUE(medium_quality_task); 409 EXPECT_TRUE(medium_quality_task);
410 EXPECT_TRUE(high_quality_task.get() != medium_quality_task.get()); 410 EXPECT_TRUE(high_quality_task.get() != medium_quality_task.get());
411 411
412 DrawImage low_quality_draw_image( 412 DrawImage low_quality_draw_image(
413 image.get(), SkIRect::MakeWH(image->width(), image->height()), 413 image.get(), SkIRect::MakeWH(image->width(), image->height()),
414 kLow_SkFilterQuality, 414 kLow_SkFilterQuality,
415 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); 415 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
416 scoped_refptr<ImageDecodeTask> low_quality_task; 416 scoped_refptr<Task> low_quality_task;
417 need_unref = controller.GetTaskForImageAndRef( 417 need_unref = controller.GetTaskForImageAndRef(
418 low_quality_draw_image, prepare_tiles_id, &low_quality_task); 418 low_quality_draw_image, prepare_tiles_id, &low_quality_task);
419 EXPECT_TRUE(need_unref); 419 EXPECT_TRUE(need_unref);
420 EXPECT_TRUE(low_quality_task); 420 EXPECT_TRUE(low_quality_task);
421 EXPECT_TRUE(high_quality_task.get() != low_quality_task.get()); 421 EXPECT_TRUE(high_quality_task.get() != low_quality_task.get());
422 EXPECT_TRUE(medium_quality_task.get() != low_quality_task.get()); 422 EXPECT_TRUE(medium_quality_task.get() != low_quality_task.get());
423 423
424 controller.UnrefImage(high_quality_draw_image); 424 controller.UnrefImage(high_quality_draw_image);
425 controller.UnrefImage(low_quality_draw_image); 425 controller.UnrefImage(low_quality_draw_image);
426 } 426 }
427 427
428 TEST(SoftwareImageDecodeControllerTest, GetTaskForImageSameImageDifferentSize) { 428 TEST(SoftwareImageDecodeControllerTest, GetTaskForImageSameImageDifferentSize) {
429 SoftwareImageDecodeController controller; 429 SoftwareImageDecodeController controller;
430 skia::RefPtr<SkImage> image = CreateImage(100, 100); 430 skia::RefPtr<SkImage> image = CreateImage(100, 100);
431 bool is_decomposable = true; 431 bool is_decomposable = true;
432 uint64_t prepare_tiles_id = 1; 432 uint64_t prepare_tiles_id = 1;
433 SkFilterQuality quality = kHigh_SkFilterQuality; 433 SkFilterQuality quality = kHigh_SkFilterQuality;
434 434
435 DrawImage half_size_draw_image( 435 DrawImage half_size_draw_image(
436 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality, 436 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
437 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); 437 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
438 scoped_refptr<ImageDecodeTask> half_size_task; 438 scoped_refptr<Task> half_size_task;
439 bool need_unref = controller.GetTaskForImageAndRef( 439 bool need_unref = controller.GetTaskForImageAndRef(
440 half_size_draw_image, prepare_tiles_id, &half_size_task); 440 half_size_draw_image, prepare_tiles_id, &half_size_task);
441 EXPECT_TRUE(need_unref); 441 EXPECT_TRUE(need_unref);
442 EXPECT_TRUE(half_size_task); 442 EXPECT_TRUE(half_size_task);
443 443
444 DrawImage quarter_size_draw_image( 444 DrawImage quarter_size_draw_image(
445 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality, 445 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
446 CreateMatrix(SkSize::Make(0.25f, 0.25f), is_decomposable)); 446 CreateMatrix(SkSize::Make(0.25f, 0.25f), is_decomposable));
447 scoped_refptr<ImageDecodeTask> quarter_size_task; 447 scoped_refptr<Task> quarter_size_task;
448 need_unref = controller.GetTaskForImageAndRef( 448 need_unref = controller.GetTaskForImageAndRef(
449 quarter_size_draw_image, prepare_tiles_id, &quarter_size_task); 449 quarter_size_draw_image, prepare_tiles_id, &quarter_size_task);
450 EXPECT_TRUE(need_unref); 450 EXPECT_TRUE(need_unref);
451 EXPECT_TRUE(quarter_size_task); 451 EXPECT_TRUE(quarter_size_task);
452 EXPECT_TRUE(half_size_task.get() != quarter_size_task.get()); 452 EXPECT_TRUE(half_size_task.get() != quarter_size_task.get());
453 453
454 controller.UnrefImage(half_size_draw_image); 454 controller.UnrefImage(half_size_draw_image);
455 controller.UnrefImage(quarter_size_draw_image); 455 controller.UnrefImage(quarter_size_draw_image);
456 } 456 }
457 457
458 TEST(SoftwareImageDecodeControllerTest, GetTaskForImageDifferentImage) { 458 TEST(SoftwareImageDecodeControllerTest, GetTaskForImageDifferentImage) {
459 SoftwareImageDecodeController controller; 459 SoftwareImageDecodeController controller;
460 bool is_decomposable = true; 460 bool is_decomposable = true;
461 uint64_t prepare_tiles_id = 1; 461 uint64_t prepare_tiles_id = 1;
462 SkFilterQuality quality = kHigh_SkFilterQuality; 462 SkFilterQuality quality = kHigh_SkFilterQuality;
463 463
464 skia::RefPtr<SkImage> first_image = CreateImage(100, 100); 464 skia::RefPtr<SkImage> first_image = CreateImage(100, 100);
465 DrawImage first_draw_image( 465 DrawImage first_draw_image(
466 first_image.get(), 466 first_image.get(),
467 SkIRect::MakeWH(first_image->width(), first_image->height()), quality, 467 SkIRect::MakeWH(first_image->width(), first_image->height()), quality,
468 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); 468 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
469 scoped_refptr<ImageDecodeTask> first_task; 469 scoped_refptr<Task> first_task;
470 bool need_unref = controller.GetTaskForImageAndRef( 470 bool need_unref = controller.GetTaskForImageAndRef(
471 first_draw_image, prepare_tiles_id, &first_task); 471 first_draw_image, prepare_tiles_id, &first_task);
472 EXPECT_TRUE(need_unref); 472 EXPECT_TRUE(need_unref);
473 EXPECT_TRUE(first_task); 473 EXPECT_TRUE(first_task);
474 474
475 skia::RefPtr<SkImage> second_image = CreateImage(100, 100); 475 skia::RefPtr<SkImage> second_image = CreateImage(100, 100);
476 DrawImage second_draw_image( 476 DrawImage second_draw_image(
477 second_image.get(), 477 second_image.get(),
478 SkIRect::MakeWH(second_image->width(), second_image->height()), quality, 478 SkIRect::MakeWH(second_image->width(), second_image->height()), quality,
479 CreateMatrix(SkSize::Make(0.25f, 0.25f), is_decomposable)); 479 CreateMatrix(SkSize::Make(0.25f, 0.25f), is_decomposable));
480 scoped_refptr<ImageDecodeTask> second_task; 480 scoped_refptr<Task> second_task;
481 need_unref = controller.GetTaskForImageAndRef(second_draw_image, 481 need_unref = controller.GetTaskForImageAndRef(second_draw_image,
482 prepare_tiles_id, &second_task); 482 prepare_tiles_id, &second_task);
483 EXPECT_TRUE(need_unref); 483 EXPECT_TRUE(need_unref);
484 EXPECT_TRUE(second_task); 484 EXPECT_TRUE(second_task);
485 EXPECT_TRUE(first_task.get() != second_task.get()); 485 EXPECT_TRUE(first_task.get() != second_task.get());
486 486
487 controller.UnrefImage(first_draw_image); 487 controller.UnrefImage(first_draw_image);
488 controller.UnrefImage(second_draw_image); 488 controller.UnrefImage(second_draw_image);
489 } 489 }
490 490
491 TEST(SoftwareImageDecodeControllerTest, GetTaskForImageAlreadyDecoded) { 491 TEST(SoftwareImageDecodeControllerTest, GetTaskForImageAlreadyDecoded) {
492 SoftwareImageDecodeController controller; 492 SoftwareImageDecodeController controller;
493 bool is_decomposable = true; 493 bool is_decomposable = true;
494 uint64_t prepare_tiles_id = 1; 494 uint64_t prepare_tiles_id = 1;
495 SkFilterQuality quality = kHigh_SkFilterQuality; 495 SkFilterQuality quality = kHigh_SkFilterQuality;
496 496
497 skia::RefPtr<SkImage> image = CreateImage(100, 100); 497 skia::RefPtr<SkImage> image = CreateImage(100, 100);
498 DrawImage draw_image( 498 DrawImage draw_image(
499 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality, 499 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
500 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); 500 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
501 scoped_refptr<ImageDecodeTask> task; 501 scoped_refptr<Task> task;
502 bool need_unref = 502 bool need_unref =
503 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task); 503 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
504 EXPECT_TRUE(need_unref); 504 EXPECT_TRUE(need_unref);
505 EXPECT_TRUE(task); 505 EXPECT_TRUE(task);
506 506
507 task->RunOnWorkerThread(); 507 task->RunOnWorkerThread();
508 508
509 scoped_refptr<ImageDecodeTask> another_task; 509 scoped_refptr<Task> another_task;
510 need_unref = controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, 510 need_unref = controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id,
511 &another_task); 511 &another_task);
512 EXPECT_TRUE(need_unref); 512 EXPECT_TRUE(need_unref);
513 EXPECT_FALSE(another_task); 513 EXPECT_FALSE(another_task);
514 514
515 controller.ImageDecodeTaskCompleted(task.get()); 515 controller.ImageDecodeTaskCompleted(task.get());
516 task->DidComplete(); 516 task->DidComplete();
517 517
518 controller.UnrefImage(draw_image); 518 controller.UnrefImage(draw_image);
519 controller.UnrefImage(draw_image); 519 controller.UnrefImage(draw_image);
520 } 520 }
521 521
522 TEST(SoftwareImageDecodeControllerTest, GetTaskForImageAlreadyPrerolled) { 522 TEST(SoftwareImageDecodeControllerTest, GetTaskForImageAlreadyPrerolled) {
523 SoftwareImageDecodeController controller; 523 SoftwareImageDecodeController controller;
524 bool is_decomposable = true; 524 bool is_decomposable = true;
525 uint64_t prepare_tiles_id = 1; 525 uint64_t prepare_tiles_id = 1;
526 SkFilterQuality quality = kLow_SkFilterQuality; 526 SkFilterQuality quality = kLow_SkFilterQuality;
527 527
528 skia::RefPtr<SkImage> image = CreateImage(100, 100); 528 skia::RefPtr<SkImage> image = CreateImage(100, 100);
529 DrawImage draw_image( 529 DrawImage draw_image(
530 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality, 530 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
531 CreateMatrix(SkSize::Make(1.f, 1.f), is_decomposable)); 531 CreateMatrix(SkSize::Make(1.f, 1.f), is_decomposable));
532 scoped_refptr<ImageDecodeTask> task; 532 scoped_refptr<Task> task;
533 bool need_unref = 533 bool need_unref =
534 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task); 534 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
535 EXPECT_TRUE(need_unref); 535 EXPECT_TRUE(need_unref);
536 EXPECT_TRUE(task); 536 EXPECT_TRUE(task);
537 537
538 task->RunOnWorkerThread(); 538 task->RunOnWorkerThread();
539 539
540 scoped_refptr<ImageDecodeTask> another_task; 540 scoped_refptr<Task> another_task;
541 need_unref = controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, 541 need_unref = controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id,
542 &another_task); 542 &another_task);
543 EXPECT_TRUE(need_unref); 543 EXPECT_TRUE(need_unref);
544 EXPECT_FALSE(another_task); 544 EXPECT_FALSE(another_task);
545 545
546 controller.ImageDecodeTaskCompleted(task.get()); 546 controller.ImageDecodeTaskCompleted(task.get());
547 task->DidComplete(); 547 task->DidComplete();
548 548
549 scoped_refptr<ImageDecodeTask> third_task; 549 scoped_refptr<Task> third_task;
550 need_unref = controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, 550 need_unref = controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id,
551 &third_task); 551 &third_task);
552 EXPECT_TRUE(need_unref); 552 EXPECT_TRUE(need_unref);
553 EXPECT_FALSE(third_task); 553 EXPECT_FALSE(third_task);
554 554
555 controller.UnrefImage(draw_image); 555 controller.UnrefImage(draw_image);
556 controller.UnrefImage(draw_image); 556 controller.UnrefImage(draw_image);
557 controller.UnrefImage(draw_image); 557 controller.UnrefImage(draw_image);
558 } 558 }
559 559
560 TEST(SoftwareImageDecodeControllerTest, GetTaskForImageCanceledGetsNewTask) { 560 TEST(SoftwareImageDecodeControllerTest, GetTaskForImageCanceledGetsNewTask) {
561 SoftwareImageDecodeController controller; 561 SoftwareImageDecodeController controller;
562 bool is_decomposable = true; 562 bool is_decomposable = true;
563 uint64_t prepare_tiles_id = 1; 563 uint64_t prepare_tiles_id = 1;
564 SkFilterQuality quality = kHigh_SkFilterQuality; 564 SkFilterQuality quality = kHigh_SkFilterQuality;
565 565
566 skia::RefPtr<SkImage> image = CreateImage(100, 100); 566 skia::RefPtr<SkImage> image = CreateImage(100, 100);
567 DrawImage draw_image( 567 DrawImage draw_image(
568 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality, 568 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
569 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); 569 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
570 scoped_refptr<ImageDecodeTask> task; 570 scoped_refptr<Task> task;
571 bool need_unref = 571 bool need_unref =
572 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task); 572 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
573 EXPECT_TRUE(need_unref); 573 EXPECT_TRUE(need_unref);
574 EXPECT_TRUE(task); 574 EXPECT_TRUE(task);
575 scoped_refptr<ImageDecodeTask> another_task; 575 scoped_refptr<Task> another_task;
576 need_unref = controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, 576 need_unref = controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id,
577 &another_task); 577 &another_task);
578 EXPECT_TRUE(need_unref); 578 EXPECT_TRUE(need_unref);
579 EXPECT_TRUE(another_task.get() == task.get()); 579 EXPECT_TRUE(another_task.get() == task.get());
580 580
581 // Didn't run the task, complete it (it was canceled). 581 // Didn't run the task, complete it (it was canceled).
582 controller.ImageDecodeTaskCompleted(task.get()); 582 controller.ImageDecodeTaskCompleted(task.get());
583 task->DidComplete(); 583 task->DidComplete();
584 584
585 // Fully cancel everything (so the raster would unref things). 585 // Fully cancel everything (so the raster would unref things).
586 controller.UnrefImage(draw_image); 586 controller.UnrefImage(draw_image);
587 controller.UnrefImage(draw_image); 587 controller.UnrefImage(draw_image);
588 588
589 // Here a new task is created. 589 // Here a new task is created.
590 scoped_refptr<ImageDecodeTask> third_task; 590 scoped_refptr<Task> third_task;
591 need_unref = controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, 591 need_unref = controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id,
592 &third_task); 592 &third_task);
593 EXPECT_TRUE(need_unref); 593 EXPECT_TRUE(need_unref);
594 EXPECT_TRUE(third_task); 594 EXPECT_TRUE(third_task);
595 EXPECT_FALSE(third_task.get() == task.get()); 595 EXPECT_FALSE(third_task.get() == task.get());
596 596
597 controller.UnrefImage(draw_image); 597 controller.UnrefImage(draw_image);
598 } 598 }
599 599
600 TEST(SoftwareImageDecodeControllerTest, 600 TEST(SoftwareImageDecodeControllerTest,
601 GetTaskForImageCanceledWhileReffedGetsNewTask) { 601 GetTaskForImageCanceledWhileReffedGetsNewTask) {
602 SoftwareImageDecodeController controller; 602 SoftwareImageDecodeController controller;
603 bool is_decomposable = true; 603 bool is_decomposable = true;
604 uint64_t prepare_tiles_id = 1; 604 uint64_t prepare_tiles_id = 1;
605 SkFilterQuality quality = kHigh_SkFilterQuality; 605 SkFilterQuality quality = kHigh_SkFilterQuality;
606 606
607 skia::RefPtr<SkImage> image = CreateImage(100, 100); 607 skia::RefPtr<SkImage> image = CreateImage(100, 100);
608 DrawImage draw_image( 608 DrawImage draw_image(
609 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality, 609 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
610 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); 610 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
611 scoped_refptr<ImageDecodeTask> task; 611 scoped_refptr<Task> task;
612 bool need_unref = 612 bool need_unref =
613 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task); 613 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
614 EXPECT_TRUE(need_unref); 614 EXPECT_TRUE(need_unref);
615 EXPECT_TRUE(task); 615 EXPECT_TRUE(task);
616 616
617 scoped_refptr<ImageDecodeTask> another_task; 617 scoped_refptr<Task> another_task;
618 need_unref = controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, 618 need_unref = controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id,
619 &another_task); 619 &another_task);
620 EXPECT_TRUE(need_unref); 620 EXPECT_TRUE(need_unref);
621 EXPECT_TRUE(another_task.get() == task.get()); 621 EXPECT_TRUE(another_task.get() == task.get());
622 622
623 // Didn't run the task, complete it (it was canceled). 623 // Didn't run the task, complete it (it was canceled).
624 controller.ImageDecodeTaskCompleted(task.get()); 624 controller.ImageDecodeTaskCompleted(task.get());
625 task->DidComplete(); 625 task->DidComplete();
626 626
627 // Note that here, everything is reffed, but a new task is created. This is 627 // Note that here, everything is reffed, but a new task is created. This is
628 // possible with repeated schedule/cancel operations. 628 // possible with repeated schedule/cancel operations.
629 scoped_refptr<ImageDecodeTask> third_task; 629 scoped_refptr<Task> third_task;
630 need_unref = controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, 630 need_unref = controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id,
631 &third_task); 631 &third_task);
632 EXPECT_TRUE(need_unref); 632 EXPECT_TRUE(need_unref);
633 EXPECT_TRUE(third_task); 633 EXPECT_TRUE(third_task);
634 EXPECT_FALSE(third_task.get() == task.get()); 634 EXPECT_FALSE(third_task.get() == task.get());
635 635
636 // 3 Unrefs! 636 // 3 Unrefs!
637 controller.UnrefImage(draw_image); 637 controller.UnrefImage(draw_image);
638 controller.UnrefImage(draw_image); 638 controller.UnrefImage(draw_image);
639 controller.UnrefImage(draw_image); 639 controller.UnrefImage(draw_image);
640 } 640 }
641 641
642 TEST(SoftwareImageDecodeControllerTest, GetDecodedImageForDraw) { 642 TEST(SoftwareImageDecodeControllerTest, GetDecodedImageForDraw) {
643 SoftwareImageDecodeController controller; 643 SoftwareImageDecodeController controller;
644 bool is_decomposable = true; 644 bool is_decomposable = true;
645 uint64_t prepare_tiles_id = 1; 645 uint64_t prepare_tiles_id = 1;
646 SkFilterQuality quality = kHigh_SkFilterQuality; 646 SkFilterQuality quality = kHigh_SkFilterQuality;
647 647
648 skia::RefPtr<SkImage> image = CreateImage(100, 100); 648 skia::RefPtr<SkImage> image = CreateImage(100, 100);
649 DrawImage draw_image( 649 DrawImage draw_image(
650 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality, 650 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
651 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); 651 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
652 scoped_refptr<ImageDecodeTask> task; 652 scoped_refptr<Task> task;
653 bool need_unref = 653 bool need_unref =
654 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task); 654 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
655 EXPECT_TRUE(need_unref); 655 EXPECT_TRUE(need_unref);
656 EXPECT_TRUE(task); 656 EXPECT_TRUE(task);
657 657
658 task->RunOnWorkerThread(); 658 task->RunOnWorkerThread();
659 659
660 controller.ImageDecodeTaskCompleted(task.get()); 660 controller.ImageDecodeTaskCompleted(task.get());
661 task->DidComplete(); 661 task->DidComplete();
662 662
(...skipping 16 matching lines...) Expand all
679 GetDecodedImageForDrawWithNonContainedSrcRect) { 679 GetDecodedImageForDrawWithNonContainedSrcRect) {
680 SoftwareImageDecodeController controller; 680 SoftwareImageDecodeController controller;
681 bool is_decomposable = true; 681 bool is_decomposable = true;
682 uint64_t prepare_tiles_id = 1; 682 uint64_t prepare_tiles_id = 1;
683 SkFilterQuality quality = kHigh_SkFilterQuality; 683 SkFilterQuality quality = kHigh_SkFilterQuality;
684 684
685 skia::RefPtr<SkImage> image = CreateImage(100, 100); 685 skia::RefPtr<SkImage> image = CreateImage(100, 100);
686 DrawImage draw_image( 686 DrawImage draw_image(
687 image.get(), SkIRect::MakeXYWH(20, 30, image->width(), image->height()), 687 image.get(), SkIRect::MakeXYWH(20, 30, image->width(), image->height()),
688 quality, CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); 688 quality, CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
689 scoped_refptr<ImageDecodeTask> task; 689 scoped_refptr<Task> task;
690 bool need_unref = 690 bool need_unref =
691 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task); 691 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
692 EXPECT_TRUE(need_unref); 692 EXPECT_TRUE(need_unref);
693 EXPECT_TRUE(task); 693 EXPECT_TRUE(task);
694 694
695 task->RunOnWorkerThread(); 695 task->RunOnWorkerThread();
696 696
697 controller.ImageDecodeTaskCompleted(task.get()); 697 controller.ImageDecodeTaskCompleted(task.get());
698 task->DidComplete(); 698 task->DidComplete();
699 699
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
783 controller.GetDecodedImageForDraw(draw_image); 783 controller.GetDecodedImageForDraw(draw_image);
784 EXPECT_TRUE(decoded_draw_image.image()); 784 EXPECT_TRUE(decoded_draw_image.image());
785 EXPECT_EQ(50, decoded_draw_image.image()->width()); 785 EXPECT_EQ(50, decoded_draw_image.image()->width());
786 EXPECT_EQ(50, decoded_draw_image.image()->height()); 786 EXPECT_EQ(50, decoded_draw_image.image()->height());
787 EXPECT_FLOAT_EQ(0.5f, decoded_draw_image.scale_adjustment().width()); 787 EXPECT_FLOAT_EQ(0.5f, decoded_draw_image.scale_adjustment().width());
788 EXPECT_FLOAT_EQ(0.5f, decoded_draw_image.scale_adjustment().height()); 788 EXPECT_FLOAT_EQ(0.5f, decoded_draw_image.scale_adjustment().height());
789 EXPECT_EQ(kLow_SkFilterQuality, decoded_draw_image.filter_quality()); 789 EXPECT_EQ(kLow_SkFilterQuality, decoded_draw_image.filter_quality());
790 EXPECT_FALSE(decoded_draw_image.is_scale_adjustment_identity()); 790 EXPECT_FALSE(decoded_draw_image.is_scale_adjustment_identity());
791 EXPECT_TRUE(decoded_draw_image.is_at_raster_decode()); 791 EXPECT_TRUE(decoded_draw_image.is_at_raster_decode());
792 792
793 scoped_refptr<ImageDecodeTask> task; 793 scoped_refptr<Task> task;
794 bool need_unref = 794 bool need_unref =
795 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task); 795 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
796 EXPECT_TRUE(need_unref); 796 EXPECT_TRUE(need_unref);
797 EXPECT_TRUE(task); 797 EXPECT_TRUE(task);
798 798
799 task->RunOnWorkerThread(); 799 task->RunOnWorkerThread();
800 800
801 controller.ImageDecodeTaskCompleted(task.get()); 801 controller.ImageDecodeTaskCompleted(task.get());
802 task->DidComplete(); 802 task->DidComplete();
803 803
(...skipping 28 matching lines...) Expand all
832 controller.GetDecodedImageForDraw(draw_image); 832 controller.GetDecodedImageForDraw(draw_image);
833 EXPECT_TRUE(decoded_draw_image.image()); 833 EXPECT_TRUE(decoded_draw_image.image());
834 EXPECT_EQ(50, decoded_draw_image.image()->width()); 834 EXPECT_EQ(50, decoded_draw_image.image()->width());
835 EXPECT_EQ(50, decoded_draw_image.image()->height()); 835 EXPECT_EQ(50, decoded_draw_image.image()->height());
836 EXPECT_FLOAT_EQ(0.5f, decoded_draw_image.scale_adjustment().width()); 836 EXPECT_FLOAT_EQ(0.5f, decoded_draw_image.scale_adjustment().width());
837 EXPECT_FLOAT_EQ(0.5f, decoded_draw_image.scale_adjustment().height()); 837 EXPECT_FLOAT_EQ(0.5f, decoded_draw_image.scale_adjustment().height());
838 EXPECT_EQ(kLow_SkFilterQuality, decoded_draw_image.filter_quality()); 838 EXPECT_EQ(kLow_SkFilterQuality, decoded_draw_image.filter_quality());
839 EXPECT_FALSE(decoded_draw_image.is_scale_adjustment_identity()); 839 EXPECT_FALSE(decoded_draw_image.is_scale_adjustment_identity());
840 EXPECT_TRUE(decoded_draw_image.is_at_raster_decode()); 840 EXPECT_TRUE(decoded_draw_image.is_at_raster_decode());
841 841
842 scoped_refptr<ImageDecodeTask> task; 842 scoped_refptr<Task> task;
843 bool need_unref = 843 bool need_unref =
844 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task); 844 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
845 EXPECT_TRUE(need_unref); 845 EXPECT_TRUE(need_unref);
846 EXPECT_TRUE(task); 846 EXPECT_TRUE(task);
847 847
848 // If we finish the draw here, then we will use it for the locked decode 848 // If we finish the draw here, then we will use it for the locked decode
849 // instead of decoding again. 849 // instead of decoding again.
850 controller.DrawWithImageFinished(draw_image, decoded_draw_image); 850 controller.DrawWithImageFinished(draw_image, decoded_draw_image);
851 851
852 task->RunOnWorkerThread(); 852 task->RunOnWorkerThread();
(...skipping 17 matching lines...) Expand all
870 SoftwareImageDecodeController controller; 870 SoftwareImageDecodeController controller;
871 bool is_decomposable = true; 871 bool is_decomposable = true;
872 uint64_t prepare_tiles_id = 1; 872 uint64_t prepare_tiles_id = 1;
873 SkFilterQuality quality = kHigh_SkFilterQuality; 873 SkFilterQuality quality = kHigh_SkFilterQuality;
874 874
875 skia::RefPtr<SkImage> image = CreateImage(100, 100); 875 skia::RefPtr<SkImage> image = CreateImage(100, 100);
876 DrawImage draw_image( 876 DrawImage draw_image(
877 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality, 877 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
878 CreateMatrix(SkSize::Make(0.f, 0.f), is_decomposable)); 878 CreateMatrix(SkSize::Make(0.f, 0.f), is_decomposable));
879 879
880 scoped_refptr<ImageDecodeTask> task; 880 scoped_refptr<Task> task;
881 bool need_unref = 881 bool need_unref =
882 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task); 882 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
883 EXPECT_FALSE(task); 883 EXPECT_FALSE(task);
884 EXPECT_FALSE(need_unref); 884 EXPECT_FALSE(need_unref);
885 885
886 DecodedDrawImage decoded_draw_image = 886 DecodedDrawImage decoded_draw_image =
887 controller.GetDecodedImageForDraw(draw_image); 887 controller.GetDecodedImageForDraw(draw_image);
888 EXPECT_FALSE(decoded_draw_image.image()); 888 EXPECT_FALSE(decoded_draw_image.image());
889 889
890 controller.DrawWithImageFinished(draw_image, decoded_draw_image); 890 controller.DrawWithImageFinished(draw_image, decoded_draw_image);
891 } 891 }
892 892
893 TEST(SoftwareImageDecodeControllerTest, NonOverlappingSrcRectImagesAreSkipped) { 893 TEST(SoftwareImageDecodeControllerTest, NonOverlappingSrcRectImagesAreSkipped) {
894 SoftwareImageDecodeController controller; 894 SoftwareImageDecodeController controller;
895 bool is_decomposable = true; 895 bool is_decomposable = true;
896 uint64_t prepare_tiles_id = 1; 896 uint64_t prepare_tiles_id = 1;
897 SkFilterQuality quality = kHigh_SkFilterQuality; 897 SkFilterQuality quality = kHigh_SkFilterQuality;
898 898
899 skia::RefPtr<SkImage> image = CreateImage(100, 100); 899 skia::RefPtr<SkImage> image = CreateImage(100, 100);
900 DrawImage draw_image( 900 DrawImage draw_image(
901 image.get(), SkIRect::MakeXYWH(150, 150, image->width(), image->height()), 901 image.get(), SkIRect::MakeXYWH(150, 150, image->width(), image->height()),
902 quality, CreateMatrix(SkSize::Make(1.f, 1.f), is_decomposable)); 902 quality, CreateMatrix(SkSize::Make(1.f, 1.f), is_decomposable));
903 903
904 scoped_refptr<ImageDecodeTask> task; 904 scoped_refptr<Task> task;
905 bool need_unref = 905 bool need_unref =
906 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task); 906 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
907 EXPECT_FALSE(task); 907 EXPECT_FALSE(task);
908 EXPECT_FALSE(need_unref); 908 EXPECT_FALSE(need_unref);
909 909
910 DecodedDrawImage decoded_draw_image = 910 DecodedDrawImage decoded_draw_image =
911 controller.GetDecodedImageForDraw(draw_image); 911 controller.GetDecodedImageForDraw(draw_image);
912 EXPECT_FALSE(decoded_draw_image.image()); 912 EXPECT_FALSE(decoded_draw_image.image());
913 913
914 controller.DrawWithImageFinished(draw_image, decoded_draw_image); 914 controller.DrawWithImageFinished(draw_image, decoded_draw_image);
915 } 915 }
916 916
917 TEST(SoftwareImageDecodeControllerTest, LowQualityFilterIsHandled) { 917 TEST(SoftwareImageDecodeControllerTest, LowQualityFilterIsHandled) {
918 SoftwareImageDecodeController controller; 918 SoftwareImageDecodeController controller;
919 bool is_decomposable = true; 919 bool is_decomposable = true;
920 uint64_t prepare_tiles_id = 1; 920 uint64_t prepare_tiles_id = 1;
921 SkFilterQuality quality = kLow_SkFilterQuality; 921 SkFilterQuality quality = kLow_SkFilterQuality;
922 922
923 skia::RefPtr<SkImage> image = CreateImage(100, 100); 923 skia::RefPtr<SkImage> image = CreateImage(100, 100);
924 DrawImage draw_image( 924 DrawImage draw_image(
925 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality, 925 image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
926 CreateMatrix(SkSize::Make(1.f, 1.f), is_decomposable)); 926 CreateMatrix(SkSize::Make(1.f, 1.f), is_decomposable));
927 927
928 scoped_refptr<ImageDecodeTask> task; 928 scoped_refptr<Task> task;
929 bool need_unref = 929 bool need_unref =
930 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task); 930 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
931 EXPECT_TRUE(task); 931 EXPECT_TRUE(task);
932 EXPECT_TRUE(need_unref); 932 EXPECT_TRUE(need_unref);
933 933
934 DecodedDrawImage decoded_draw_image = 934 DecodedDrawImage decoded_draw_image =
935 controller.GetDecodedImageForDraw(draw_image); 935 controller.GetDecodedImageForDraw(draw_image);
936 EXPECT_TRUE(decoded_draw_image.image()); 936 EXPECT_TRUE(decoded_draw_image.image());
937 // If we decoded the image and cached it, it would be stored in a different 937 // If we decoded the image and cached it, it would be stored in a different
938 // SkImage object. 938 // SkImage object.
939 EXPECT_TRUE(decoded_draw_image.image() != image.get()); 939 EXPECT_TRUE(decoded_draw_image.image() != image.get());
940 940
941 controller.DrawWithImageFinished(draw_image, decoded_draw_image); 941 controller.DrawWithImageFinished(draw_image, decoded_draw_image);
942 controller.UnrefImage(draw_image); 942 controller.UnrefImage(draw_image);
943 } 943 }
944 944
945 TEST(SoftwareImageDecodeControllerTest, LowQualityScaledSubrectIsHandled) { 945 TEST(SoftwareImageDecodeControllerTest, LowQualityScaledSubrectIsHandled) {
946 SoftwareImageDecodeController controller; 946 SoftwareImageDecodeController controller;
947 bool is_decomposable = true; 947 bool is_decomposable = true;
948 uint64_t prepare_tiles_id = 1; 948 uint64_t prepare_tiles_id = 1;
949 SkFilterQuality quality = kLow_SkFilterQuality; 949 SkFilterQuality quality = kLow_SkFilterQuality;
950 950
951 skia::RefPtr<SkImage> image = CreateImage(100, 100); 951 skia::RefPtr<SkImage> image = CreateImage(100, 100);
952 DrawImage draw_image(image.get(), SkIRect::MakeXYWH(10, 10, 80, 80), quality, 952 DrawImage draw_image(image.get(), SkIRect::MakeXYWH(10, 10, 80, 80), quality,
953 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); 953 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
954 954
955 scoped_refptr<ImageDecodeTask> task; 955 scoped_refptr<Task> task;
956 bool need_unref = 956 bool need_unref =
957 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task); 957 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
958 EXPECT_TRUE(task); 958 EXPECT_TRUE(task);
959 EXPECT_TRUE(need_unref); 959 EXPECT_TRUE(need_unref);
960 960
961 DecodedDrawImage decoded_draw_image = 961 DecodedDrawImage decoded_draw_image =
962 controller.GetDecodedImageForDraw(draw_image); 962 controller.GetDecodedImageForDraw(draw_image);
963 EXPECT_TRUE(decoded_draw_image.image()); 963 EXPECT_TRUE(decoded_draw_image.image());
964 // If we decoded the image and cached it, it would be stored in a different 964 // If we decoded the image and cached it, it would be stored in a different
965 // SkImage object. 965 // SkImage object.
966 EXPECT_TRUE(decoded_draw_image.image() != image.get()); 966 EXPECT_TRUE(decoded_draw_image.image() != image.get());
967 EXPECT_EQ(kLow_SkFilterQuality, decoded_draw_image.filter_quality()); 967 EXPECT_EQ(kLow_SkFilterQuality, decoded_draw_image.filter_quality());
968 EXPECT_TRUE(decoded_draw_image.is_scale_adjustment_identity()); 968 EXPECT_TRUE(decoded_draw_image.is_scale_adjustment_identity());
969 969
970 controller.DrawWithImageFinished(draw_image, decoded_draw_image); 970 controller.DrawWithImageFinished(draw_image, decoded_draw_image);
971 controller.UnrefImage(draw_image); 971 controller.UnrefImage(draw_image);
972 } 972 }
973 973
974 TEST(SoftwareImageDecodeControllerTest, NoneQualityScaledSubrectIsHandled) { 974 TEST(SoftwareImageDecodeControllerTest, NoneQualityScaledSubrectIsHandled) {
975 SoftwareImageDecodeController controller; 975 SoftwareImageDecodeController controller;
976 bool is_decomposable = true; 976 bool is_decomposable = true;
977 uint64_t prepare_tiles_id = 1; 977 uint64_t prepare_tiles_id = 1;
978 SkFilterQuality quality = kNone_SkFilterQuality; 978 SkFilterQuality quality = kNone_SkFilterQuality;
979 979
980 skia::RefPtr<SkImage> image = CreateImage(100, 100); 980 skia::RefPtr<SkImage> image = CreateImage(100, 100);
981 DrawImage draw_image(image.get(), SkIRect::MakeXYWH(10, 10, 80, 80), quality, 981 DrawImage draw_image(image.get(), SkIRect::MakeXYWH(10, 10, 80, 80), quality,
982 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); 982 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
983 983
984 scoped_refptr<ImageDecodeTask> task; 984 scoped_refptr<Task> task;
985 bool need_unref = 985 bool need_unref =
986 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task); 986 controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
987 EXPECT_TRUE(task); 987 EXPECT_TRUE(task);
988 EXPECT_TRUE(need_unref); 988 EXPECT_TRUE(need_unref);
989 989
990 DecodedDrawImage decoded_draw_image = 990 DecodedDrawImage decoded_draw_image =
991 controller.GetDecodedImageForDraw(draw_image); 991 controller.GetDecodedImageForDraw(draw_image);
992 EXPECT_TRUE(decoded_draw_image.image()); 992 EXPECT_TRUE(decoded_draw_image.image());
993 // If we decoded the image and cached it, it would be stored in a different 993 // If we decoded the image and cached it, it would be stored in a different
994 // SkImage object. 994 // SkImage object.
995 EXPECT_TRUE(decoded_draw_image.image() != image.get()); 995 EXPECT_TRUE(decoded_draw_image.image() != image.get());
996 EXPECT_EQ(kNone_SkFilterQuality, decoded_draw_image.filter_quality()); 996 EXPECT_EQ(kNone_SkFilterQuality, decoded_draw_image.filter_quality());
997 EXPECT_TRUE(decoded_draw_image.is_scale_adjustment_identity()); 997 EXPECT_TRUE(decoded_draw_image.is_scale_adjustment_identity());
998 998
999 controller.DrawWithImageFinished(draw_image, decoded_draw_image); 999 controller.DrawWithImageFinished(draw_image, decoded_draw_image);
1000 controller.UnrefImage(draw_image); 1000 controller.UnrefImage(draw_image);
1001 } 1001 }
1002 } // namespace 1002 } // namespace
1003 } // namespace cc 1003 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698