summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/favicon/favicon_util.cc30
-rw-r--r--chrome/browser/favicon/favicon_util.h13
-rw-r--r--chrome/browser/importer/bookmark_html_reader.cc7
-rw-r--r--chrome/browser/importer/firefox3_importer.cc4
-rw-r--r--chrome/browser/importer/ie_importer.cc7
-rw-r--r--chrome/browser/importer/reencode_favicon.cc38
-rw-r--r--chrome/browser/importer/reencode_favicon.h18
-rw-r--r--chrome/browser/importer/safari_importer.mm4
-rw-r--r--chrome/chrome_browser.gypi2
9 files changed, 68 insertions, 55 deletions
diff --git a/chrome/browser/favicon/favicon_util.cc b/chrome/browser/favicon/favicon_util.cc
index 21c9d75..e53a71c 100644
--- a/chrome/browser/favicon/favicon_util.cc
+++ b/chrome/browser/favicon/favicon_util.cc
@@ -6,8 +6,6 @@
#include "chrome/browser/favicon/favicon_types.h"
#include "chrome/browser/history/select_favicon_frames.h"
-#include "content/public/browser/render_view_host.h"
-#include "content/public/child/image_decoder_utils.h"
#include "skia/ext/image_operations.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/gfx/codec/png_codec.h"
@@ -15,7 +13,6 @@
#include "ui/gfx/image/image_png_rep.h"
#include "ui/gfx/image/image_skia.h"
#include "ui/gfx/size.h"
-#include "url/gurl.h"
#if defined(OS_MACOSX) && !defined(OS_IOS)
#include "base/mac/mac_util.h"
@@ -200,30 +197,3 @@ size_t FaviconUtil::SelectBestFaviconFromBitmaps(
DCHECK_EQ(1u, selected_bitmap_indices.size());
return selected_bitmap_indices[0];
}
-
-// static
-bool FaviconUtil::ReencodeFavicon(const unsigned char* src_data,
- size_t src_len,
- std::vector<unsigned char>* png_data) {
- // Decode the favicon using WebKit's image decoder.
- SkBitmap decoded = content::DecodeImage(
- src_data,
- gfx::Size(gfx::kFaviconSize, gfx::kFaviconSize),
- src_len);
- if (decoded.empty())
- return false; // Unable to decode.
-
- if (decoded.width() != gfx::kFaviconSize ||
- decoded.height() != gfx::kFaviconSize) {
- // The bitmap is not the correct size, re-sample.
- int new_width = decoded.width();
- int new_height = decoded.height();
- gfx::CalculateFaviconTargetSize(&new_width, &new_height);
- decoded = skia::ImageOperations::Resize(
- decoded, skia::ImageOperations::RESIZE_LANCZOS3, new_width, new_height);
- }
-
- // Encode our bitmap as a PNG.
- gfx::PNGCodec::EncodeBGRASkBitmap(decoded, false, png_data);
- return true;
-}
diff --git a/chrome/browser/favicon/favicon_util.h b/chrome/browser/favicon/favicon_util.h
index 89474e9..3bc3add 100644
--- a/chrome/browser/favicon/favicon_util.h
+++ b/chrome/browser/favicon/favicon_util.h
@@ -9,16 +9,10 @@
#include "ui/base/layout.h"
-class GURL;
-
namespace chrome {
struct FaviconBitmapResult;
}
-namespace content {
-class RenderViewHost;
-}
-
namespace gfx {
class Image;
}
@@ -52,13 +46,6 @@ class FaviconUtil {
const std::vector<SkBitmap>& bitmaps,
const std::vector<ui::ScaleFactor>& scale_factors,
int desired_size);
-
- // Given raw image data, decodes the icon, re-sampling to the correct size as
- // necessary, and re-encodes as PNG data in the given output vector. Returns
- // true on success.
- static bool ReencodeFavicon(const unsigned char* src_data,
- size_t src_len,
- std::vector<unsigned char>* png_data);
};
#endif // CHROME_BROWSER_FAVICON_FAVICON_UTIL_H_
diff --git a/chrome/browser/importer/bookmark_html_reader.cc b/chrome/browser/importer/bookmark_html_reader.cc
index e618bad..9f41ae7 100644
--- a/chrome/browser/importer/bookmark_html_reader.cc
+++ b/chrome/browser/importer/bookmark_html_reader.cc
@@ -11,7 +11,7 @@
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/time/time.h"
-#include "chrome/browser/favicon/favicon_util.h"
+#include "chrome/browser/importer/reencode_favicon.h"
#include "chrome/common/importer/imported_bookmark_entry.h"
#include "chrome/common/importer/imported_favicon_usage.h"
#include "content/public/common/url_constants.h"
@@ -67,9 +67,8 @@ void DataURLToFaviconUsage(
return;
ImportedFaviconUsage usage;
- if (!FaviconUtil::ReencodeFavicon(
- reinterpret_cast<const unsigned char*>(&data[0]),
- data.size(), &usage.png_data))
+ if (!ReencodeFavicon(reinterpret_cast<const uint8*>(&data[0]),
+ data.size(), &usage.png_data))
return; // Unable to decode.
// We need to make up a URL for the favicon. We use a version of the page's
diff --git a/chrome/browser/importer/firefox3_importer.cc b/chrome/browser/importer/firefox3_importer.cc
index 1cfdbce..50a0d0c 100644
--- a/chrome/browser/importer/firefox3_importer.cc
+++ b/chrome/browser/importer/firefox3_importer.cc
@@ -14,11 +14,11 @@
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/browser_process.h"
-#include "chrome/browser/favicon/favicon_util.h"
#include "chrome/browser/importer/bookmark_html_reader.h"
#include "chrome/browser/importer/firefox_importer_utils.h"
#include "chrome/browser/importer/importer_bridge.h"
#include "chrome/browser/importer/nss_decryptor.h"
+#include "chrome/browser/importer/reencode_favicon.h"
#include "chrome/common/importer/imported_bookmark_entry.h"
#include "chrome/common/importer/imported_favicon_usage.h"
#include "chrome/common/importer/importer_url_row.h"
@@ -580,7 +580,7 @@ void Firefox3Importer::LoadFavicons(
if (data.empty())
continue; // Data definitely invalid.
- if (!FaviconUtil::ReencodeFavicon(&data[0], data.size(), &usage.png_data))
+ if (!ReencodeFavicon(&data[0], data.size(), &usage.png_data))
continue; // Unable to decode.
usage.urls = i->second;
diff --git a/chrome/browser/importer/ie_importer.cc b/chrome/browser/importer/ie_importer.cc
index ceeb772..934e815 100644
--- a/chrome/browser/importer/ie_importer.cc
+++ b/chrome/browser/importer/ie_importer.cc
@@ -29,10 +29,10 @@
#include "base/win/scoped_handle.h"
#include "base/win/scoped_propvariant.h"
#include "base/win/windows_version.h"
-#include "chrome/browser/favicon/favicon_util.h"
#include "chrome/browser/importer/ie_importer_utils_win.h"
#include "chrome/browser/importer/importer_bridge.h"
#include "chrome/browser/importer/pstore_declarations.h"
+#include "chrome/browser/importer/reencode_favicon.h"
#include "chrome/common/importer/imported_bookmark_entry.h"
#include "chrome/common/importer/imported_favicon_usage.h"
#include "chrome/common/importer/importer_data_types.h"
@@ -360,9 +360,8 @@ bool ReadReencodedFaviconData(const string16& file,
return false;
}
- const unsigned char* ptr =
- reinterpret_cast<const unsigned char*>(image_data.c_str());
- return FaviconUtil::ReencodeFavicon(ptr, image_data.size(), data);
+ return ReencodeFavicon(reinterpret_cast<const uint8*>(image_data.c_str()),
+ image_data.size(), data);
}
// Loads favicon image data and registers to |favicon_map|.
diff --git a/chrome/browser/importer/reencode_favicon.cc b/chrome/browser/importer/reencode_favicon.cc
new file mode 100644
index 0000000..cbf26153
--- /dev/null
+++ b/chrome/browser/importer/reencode_favicon.cc
@@ -0,0 +1,38 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/importer/reencode_favicon.h"
+
+#include "content/public/child/image_decoder_utils.h"
+#include "skia/ext/image_operations.h"
+#include "third_party/skia/include/core/SkBitmap.h"
+#include "ui/gfx/codec/png_codec.h"
+#include "ui/gfx/favicon_size.h"
+#include "ui/gfx/size.h"
+
+bool ReencodeFavicon(const uint8* src_data,
+ size_t src_len,
+ std::vector<uint8>* png_data) {
+ // Decode the favicon using WebKit's image decoder.
+ SkBitmap decoded = content::DecodeImage(
+ src_data,
+ gfx::Size(gfx::kFaviconSize, gfx::kFaviconSize),
+ src_len);
+ if (decoded.empty())
+ return false; // Unable to decode.
+
+ if (decoded.width() != gfx::kFaviconSize ||
+ decoded.height() != gfx::kFaviconSize) {
+ // The bitmap is not the correct size, re-sample.
+ int new_width = decoded.width();
+ int new_height = decoded.height();
+ gfx::CalculateFaviconTargetSize(&new_width, &new_height);
+ decoded = skia::ImageOperations::Resize(
+ decoded, skia::ImageOperations::RESIZE_LANCZOS3, new_width, new_height);
+ }
+
+ // Encode our bitmap as a PNG.
+ gfx::PNGCodec::EncodeBGRASkBitmap(decoded, false, png_data);
+ return true;
+}
diff --git a/chrome/browser/importer/reencode_favicon.h b/chrome/browser/importer/reencode_favicon.h
new file mode 100644
index 0000000..b1b510a
--- /dev/null
+++ b/chrome/browser/importer/reencode_favicon.h
@@ -0,0 +1,18 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_IMPORTER_REENCODE_FAVICON_H_
+#define CHROME_BROWSER_IMPORTER_REENCODE_FAVICON_H_
+
+#include <vector>
+
+#include "base/basictypes.h"
+
+// Given raw image data, decodes the icon, re-sampling to the correct size as
+// necessary, and re-encodes as PNG data in the given output vector. Returns
+// true on success.
+bool ReencodeFavicon(const uint8* src_data, size_t src_len,
+ std::vector<uint8>* png_data);
+
+#endif // CHROME_BROWSER_IMPORTER_REENCODE_FAVICON_H_
diff --git a/chrome/browser/importer/safari_importer.mm b/chrome/browser/importer/safari_importer.mm
index eb04d67..4a5de0d 100644
--- a/chrome/browser/importer/safari_importer.mm
+++ b/chrome/browser/importer/safari_importer.mm
@@ -15,8 +15,8 @@
#include "base/strings/sys_string_conversions.h"
#include "base/strings/utf_string_conversions.h"
#include "base/time/time.h"
-#include "chrome/browser/favicon/favicon_util.h"
#include "chrome/browser/importer/importer_bridge.h"
+#include "chrome/browser/importer/reencode_favicon.h"
#include "chrome/common/importer/imported_bookmark_entry.h"
#include "chrome/common/importer/imported_favicon_usage.h"
#include "chrome/common/url_constants.h"
@@ -176,7 +176,7 @@ void SafariImporter::LoadFaviconData(
if (data.empty())
continue; // Data definitely invalid.
- if (!FaviconUtil::ReencodeFavicon(&data[0], data.size(), &usage.png_data))
+ if (!ReencodeFavicon(&data[0], data.size(), &usage.png_data))
continue; // Unable to decode.
usage.urls = i->second;
diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
index 4494464..c8ab9b7 100644
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -840,6 +840,8 @@
'browser/importer/external_process_importer_client.h',
'browser/importer/external_process_importer_host.cc',
'browser/importer/external_process_importer_host.h',
+ 'browser/importer/reencode_favicon.cc',
+ 'browser/importer/reencode_favicon.h',
'browser/importer/firefox3_importer.cc',
'browser/importer/firefox3_importer.h',
'browser/importer/firefox_importer_utils.cc',