Commit 84f64acb authored by Reza.Zakerinasab's avatar Reza.Zakerinasab Committed by Commit Bot

Remove legacy-srgb from the code base

This change removes legacy-srgb mode from the code base.

Bug: 637288
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ibaee28da77fdc9e216cc055e74e6725255eebc29
Reviewed-on: https://chromium-review.googlesource.com/738534Reviewed-by: default avatarFernando Serboncini <fserb@chromium.org>
Reviewed-by: default avatarJeremy Roman <jbroman@chromium.org>
Reviewed-by: default avatarJustin Novosad <junov@chromium.org>
Commit-Queue: Mohammad Reza Zakerinasab <zakerinasab@chromium.org>
Cr-Commit-Position: refs/heads/master@{#512900}
parent 5d00e77a
......@@ -7,16 +7,13 @@
namespace blink {
SerializedColorParams::SerializedColorParams()
: color_space_(SerializedColorSpace::kLegacy),
: color_space_(SerializedColorSpace::kSRGB),
pixel_format_(SerializedPixelFormat::kRGBA8),
opacity_mode_(SerializedOpacityMode::kNonOpaque),
storage_format_(SerializedImageDataStorageFormat::kUint8Clamped) {}
SerializedColorParams::SerializedColorParams(CanvasColorParams color_params) {
switch (color_params.ColorSpace()) {
case kLegacyCanvasColorSpace:
color_space_ = SerializedColorSpace::kLegacy;
break;
case kSRGBCanvasColorSpace:
color_space_ = SerializedColorSpace::kSRGB;
break;
......@@ -74,11 +71,9 @@ SerializedColorParams::SerializedColorParams(
}
CanvasColorParams SerializedColorParams::GetCanvasColorParams() const {
CanvasColorSpace color_space = kLegacyCanvasColorSpace;
CanvasColorSpace color_space = kSRGBCanvasColorSpace;
switch (color_space_) {
case SerializedColorSpace::kLegacy:
color_space = kLegacyCanvasColorSpace;
break;
case SerializedColorSpace::kLegacyObsolete:
case SerializedColorSpace::kSRGB:
color_space = kSRGBCanvasColorSpace;
break;
......
......@@ -33,7 +33,11 @@ enum class ImageSerializationTag : uint32_t {
// This enumeration specifies the values used to serialize CanvasColorSpace.
enum class SerializedColorSpace : uint32_t {
kLegacy = 0,
// Legacy sRGB color space is deprecated as of M65. Objects in legacy color
// space will be serialized as sRGB since the legacy behavior is now merged
// with sRGB color space. Deserialized objects with legacy color space also
// will be interpreted as sRGB.
kLegacyObsolete = 0,
kSRGB = 1,
kRec2020 = 2,
kP3 = 3,
......
......@@ -266,7 +266,7 @@ ScriptWrappable* V8ScriptValueDeserializer::ReadDOMObject(
return file_list;
}
case kImageBitmapTag: {
SerializedColorSpace canvas_color_space = SerializedColorSpace::kLegacy;
SerializedColorSpace canvas_color_space = SerializedColorSpace::kSRGB;
SerializedPixelFormat canvas_pixel_format = SerializedPixelFormat::kRGBA8;
SerializedOpacityMode canvas_opacity_mode =
SerializedOpacityMode::kOpaque;
......@@ -339,7 +339,7 @@ ScriptWrappable* V8ScriptValueDeserializer::ReadDOMObject(
return transferred_image_bitmaps[index].Get();
}
case kImageDataTag: {
SerializedColorSpace canvas_color_space = SerializedColorSpace::kLegacy;
SerializedColorSpace canvas_color_space = SerializedColorSpace::kSRGB;
SerializedImageDataStorageFormat image_data_storage_format =
SerializedImageDataStorageFormat::kUint8Clamped;
uint32_t width = 0, height = 0, byte_length = 0;
......
......@@ -241,9 +241,6 @@ ImageData* ImageData::Create(const IntSize& size,
ImageDataStorageFormat storage_format) {
ImageDataColorSettings color_settings;
switch (color_space) {
case kLegacyCanvasColorSpace:
color_settings.setColorSpace(kLegacyCanvasColorSpaceName);
break;
case kSRGBCanvasColorSpace:
color_settings.setColorSpace(kSRGBCanvasColorSpaceName);
break;
......@@ -497,8 +494,6 @@ DOMUint8ClampedArray* ImageData::data() {
CanvasColorSpace ImageData::GetCanvasColorSpace(
const String& color_space_name) {
if (color_space_name == kLegacyCanvasColorSpaceName)
return kLegacyCanvasColorSpace;
if (color_space_name == kSRGBCanvasColorSpaceName)
return kSRGBCanvasColorSpace;
if (color_space_name == kRec2020CanvasColorSpaceName)
......@@ -789,8 +784,6 @@ ImageData::ImageData(const IntSize& size,
// The default color space for ImageData with U16/F32 data should be
// extended-srgb color space. It is temporarily set to linear-rgb, which is
// not correct, but fixes crbug.com/779419.
if (color_settings_.colorSpace() == kLegacyCanvasColorSpaceName)
color_settings_.setColorSpace(kSRGBCanvasColorSpaceName);
switch (storage_format) {
case kUint8ClampedArrayStorageFormat:
......
......@@ -11,6 +11,6 @@ enum ImageDataStorageFormat {
};
dictionary ImageDataColorSettings {
CanvasColorSpace colorSpace = "legacy-srgb";
CanvasColorSpace colorSpace = "srgb";
ImageDataStorageFormat storageFormat = "uint8";
};
......@@ -38,9 +38,7 @@ enum CanvasPixelFormat {
dictionary CanvasContextCreationAttributes {
// Canvas 2D attributes
boolean alpha = true; // Also used for WebGL.
// TODO(crbug.com/637288): Do we keep "legacy-srgb" as the default?
// Must decide before shipping.
[RuntimeEnabled=ExperimentalCanvasFeatures] CanvasColorSpace colorSpace = "legacy-srgb";
[RuntimeEnabled=ExperimentalCanvasFeatures] CanvasColorSpace colorSpace = "srgb";
[RuntimeEnabled=ExperimentalCanvasFeatures] CanvasPixelFormat pixelFormat = "8-8-8-8";
// WebGL attributes
......
......@@ -63,8 +63,6 @@ CanvasRenderingContext::CanvasRenderingContext(
WTF::String CanvasRenderingContext::ColorSpaceAsString() const {
switch (color_params_.ColorSpace()) {
case kLegacyCanvasColorSpace:
return kLegacyCanvasColorSpaceName;
case kSRGBCanvasColorSpace:
return kSRGBCanvasColorSpaceName;
case kRec2020CanvasColorSpace:
......
......@@ -48,7 +48,6 @@ class ImageData;
class ImageBitmap;
class WebLayer;
constexpr const char* kLegacyCanvasColorSpaceName = "legacy-srgb";
constexpr const char* kSRGBCanvasColorSpaceName = "srgb";
constexpr const char* kRec2020CanvasColorSpaceName = "rec2020";
constexpr const char* kP3CanvasColorSpaceName = "p3";
......
......@@ -68,26 +68,25 @@ ImageBitmap::ParsedOptions ParseOptions(const ImageBitmapOptions& options,
parsed_options.has_color_space_conversion =
(options.colorSpaceConversion() != kImageBitmapOptionNone);
parsed_options.color_params.SetCanvasColorSpace(kLegacyCanvasColorSpace);
if (options.colorSpaceConversion() == kSRGBImageBitmapColorSpaceConversion) {
parsed_options.color_params.SetCanvasColorSpace(kSRGBCanvasColorSpace);
} else if (options.colorSpaceConversion() ==
kLinearRGBImageBitmapColorSpaceConversion) {
parsed_options.color_params.SetCanvasColorSpace(kSRGBCanvasColorSpace);
parsed_options.color_params.SetCanvasColorSpace(kSRGBCanvasColorSpace);
if (options.colorSpaceConversion() != kSRGBImageBitmapColorSpaceConversion &&
options.colorSpaceConversion() != kImageBitmapOptionNone &&
options.colorSpaceConversion() != kImageBitmapOptionDefault) {
parsed_options.color_params.SetCanvasPixelFormat(kF16CanvasPixelFormat);
} else if (options.colorSpaceConversion() ==
kP3ImageBitmapColorSpaceConversion) {
parsed_options.color_params.SetCanvasColorSpace(kP3CanvasColorSpace);
parsed_options.color_params.SetCanvasPixelFormat(kF16CanvasPixelFormat);
} else if (options.colorSpaceConversion() ==
kRec2020ImageBitmapColorSpaceConversion) {
parsed_options.color_params.SetCanvasColorSpace(kRec2020CanvasColorSpace);
parsed_options.color_params.SetCanvasPixelFormat(kF16CanvasPixelFormat);
} else if (options.colorSpaceConversion() != kImageBitmapOptionNone &&
options.colorSpaceConversion() != kImageBitmapOptionDefault) {
NOTREACHED()
<< "Invalid ImageBitmap creation attribute colorSpaceConversion: "
<< options.colorSpaceConversion();
if (options.colorSpaceConversion() ==
kLinearRGBImageBitmapColorSpaceConversion) {
parsed_options.color_params.SetCanvasColorSpace(kSRGBCanvasColorSpace);
} else if (options.colorSpaceConversion() ==
kP3ImageBitmapColorSpaceConversion) {
parsed_options.color_params.SetCanvasColorSpace(kP3CanvasColorSpace);
} else if (options.colorSpaceConversion() ==
kRec2020ImageBitmapColorSpaceConversion) {
parsed_options.color_params.SetCanvasColorSpace(kRec2020CanvasColorSpace);
} else {
NOTREACHED()
<< "Invalid ImageBitmap creation attribute colorSpaceConversion: "
<< options.colorSpaceConversion();
}
}
int source_width = source_size.Width();
......
......@@ -250,11 +250,9 @@ class MODULES_EXPORT BaseRenderingContext2D : public GarbageCollectedMixin,
virtual void WillDrawImage(CanvasImageSource*) const {}
virtual CanvasColorSpace ColorSpace() const {
return kLegacyCanvasColorSpace;
};
virtual CanvasColorSpace ColorSpace() const { return kSRGBCanvasColorSpace; };
virtual String ColorSpaceAsString() const {
return kLegacyCanvasColorSpaceName;
return kSRGBCanvasColorSpaceName;
}
virtual CanvasPixelFormat PixelFormat() const {
return kRGBA8CanvasPixelFormat;
......
......@@ -7,10 +7,7 @@
[PermissiveDictionaryConversion]
dictionary CanvasRenderingContext2DSettings {
boolean alpha = true;
// TODO(crbug.com/637288): Do we keep "legacy-srgb" as the default?
// Must decide before shipping.
[RuntimeEnabled=ExperimentalCanvasFeatures] CanvasColorSpace colorSpace = "legacy-srgb";
[RuntimeEnabled=ExperimentalCanvasFeatures] CanvasColorSpace colorSpace = "srgb";
[RuntimeEnabled=ExperimentalCanvasFeatures] CanvasPixelFormat pixelFormat = "8-8-8-8";
};
......@@ -815,7 +815,7 @@ TEST_F(CanvasRenderingContext2DTest, OpaqueDisplayListFallsBackForText) {
CreateContext(kOpaque);
auto surface = WTF::MakeUnique<RecordingImageBufferSurface>(
IntSize(10, 10), RecordingImageBufferSurface::kAllowFallback,
CanvasColorParams(kLegacyCanvasColorSpace, kRGBA8CanvasPixelFormat,
CanvasColorParams(kSRGBCanvasColorSpace, kRGBA8CanvasPixelFormat,
kOpaque));
auto* surface_ptr = surface.get();
CanvasElement().CreateImageBufferUsingSurfaceForTesting(std::move(surface));
......
......@@ -813,9 +813,9 @@ void Canvas2DLayerBridge::FlushRecordingOnly() {
if (have_recorded_draw_commands_ && GetOrCreateSurface()) {
TRACE_EVENT0("cc", "Canvas2DLayerBridge::flushRecordingOnly");
// For legacy canvases, transform all input colors and images to the target
// space using a SkCreateColorSpaceXformCanvas. This ensures blending will
// be done using target space pixel values.
// For legacy and sRGB canvases, transform all input colors and images to
// the target space using a SkCreateColorSpaceXformCanvas. This ensures
// blending will be done using target space pixel values.
SkCanvas* canvas = GetOrCreateSurface()->getCanvas();
std::unique_ptr<PaintCanvas> color_transform_canvas =
color_params_.WrapCanvas(canvas);
......
......@@ -16,7 +16,6 @@ namespace {
gfx::ColorSpace::PrimaryID GetPrimaryID(CanvasColorSpace color_space) {
gfx::ColorSpace::PrimaryID primary_id = gfx::ColorSpace::PrimaryID::BT709;
switch (color_space) {
case kLegacyCanvasColorSpace:
case kSRGBCanvasColorSpace:
primary_id = gfx::ColorSpace::PrimaryID::BT709;
break;
......@@ -42,7 +41,7 @@ CanvasColorParams::CanvasColorParams(CanvasColorSpace color_space,
opacity_mode_(opacity_mode) {}
CanvasColorParams::CanvasColorParams(const SkImageInfo& info) {
color_space_ = kLegacyCanvasColorSpace;
color_space_ = kSRGBCanvasColorSpace;
pixel_format_ = kRGBA8CanvasPixelFormat;
// When there is no color space information, the SkImage is in legacy mode and
// the color type is kN32_SkColorType (which translates to kRGBA8 canvas pixel
......@@ -80,9 +79,8 @@ void CanvasColorParams::SetOpacityMode(OpacityMode opacity_mode) {
}
bool CanvasColorParams::NeedsSkColorSpaceXformCanvas() const {
return color_space_ == kLegacyCanvasColorSpace ||
(color_space_ == kSRGBCanvasColorSpace &&
pixel_format_ == kRGBA8CanvasPixelFormat);
return color_space_ == kSRGBCanvasColorSpace &&
pixel_format_ == kRGBA8CanvasPixelFormat;
}
std::unique_ptr<cc::PaintCanvas> CanvasColorParams::WrapCanvas(
......@@ -161,7 +159,6 @@ sk_sp<SkColorSpace> CanvasColorParams::GetSkColorSpace() const {
SkColorSpace::Gamut gamut = SkColorSpace::kSRGB_Gamut;
SkColorSpace::RenderTargetGamma gamma = SkColorSpace::kSRGB_RenderTargetGamma;
switch (color_space_) {
case kLegacyCanvasColorSpace:
case kSRGBCanvasColorSpace:
if (pixel_format_ == kF16CanvasPixelFormat)
gamma = SkColorSpace::kLinear_RenderTargetGamma;
......
......@@ -23,7 +23,6 @@ class ColorSpace;
namespace blink {
enum CanvasColorSpace {
kLegacyCanvasColorSpace,
kSRGBCanvasColorSpace,
kRec2020CanvasColorSpace,
kP3CanvasColorSpace,
......@@ -59,7 +58,9 @@ class PLATFORM_EXPORT CanvasColorParams {
bool NeedsColorConversion(const CanvasColorParams&) const;
// The SkColorSpace to use in the SkImageInfo for allocated SkSurfaces. This
// is nullptr in legacy rendering mode.
// is nullptr in legacy rendering mode and when the surface is supposed to be
// in sRGB (for which we wrap the canvas into a PaintCanvas along with an
// SkColorSpaceXformCanvas).
sk_sp<SkColorSpace> GetSkColorSpaceForSkSurfaces() const;
// Wraps an SkCanvas into a PaintCanvas, along with an SkColorSpaceXformCanvas
......@@ -82,7 +83,7 @@ class PLATFORM_EXPORT CanvasColorParams {
const SkSurfaceProps* GetSkSurfaceProps() const;
private:
CanvasColorSpace color_space_ = kLegacyCanvasColorSpace;
CanvasColorSpace color_space_ = kSRGBCanvasColorSpace;
CanvasPixelFormat pixel_format_ = kRGBA8CanvasPixelFormat;
OpacityMode opacity_mode_ = kNonOpaque;
};
......
......@@ -46,7 +46,7 @@ class PLATFORM_EXPORT UnacceleratedImageBufferSurface
UnacceleratedImageBufferSurface(
const IntSize&,
ImageInitializationMode = kInitializeImagePixels,
const CanvasColorParams& = CanvasColorParams(kLegacyCanvasColorSpace,
const CanvasColorParams& = CanvasColorParams(kSRGBCanvasColorSpace,
kRGBA8CanvasPixelFormat,
kNonOpaque));
~UnacceleratedImageBufferSurface() override;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment