diff --git a/DEPS b/DEPS index 95a68bb..412e560 100644 --- a/DEPS +++ b/DEPS
@@ -40,7 +40,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': '6d11ed2951fadc281433606a8edc6774bed39735', + 'skia_revision': '5ce33efa7c91a638c0dc94f539c9597a954fd529', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other.
diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl.cc b/chrome/browser/ui/startup/startup_browser_creator_impl.cc index 856bb1a..19c5d71 100644 --- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc +++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc
@@ -305,6 +305,8 @@ } GURL GetWelcomePageURL() { + // Record that the Welcome page was added to the startup url list. + UMA_HISTOGRAM_BOOLEAN("Welcome.Win10.OriginalPromoPageAdded", true); return GURL(l10n_util::GetStringUTF8(IDS_WELCOME_PAGE_URL)); }
diff --git a/chrome/browser/ui/startup/startup_tab_provider.cc b/chrome/browser/ui/startup/startup_tab_provider.cc index 255a3c7..70da7e3 100644 --- a/chrome/browser/ui/startup/startup_tab_provider.cc +++ b/chrome/browser/ui/startup/startup_tab_provider.cc
@@ -4,6 +4,7 @@ #include "chrome/browser/ui/startup/startup_tab_provider.h" +#include "base/metrics/histogram_macros.h" #include "build/build_config.h" #include "chrome/browser/first_run/first_run.h" #include "chrome/browser/profile_resetter/triggered_profile_resetter.h" @@ -230,6 +231,8 @@ // static GURL StartupTabProviderImpl::GetWelcomePageUrl(bool use_later_run_variant) { + // Record that the Welcome page was added to the startup url list. + UMA_HISTOGRAM_BOOLEAN("Welcome.Win10.NewPromoPageAdded", true); GURL url(chrome::kChromeUIWelcomeURL); return use_later_run_variant ? net::AppendQueryParameter(url, "variant", "everywhere")
diff --git a/third_party/WebKit/LayoutTests/fast/media/mq-color-gamut-api.html b/third_party/WebKit/LayoutTests/fast/media/mq-color-gamut-api.html new file mode 100644 index 0000000..dba13f75 --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/media/mq-color-gamut-api.html
@@ -0,0 +1,35 @@ +<!DOCTYPE html> +<title>Tests for color-gamut media query</title> +<script src="../../resources/testharness.js"></script> +<script src="../../resources/testharnessreport.js"></script> +<script> +test(function() { + assert_true(window.matchMedia("(color-gamut)").matches); +}, "Test that color-gamut can be feature detected"); + +test(function() { + assert_false(window.matchMedia("(color-gamut: foobar)").matches); +}, "Test that unknown values are rejected"); + +async_test(t => { + assert_true('testRunner' in window); + + testRunner.setColorProfile('sRGB', t.step_func(() => { + assert_true(window.matchMedia("(color-gamut: srgb)").matches); + assert_false(window.matchMedia("(color-gamut: p3)").matches); + assert_false(window.matchMedia("(color-gamut: rec2020)").matches); + + testRunner.setColorProfile('colorSpin', t.step_func(() => { + assert_true(window.matchMedia("(color-gamut: srgb)").matches); + assert_false(window.matchMedia("(color-gamut: p3)").matches); + assert_false(window.matchMedia("(color-gamut: rec2020)").matches); + + testRunner.setColorProfile('adobeRGB', t.step_func_done(() => { + assert_true(window.matchMedia("(color-gamut: srgb)").matches); + assert_true(window.matchMedia("(color-gamut: p3)").matches); + assert_false(window.matchMedia("(color-gamut: rec2020)").matches); + })); + })); + })); +}, "Test API with various color profile"); +</script>
diff --git a/third_party/WebKit/LayoutTests/fast/media/mq-color-gamut-picture-expected.html b/third_party/WebKit/LayoutTests/fast/media/mq-color-gamut-picture-expected.html new file mode 100644 index 0000000..1a35778 --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/media/mq-color-gamut-picture-expected.html
@@ -0,0 +1,4 @@ +<!DOCTYPE html> +<picture> + <img src='resources/apple_logo_big.jpg'> +</picture>
diff --git a/third_party/WebKit/LayoutTests/fast/media/mq-color-gamut-picture.html b/third_party/WebKit/LayoutTests/fast/media/mq-color-gamut-picture.html new file mode 100644 index 0000000..e62f040 --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/media/mq-color-gamut-picture.html
@@ -0,0 +1,9 @@ +<!DOCTYPE html> +<title>Tests for color-gamut media query with picture</title> +<script> +testRunner.setColorProfile('adobeRGB', () => {}); +</script> +<picture> + <source media="(color-gamut: p3)" srcset="resources/apple_logo_big.jpg"> + <img src="resources/apple_logo_half_size.jpg"> +</picture>
diff --git a/third_party/WebKit/Source/core/css/CSSValueKeywords.json5 b/third_party/WebKit/Source/core/css/CSSValueKeywords.json5 index 320818c..b82eac0 100644 --- a/third_party/WebKit/Source/core/css/CSSValueKeywords.json5 +++ b/third_party/WebKit/Source/core/css/CSSValueKeywords.json5
@@ -1122,5 +1122,9 @@ // rect // round + // color-gamut + // srgb + "p3", + "rec2020", ], }
diff --git a/third_party/WebKit/Source/core/css/MediaFeatureNames.json5 b/third_party/WebKit/Source/core/css/MediaFeatureNames.json5 index 37419e7..5f06821 100644 --- a/third_party/WebKit/Source/core/css/MediaFeatureNames.json5 +++ b/third_party/WebKit/Source/core/css/MediaFeatureNames.json5
@@ -9,6 +9,7 @@ "any-pointer", "color", "color-index", + "color-gamut", "grid", "monochrome", "height",
diff --git a/third_party/WebKit/Source/core/css/MediaQueryEvaluator.cpp b/third_party/WebKit/Source/core/css/MediaQueryEvaluator.cpp index 5d3f0b3b..ce9cbea0 100644 --- a/third_party/WebKit/Source/core/css/MediaQueryEvaluator.cpp +++ b/third_party/WebKit/Source/core/css/MediaQueryEvaluator.cpp
@@ -51,6 +51,7 @@ #include "core/style/ComputedStyle.h" #include "platform/RuntimeEnabledFeatures.h" #include "platform/geometry/FloatRect.h" +#include "platform/graphics/ColorSpace.h" #include "public/platform/PointerProperties.h" #include "public/platform/ShapeProperties.h" #include "public/platform/WebDisplayMode.h" @@ -753,6 +754,48 @@ return (value.id == CSSValueProgressive); } +static bool colorGamutMediaFeatureEval(const MediaQueryExpValue& value, + MediaFeaturePrefix, + const MediaValues& mediaValues) { + // isValid() is false if there is no parameter. Without parameter we should + // return true to indicate that colorGamutMediaFeature is enabled in the + // browser. + if (!value.isValid()) + return true; + + if (!value.isID) + return false; + + DCHECK(value.id == CSSValueSRGB || value.id == CSSValueP3 || + value.id == CSSValueRec2020); + + ColorSpaceGamut gamut = mediaValues.colorGamut(); + switch (gamut) { + case ColorSpaceGamut::Unknown: + case ColorSpaceGamut::LessThanNTSC: + case ColorSpaceGamut::NTSC: + case ColorSpaceGamut::SRGB: + return value.id == CSSValueSRGB; + case ColorSpaceGamut::AlmostP3: + case ColorSpaceGamut::P3: + case ColorSpaceGamut::AdobeRGB: + case ColorSpaceGamut::Wide: + return value.id == CSSValueSRGB || value.id == CSSValueP3; + case ColorSpaceGamut::BT2020: + case ColorSpaceGamut::ProPhoto: + case ColorSpaceGamut::UltraWide: + return value.id == CSSValueSRGB || value.id == CSSValueP3 || + value.id == CSSValueRec2020; + case ColorSpaceGamut::End: + NOTREACHED(); + return false; + } + + // This is for some compilers that do not understand that it can't be reached. + NOTREACHED(); + return false; +} + void MediaQueryEvaluator::init() { // Create the table. gFunctionMap = new FunctionMap;
diff --git a/third_party/WebKit/Source/core/css/MediaQueryExp.cpp b/third_party/WebKit/Source/core/css/MediaQueryExp.cpp index d41baa58..ada0478 100644 --- a/third_party/WebKit/Source/core/css/MediaQueryExp.cpp +++ b/third_party/WebKit/Source/core/css/MediaQueryExp.cpp
@@ -65,6 +65,12 @@ if (mediaFeature == shapeMediaFeature) return ident == CSSValueRect || ident == CSSValueRound; } + + if (mediaFeature == colorGamutMediaFeature) { + return ident == CSSValueSRGB || ident == CSSValueP3 || + ident == CSSValueRec2020; + } + return false; } @@ -168,7 +174,9 @@ mediaFeature == devicePixelRatioMediaFeature || mediaFeature == resolutionMediaFeature || mediaFeature == displayModeMediaFeature || - mediaFeature == scanMediaFeature || mediaFeature == shapeMediaFeature; + mediaFeature == scanMediaFeature || + mediaFeature == shapeMediaFeature || + mediaFeature == colorGamutMediaFeature; } bool MediaQueryExp::isViewportDependent() const {
diff --git a/third_party/WebKit/Source/core/css/MediaValues.cpp b/third_party/WebKit/Source/core/css/MediaValues.cpp index 75e9f8d3..5ac7d79 100644 --- a/third_party/WebKit/Source/core/css/MediaValues.cpp +++ b/third_party/WebKit/Source/core/css/MediaValues.cpp
@@ -20,6 +20,7 @@ #include "core/page/ChromeClient.h" #include "core/page/Page.h" #include "core/style/ComputedStyle.h" +#include "platform/graphics/ColorSpace.h" #include "public/platform/WebScreenInfo.h" namespace blink { @@ -145,6 +146,12 @@ return frame->host()->chromeClient().screenInfo().displayShape; } +ColorSpaceGamut MediaValues::calculateColorGamut(LocalFrame* frame) { + DCHECK(frame && frame->host()); + return ColorSpaceUtilities::getColorSpaceGamut( + frame->host()->chromeClient().screenInfo()); +} + bool MediaValues::computeLengthImpl(double value, CSSPrimitiveValue::UnitType type, unsigned defaultFontSize,
diff --git a/third_party/WebKit/Source/core/css/MediaValues.h b/third_party/WebKit/Source/core/css/MediaValues.h index 6195ace..26039d78 100644 --- a/third_party/WebKit/Source/core/css/MediaValues.h +++ b/third_party/WebKit/Source/core/css/MediaValues.h
@@ -17,6 +17,7 @@ class Document; class CSSPrimitiveValue; class LocalFrame; +enum class ColorSpaceGamut; class CORE_EXPORT MediaValues : public GarbageCollectedFinalized<MediaValues> { public: @@ -73,6 +74,7 @@ virtual void overrideViewportDimensions(double width, double height) = 0; virtual DisplayShape displayShape() const = 0; + virtual ColorSpaceGamut colorGamut() const = 0; protected: static double calculateViewportWidth(LocalFrame*); @@ -92,6 +94,7 @@ static HoverType calculatePrimaryHoverType(LocalFrame*); static int calculateAvailableHoverTypes(LocalFrame*); static DisplayShape calculateDisplayShape(LocalFrame*); + static ColorSpaceGamut calculateColorGamut(LocalFrame*); static LocalFrame* frameFrom(Document&); };
diff --git a/third_party/WebKit/Source/core/css/MediaValuesCached.cpp b/third_party/WebKit/Source/core/css/MediaValuesCached.cpp index c7cc9e07..604177d 100644 --- a/third_party/WebKit/Source/core/css/MediaValuesCached.cpp +++ b/third_party/WebKit/Source/core/css/MediaValuesCached.cpp
@@ -9,9 +9,29 @@ #include "core/frame/LocalFrame.h" #include "core/layout/LayoutObject.h" #include "core/layout/api/LayoutViewItem.h" +#include "platform/graphics/ColorSpace.h" namespace blink { +MediaValuesCached::MediaValuesCachedData::MediaValuesCachedData() + : viewportWidth(0), + viewportHeight(0), + deviceWidth(0), + deviceHeight(0), + devicePixelRatio(1.0), + colorBitsPerComponent(24), + monochromeBitsPerComponent(0), + primaryPointerType(PointerTypeNone), + availablePointerTypes(PointerTypeNone), + primaryHoverType(HoverTypeNone), + availableHoverTypes(HoverTypeNone), + defaultFontSize(16), + threeDEnabled(false), + strictMode(true), + displayMode(WebDisplayModeBrowser), + displayShape(DisplayShapeRect), + colorGamut(ColorSpaceGamut::Unknown) {} + MediaValuesCached::MediaValuesCachedData::MediaValuesCachedData( Document& document) : MediaValuesCached::MediaValuesCachedData() { @@ -44,6 +64,7 @@ displayMode = MediaValues::calculateDisplayMode(frame); mediaType = MediaValues::calculateMediaType(frame); displayShape = MediaValues::calculateDisplayShape(frame); + colorGamut = MediaValues::calculateColorGamut(frame); } } @@ -159,4 +180,8 @@ return m_data.displayShape; } +ColorSpaceGamut MediaValuesCached::colorGamut() const { + return m_data.colorGamut; +} + } // namespace blink
diff --git a/third_party/WebKit/Source/core/css/MediaValuesCached.h b/third_party/WebKit/Source/core/css/MediaValuesCached.h index fa042b4..cb33d55 100644 --- a/third_party/WebKit/Source/core/css/MediaValuesCached.h +++ b/third_party/WebKit/Source/core/css/MediaValuesCached.h
@@ -13,7 +13,7 @@ class CORE_EXPORT MediaValuesCached final : public MediaValues { public: - struct MediaValuesCachedData final { + struct CORE_EXPORT MediaValuesCachedData final { DISALLOW_NEW(); // Members variables must be thread safe, since they're copied to the parser // thread @@ -34,25 +34,9 @@ String mediaType; WebDisplayMode displayMode; DisplayShape displayShape; + ColorSpaceGamut colorGamut; - MediaValuesCachedData() - : viewportWidth(0), - viewportHeight(0), - deviceWidth(0), - deviceHeight(0), - devicePixelRatio(1.0), - colorBitsPerComponent(24), - monochromeBitsPerComponent(0), - primaryPointerType(PointerTypeNone), - availablePointerTypes(PointerTypeNone), - primaryHoverType(HoverTypeNone), - availableHoverTypes(HoverTypeNone), - defaultFontSize(16), - threeDEnabled(false), - strictMode(true), - displayMode(WebDisplayModeBrowser), - displayShape(DisplayShapeRect) {} - + MediaValuesCachedData(); explicit MediaValuesCachedData(Document&); MediaValuesCachedData deepCopy() const { @@ -74,6 +58,7 @@ data.mediaType = mediaType.isolatedCopy(); data.displayMode = displayMode; data.displayShape = displayShape; + data.colorGamut = colorGamut; return data; } }; @@ -106,6 +91,7 @@ const String mediaType() const override; WebDisplayMode displayMode() const override; DisplayShape displayShape() const override; + ColorSpaceGamut colorGamut() const override; void overrideViewportDimensions(double width, double height) override;
diff --git a/third_party/WebKit/Source/core/css/MediaValuesDynamic.cpp b/third_party/WebKit/Source/core/css/MediaValuesDynamic.cpp index 99a9345c..57eef49 100644 --- a/third_party/WebKit/Source/core/css/MediaValuesDynamic.cpp +++ b/third_party/WebKit/Source/core/css/MediaValuesDynamic.cpp
@@ -136,6 +136,10 @@ return calculateDisplayShape(m_frame); } +ColorSpaceGamut MediaValuesDynamic::colorGamut() const { + return calculateColorGamut(m_frame); +} + Document* MediaValuesDynamic::document() const { return m_frame->document(); }
diff --git a/third_party/WebKit/Source/core/css/MediaValuesDynamic.h b/third_party/WebKit/Source/core/css/MediaValuesDynamic.h index d5686a2..88e72a69 100644 --- a/third_party/WebKit/Source/core/css/MediaValuesDynamic.h +++ b/third_party/WebKit/Source/core/css/MediaValuesDynamic.h
@@ -39,6 +39,7 @@ const String mediaType() const override; WebDisplayMode displayMode() const override; DisplayShape displayShape() const override; + ColorSpaceGamut colorGamut() const override; Document* document() const override; bool hasValues() const override; void overrideViewportDimensions(double width, double height) override;
diff --git a/third_party/WebKit/Source/platform/graphics/BitmapImageMetrics.cpp b/third_party/WebKit/Source/platform/graphics/BitmapImageMetrics.cpp index 568c414..0061d5dc 100644 --- a/third_party/WebKit/Source/platform/graphics/BitmapImageMetrics.cpp +++ b/third_party/WebKit/Source/platform/graphics/BitmapImageMetrics.cpp
@@ -5,7 +5,7 @@ #include "platform/graphics/BitmapImageMetrics.h" #include "platform/Histogram.h" -#include "third_party/skia/include/core/SkColorSpaceXform.h" +#include "platform/graphics/ColorSpace.h" #include "wtf/Threading.h" #include "wtf/text/WTFString.h" @@ -51,8 +51,10 @@ DEFINE_THREAD_SAFE_STATIC_LOCAL( EnumerationHistogram, gamutNamedHistogram, - new EnumerationHistogram("Blink.ColorGamut.Source", GamutEnd)); - gamutNamedHistogram.count(getColorSpaceGamut(colorSpace)); + new EnumerationHistogram("Blink.ColorGamut.Source", + static_cast<int>(ColorSpaceGamut::End))); + gamutNamedHistogram.count( + static_cast<int>(ColorSpaceUtilities::getColorSpaceGamut(colorSpace))); } void BitmapImageMetrics::countOutputGammaAndGamut(SkColorSpace* colorSpace) { @@ -63,8 +65,10 @@ DEFINE_THREAD_SAFE_STATIC_LOCAL( EnumerationHistogram, gamutNamedHistogram, - new EnumerationHistogram("Blink.ColorGamut.Destination", GamutEnd)); - gamutNamedHistogram.count(getColorSpaceGamut(colorSpace)); + new EnumerationHistogram("Blink.ColorGamut.Destination", + static_cast<int>(ColorSpaceGamut::End))); + gamutNamedHistogram.count( + static_cast<int>(ColorSpaceUtilities::getColorSpaceGamut(colorSpace))); } BitmapImageMetrics::Gamma BitmapImageMetrics::getColorSpaceGamma( @@ -82,49 +86,4 @@ return gamma; } -BitmapImageMetrics::Gamut BitmapImageMetrics::getColorSpaceGamut( - SkColorSpace* colorSpace) { - sk_sp<SkColorSpace> scRGB( - SkColorSpace::MakeNamed(SkColorSpace::kSRGBLinear_Named)); - std::unique_ptr<SkColorSpaceXform> transform( - SkColorSpaceXform::New(colorSpace, scRGB.get())); - - if (!transform) - return GamutUnknown; - - unsigned char in[3][4]; - float out[3][4]; - memset(in, 0, sizeof(in)); - in[0][0] = 255; - in[1][1] = 255; - in[2][2] = 255; - in[0][3] = 255; - in[1][3] = 255; - in[2][3] = 255; - transform->apply(SkColorSpaceXform::kRGBA_F32_ColorFormat, out, - SkColorSpaceXform::kRGBA_8888_ColorFormat, in, 3, - kOpaque_SkAlphaType); - float score = out[0][0] * out[1][1] * out[2][2]; - - if (score < 0.9) - return GamutLessThanNTSC; - if (score < 0.95) - return GamutNTSC; // actual score 0.912839 - if (score < 1.1) - return GamutSRGB; // actual score 1.0 - if (score < 1.3) - return GamutAlmostP3; - if (score < 1.425) - return GamutP3; // actual score 1.401899 - if (score < 1.5) - return GamutAdobeRGB; // actual score 1.458385 - if (score < 2.0) - return GamutWide; - if (score < 2.2) - return GamutBT2020; // actual score 2.104520 - if (score < 2.7) - return GamutProPhoto; // actual score 2.913247 - return GamutUltraWide; -} - } // namespace blink
diff --git a/third_party/WebKit/Source/platform/graphics/BitmapImageMetrics.h b/third_party/WebKit/Source/platform/graphics/BitmapImageMetrics.h index 32c5f73..79fe549 100644 --- a/third_party/WebKit/Source/platform/graphics/BitmapImageMetrics.h +++ b/third_party/WebKit/Source/platform/graphics/BitmapImageMetrics.h
@@ -46,22 +46,6 @@ GammaEnd = GammaNamed + 1, }; - enum Gamut { - // Values synced with 'Gamut' in src/tools/metrics/histograms/histograms.xml - GamutUnknown = 0, - GamutLessThanNTSC = 1, - GamutNTSC = 2, - GamutSRGB = 3, - GamutAlmostP3 = 4, - GamutP3 = 5, - GamutAdobeRGB = 6, - GamutWide = 7, - GamutBT2020 = 8, - GamutProPhoto = 9, - GamutUltraWide = 10, - GamutEnd - }; - static void countDecodedImageType(const String& type); static void countImageOrientation(const ImageOrientationEnum); static void countImageGammaAndGamut(SkColorSpace*); @@ -69,7 +53,6 @@ private: static Gamma getColorSpaceGamma(SkColorSpace*); - static Gamut getColorSpaceGamut(SkColorSpace*); }; } // namespace blink
diff --git a/third_party/WebKit/Source/platform/graphics/ColorSpace.cpp b/third_party/WebKit/Source/platform/graphics/ColorSpace.cpp index 423da80..4b2694c 100644 --- a/third_party/WebKit/Source/platform/graphics/ColorSpace.cpp +++ b/third_party/WebKit/Source/platform/graphics/ColorSpace.cpp
@@ -33,6 +33,8 @@ #include "platform/graphics/ColorSpace.h" #include "platform/graphics/skia/SkiaUtils.h" +#include "public/platform/WebScreenInfo.h" +#include "third_party/skia/include/core/SkColorSpaceXform.h" #include "third_party/skia/include/effects/SkTableColorFilter.h" #include "wtf/MathExtras.h" #include <algorithm> @@ -116,6 +118,59 @@ return SkTableColorFilter::MakeARGB(0, lookupTable, lookupTable, lookupTable); } +ColorSpaceGamut getColorSpaceGamut(const WebScreenInfo& screenInfo) { + const gfx::ICCProfile& profile = screenInfo.iccProfile; + if (profile == gfx::ICCProfile()) + return ColorSpaceGamut::Unknown; + + return ColorSpaceUtilities::getColorSpaceGamut( + profile.GetColorSpace().ToSkColorSpace().get()); +} + +ColorSpaceGamut getColorSpaceGamut(SkColorSpace* colorSpace) { + sk_sp<SkColorSpace> scRGB( + SkColorSpace::MakeNamed(SkColorSpace::kSRGBLinear_Named)); + std::unique_ptr<SkColorSpaceXform> transform( + SkColorSpaceXform::New(colorSpace, scRGB.get())); + + if (!transform) + return ColorSpaceGamut::Unknown; + + unsigned char in[3][4]; + float out[3][4]; + memset(in, 0, sizeof(in)); + in[0][0] = 255; + in[1][1] = 255; + in[2][2] = 255; + in[0][3] = 255; + in[1][3] = 255; + in[2][3] = 255; + transform->apply(SkColorSpaceXform::kRGBA_F32_ColorFormat, out, + SkColorSpaceXform::kRGBA_8888_ColorFormat, in, 3, + kOpaque_SkAlphaType); + float score = out[0][0] * out[1][1] * out[2][2]; + + if (score < 0.9) + return ColorSpaceGamut::LessThanNTSC; + if (score < 0.95) + return ColorSpaceGamut::NTSC; // actual score 0.912839 + if (score < 1.1) + return ColorSpaceGamut::SRGB; // actual score 1.0 + if (score < 1.3) + return ColorSpaceGamut::AlmostP3; + if (score < 1.425) + return ColorSpaceGamut::P3; // actual score 1.401899 + if (score < 1.5) + return ColorSpaceGamut::AdobeRGB; // actual score 1.458385 + if (score < 2.0) + return ColorSpaceGamut::Wide; + if (score < 2.2) + return ColorSpaceGamut::BT2020; // actual score 2.104520 + if (score < 2.7) + return ColorSpaceGamut::ProPhoto; // actual score 2.913247 + return ColorSpaceGamut::UltraWide; +} + } // namespace ColorSpaceUtilities } // namespace blink
diff --git a/third_party/WebKit/Source/platform/graphics/ColorSpace.h b/third_party/WebKit/Source/platform/graphics/ColorSpace.h index 43570f17..96726263 100644 --- a/third_party/WebKit/Source/platform/graphics/ColorSpace.h +++ b/third_party/WebKit/Source/platform/graphics/ColorSpace.h
@@ -31,11 +31,30 @@ #include "third_party/skia/include/core/SkRefCnt.h" class SkColorFilter; +class SkColorSpace; namespace blink { +struct WebScreenInfo; + enum ColorSpace { ColorSpaceDeviceRGB, ColorSpaceSRGB, ColorSpaceLinearRGB }; +enum class ColorSpaceGamut { + // Values synced with 'Gamut' in src/tools/metrics/histograms/histograms.xml + Unknown = 0, + LessThanNTSC = 1, + NTSC = 2, + SRGB = 3, + AlmostP3 = 4, + P3 = 5, + AdobeRGB = 6, + Wide = 7, + BT2020 = 8, + ProPhoto = 9, + UltraWide = 10, + End +}; + namespace ColorSpaceUtilities { // Get a pointer to a 8-bit lookup table that will convert color components @@ -57,6 +76,9 @@ sk_sp<SkColorFilter> createColorSpaceFilter(ColorSpace srcColorSpace, ColorSpace dstColorSpace); +PLATFORM_EXPORT ColorSpaceGamut getColorSpaceGamut(const WebScreenInfo&); +ColorSpaceGamut getColorSpaceGamut(SkColorSpace*); + } // namespace ColorSpaceUtilities } // namespace blink
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_importer.py b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_importer.py index a3b32e6..46d271a 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_importer.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_importer.py
@@ -82,14 +82,12 @@ for commit in commits: _log.error(' https://chromium.googlesource.com/chromium/src/+/%s', commit.sha) _log.error('Aborting import to prevent clobbering these commits.') - if not options.keep_w3c_repos_around: - self.clean_up_temp_repo(temp_repo_path) + self.clean_up_temp_repo(temp_repo_path) return 1 - import_commit = self.update(dest_dir_name, temp_repo_path, options.keep_w3c_repos_around, options.revision) + import_commit = self.update(dest_dir_name, temp_repo_path, options.revision) - if not options.keep_w3c_repos_around: - self.clean_up_temp_repo(temp_repo_path) + self.clean_up_temp_repo(temp_repo_path) if options.target == 'wpt': self._copy_resources() @@ -116,8 +114,6 @@ help='log what we are doing') parser.add_argument('--allow-local-commits', action='store_true', help='allow script to run even if we have local commits') - parser.add_argument('--keep-w3c-repos-around', action='store_true', - help='leave the w3c repos around that were imported previously.') parser.add_argument('-r', dest='revision', action='store', help='Target revision.') parser.add_argument('target', choices=['css', 'wpt'], @@ -204,13 +200,12 @@ self.run([manifest_command, '--work', '--tests-root', dest_path]) self.run(['git', 'add', self.fs.join(dest_path, 'MANIFEST.json')]) - def update(self, dest_dir_name, temp_repo_path, keep_w3c_repos_around, revision): + def update(self, dest_dir_name, temp_repo_path, revision): """Updates an imported repository. Args: dest_dir_name: The destination directory name. temp_repo_path: Path to local checkout of W3C test repo. - keep_w3c_repos_around: If True, the temp directory won't be cleaned up. revision: A W3C test repo commit hash, or None. Returns:
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index f04d27b9e..32d7f49e 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -76658,6 +76658,24 @@ </summary> </histogram> +<histogram name="Welcome.Win10.NewPromoPageAdded" enum="BooleanShown"> + <owner>tmartino@chromium.org</owner> + <summary> + Records whether or not the revamped WebUI-based welcome page was added to + the startup tabs list. This means there is a good chance it was shown to the + user. + </summary> +</histogram> + +<histogram name="Welcome.Win10.OriginalPromoPageAdded" enum="BooleanShown"> + <owner>tmartino@chromium.org</owner> + <summary> + Records whether or not the old external welcome page was added to the + startup tabs list. This means there is a good chance it was shown to the + user. + </summary> +</histogram> + <histogram name="Welcome.Win10.PinnedPromptResult" enum="BooleanPinned"> <owner>tmartino@chromium.org</owner> <summary>