| Index: chrome/renderer/chrome_render_view_observer.cc
|
| diff --git a/chrome/renderer/chrome_render_view_observer.cc b/chrome/renderer/chrome_render_view_observer.cc
|
| index 9d820967d6dfee9bf5bed81c71c2830eb39bd1e2..1aca18d469e9169c204fddd24697540c582b0bd4 100644
|
| --- a/chrome/renderer/chrome_render_view_observer.cc
|
| +++ b/chrome/renderer/chrome_render_view_observer.cc
|
| @@ -51,7 +51,7 @@
|
| #include "ui/gfx/size.h"
|
| #include "ui/gfx/skbitmap_operations.h"
|
| #include "webkit/glue/image_decoder.h"
|
| -#include "webkit/glue/image_resource_fetcher.h"
|
| +#include "webkit/glue/multi_resolution_image_resource_fetcher.h"
|
| #include "webkit/glue/webkit_glue.h"
|
| #include "v8/include/v8-testing.h"
|
|
|
| @@ -71,7 +71,7 @@ using WebKit::WebURLRequest;
|
| using WebKit::WebView;
|
| using WebKit::WebVector;
|
| using extensions::APIPermission;
|
| -using webkit_glue::ImageResourceFetcher;
|
| +using webkit_glue::MultiResolutionImageResourceFetcher;
|
|
|
| // Delay in milliseconds that we'll wait before capturing the page contents
|
| // and thumbnail.
|
| @@ -332,15 +332,17 @@ void ChromeRenderViewObserver::OnDownloadFavicon(int id,
|
| SkBitmap data_image = ImageFromDataUrl(image_url);
|
| data_image_failed = data_image.empty();
|
| if (!data_image_failed) {
|
| + std::vector<SkBitmap> images(1, data_image);
|
| Send(new IconHostMsg_DidDownloadFavicon(
|
| - routing_id(), id, image_url, false, data_image));
|
| + routing_id(), id, image_url, false, image_size, images));
|
| }
|
| }
|
|
|
| if (data_image_failed ||
|
| !DownloadFavicon(id, image_url, image_size)) {
|
| Send(new IconHostMsg_DidDownloadFavicon(
|
| - routing_id(), id, image_url, true, SkBitmap()));
|
| + routing_id(), id, image_url, true, image_size,
|
| + std::vector<SkBitmap>()));
|
| }
|
| }
|
|
|
| @@ -1048,26 +1050,29 @@ bool ChromeRenderViewObserver::DownloadFavicon(int id,
|
| if (!render_view()->GetWebView())
|
| return false;
|
| // Create an image resource fetcher and assign it with a call back object.
|
| - image_fetchers_.push_back(linked_ptr<ImageResourceFetcher>(
|
| - new ImageResourceFetcher(
|
| - image_url, render_view()->GetWebView()->mainFrame(), id, image_size,
|
| + image_fetchers_.push_back(linked_ptr<MultiResolutionImageResourceFetcher>(
|
| + new MultiResolutionImageResourceFetcher(
|
| + image_url, render_view()->GetWebView()->mainFrame(), id,
|
| WebURLRequest::TargetIsFavicon,
|
| base::Bind(&ChromeRenderViewObserver::DidDownloadFavicon,
|
| - base::Unretained(this)))));
|
| + base::Unretained(this), image_size))));
|
| return true;
|
| }
|
|
|
| void ChromeRenderViewObserver::DidDownloadFavicon(
|
| - ImageResourceFetcher* fetcher, const SkBitmap& image) {
|
| + int requested_size,
|
| + MultiResolutionImageResourceFetcher* fetcher,
|
| + const std::vector<SkBitmap>& images) {
|
| // Notify requester of image download status.
|
| Send(new IconHostMsg_DidDownloadFavicon(routing_id(),
|
| fetcher->id(),
|
| fetcher->image_url(),
|
| - image.isNull(),
|
| - image));
|
| + images.empty(),
|
| + requested_size,
|
| + images));
|
|
|
| // Remove the image fetcher from our pending list. We're in the callback from
|
| - // ImageResourceFetcher, best to delay deletion.
|
| + // MultiResolutionImageResourceFetcher, best to delay deletion.
|
| ImageResourceFetcherList::iterator iter;
|
| for (iter = image_fetchers_.begin(); iter != image_fetchers_.end(); ++iter) {
|
| if (iter->get() == fetcher) {
|
|
|