From 2fc1c838798d0c76f1c135f1791d3989ab7a2b01 Mon Sep 17 00:00:00 2001 From: limasdf Date: Thu, 10 Mar 2016 03:14:33 -0800 Subject: chrome.browserAction.setBadgeBackgroundColor accepts color keyword Accepts color keyword like 'black', 'blue' from setBadgeBackgroundColor. Also, if unable to parse color string, returns proper error message TEST=browser_tests --gtest_filter=BrowserActionApiTest.BadgeBackgroundColor extensions_unittests --gtest_filter=ImageUtilTest.* BUG=593194 Review URL: https://codereview.chromium.org/1781563003 Cr-Commit-Position: refs/heads/master@{#380386} --- extensions/common/image_util.cc | 6 ++++++ extensions/common/image_util_unittest.cc | 11 +++++++++++ 2 files changed, 17 insertions(+) (limited to 'extensions/common') diff --git a/extensions/common/image_util.cc b/extensions/common/image_util.cc index efad19b..6a8e13a 100644 --- a/extensions/common/image_util.cc +++ b/extensions/common/image_util.cc @@ -13,6 +13,7 @@ #include "base/strings/stringprintf.h" #include "third_party/re2/src/re2/re2.h" #include "third_party/skia/include/core/SkColor.h" +#include "third_party/skia/include/utils/SkParse.h" #include "ui/gfx/color_utils.h" namespace extensions { @@ -29,6 +30,11 @@ bool ParseCssColorString(const std::string& color_string, SkColor* result) { NOTIMPLEMENTED(); return false; } + if (SkParse::FindNamedColor(color_string.c_str(), color_string.size(), + result) != nullptr) { + return true; + } + return false; } diff --git a/extensions/common/image_util_unittest.cc b/extensions/common/image_util_unittest.cc index 8e7d80f..e4a81bb 100644 --- a/extensions/common/image_util_unittest.cc +++ b/extensions/common/image_util_unittest.cc @@ -108,4 +108,15 @@ TEST(ImageUtilTest, AcceptHsla) { RunPassHslTest("hsla(0, 100%, 50%, 1)", SK_ColorRED); } +TEST(ImageUtilTest, BasicColorKeyword) { + SkColor color = 0; + EXPECT_TRUE(image_util::ParseCssColorString("red", &color)); + EXPECT_EQ(color, SK_ColorRED); + + EXPECT_TRUE(image_util::ParseCssColorString("blue", &color)); + EXPECT_EQ(color, SK_ColorBLUE); + + EXPECT_FALSE(image_util::ParseCssColorString("my_red", &color)); +} + } // namespace extensions -- cgit v1.1