summaryrefslogtreecommitdiffstats
path: root/skia
diff options
context:
space:
mode:
authorjustincohen <justincohen@chromium.org>2015-10-30 15:35:27 -0700
committerCommit bot <commit-bot@chromium.org>2015-10-30 22:36:09 +0000
commitaf62fafc5f695c806ae5696d66f78643e082dc37 (patch)
treea564aca2b8221b8e0c43a433f68f0528e63ba509 /skia
parentb0b964a41a65ed2aba81a412de59054fe0142c45 (diff)
downloadchromium_src-af62fafc5f695c806ae5696d66f78643e082dc37.zip
chromium_src-af62fafc5f695c806ae5696d66f78643e082dc37.tar.gz
chromium_src-af62fafc5f695c806ae5696d66f78643e082dc37.tar.bz2
Add LargeIconCache and LargeIconServiceFactory for iOS.
Also adds a secondary cache that holds on to a reference to the favicon RefCountedMemory because the LargeIconService returns icons too slowly iOS new tab page animations. BUG=543738 Review URL: https://codereview.chromium.org/1413903008 Cr-Commit-Position: refs/heads/master@{#357203}
Diffstat (limited to 'skia')
-rw-r--r--skia/ext/skia_utils_ios.h6
-rw-r--r--skia/ext/skia_utils_ios.mm7
-rw-r--r--skia/ext/skia_utils_ios_unittest.mm11
3 files changed, 24 insertions, 0 deletions
diff --git a/skia/ext/skia_utils_ios.h b/skia/ext/skia_utils_ios.h
index 6a854ce..8e1ba9a 100644
--- a/skia/ext/skia_utils_ios.h
+++ b/skia/ext/skia_utils_ios.h
@@ -9,11 +9,14 @@
#include <vector>
#include "third_party/skia/include/core/SkBitmap.h"
+#include "third_party/skia/include/core/SkColor.h"
#ifdef __OBJC__
+@class UIColor;
@class UIImage;
@class NSData;
#else
+class UIColor;
class UIImage;
class NSData;
#endif
@@ -35,6 +38,9 @@ SK_API UIImage* SkBitmapToUIImageWithColorSpace(const SkBitmap& skia_bitmap,
// vector if none can be decoded.
SK_API std::vector<SkBitmap> ImageDataToSkBitmaps(NSData* image_data);
+// Returns a UIColor for an SKColor. Used by iOS downstream.
+SK_API UIColor* UIColorFromSkColor(SkColor color);
+
} // namespace gfx
#endif // SKIA_EXT_SKIA_UTILS_IOS_H_
diff --git a/skia/ext/skia_utils_ios.mm b/skia/ext/skia_utils_ios.mm
index 5655d22..ec76cd5 100644
--- a/skia/ext/skia_utils_ios.mm
+++ b/skia/ext/skia_utils_ios.mm
@@ -123,4 +123,11 @@ std::vector<SkBitmap> ImageDataToSkBitmaps(NSData* image_data) {
return frames;
}
+UIColor* UIColorFromSkColor(SkColor color) {
+ return [UIColor colorWithRed:SkColorGetR(color) / 255.0f
+ green:SkColorGetG(color) / 255.0f
+ blue:SkColorGetB(color) / 255.0f
+ alpha:SkColorGetA(color) / 255.0f];
+}
+
} // namespace gfx
diff --git a/skia/ext/skia_utils_ios_unittest.mm b/skia/ext/skia_utils_ios_unittest.mm
index 71f46a4e..0299472 100644
--- a/skia/ext/skia_utils_ios_unittest.mm
+++ b/skia/ext/skia_utils_ios_unittest.mm
@@ -749,5 +749,16 @@ TEST_F(SkiaUtilsIosTest, Image88x88OrLarger) {
EXPECT_EQ(1UL, bitmaps.size());
}
+TEST_F(SkiaUtilsIosTest, UIColorFromSkColor) {
+ SkColor color = SkColorSetARGB(50, 100, 150, 200);
+ UIColor* ios_color = gfx::UIColorFromSkColor(color);
+ CGFloat red, green, blue, alpha;
+ [ios_color getRed:&red green:&green blue:&blue alpha:&alpha];
+ EXPECT_EQ(50, static_cast<int>(alpha * 255 + 0.5f));
+ EXPECT_EQ(100, static_cast<int>(red * 255 + 0.5f));
+ EXPECT_EQ(150, static_cast<int>(green * 255 + 0.5f));
+ EXPECT_EQ(200, static_cast<int>(blue * 255 + 0.5f));
+}
+
} // namespace