| 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/favicon/favicon_tab_helper.h" | 5 #include "chrome/browser/favicon/favicon_tab_helper.h" |
| 6 | 6 |
| 7 #include "chrome/browser/chrome_notification_types.h" | 7 #include "chrome/browser/chrome_notification_types.h" |
| 8 #include "chrome/browser/favicon/chrome_favicon_client.h" | 8 #include "chrome/browser/favicon/chrome_favicon_client.h" |
| 9 #include "chrome/browser/favicon/chrome_favicon_client_factory.h" | 9 #include "chrome/browser/favicon/chrome_favicon_client_factory.h" |
| 10 #include "chrome/browser/favicon/favicon_handler.h" | 10 #include "chrome/browser/favicon/favicon_handler.h" |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 } | 112 } |
| 113 | 113 |
| 114 void FaviconTabHelper::SaveFavicon() { | 114 void FaviconTabHelper::SaveFavicon() { |
| 115 NavigationEntry* entry = web_contents()->GetController().GetActiveEntry(); | 115 NavigationEntry* entry = web_contents()->GetController().GetActiveEntry(); |
| 116 if (!entry || entry->GetURL().is_empty()) | 116 if (!entry || entry->GetURL().is_empty()) |
| 117 return; | 117 return; |
| 118 | 118 |
| 119 // Make sure the page is in history, otherwise adding the favicon does | 119 // Make sure the page is in history, otherwise adding the favicon does |
| 120 // nothing. | 120 // nothing. |
| 121 HistoryService* history = HistoryServiceFactory::GetForProfile( | 121 HistoryService* history = HistoryServiceFactory::GetForProfile( |
| 122 profile_->GetOriginalProfile(), Profile::IMPLICIT_ACCESS); | 122 profile_->GetOriginalProfile(), ServiceAccessType::IMPLICIT_ACCESS); |
| 123 if (!history) | 123 if (!history) |
| 124 return; | 124 return; |
| 125 history->AddPageNoVisitForBookmark(entry->GetURL(), entry->GetTitle()); | 125 history->AddPageNoVisitForBookmark(entry->GetURL(), entry->GetTitle()); |
| 126 | 126 |
| 127 FaviconService* service = FaviconServiceFactory::GetForProfile( | 127 FaviconService* service = FaviconServiceFactory::GetForProfile( |
| 128 profile_->GetOriginalProfile(), Profile::IMPLICIT_ACCESS); | 128 profile_->GetOriginalProfile(), ServiceAccessType::IMPLICIT_ACCESS); |
| 129 if (!service) | 129 if (!service) |
| 130 return; | 130 return; |
| 131 const FaviconStatus& favicon(entry->GetFavicon()); | 131 const FaviconStatus& favicon(entry->GetFavicon()); |
| 132 if (!favicon.valid || favicon.url.is_empty() || | 132 if (!favicon.valid || favicon.url.is_empty() || |
| 133 favicon.image.IsEmpty()) { | 133 favicon.image.IsEmpty()) { |
| 134 return; | 134 return; |
| 135 } | 135 } |
| 136 service->SetFavicons( | 136 service->SetFavicons( |
| 137 entry->GetURL(), favicon.url, favicon_base::FAVICON, favicon.image); | 137 entry->GetURL(), favicon.url, favicon_base::FAVICON, favicon.image); |
| 138 } | 138 } |
| 139 | 139 |
| 140 void FaviconTabHelper::AddObserver(FaviconTabHelperObserver* observer) { | 140 void FaviconTabHelper::AddObserver(FaviconTabHelperObserver* observer) { |
| 141 observer_list_.AddObserver(observer); | 141 observer_list_.AddObserver(observer); |
| 142 } | 142 } |
| 143 | 143 |
| 144 void FaviconTabHelper::RemoveObserver(FaviconTabHelperObserver* observer) { | 144 void FaviconTabHelper::RemoveObserver(FaviconTabHelperObserver* observer) { |
| 145 observer_list_.RemoveObserver(observer); | 145 observer_list_.RemoveObserver(observer); |
| 146 } | 146 } |
| 147 | 147 |
| 148 int FaviconTabHelper::StartDownload(const GURL& url, int max_image_size) { | 148 int FaviconTabHelper::StartDownload(const GURL& url, int max_image_size) { |
| 149 FaviconService* favicon_service = FaviconServiceFactory::GetForProfile( | 149 FaviconService* favicon_service = FaviconServiceFactory::GetForProfile( |
| 150 profile_->GetOriginalProfile(), Profile::IMPLICIT_ACCESS); | 150 profile_->GetOriginalProfile(), ServiceAccessType::IMPLICIT_ACCESS); |
| 151 if (favicon_service && favicon_service->WasUnableToDownloadFavicon(url)) { | 151 if (favicon_service && favicon_service->WasUnableToDownloadFavicon(url)) { |
| 152 DVLOG(1) << "Skip Failed FavIcon: " << url; | 152 DVLOG(1) << "Skip Failed FavIcon: " << url; |
| 153 return 0; | 153 return 0; |
| 154 } | 154 } |
| 155 | 155 |
| 156 return web_contents()->DownloadImage( | 156 return web_contents()->DownloadImage( |
| 157 url, | 157 url, |
| 158 true, | 158 true, |
| 159 max_image_size, | 159 max_image_size, |
| 160 base::Bind(&FaviconTabHelper::DidDownloadFavicon,base::Unretained(this))); | 160 base::Bind(&FaviconTabHelper::DidDownloadFavicon,base::Unretained(this))); |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 224 DCHECK(web_contents()->GetController().GetActiveEntry()); | 224 DCHECK(web_contents()->GetController().GetActiveEntry()); |
| 225 return web_contents()->GetController().GetActiveEntry()->GetFavicon(); | 225 return web_contents()->GetController().GetActiveEntry()->GetFavicon(); |
| 226 } | 226 } |
| 227 | 227 |
| 228 void FaviconTabHelper::DidStartNavigationToPendingEntry( | 228 void FaviconTabHelper::DidStartNavigationToPendingEntry( |
| 229 const GURL& url, | 229 const GURL& url, |
| 230 NavigationController::ReloadType reload_type) { | 230 NavigationController::ReloadType reload_type) { |
| 231 if (reload_type != NavigationController::NO_RELOAD && | 231 if (reload_type != NavigationController::NO_RELOAD && |
| 232 !profile_->IsOffTheRecord()) { | 232 !profile_->IsOffTheRecord()) { |
| 233 FaviconService* favicon_service = FaviconServiceFactory::GetForProfile( | 233 FaviconService* favicon_service = FaviconServiceFactory::GetForProfile( |
| 234 profile_, Profile::IMPLICIT_ACCESS); | 234 profile_, ServiceAccessType::IMPLICIT_ACCESS); |
| 235 if (favicon_service) { | 235 if (favicon_service) { |
| 236 favicon_service->SetFaviconOutOfDateForPage(url); | 236 favicon_service->SetFaviconOutOfDateForPage(url); |
| 237 if (reload_type == NavigationController::RELOAD_IGNORING_CACHE) | 237 if (reload_type == NavigationController::RELOAD_IGNORING_CACHE) |
| 238 favicon_service->ClearUnableToDownloadFavicons(); | 238 favicon_service->ClearUnableToDownloadFavicons(); |
| 239 } | 239 } |
| 240 } | 240 } |
| 241 } | 241 } |
| 242 | 242 |
| 243 void FaviconTabHelper::DidNavigateMainFrame( | 243 void FaviconTabHelper::DidNavigateMainFrame( |
| 244 const content::LoadCommittedDetails& details, | 244 const content::LoadCommittedDetails& details, |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 287 void FaviconTabHelper::DidDownloadFavicon( | 287 void FaviconTabHelper::DidDownloadFavicon( |
| 288 int id, | 288 int id, |
| 289 int http_status_code, | 289 int http_status_code, |
| 290 const GURL& image_url, | 290 const GURL& image_url, |
| 291 const std::vector<SkBitmap>& bitmaps, | 291 const std::vector<SkBitmap>& bitmaps, |
| 292 const std::vector<gfx::Size>& original_bitmap_sizes) { | 292 const std::vector<gfx::Size>& original_bitmap_sizes) { |
| 293 | 293 |
| 294 if (bitmaps.empty() && http_status_code == 404) { | 294 if (bitmaps.empty() && http_status_code == 404) { |
| 295 DVLOG(1) << "Failed to Download Favicon:" << image_url; | 295 DVLOG(1) << "Failed to Download Favicon:" << image_url; |
| 296 FaviconService* favicon_service = FaviconServiceFactory::GetForProfile( | 296 FaviconService* favicon_service = FaviconServiceFactory::GetForProfile( |
| 297 profile_->GetOriginalProfile(), Profile::IMPLICIT_ACCESS); | 297 profile_->GetOriginalProfile(), ServiceAccessType::IMPLICIT_ACCESS); |
| 298 if (favicon_service) | 298 if (favicon_service) |
| 299 favicon_service->UnableToDownloadFavicon(image_url); | 299 favicon_service->UnableToDownloadFavicon(image_url); |
| 300 } | 300 } |
| 301 | 301 |
| 302 favicon_handler_->OnDidDownloadFavicon( | 302 favicon_handler_->OnDidDownloadFavicon( |
| 303 id, image_url, bitmaps, original_bitmap_sizes); | 303 id, image_url, bitmaps, original_bitmap_sizes); |
| 304 if (touch_icon_handler_.get()) { | 304 if (touch_icon_handler_.get()) { |
| 305 touch_icon_handler_->OnDidDownloadFavicon( | 305 touch_icon_handler_->OnDidDownloadFavicon( |
| 306 id, image_url, bitmaps, original_bitmap_sizes); | 306 id, image_url, bitmaps, original_bitmap_sizes); |
| 307 } | 307 } |
| 308 } | 308 } |
| OLD | NEW |