| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/views/ash/launcher/launcher_favicon_loader.h" | 5 #include "chrome/browser/ui/views/ash/launcher/launcher_favicon_loader.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "chrome/browser/favicon/favicon_util.h" | 8 #include "chrome/browser/favicon/favicon_util.h" |
| 9 #include "chrome/browser/ui/views/ash/launcher/browser_launcher_item_controller.
h" | 9 #include "chrome/browser/ui/views/ash/launcher/browser_launcher_item_controller.
h" |
| 10 #include "chrome/common/favicon_url.h" | 10 #include "chrome/common/favicon_url.h" |
| (...skipping 25 matching lines...) Expand all Loading... |
| 36 ~FaviconBitmapHandler() {} | 36 ~FaviconBitmapHandler() {} |
| 37 | 37 |
| 38 const SkBitmap& bitmap() const { return bitmap_; } | 38 const SkBitmap& bitmap() const { return bitmap_; } |
| 39 | 39 |
| 40 void OnUpdateFaviconURL(int32 page_id, | 40 void OnUpdateFaviconURL(int32 page_id, |
| 41 const std::vector<FaviconURL>& candidates); | 41 const std::vector<FaviconURL>& candidates); |
| 42 | 42 |
| 43 void OnDidDownloadFavicon(int id, | 43 void OnDidDownloadFavicon(int id, |
| 44 const GURL& image_url, | 44 const GURL& image_url, |
| 45 bool errored, | 45 bool errored, |
| 46 const SkBitmap& bitmap); | 46 int requested_size, |
| 47 const std::vector<SkBitmap>& bitmaps); |
| 47 | 48 |
| 48 private: | 49 private: |
| 49 void DownloadFavicon(const GURL& image_url); | 50 void DownloadFavicon(const GURL& image_url); |
| 50 void AddFavicon(const GURL& image_url, const SkBitmap& new_bitmap); | 51 void AddFavicon(const GURL& image_url, const SkBitmap& new_bitmap); |
| 51 | 52 |
| 52 content::WebContents* web_contents_; | 53 content::WebContents* web_contents_; |
| 53 LauncherFaviconLoader::Delegate* delegate_; | 54 LauncherFaviconLoader::Delegate* delegate_; |
| 54 | 55 |
| 55 typedef std::set<GURL> UrlSet; | 56 typedef std::set<GURL> UrlSet; |
| 56 // Map of pending download urls. | 57 // Map of pending download urls. |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 105 } | 106 } |
| 106 } | 107 } |
| 107 | 108 |
| 108 void FaviconBitmapHandler::DownloadFavicon(const GURL& image_url) { | 109 void FaviconBitmapHandler::DownloadFavicon(const GURL& image_url) { |
| 109 int image_size = 0; // Request the full sized image. | 110 int image_size = 0; // Request the full sized image. |
| 110 pending_requests_.insert(image_url); | 111 pending_requests_.insert(image_url); |
| 111 content::RenderViewHost* host = web_contents_->GetRenderViewHost(); | 112 content::RenderViewHost* host = web_contents_->GetRenderViewHost(); |
| 112 FaviconUtil::DownloadFavicon(host, image_url, image_size); | 113 FaviconUtil::DownloadFavicon(host, image_url, image_size); |
| 113 } | 114 } |
| 114 | 115 |
| 115 void FaviconBitmapHandler::OnDidDownloadFavicon(int id, | 116 |
| 116 const GURL& image_url, | 117 void FaviconBitmapHandler::OnDidDownloadFavicon( |
| 117 bool errored, | 118 int id, |
| 118 const SkBitmap& bitmap) { | 119 const GURL& image_url, |
| 120 bool errored, |
| 121 int requested_size, |
| 122 const std::vector<SkBitmap>& bitmaps) { |
| 119 UrlSet::iterator iter = pending_requests_.find(image_url); | 123 UrlSet::iterator iter = pending_requests_.find(image_url); |
| 120 if (iter == pending_requests_.end()) { | 124 if (iter == pending_requests_.end()) { |
| 121 // Updates are received for all downloads; ignore unrequested urls. | 125 // Updates are received for all downloads; ignore unrequested urls. |
| 122 return; | 126 return; |
| 123 } | 127 } |
| 124 pending_requests_.erase(iter); | 128 pending_requests_.erase(iter); |
| 125 | 129 |
| 126 if (!errored) | 130 // Favicon bitmaps are ordered by decreasing width. |
| 127 AddFavicon(image_url, bitmap); | 131 if (!errored && !bitmaps.empty()) |
| 132 AddFavicon(image_url, bitmaps[0]); |
| 128 } | 133 } |
| 129 | 134 |
| 130 void FaviconBitmapHandler::AddFavicon(const GURL& image_url, | 135 void FaviconBitmapHandler::AddFavicon(const GURL& image_url, |
| 131 const SkBitmap& new_bitmap) { | 136 const SkBitmap& new_bitmap) { |
| 132 processed_requests_.insert(image_url); | 137 processed_requests_.insert(image_url); |
| 133 if (new_bitmap.height() > kMaxBitmapSize || | 138 if (new_bitmap.height() > kMaxBitmapSize || |
| 134 new_bitmap.width() > kMaxBitmapSize) | 139 new_bitmap.width() > kMaxBitmapSize) |
| 135 return; | 140 return; |
| 136 if (new_bitmap.height() < ash::kLauncherPreferredSize) | 141 if (new_bitmap.height() < ash::kLauncherPreferredSize) |
| 137 return; | 142 return; |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 172 SkBitmap LauncherFaviconLoader::GetFavicon() const { | 177 SkBitmap LauncherFaviconLoader::GetFavicon() const { |
| 173 return favicon_handler_->bitmap(); | 178 return favicon_handler_->bitmap(); |
| 174 } | 179 } |
| 175 | 180 |
| 176 void LauncherFaviconLoader::OnUpdateFaviconURL( | 181 void LauncherFaviconLoader::OnUpdateFaviconURL( |
| 177 int32 page_id, | 182 int32 page_id, |
| 178 const std::vector<FaviconURL>& candidates) { | 183 const std::vector<FaviconURL>& candidates) { |
| 179 favicon_handler_->OnUpdateFaviconURL(page_id, candidates); | 184 favicon_handler_->OnUpdateFaviconURL(page_id, candidates); |
| 180 } | 185 } |
| 181 | 186 |
| 182 void LauncherFaviconLoader::OnDidDownloadFavicon(int id, | 187 void LauncherFaviconLoader::OnDidDownloadFavicon( |
| 183 const GURL& image_url, | 188 int id, |
| 184 bool errored, | 189 const GURL& image_url, |
| 185 const SkBitmap& bitmap) { | 190 bool errored, |
| 186 favicon_handler_->OnDidDownloadFavicon(id, image_url, errored, bitmap); | 191 int requested_size, |
| 192 const std::vector<SkBitmap>& bitmaps) { |
| 193 favicon_handler_->OnDidDownloadFavicon( |
| 194 id, image_url, errored, requested_size, bitmaps); |
| 187 } | 195 } |
| OLD | NEW |