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

Side by Side Diff: third_party/WebKit/Source/core/frame/ImageBitmapTest.cpp

Issue 2893243003: color: Add ColorCanvasExtensions runtime flag (Closed)
Patch Set: Update webkit_unit_tests to use new flags Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * 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 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 68
69 // Save the global memory cache to restore it upon teardown. 69 // Save the global memory cache to restore it upon teardown.
70 global_memory_cache_ = ReplaceMemoryCacheForTesting(MemoryCache::Create()); 70 global_memory_cache_ = ReplaceMemoryCacheForTesting(MemoryCache::Create());
71 71
72 // Save the state of experimental canvas features and color correct 72 // Save the state of experimental canvas features and color correct
73 // rendering flags to restore them on teardown. 73 // rendering flags to restore them on teardown.
74 experimental_canvas_features = 74 experimental_canvas_features =
75 RuntimeEnabledFeatures::experimentalCanvasFeaturesEnabled(); 75 RuntimeEnabledFeatures::experimentalCanvasFeaturesEnabled();
76 color_correct_rendering = 76 color_correct_rendering =
77 RuntimeEnabledFeatures::colorCorrectRenderingEnabled(); 77 RuntimeEnabledFeatures::colorCorrectRenderingEnabled();
78 color_correct_rendering_default_mode = 78 color_canvas_extensions =
79 RuntimeEnabledFeatures::colorCorrectRenderingDefaultModeEnabled(); 79 RuntimeEnabledFeatures::colorCanvasExtensionsEnabled();
80 } 80 }
81 virtual void TearDown() { 81 virtual void TearDown() {
82 // Garbage collection is required prior to switching out the 82 // Garbage collection is required prior to switching out the
83 // test's memory cache; image resources are released, evicting 83 // test's memory cache; image resources are released, evicting
84 // them from the cache. 84 // them from the cache.
85 ThreadState::Current()->CollectGarbage(BlinkGC::kNoHeapPointersOnStack, 85 ThreadState::Current()->CollectGarbage(BlinkGC::kNoHeapPointersOnStack,
86 BlinkGC::kGCWithSweep, 86 BlinkGC::kGCWithSweep,
87 BlinkGC::kForcedGC); 87 BlinkGC::kForcedGC);
88 88
89 ReplaceMemoryCacheForTesting(global_memory_cache_.Release()); 89 ReplaceMemoryCacheForTesting(global_memory_cache_.Release());
90 RuntimeEnabledFeatures::setExperimentalCanvasFeaturesEnabled( 90 RuntimeEnabledFeatures::setExperimentalCanvasFeaturesEnabled(
91 experimental_canvas_features); 91 experimental_canvas_features);
92 RuntimeEnabledFeatures::setColorCorrectRenderingEnabled( 92 RuntimeEnabledFeatures::setColorCorrectRenderingEnabled(
93 color_correct_rendering); 93 color_correct_rendering);
94 RuntimeEnabledFeatures::setColorCorrectRenderingDefaultModeEnabled( 94 RuntimeEnabledFeatures::setColorCanvasExtensionsEnabled(
95 color_correct_rendering_default_mode); 95 color_canvas_extensions);
96 } 96 }
97 97
98 sk_sp<SkImage> image_, image2_; 98 sk_sp<SkImage> image_, image2_;
99 Persistent<MemoryCache> global_memory_cache_; 99 Persistent<MemoryCache> global_memory_cache_;
100 bool experimental_canvas_features; 100 bool experimental_canvas_features;
101 bool color_correct_rendering; 101 bool color_correct_rendering;
102 bool color_correct_rendering_default_mode; 102 bool color_canvas_extensions;
103 }; 103 };
104 104
105 TEST_F(ImageBitmapTest, ImageResourceConsistency) { 105 TEST_F(ImageBitmapTest, ImageResourceConsistency) {
106 RuntimeEnabledFeatures::setColorCanvasExtensionsEnabled(true);
106 const ImageBitmapOptions default_options; 107 const ImageBitmapOptions default_options;
107 HTMLImageElement* image_element = 108 HTMLImageElement* image_element =
108 HTMLImageElement::Create(*Document::Create()); 109 HTMLImageElement::Create(*Document::Create());
109 ImageResourceContent* image = ImageResourceContent::CreateLoaded( 110 ImageResourceContent* image = ImageResourceContent::CreateLoaded(
110 StaticBitmapImage::Create(image_).Get()); 111 StaticBitmapImage::Create(image_).Get());
111 image_element->SetImageForTest(image); 112 image_element->SetImageForTest(image);
112 113
113 Optional<IntRect> crop_rect = 114 Optional<IntRect> crop_rect =
114 IntRect(0, 0, image_->width(), image_->height()); 115 IntRect(0, 0, image_->width(), image_->height());
115 ImageBitmap* image_bitmap_no_crop = 116 ImageBitmap* image_bitmap_no_crop =
(...skipping 24 matching lines...) Expand all
140 141
141 RefPtr<StaticBitmapImage> empty_image = 142 RefPtr<StaticBitmapImage> empty_image =
142 image_bitmap_outside_crop->BitmapImage(); 143 image_bitmap_outside_crop->BitmapImage();
143 ASSERT_NE(empty_image->ImageForCurrentFrame(), 144 ASSERT_NE(empty_image->ImageForCurrentFrame(),
144 image_element->CachedImage()->GetImage()->ImageForCurrentFrame()); 145 image_element->CachedImage()->GetImage()->ImageForCurrentFrame());
145 } 146 }
146 147
147 // Verifies that ImageBitmaps constructed from HTMLImageElements hold a 148 // Verifies that ImageBitmaps constructed from HTMLImageElements hold a
148 // reference to the original Image if the HTMLImageElement src is changed. 149 // reference to the original Image if the HTMLImageElement src is changed.
149 TEST_F(ImageBitmapTest, ImageBitmapSourceChanged) { 150 TEST_F(ImageBitmapTest, ImageBitmapSourceChanged) {
151 RuntimeEnabledFeatures::setColorCanvasExtensionsEnabled(true);
150 HTMLImageElement* image = HTMLImageElement::Create(*Document::Create()); 152 HTMLImageElement* image = HTMLImageElement::Create(*Document::Create());
151 ImageResourceContent* original_image_resource = 153 ImageResourceContent* original_image_resource =
152 ImageResourceContent::CreateLoaded( 154 ImageResourceContent::CreateLoaded(
153 StaticBitmapImage::Create(image_).Get()); 155 StaticBitmapImage::Create(image_).Get());
154 image->SetImageForTest(original_image_resource); 156 image->SetImageForTest(original_image_resource);
155 157
156 const ImageBitmapOptions default_options; 158 const ImageBitmapOptions default_options;
157 Optional<IntRect> crop_rect = 159 Optional<IntRect> crop_rect =
158 IntRect(0, 0, image_->width(), image_->height()); 160 IntRect(0, 0, image_->width(), image_->height());
159 ImageBitmap* image_bitmap = ImageBitmap::Create( 161 ImageBitmap* image_bitmap = ImageBitmap::Create(
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 static const Vector<String> kConversions = { 212 static const Vector<String> kConversions = {
211 "none", "default", "default", "srgb", "linear-rgb", "p3", "rec2020"}; 213 "none", "default", "default", "srgb", "linear-rgb", "p3", "rec2020"};
212 options.setColorSpaceConversion( 214 options.setColorSpaceConversion(
213 kConversions[static_cast<uint8_t>(color_space_conversion)]); 215 kConversions[static_cast<uint8_t>(color_space_conversion)]);
214 216
215 // Set the runtime flags 217 // Set the runtime flags
216 bool flag = (color_space_conversion != 218 bool flag = (color_space_conversion !=
217 ColorSpaceConversion::DEFAULT_NOT_COLOR_CORRECTED); 219 ColorSpaceConversion::DEFAULT_NOT_COLOR_CORRECTED);
218 RuntimeEnabledFeatures::setExperimentalCanvasFeaturesEnabled(true); 220 RuntimeEnabledFeatures::setExperimentalCanvasFeaturesEnabled(true);
219 RuntimeEnabledFeatures::setColorCorrectRenderingEnabled(flag); 221 RuntimeEnabledFeatures::setColorCorrectRenderingEnabled(flag);
220 RuntimeEnabledFeatures::setColorCorrectRenderingDefaultModeEnabled(!flag); 222 RuntimeEnabledFeatures::setColorCanvasExtensionsEnabled(true);
221 223
222 return options; 224 return options;
223 } 225 }
224 226
225 TEST_F(ImageBitmapTest, ImageBitmapColorSpaceConversionHTMLImageElement) { 227 TEST_F(ImageBitmapTest, ImageBitmapColorSpaceConversionHTMLImageElement) {
226 HTMLImageElement* image_element = 228 HTMLImageElement* image_element =
227 HTMLImageElement::Create(*Document::Create()); 229 HTMLImageElement::Create(*Document::Create());
228 230
229 SkPaint p; 231 SkPaint p;
230 p.setColor(SK_ColorRED); 232 p.setColor(SK_ColorRED);
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after
608 color_space_xform->apply(color_format, transformed_pixel.get(), 610 color_space_xform->apply(color_format, transformed_pixel.get(),
609 color_format32, src_pixel.get(), 1, 611 color_format32, src_pixel.get(), 1,
610 SkAlphaType::kUnpremul_SkAlphaType); 612 SkAlphaType::kUnpremul_SkAlphaType);
611 int compare = std::memcmp(converted_pixel.get(), transformed_pixel.get(), 613 int compare = std::memcmp(converted_pixel.get(), transformed_pixel.get(),
612 image_info.bytesPerPixel()); 614 image_info.bytesPerPixel());
613 ASSERT_EQ(compare, 0); 615 ASSERT_EQ(compare, 0);
614 } 616 }
615 } 617 }
616 618
617 } // namespace blink 619 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/frame/ImageBitmap.cpp ('k') | third_party/WebKit/Source/core/html/ImageData.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698