| Index: components/suggestions/image_manager.cc
|
| diff --git a/components/suggestions/image_manager.cc b/components/suggestions/image_manager.cc
|
| index 9e4338127d35e4fcce065d010f06a66a5fe01ecb..b702fed30feba66f7c61002cc19015f5c708defe 100644
|
| --- a/components/suggestions/image_manager.cc
|
| +++ b/components/suggestions/image_manager.cc
|
| @@ -5,28 +5,21 @@
|
| #include "components/suggestions/image_manager.h"
|
|
|
| #include "base/bind.h"
|
| +#include "components/suggestions/image_encoder.h"
|
| #include "components/suggestions/image_fetcher.h"
|
| -#include "ui/gfx/codec/jpeg_codec.h"
|
|
|
| using leveldb_proto::ProtoDatabase;
|
|
|
| -namespace {
|
| -
|
| -// From JPEG-encoded bytes to SkBitmap.
|
| -SkBitmap* DecodeImage(const std::vector<unsigned char>& encoded_data) {
|
| - return gfx::JPEGCodec::Decode(&encoded_data[0], encoded_data.size());
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| namespace suggestions {
|
|
|
| ImageManager::ImageManager() : weak_ptr_factory_(this) {}
|
|
|
| ImageManager::ImageManager(scoped_ptr<ImageFetcher> image_fetcher,
|
| + scoped_ptr<ImageEncoder> image_encoder,
|
| scoped_ptr<ProtoDatabase<ImageData> > database,
|
| const base::FilePath& database_dir)
|
| : image_fetcher_(image_fetcher.Pass()),
|
| + image_encoder_(image_encoder.Pass()),
|
| database_(database.Pass()),
|
| database_ready_(false),
|
| weak_ptr_factory_(this) {
|
| @@ -139,7 +132,7 @@ void ImageManager::SaveImage(const GURL& url, const SkBitmap& bitmap) {
|
| // Attempt to save a JPEG representation to the database. If not successful,
|
| // the fetched bitmap will still be inserted in the cache, above.
|
| std::vector<unsigned char> encoded_data;
|
| - if (EncodeImage(bitmap, &encoded_data)) {
|
| + if (image_encoder_->EncodeImage(bitmap, &encoded_data)) {
|
| // Save the resulting bitmap to the database.
|
| ImageData data;
|
| data.set_url(url.spec());
|
| @@ -194,7 +187,7 @@ void ImageManager::LoadEntriesInCache(scoped_ptr<ImageDataVector> entries) {
|
| std::vector<unsigned char> encoded_data(it->data().begin(),
|
| it->data().end());
|
|
|
| - scoped_ptr<SkBitmap> bitmap(DecodeImage(encoded_data));
|
| + scoped_ptr<SkBitmap> bitmap(image_encoder_->DecodeImage(encoded_data));
|
| if (bitmap.get()) {
|
| image_map_.insert(std::make_pair(it->url(), *bitmap));
|
| }
|
| @@ -212,17 +205,4 @@ void ImageManager::ServePendingCacheRequests() {
|
| }
|
| }
|
|
|
| -// static
|
| -bool ImageManager::EncodeImage(const SkBitmap& bitmap,
|
| - std::vector<unsigned char>* dest) {
|
| - SkAutoLockPixels bitmap_lock(bitmap);
|
| - if (!bitmap.readyToDraw() || bitmap.isNull()) {
|
| - return false;
|
| - }
|
| - return gfx::JPEGCodec::Encode(
|
| - reinterpret_cast<unsigned char*>(bitmap.getAddr32(0, 0)),
|
| - gfx::JPEGCodec::FORMAT_SkBitmap, bitmap.width(), bitmap.height(),
|
| - bitmap.rowBytes(), 100, dest);
|
| -}
|
| -
|
| } // namespace suggestions
|
|
|