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

Unified Diff: chrome/browser/history/history_backend_unittest.cc

Issue 531493002: Move encoding SkBitmaps to PNG out of FaviconService::SetFavicons() and onto the history thread (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/history/history_backend_unittest.cc
diff --git a/chrome/browser/history/history_backend_unittest.cc b/chrome/browser/history/history_backend_unittest.cc
index fa5f962d73328b5d7b7bb1853b731ea31c9dbf1a..010e8f51c2abb4eb2aae29ba9020c3cf2db1f141 100644
--- a/chrome/browser/history/history_backend_unittest.cc
+++ b/chrome/browser/history/history_backend_unittest.cc
@@ -38,6 +38,8 @@
#include "content/public/test/test_browser_thread.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/skia/include/core/SkBitmap.h"
+#include "ui/gfx/codec/png_codec.h"
#include "url/gurl.h"
using base::Time;
@@ -266,20 +268,6 @@ class HistoryBackendTest : public HistoryBackendTestBase {
return visits[0].transition;
}
- // Returns a vector with the small edge size.
- const std::vector<int> GetEdgeSizesSmall() {
- std::vector<int> sizes_small;
- sizes_small.push_back(kSmallEdgeSize);
- return sizes_small;
- }
-
- // Returns a vector with the large edge size.
- const std::vector<int> GetEdgeSizesLarge() {
- std::vector<int> sizes_large;
- sizes_large.push_back(kLargeEdgeSize);
- return sizes_large;
- }
-
// Returns a vector with the small and large edge sizes.
const std::vector<int> GetEdgeSizesSmallAndLarge() {
std::vector<int> sizes_small_and_large;
@@ -288,15 +276,6 @@ class HistoryBackendTest : public HistoryBackendTestBase {
return sizes_small_and_large;
}
- // Returns a vector with the tiny, small, and large edge sizes.
- const std::vector<int> GetEdgeSizesTinySmallAndLarge() {
- std::vector<int> sizes_tiny_small_and_large;
- sizes_tiny_small_and_large.push_back(kTinyEdgeSize);
- sizes_tiny_small_and_large.push_back(kSmallEdgeSize);
- sizes_tiny_small_and_large.push_back(kLargeEdgeSize);
- return sizes_tiny_small_and_large;
- }
-
// Returns the number of icon mappings of |icon_type| to |page_url|.
size_t NumIconMappingsForPageURL(const GURL& page_url,
favicon_base::IconType icon_type) {
@@ -345,53 +324,12 @@ class HistoryBackendTest : public HistoryBackendTestBase {
return true;
}
- // Generates |favicon_bitmap_data| with entries for the icon_urls and sizes
- // specified. The bitmap_data for entries are lowercase letters of the
- // alphabet starting at 'a' for the entry at index 0.
- void GenerateFaviconBitmapData(
- const GURL& icon_url1,
- const std::vector<int>& icon_url1_sizes,
- std::vector<favicon_base::FaviconRawBitmapData>* favicon_bitmap_data) {
- GenerateFaviconBitmapData(icon_url1, icon_url1_sizes, GURL(),
- std::vector<int>(), favicon_bitmap_data);
- }
-
- void GenerateFaviconBitmapData(
- const GURL& icon_url1,
- const std::vector<int>& icon_url1_sizes,
- const GURL& icon_url2,
- const std::vector<int>& icon_url2_sizes,
- std::vector<favicon_base::FaviconRawBitmapData>* favicon_bitmap_data) {
- favicon_bitmap_data->clear();
-
- char bitmap_char = 'a';
- for (size_t i = 0; i < icon_url1_sizes.size(); ++i) {
- std::vector<unsigned char> data;
- data.push_back(bitmap_char);
- favicon_base::FaviconRawBitmapData bitmap_data_element;
- bitmap_data_element.bitmap_data =
- base::RefCountedBytes::TakeVector(&data);
- bitmap_data_element.pixel_size =
- gfx::Size(icon_url1_sizes[i], icon_url1_sizes[i]);
- bitmap_data_element.icon_url = icon_url1;
- favicon_bitmap_data->push_back(bitmap_data_element);
-
- ++bitmap_char;
- }
-
- for (size_t i = 0; i < icon_url2_sizes.size(); ++i) {
- std::vector<unsigned char> data;
- data.push_back(bitmap_char);
- favicon_base::FaviconRawBitmapData bitmap_data_element;
- bitmap_data_element.bitmap_data =
- base::RefCountedBytes::TakeVector(&data);
- bitmap_data_element.pixel_size =
- gfx::Size(icon_url2_sizes[i], icon_url2_sizes[i]);
- bitmap_data_element.icon_url = icon_url2;
- favicon_bitmap_data->push_back(bitmap_data_element);
-
- ++bitmap_char;
- }
+ // Creates an |edge_size|x|edge_size| bitmap of |color|.
+ SkBitmap CreateBitmap(SkColor color, int edge_size) {
+ SkBitmap bitmap;
+ bitmap.allocN32Pixels(edge_size, edge_size);
+ bitmap.eraseColor(color);
+ return bitmap;
}
// Returns true if |bitmap_data| is equal to |expected_data|.
@@ -402,6 +340,17 @@ class HistoryBackendTest : public HistoryBackendTestBase {
*bitmap_data->front() == expected_data;
}
+ // Returns true if |bitmap_data| is of |color|.
+ bool BitmapColorEqual(SkColor expected_color,
+ scoped_refptr<base::RefCountedMemory> bitmap_data) {
+ SkBitmap bitmap;
+ if (!gfx::PNGCodec::Decode(
+ bitmap_data->front(), bitmap_data->size(), &bitmap))
+ return false;
+ SkAutoLockPixels bitmap_lock(bitmap);
+ return expected_color == bitmap.getColor(0, 0);
+ }
+
private:
DISALLOW_COPY_AND_ASSIGN(HistoryBackendTest);
};
@@ -1571,35 +1520,27 @@ TEST_F(HistoryBackendTest, SetFaviconMappingsForPageAndRedirects) {
const GURL icon_url1("http://www.google.com/icon");
const GURL icon_url2("http://www.google.com/icon2");
+ std::vector<SkBitmap> bitmaps;
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize));
+ bitmaps.push_back(CreateBitmap(SK_ColorRED, kLargeEdgeSize));
- // Generate bitmap data for a page with two favicons.
- std::vector<favicon_base::FaviconRawBitmapData> two_favicon_bitmap_data;
- GenerateFaviconBitmapData(icon_url1, GetEdgeSizesSmallAndLarge(),
- icon_url2, GetEdgeSizesSmallAndLarge(), &two_favicon_bitmap_data);
-
- // Generate bitmap data for a page with a single favicon.
- std::vector<favicon_base::FaviconRawBitmapData> one_favicon_bitmap_data;
- GenerateFaviconBitmapData(icon_url1, GetEdgeSizesSmallAndLarge(),
- &one_favicon_bitmap_data);
-
- // Add two favicons
- backend_->SetFavicons(url1, favicon_base::FAVICON, two_favicon_bitmap_data);
- EXPECT_EQ(2u, NumIconMappingsForPageURL(url1, favicon_base::FAVICON));
- EXPECT_EQ(2u, NumIconMappingsForPageURL(url2, favicon_base::FAVICON));
+ // Add a favicon.
+ backend_->SetFavicon(url1, favicon_base::FAVICON, icon_url1, bitmaps);
+ EXPECT_EQ(1u, NumIconMappingsForPageURL(url1, favicon_base::FAVICON));
+ EXPECT_EQ(1u, NumIconMappingsForPageURL(url2, favicon_base::FAVICON));
// Add one touch_icon
- backend_->SetFavicons(
- url1, favicon_base::TOUCH_ICON, one_favicon_bitmap_data);
+ backend_->SetFavicon(url1, favicon_base::TOUCH_ICON, icon_url1, bitmaps);
EXPECT_EQ(1u, NumIconMappingsForPageURL(url1, favicon_base::TOUCH_ICON));
EXPECT_EQ(1u, NumIconMappingsForPageURL(url2, favicon_base::TOUCH_ICON));
- EXPECT_EQ(2u, NumIconMappingsForPageURL(url1, favicon_base::FAVICON));
+ EXPECT_EQ(1u, NumIconMappingsForPageURL(url1, favicon_base::FAVICON));
// Add one TOUCH_PRECOMPOSED_ICON
- backend_->SetFavicons(
- url1, favicon_base::TOUCH_PRECOMPOSED_ICON, one_favicon_bitmap_data);
+ backend_->SetFavicon(
+ url1, favicon_base::TOUCH_PRECOMPOSED_ICON, icon_url1, bitmaps);
// The touch_icon was replaced.
EXPECT_EQ(0u, NumIconMappingsForPageURL(url1, favicon_base::TOUCH_ICON));
- EXPECT_EQ(2u, NumIconMappingsForPageURL(url1, favicon_base::FAVICON));
+ EXPECT_EQ(1u, NumIconMappingsForPageURL(url1, favicon_base::FAVICON));
EXPECT_EQ(
1u,
NumIconMappingsForPageURL(url1, favicon_base::TOUCH_PRECOMPOSED_ICON));
@@ -1608,38 +1549,32 @@ TEST_F(HistoryBackendTest, SetFaviconMappingsForPageAndRedirects) {
NumIconMappingsForPageURL(url2, favicon_base::TOUCH_PRECOMPOSED_ICON));
// Add a touch_icon.
- backend_->SetFavicons(
- url1, favicon_base::TOUCH_ICON, one_favicon_bitmap_data);
+ backend_->SetFavicon(url1, favicon_base::TOUCH_ICON, icon_url1, bitmaps);
EXPECT_EQ(1u, NumIconMappingsForPageURL(url1, favicon_base::TOUCH_ICON));
- EXPECT_EQ(2u, NumIconMappingsForPageURL(url1, favicon_base::FAVICON));
+ EXPECT_EQ(1u, NumIconMappingsForPageURL(url1, favicon_base::FAVICON));
// The TOUCH_PRECOMPOSED_ICON was replaced.
EXPECT_EQ(
0u,
NumIconMappingsForPageURL(url1, favicon_base::TOUCH_PRECOMPOSED_ICON));
- // Add a single favicon.
- backend_->SetFavicons(url1, favicon_base::FAVICON, one_favicon_bitmap_data);
+ // Add a different favicon.
+ backend_->SetFavicon(url1, favicon_base::FAVICON, icon_url2, bitmaps);
EXPECT_EQ(1u, NumIconMappingsForPageURL(url1, favicon_base::TOUCH_ICON));
EXPECT_EQ(1u, NumIconMappingsForPageURL(url1, favicon_base::FAVICON));
EXPECT_EQ(1u, NumIconMappingsForPageURL(url2, favicon_base::FAVICON));
-
- // Add two favicons.
- backend_->SetFavicons(url1, favicon_base::FAVICON, two_favicon_bitmap_data);
- EXPECT_EQ(1u, NumIconMappingsForPageURL(url1, favicon_base::TOUCH_ICON));
- EXPECT_EQ(2u, NumIconMappingsForPageURL(url1, favicon_base::FAVICON));
}
// Test that there is no churn in icon mappings from calling
-// SetFavicons() twice with the same |favicon_bitmap_data| parameter.
+// SetFavicon() twice with the same |bitmaps| parameter.
TEST_F(HistoryBackendTest, SetFaviconMappingsForPageDuplicates) {
const GURL url("http://www.google.com/");
const GURL icon_url("http://www.google.com/icon");
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data;
- GenerateFaviconBitmapData(icon_url, GetEdgeSizesSmallAndLarge(),
- &favicon_bitmap_data);
+ std::vector<SkBitmap> bitmaps;
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize));
+ bitmaps.push_back(CreateBitmap(SK_ColorRED, kLargeEdgeSize));
- backend_->SetFavicons(url, favicon_base::FAVICON, favicon_bitmap_data);
+ backend_->SetFavicon(url, favicon_base::FAVICON, icon_url, bitmaps);
std::vector<IconMapping> icon_mappings;
EXPECT_TRUE(backend_->thumbnail_db_->GetIconMappingsForPageURL(
@@ -1647,7 +1582,7 @@ TEST_F(HistoryBackendTest, SetFaviconMappingsForPageDuplicates) {
EXPECT_EQ(1u, icon_mappings.size());
IconMappingID mapping_id = icon_mappings[0].mapping_id;
- backend_->SetFavicons(url, favicon_base::FAVICON, favicon_bitmap_data);
+ backend_->SetFavicon(url, favicon_base::FAVICON, icon_url, bitmaps);
icon_mappings.clear();
EXPECT_TRUE(backend_->thumbnail_db_->GetIconMappingsForPageURL(
@@ -1659,17 +1594,17 @@ TEST_F(HistoryBackendTest, SetFaviconMappingsForPageDuplicates) {
EXPECT_EQ(mapping_id, icon_mappings[0].mapping_id);
}
-// Test that calling SetFavicons() with FaviconBitmapData of different pixel
+// Test that calling SetFavicon() with FaviconBitmapData of different pixel
// sizes than the initially passed in FaviconBitmapData deletes the no longer
// used favicon bitmaps.
-TEST_F(HistoryBackendTest, SetFaviconsDeleteBitmaps) {
+TEST_F(HistoryBackendTest, SetFaviconDeleteBitmaps) {
const GURL page_url("http://www.google.com/");
const GURL icon_url("http://www.google.com/icon");
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data;
- GenerateFaviconBitmapData(icon_url, GetEdgeSizesSmallAndLarge(),
- &favicon_bitmap_data);
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data);
+ std::vector<SkBitmap> bitmaps;
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize));
+ bitmaps.push_back(CreateBitmap(SK_ColorRED, kLargeEdgeSize));
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url, bitmaps);
// Test initial state.
std::vector<IconMapping> icon_mappings;
@@ -1684,18 +1619,18 @@ TEST_F(HistoryBackendTest, SetFaviconsDeleteBitmaps) {
EXPECT_EQ(2u, favicon_bitmaps.size());
FaviconBitmapID small_bitmap_id = favicon_bitmaps[0].bitmap_id;
EXPECT_NE(0, small_bitmap_id);
- EXPECT_TRUE(BitmapDataEqual('a', favicon_bitmaps[0].bitmap_data));
+ EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmaps[0].bitmap_data));
EXPECT_EQ(kSmallSize, favicon_bitmaps[0].pixel_size);
FaviconBitmapID large_bitmap_id = favicon_bitmaps[1].bitmap_id;
EXPECT_NE(0, large_bitmap_id);
- EXPECT_TRUE(BitmapDataEqual('b', favicon_bitmaps[1].bitmap_data));
+ EXPECT_TRUE(BitmapColorEqual(SK_ColorRED, favicon_bitmaps[1].bitmap_data));
EXPECT_EQ(kLargeSize, favicon_bitmaps[1].pixel_size);
- // Call SetFavicons() with bitmap data for only the large bitmap. Check that
+ // Call SetFavicon() with bitmap data for only the large bitmap. Check that
// the small bitmap is in fact deleted.
- GenerateFaviconBitmapData(icon_url, GetEdgeSizesLarge(),
- &favicon_bitmap_data);
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data);
+ bitmaps.clear();
+ bitmaps.push_back(CreateBitmap(SK_ColorWHITE, kLargeEdgeSize));
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url, bitmaps);
scoped_refptr<base::RefCountedMemory> bitmap_data_out;
gfx::Size pixel_size_out;
@@ -1703,7 +1638,7 @@ TEST_F(HistoryBackendTest, SetFaviconsDeleteBitmaps) {
NULL, &bitmap_data_out, &pixel_size_out));
EXPECT_TRUE(backend_->thumbnail_db_->GetFaviconBitmap(large_bitmap_id,
NULL, &bitmap_data_out, &pixel_size_out));
- EXPECT_TRUE(BitmapDataEqual('a', bitmap_data_out));
+ EXPECT_TRUE(BitmapColorEqual(SK_ColorWHITE, bitmap_data_out));
EXPECT_EQ(kLargeSize, pixel_size_out);
icon_mappings.clear();
@@ -1712,39 +1647,19 @@ TEST_F(HistoryBackendTest, SetFaviconsDeleteBitmaps) {
EXPECT_EQ(1u, icon_mappings.size());
EXPECT_EQ(favicon_id, icon_mappings[0].icon_id);
- // Call SetFavicons() with no bitmap data. Check that the bitmaps and icon
- // mappings are deleted.
- favicon_bitmap_data.clear();
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data);
-
- EXPECT_FALSE(backend_->thumbnail_db_->GetFaviconBitmap(large_bitmap_id, NULL,
- NULL, NULL));
- icon_mappings.clear();
- EXPECT_FALSE(backend_->thumbnail_db_->GetIconMappingsForPageURL(page_url,
- &icon_mappings));
-
- // Notifications should have been broadcast for each call to SetFavicons().
- EXPECT_EQ(3, num_broadcasted_notifications());
+ // Notifications should have been broadcast for each call to SetFavicon().
+ EXPECT_EQ(2, num_broadcasted_notifications());
}
-// Test updating a single favicon bitmap's data via SetFavicons.
-TEST_F(HistoryBackendTest, SetFaviconsReplaceBitmapData) {
+// Test updating a single favicon bitmap's data via SetFavicon.
+TEST_F(HistoryBackendTest, SetFaviconReplaceBitmapData) {
const GURL page_url("http://www.google.com/");
const GURL icon_url("http://www.google.com/icon");
-
- std::vector<unsigned char> data_initial;
- data_initial.push_back('a');
-
- favicon_base::FaviconRawBitmapData bitmap_data_element;
- bitmap_data_element.bitmap_data =
- base::RefCountedBytes::TakeVector(&data_initial);
- bitmap_data_element.pixel_size = kSmallSize;
- bitmap_data_element.icon_url = icon_url;
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data;
- favicon_bitmap_data.push_back(bitmap_data_element);
+ std::vector<SkBitmap> bitmaps;
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize));
// Add bitmap to the database.
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data);
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url, bitmaps);
favicon_base::FaviconID original_favicon_id =
backend_->thumbnail_db_->GetFaviconIDForFaviconURL(
@@ -1753,15 +1668,14 @@ TEST_F(HistoryBackendTest, SetFaviconsReplaceBitmapData) {
FaviconBitmap original_favicon_bitmap;
EXPECT_TRUE(
GetOnlyFaviconBitmap(original_favicon_id, &original_favicon_bitmap));
- EXPECT_TRUE(BitmapDataEqual('a', original_favicon_bitmap.bitmap_data));
+ EXPECT_TRUE(
+ BitmapColorEqual(SK_ColorBLUE, original_favicon_bitmap.bitmap_data));
EXPECT_EQ(1, num_broadcasted_notifications());
- // Call SetFavicons() with completely identical data.
- std::vector<unsigned char> updated_data;
- updated_data.push_back('a');
- favicon_bitmap_data[0].bitmap_data = new base::RefCountedBytes(updated_data);
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data);
+ // Call SetFavicon() with completely identical data.
+ bitmaps[0] = CreateBitmap(SK_ColorBLUE, kSmallEdgeSize);
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url, bitmaps);
favicon_base::FaviconID updated_favicon_id =
backend_->thumbnail_db_->GetFaviconIDForFaviconURL(
@@ -1770,23 +1684,24 @@ TEST_F(HistoryBackendTest, SetFaviconsReplaceBitmapData) {
FaviconBitmap updated_favicon_bitmap;
EXPECT_TRUE(
GetOnlyFaviconBitmap(updated_favicon_id, &updated_favicon_bitmap));
- EXPECT_TRUE(BitmapDataEqual('a', updated_favicon_bitmap.bitmap_data));
+ EXPECT_TRUE(
+ BitmapColorEqual(SK_ColorBLUE, updated_favicon_bitmap.bitmap_data));
// Because the bitmap data is byte equivalent, no notifications should have
// been broadcasted.
EXPECT_EQ(1, num_broadcasted_notifications());
- // Call SetFavicons() with identical data but a different bitmap.
- updated_data[0] = 'b';
- favicon_bitmap_data[0].bitmap_data = new base::RefCountedBytes(updated_data);
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data);
+ // Call SetFavicon() with a different bitmap of the same size.
+ bitmaps[0] = CreateBitmap(SK_ColorWHITE, kSmallEdgeSize);
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url, bitmaps);
updated_favicon_id = backend_->thumbnail_db_->GetFaviconIDForFaviconURL(
icon_url, favicon_base::FAVICON, NULL);
EXPECT_NE(0, updated_favicon_id);
EXPECT_TRUE(
GetOnlyFaviconBitmap(updated_favicon_id, &updated_favicon_bitmap));
- EXPECT_TRUE(BitmapDataEqual('b', updated_favicon_bitmap.bitmap_data));
+ EXPECT_TRUE(
+ BitmapColorEqual(SK_ColorWHITE, updated_favicon_bitmap.bitmap_data));
// There should be no churn in FaviconIDs or FaviconBitmapIds even though
// the bitmap data changed.
@@ -1801,17 +1716,16 @@ TEST_F(HistoryBackendTest, SetFaviconsReplaceBitmapData) {
// Test that if two pages share the same FaviconID, changing the favicon for
// one page does not affect the other.
-TEST_F(HistoryBackendTest, SetFaviconsSameFaviconURLForTwoPages) {
+TEST_F(HistoryBackendTest, SetFaviconSameFaviconURLForTwoPages) {
GURL icon_url("http://www.google.com/favicon.ico");
GURL icon_url_new("http://www.google.com/favicon2.ico");
GURL page_url1("http://www.google.com");
GURL page_url2("http://www.google.ca");
+ std::vector<SkBitmap> bitmaps;
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize));
+ bitmaps.push_back(CreateBitmap(SK_ColorRED, kLargeEdgeSize));
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data;
- GenerateFaviconBitmapData(icon_url, GetEdgeSizesSmallAndLarge(),
- &favicon_bitmap_data);
-
- backend_->SetFavicons(page_url1, favicon_base::FAVICON, favicon_bitmap_data);
+ backend_->SetFavicon(page_url1, favicon_base::FAVICON, icon_url, bitmaps);
std::vector<GURL> icon_urls;
icon_urls.push_back(icon_url);
@@ -1838,9 +1752,9 @@ TEST_F(HistoryBackendTest, SetFaviconsSameFaviconURLForTwoPages) {
EXPECT_EQ(favicon_id, icon_mappings[0].icon_id);
// Change the icon URL that |page_url1| is mapped to.
- GenerateFaviconBitmapData(icon_url_new, GetEdgeSizesSmall(),
- &favicon_bitmap_data);
- backend_->SetFavicons(page_url1, favicon_base::FAVICON, favicon_bitmap_data);
+ bitmaps.clear();
+ bitmaps.push_back(CreateBitmap(SK_ColorWHITE, kSmallEdgeSize));
+ backend_->SetFavicon(page_url1, favicon_base::FAVICON, icon_url_new, bitmaps);
// |page_url1| should map to a new FaviconID and have valid bitmap data.
icon_mappings.clear();
@@ -1868,7 +1782,7 @@ TEST_F(HistoryBackendTest, SetFaviconsSameFaviconURLForTwoPages) {
&favicon_bitmaps));
EXPECT_EQ(2u, favicon_bitmaps.size());
- // A notification should have been broadcast for each call to SetFavicons()
+ // A notification should have been broadcast for each call to SetFavicon()
// and each call to UpdateFaviconMappingsAndFetch().
EXPECT_EQ(3, num_broadcasted_notifications());
}
@@ -1879,11 +1793,10 @@ TEST_F(HistoryBackendTest, SetFaviconsSameFaviconURLForTwoPages) {
TEST_F(HistoryBackendTest, UpdateFaviconMappingsAndFetchNoChange) {
GURL page_url("http://www.google.com");
GURL icon_url("http://www.google.com/favicon.ico");
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data;
- GenerateFaviconBitmapData(icon_url, GetEdgeSizesSmall(),
- &favicon_bitmap_data);
+ std::vector<SkBitmap> bitmaps;
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize));
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data);
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url, bitmaps);
favicon_base::FaviconID icon_id =
backend_->thumbnail_db_->GetFaviconIDForFaviconURL(
@@ -1962,12 +1875,10 @@ TEST_F(HistoryBackendTest, MergeFaviconPageURLInDB) {
GURL page_url("http://www.google.com");
GURL icon_url1("http:/www.google.com/favicon.ico");
GURL icon_url2("http://www.google.com/favicon2.ico");
+ std::vector<SkBitmap> bitmaps;
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize));
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data;
- GenerateFaviconBitmapData(icon_url1, GetEdgeSizesSmall(),
- &favicon_bitmap_data);
-
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data);
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url1, bitmaps);
// Test initial state.
std::vector<IconMapping> icon_mappings;
@@ -1979,14 +1890,14 @@ TEST_F(HistoryBackendTest, MergeFaviconPageURLInDB) {
FaviconBitmap favicon_bitmap;
EXPECT_TRUE(GetOnlyFaviconBitmap(icon_mappings[0].icon_id, &favicon_bitmap));
EXPECT_NE(base::Time(), favicon_bitmap.last_updated);
- EXPECT_TRUE(BitmapDataEqual('a', favicon_bitmap.bitmap_data));
+ EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmap.bitmap_data));
EXPECT_EQ(kSmallSize, favicon_bitmap.pixel_size);
EXPECT_EQ(1, num_broadcasted_notifications());
// 1) Merge identical favicon bitmap.
std::vector<unsigned char> data;
- data.push_back('a');
+ gfx::PNGCodec::EncodeBGRASkBitmap(bitmaps[0], false, &data);
scoped_refptr<base::RefCountedBytes> bitmap_data(
new base::RefCountedBytes(data));
backend_->MergeFavicon(
@@ -2002,13 +1913,14 @@ TEST_F(HistoryBackendTest, MergeFaviconPageURLInDB) {
EXPECT_TRUE(GetOnlyFaviconBitmap(icon_mappings[0].icon_id, &favicon_bitmap));
EXPECT_NE(base::Time(), favicon_bitmap.last_updated);
- EXPECT_TRUE(BitmapDataEqual('a', favicon_bitmap.bitmap_data));
+ EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmap.bitmap_data));
EXPECT_EQ(kSmallSize, favicon_bitmap.pixel_size);
EXPECT_EQ(1, num_broadcasted_notifications());
// 2) Merge favicon bitmap of the same size.
- data[0] = 'b';
+ data.clear();
+ data.push_back('b');
bitmap_data = new base::RefCountedBytes(data);
backend_->MergeFavicon(
page_url, icon_url1, favicon_base::FAVICON, bitmap_data, kSmallSize);
@@ -2077,7 +1989,7 @@ TEST_F(HistoryBackendTest, MergeFaviconPageURLInDB) {
EXPECT_TRUE(BitmapDataEqual('d', favicon_bitmaps[1].bitmap_data));
EXPECT_EQ(kSmallSize, favicon_bitmaps[1].pixel_size);
- // A notification should have been broadcast for each call to SetFavicons()
+ // A notification should have been broadcast for each call to SetFavicon()
// and MergeFavicon().
EXPECT_EQ(4, num_broadcasted_notifications());
}
@@ -2089,12 +2001,10 @@ TEST_F(HistoryBackendTest, MergeFaviconIconURLMappedToDifferentPageURL) {
GURL page_url2("http://news.google.com");
GURL page_url3("http://maps.google.com");
GURL icon_url("http:/www.google.com/favicon.ico");
+ std::vector<SkBitmap> bitmaps;
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize));
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data;
- GenerateFaviconBitmapData(icon_url, GetEdgeSizesSmall(),
- &favicon_bitmap_data);
-
- backend_->SetFavicons(page_url1, favicon_base::FAVICON, favicon_bitmap_data);
+ backend_->SetFavicon(page_url1, favicon_base::FAVICON, icon_url, bitmaps);
// Test initial state.
std::vector<IconMapping> icon_mappings;
@@ -2106,12 +2016,12 @@ TEST_F(HistoryBackendTest, MergeFaviconIconURLMappedToDifferentPageURL) {
FaviconBitmap favicon_bitmap;
EXPECT_TRUE(GetOnlyFaviconBitmap(icon_mappings[0].icon_id, &favicon_bitmap));
EXPECT_NE(base::Time(), favicon_bitmap.last_updated);
- EXPECT_TRUE(BitmapDataEqual('a', favicon_bitmap.bitmap_data));
+ EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmap.bitmap_data));
EXPECT_EQ(kSmallSize, favicon_bitmap.pixel_size);
// 1) Merge in an identical favicon bitmap data but for a different page URL.
std::vector<unsigned char> data;
- data.push_back('a');
+ gfx::PNGCodec::EncodeBGRASkBitmap(bitmaps[0], false, &data);
scoped_refptr<base::RefCountedBytes> bitmap_data(
new base::RefCountedBytes(data));
@@ -2125,12 +2035,14 @@ TEST_F(HistoryBackendTest, MergeFaviconIconURLMappedToDifferentPageURL) {
EXPECT_TRUE(GetOnlyFaviconBitmap(favicon_id, &favicon_bitmap));
EXPECT_NE(base::Time(), favicon_bitmap.last_updated);
- EXPECT_TRUE(BitmapDataEqual('a', favicon_bitmap.bitmap_data));
+ EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmap.bitmap_data));
EXPECT_EQ(kSmallSize, favicon_bitmap.pixel_size);
// 2) Merging a favicon bitmap with different bitmap data for the same icon
// URL should overwrite the small favicon bitmap at |icon_url|.
- bitmap_data->data()[0] = 'b';
+ data.clear();
+ data.push_back('b');
+ bitmap_data = new base::RefCountedBytes(data);
backend_->MergeFavicon(
page_url3, icon_url, favicon_base::FAVICON, bitmap_data, kSmallSize);
@@ -2162,7 +2074,7 @@ TEST_F(HistoryBackendTest, MergeFaviconIconURLMappedToDifferentPageURL) {
EXPECT_EQ(1u, icon_mappings.size());
EXPECT_EQ(favicon_id, icon_mappings[0].icon_id);
- // A notification should have been broadcast for each call to SetFavicons()
+ // A notification should have been broadcast for each call to SetFavicon()
// and MergeFavicon().
EXPECT_EQ(3, num_broadcasted_notifications());
}
@@ -2210,13 +2122,12 @@ TEST_F(HistoryBackendTest, MergeFaviconShowsUpInGetFaviconsForURLResult) {
GURL page_url("http://www.google.com");
GURL icon_url("http://www.google.com/favicon.ico");
GURL merged_icon_url("http://wwww.google.com/favicon2.ico");
-
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data;
- GenerateFaviconBitmapData(icon_url, GetEdgeSizesSmallAndLarge(),
- &favicon_bitmap_data);
+ std::vector<SkBitmap> bitmaps;
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize));
+ bitmaps.push_back(CreateBitmap(SK_ColorRED, kLargeEdgeSize));
// Set some preexisting favicons for |page_url|.
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data);
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url, bitmaps);
// Merge small favicon.
std::vector<unsigned char> data;
@@ -2251,23 +2162,18 @@ TEST_F(HistoryBackendTest, TestGetFaviconsForURLWithIconTypesPriority) {
GURL icon_url("http://www.google.com/favicon.ico");
GURL touch_icon_url("http://wwww.google.com/touch_icon.ico");
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data;
- std::vector<int> favicon_size;
- favicon_size.push_back(16);
- favicon_size.push_back(32);
- GenerateFaviconBitmapData(icon_url, favicon_size, &favicon_bitmap_data);
- ASSERT_EQ(2u, favicon_bitmap_data.size());
-
- std::vector<favicon_base::FaviconRawBitmapData> touch_icon_bitmap_data;
- std::vector<int> touch_icon_size;
- touch_icon_size.push_back(64);
- GenerateFaviconBitmapData(icon_url, touch_icon_size, &touch_icon_bitmap_data);
- ASSERT_EQ(1u, touch_icon_bitmap_data.size());
+ std::vector<SkBitmap> favicon_bitmaps;
+ favicon_bitmaps.push_back(CreateBitmap(SK_ColorBLUE, 16));
+ favicon_bitmaps.push_back(CreateBitmap(SK_ColorRED, 32));
+
+ std::vector<SkBitmap> touch_bitmaps;
+ touch_bitmaps.push_back(CreateBitmap(SK_ColorWHITE, 64));
// Set some preexisting favicons for |page_url|.
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data);
- backend_->SetFavicons(
- page_url, favicon_base::TOUCH_ICON, touch_icon_bitmap_data);
+ backend_->SetFavicon(
+ page_url, favicon_base::FAVICON, icon_url, favicon_bitmaps);
+ backend_->SetFavicon(
+ page_url, favicon_base::TOUCH_ICON, touch_icon_url, touch_bitmaps);
favicon_base::FaviconRawBitmapResult result;
std::vector<int> icon_types;
@@ -2293,23 +2199,18 @@ TEST_F(HistoryBackendTest, TestGetFaviconsForURLReturnFavicon) {
GURL icon_url("http://www.google.com/favicon.ico");
GURL touch_icon_url("http://wwww.google.com/touch_icon.ico");
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data;
- std::vector<int> favicon_size;
- favicon_size.push_back(16);
- favicon_size.push_back(32);
- GenerateFaviconBitmapData(icon_url, favicon_size, &favicon_bitmap_data);
- ASSERT_EQ(2u, favicon_bitmap_data.size());
-
- std::vector<favicon_base::FaviconRawBitmapData> touch_icon_bitmap_data;
- std::vector<int> touch_icon_size;
- touch_icon_size.push_back(32);
- GenerateFaviconBitmapData(icon_url, touch_icon_size, &touch_icon_bitmap_data);
- ASSERT_EQ(1u, touch_icon_bitmap_data.size());
+ std::vector<SkBitmap> favicon_bitmaps;
+ favicon_bitmaps.push_back(CreateBitmap(SK_ColorBLUE, 16));
+ favicon_bitmaps.push_back(CreateBitmap(SK_ColorRED, 32));
+
+ std::vector<SkBitmap> touch_bitmaps;
+ touch_bitmaps.push_back(CreateBitmap(SK_ColorWHITE, 32));
// Set some preexisting favicons for |page_url|.
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data);
- backend_->SetFavicons(
- page_url, favicon_base::TOUCH_ICON, touch_icon_bitmap_data);
+ backend_->SetFavicon(
+ page_url, favicon_base::FAVICON, icon_url, favicon_bitmaps);
+ backend_->SetFavicon(
+ page_url, favicon_base::TOUCH_ICON, touch_icon_url, touch_bitmaps);
favicon_base::FaviconRawBitmapResult result;
std::vector<int> icon_types;
@@ -2335,14 +2236,11 @@ TEST_F(HistoryBackendTest, TestGetFaviconsForURLReturnFaviconEvenItSmaller) {
GURL page_url("http://www.google.com");
GURL icon_url("http://www.google.com/favicon.ico");
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data;
- std::vector<int> favicon_size;
- favicon_size.push_back(16);
- GenerateFaviconBitmapData(icon_url, favicon_size, &favicon_bitmap_data);
- ASSERT_EQ(1u, favicon_bitmap_data.size());
+ std::vector<SkBitmap> bitmaps;
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, 16));
// Set preexisting favicons for |page_url|.
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data);
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url, bitmaps);
favicon_base::FaviconRawBitmapResult result;
std::vector<int> icon_types;
@@ -2363,26 +2261,20 @@ TEST_F(HistoryBackendTest, UpdateFaviconMappingsAndFetchMultipleIconTypes) {
GURL page_url3("http://mail.google.com");
GURL icon_urla("http://www.google.com/favicon1.ico");
GURL icon_urlb("http://www.google.com/favicon2.ico");
- GURL icon_urlc("http://www.google.com/favicon3.ico");
+ std::vector<SkBitmap> bitmaps;
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize));
// |page_url1| is mapped to |icon_urla| which if of type TOUCH_ICON.
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data;
- GenerateFaviconBitmapData(icon_urla, GetEdgeSizesSmall(),
- &favicon_bitmap_data);
- backend_->SetFavicons(
- page_url1, favicon_base::TOUCH_ICON, favicon_bitmap_data);
+ backend_->SetFavicon(page_url1, favicon_base::TOUCH_ICON, icon_urla, bitmaps);
- // |page_url2| is mapped to |icon_urlb| and |icon_urlc| which are of type
+ // |page_url2| is mapped to |icon_urlb| which is of type
// TOUCH_PRECOMPOSED_ICON.
- GenerateFaviconBitmapData(icon_urlb, GetEdgeSizesSmall(), icon_urlc,
- GetEdgeSizesSmall(), &favicon_bitmap_data);
- backend_->SetFavicons(
- page_url2, favicon_base::TOUCH_PRECOMPOSED_ICON, favicon_bitmap_data);
+ backend_->SetFavicon(
+ page_url2, favicon_base::TOUCH_PRECOMPOSED_ICON, icon_urlb, bitmaps);
std::vector<GURL> icon_urls;
icon_urls.push_back(icon_urla);
icon_urls.push_back(icon_urlb);
- icon_urls.push_back(icon_urlc);
std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results;
backend_->UpdateFaviconMappingsAndFetch(
@@ -2402,25 +2294,20 @@ TEST_F(HistoryBackendTest, UpdateFaviconMappingsAndFetchMultipleIconTypes) {
icon_mappings.clear();
EXPECT_TRUE(GetSortedIconMappingsForPageURL(page_url2, &icon_mappings));
- EXPECT_EQ(2u, icon_mappings.size());
+ EXPECT_EQ(1u, icon_mappings.size());
EXPECT_EQ(icon_urlb, icon_mappings[0].icon_url);
EXPECT_EQ(favicon_base::TOUCH_PRECOMPOSED_ICON, icon_mappings[0].icon_type);
- EXPECT_EQ(icon_urlc, icon_mappings[1].icon_url);
- EXPECT_EQ(favicon_base::TOUCH_PRECOMPOSED_ICON, icon_mappings[1].icon_type);
- // |page_url3| should be mapped only to |icon_urlb| and |icon_urlc| as
- // TOUCH_PRECOMPOSED_ICON is the largest IconType.
+ // |page_url3| should be mapped only to |icon_urlb| as TOUCH_PRECOMPOSED_ICON
+ // is the largest IconType.
icon_mappings.clear();
EXPECT_TRUE(GetSortedIconMappingsForPageURL(page_url3, &icon_mappings));
- EXPECT_EQ(2u, icon_mappings.size());
+ EXPECT_EQ(1u, icon_mappings.size());
EXPECT_EQ(icon_urlb, icon_mappings[0].icon_url);
EXPECT_EQ(favicon_base::TOUCH_PRECOMPOSED_ICON, icon_mappings[0].icon_type);
- EXPECT_EQ(icon_urlc, icon_mappings[1].icon_url);
- EXPECT_EQ(favicon_base::TOUCH_PRECOMPOSED_ICON, icon_mappings[1].icon_type);
}
-// Test the results of GetFaviconsFromDB() when there are no found
-// favicons.
+// Test the results of GetFaviconsFromDB() when there are no found favicons.
TEST_F(HistoryBackendTest, GetFaviconsFromDBEmpty) {
const GURL page_url("http://www.google.com/");
@@ -2456,12 +2343,12 @@ TEST_F(HistoryBackendTest, GetFaviconsFromDBNoFaviconBitmaps) {
TEST_F(HistoryBackendTest, GetFaviconsFromDBSelectClosestMatch) {
const GURL page_url("http://www.google.com/");
const GURL icon_url("http://www.google.com/icon1");
+ std::vector<SkBitmap> bitmaps;
+ bitmaps.push_back(CreateBitmap(SK_ColorWHITE, kTinyEdgeSize));
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize));
+ bitmaps.push_back(CreateBitmap(SK_ColorRED, kLargeEdgeSize));
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data;
- GenerateFaviconBitmapData(icon_url, GetEdgeSizesTinySmallAndLarge(),
- &favicon_bitmap_data);
-
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data);
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url, bitmaps);
std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results_out;
EXPECT_TRUE(backend_->GetFaviconsFromDB(page_url,
@@ -2480,61 +2367,31 @@ TEST_F(HistoryBackendTest, GetFaviconsFromDBSelectClosestMatch) {
}
EXPECT_FALSE(bitmap_results_out[0].expired);
- EXPECT_TRUE(BitmapDataEqual('b', bitmap_results_out[0].bitmap_data));
+ EXPECT_TRUE(
+ BitmapColorEqual(SK_ColorBLUE, bitmap_results_out[0].bitmap_data));
EXPECT_EQ(kSmallSize, bitmap_results_out[0].pixel_size);
EXPECT_EQ(icon_url, bitmap_results_out[0].icon_url);
EXPECT_EQ(favicon_base::FAVICON, bitmap_results_out[0].icon_type);
EXPECT_FALSE(bitmap_results_out[1].expired);
- EXPECT_TRUE(BitmapDataEqual('c', bitmap_results_out[1].bitmap_data));
+ EXPECT_TRUE(BitmapColorEqual(SK_ColorRED, bitmap_results_out[1].bitmap_data));
EXPECT_EQ(kLargeSize, bitmap_results_out[1].pixel_size);
EXPECT_EQ(icon_url, bitmap_results_out[1].icon_url);
EXPECT_EQ(favicon_base::FAVICON, bitmap_results_out[1].icon_type);
}
-// Test that GetFaviconsFromDB() returns results from the icon URL whose
-// bitmaps most closely match the passed in desired sizes.
-TEST_F(HistoryBackendTest, GetFaviconsFromDBSingleIconURL) {
- const GURL page_url("http://www.google.com/");
-
- const GURL icon_url1("http://www.google.com/icon1");
- const GURL icon_url2("http://www.google.com/icon2");
-
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data;
- GenerateFaviconBitmapData(icon_url1, GetEdgeSizesSmall(), icon_url2,
- GetEdgeSizesLarge(), &favicon_bitmap_data);
-
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data);
-
- std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results_out;
- EXPECT_TRUE(backend_->GetFaviconsFromDB(page_url,
- favicon_base::FAVICON,
- GetEdgeSizesSmallAndLarge(),
- &bitmap_results_out));
-
- // The results should have results for the icon URL with the large bitmap as
- // downscaling is preferred to upscaling.
- EXPECT_EQ(1u, bitmap_results_out.size());
- EXPECT_EQ(kLargeSize, bitmap_results_out[0].pixel_size);
- EXPECT_EQ(icon_url2, bitmap_results_out[0].icon_url);
-}
-
// Test the results of GetFaviconsFromDB() when called with different
// |icon_types|.
TEST_F(HistoryBackendTest, GetFaviconsFromDBIconType) {
const GURL page_url("http://www.google.com/");
const GURL icon_url1("http://www.google.com/icon1.png");
const GURL icon_url2("http://www.google.com/icon2.png");
+ std::vector<SkBitmap> bitmaps;
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize));
std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data;
- GenerateFaviconBitmapData(icon_url1, GetEdgeSizesSmall(),
- &favicon_bitmap_data);
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data);
-
- GenerateFaviconBitmapData(
- icon_url2, GetEdgeSizesSmall(), &favicon_bitmap_data);
- backend_->SetFavicons(
- page_url, favicon_base::TOUCH_ICON, favicon_bitmap_data);
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url1, bitmaps);
+ backend_->SetFavicon(page_url, favicon_base::TOUCH_ICON, icon_url2, bitmaps);
std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results_out;
EXPECT_TRUE(backend_->GetFaviconsFromDB(page_url,
@@ -2605,12 +2462,11 @@ TEST_F(HistoryBackendTest, CloneFaviconIsRestrictedToSameDomain) {
const GURL same_domain_url("http://www.google.com/subdir/index.html");
const GURL foreign_domain_url("http://www.not-google.com/");
const GURL icon_url("http://www.google.com/icon.png");
+ std::vector<SkBitmap> bitmaps;
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize));
// Add a favicon
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data;
- GenerateFaviconBitmapData(icon_url, GetEdgeSizesSmall(),
- &favicon_bitmap_data);
- backend_->SetFavicons(url, favicon_base::FAVICON, favicon_bitmap_data);
+ backend_->SetFavicon(url, favicon_base::FAVICON, icon_url, bitmaps);
EXPECT_TRUE(backend_->thumbnail_db_->GetIconMappingsForPageURL(
url, favicon_base::FAVICON, NULL));

Powered by Google App Engine
This is Rietveld 408576698