Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(655)

Side by Side Diff: chrome/browser/favicon/favicon_tab_helper.cc

Issue 1059743003: Remove NOTIFICATION_FAVICON_UPDATED (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@get-active-title
Patch Set: Add DISALLOW_COPY_AND_ASSIGN(FaviconUpdateWatcher) Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/metrics/field_trial.h" 8 #include "base/metrics/field_trial.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "chrome/browser/bookmarks/bookmark_model_factory.h" 10 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 } 261 }
262 262
263 void FaviconTabHelper::SetActiveFaviconImage(const gfx::Image& image) { 263 void FaviconTabHelper::SetActiveFaviconImage(const gfx::Image& image) {
264 GetFaviconStatus().image = image; 264 GetFaviconStatus().image = image;
265 } 265 }
266 266
267 void FaviconTabHelper::OnFaviconAvailable(const gfx::Image& image, 267 void FaviconTabHelper::OnFaviconAvailable(const gfx::Image& image,
268 const GURL& icon_url, 268 const GURL& icon_url,
269 bool is_active_favicon) { 269 bool is_active_favicon) {
270 if (is_active_favicon) { 270 if (is_active_favicon) {
271 bool icon_url_changed = GetActiveFaviconURL() != icon_url;
271 // No matter what happens, we need to mark the favicon as being set. 272 // No matter what happens, we need to mark the favicon as being set.
272 SetActiveFaviconValidity(true); 273 SetActiveFaviconValidity(true);
273 bool icon_url_changed = GetActiveFaviconURL() != icon_url;
274 SetActiveFaviconURL(icon_url); 274 SetActiveFaviconURL(icon_url);
275 275
276 if (image.IsEmpty()) 276 if (image.IsEmpty())
277 return; 277 return;
278 278
279 SetActiveFaviconImage(image); 279 SetActiveFaviconImage(image);
280 content::NotificationService::current()->Notify( 280 NotifyFaviconUpdated(icon_url_changed);
281 chrome::NOTIFICATION_FAVICON_UPDATED,
282 content::Source<WebContents>(web_contents()),
283 content::Details<bool>(&icon_url_changed));
284 web_contents()->NotifyNavigationStateChanged(content::INVALIDATE_TYPE_TAB);
285 } 281 }
286 if (!image.IsEmpty()) { 282 if (!image.IsEmpty()) {
287 FOR_EACH_OBSERVER(favicon::FaviconDriverObserver, observer_list_, 283 FOR_EACH_OBSERVER(favicon::FaviconDriverObserver, observer_list_,
288 OnFaviconAvailable(image)); 284 OnFaviconAvailable(image));
289 } 285 }
290 } 286 }
291 287
288 void FaviconTabHelper::NotifyFaviconUpdated(bool icon_url_changed) {
289 FOR_EACH_OBSERVER(favicon::FaviconDriverObserver, observer_list_,
290 OnFaviconUpdated(this, icon_url_changed));
291 web_contents()->NotifyNavigationStateChanged(content::INVALIDATE_TYPE_TAB);
292 }
293
292 void FaviconTabHelper::DidDownloadFavicon( 294 void FaviconTabHelper::DidDownloadFavicon(
293 int id, 295 int id,
294 int http_status_code, 296 int http_status_code,
295 const GURL& image_url, 297 const GURL& image_url,
296 const std::vector<SkBitmap>& bitmaps, 298 const std::vector<SkBitmap>& bitmaps,
297 const std::vector<gfx::Size>& original_bitmap_sizes) { 299 const std::vector<gfx::Size>& original_bitmap_sizes) {
298 if (bitmaps.empty() && http_status_code == 404) { 300 if (bitmaps.empty() && http_status_code == 404) {
299 DVLOG(1) << "Failed to Download Favicon:" << image_url; 301 DVLOG(1) << "Failed to Download Favicon:" << image_url;
300 if (favicon_service_) 302 if (favicon_service_)
301 favicon_service_->UnableToDownloadFavicon(image_url); 303 favicon_service_->UnableToDownloadFavicon(image_url);
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 DCHECK(!candidates.empty()); 360 DCHECK(!candidates.empty());
359 favicon_urls_ = candidates; 361 favicon_urls_ = candidates;
360 std::vector<favicon::FaviconURL> favicon_urls = 362 std::vector<favicon::FaviconURL> favicon_urls =
361 favicon::FaviconURLsFromContentFaviconURLs(candidates); 363 favicon::FaviconURLsFromContentFaviconURLs(candidates);
362 favicon_handler_->OnUpdateFaviconURL(favicon_urls); 364 favicon_handler_->OnUpdateFaviconURL(favicon_urls);
363 if (touch_icon_handler_.get()) 365 if (touch_icon_handler_.get())
364 touch_icon_handler_->OnUpdateFaviconURL(favicon_urls); 366 touch_icon_handler_->OnUpdateFaviconURL(favicon_urls);
365 if (large_icon_handler_.get()) 367 if (large_icon_handler_.get())
366 large_icon_handler_->OnUpdateFaviconURL(favicon_urls); 368 large_icon_handler_->OnUpdateFaviconURL(favicon_urls);
367 } 369 }
OLDNEW
« no previous file with comments | « chrome/browser/favicon/favicon_tab_helper.h ('k') | chrome/browser/favicon/favicon_tab_helper_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698