Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "components/favicon/core/favicon_driver_impl.h" | 5 #include "components/favicon/core/favicon_driver_impl.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/metrics/field_trial.h" | 9 #include "base/metrics/field_trial.h" |
| 10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 91 if (large_icon_handler_.get()) { | 91 if (large_icon_handler_.get()) { |
| 92 large_icon_handler_->OnDidDownloadFavicon(id, image_url, bitmaps, | 92 large_icon_handler_->OnDidDownloadFavicon(id, image_url, bitmaps, |
| 93 original_bitmap_sizes); | 93 original_bitmap_sizes); |
| 94 } | 94 } |
| 95 } | 95 } |
| 96 | 96 |
| 97 bool FaviconDriverImpl::IsBookmarked(const GURL& url) { | 97 bool FaviconDriverImpl::IsBookmarked(const GURL& url) { |
| 98 return bookmark_model_ && bookmark_model_->IsBookmarked(url); | 98 return bookmark_model_ && bookmark_model_->IsBookmarked(url); |
| 99 } | 99 } |
| 100 | 100 |
| 101 void FaviconDriverImpl::OnFaviconAvailable(const gfx::Image& image, | 101 void FaviconDriverImpl::OnFaviconAvailable(const GURL& page_url, |
| 102 const GURL& icon_url, | 102 const GURL& icon_url, |
| 103 const gfx::Image& image, | |
| 103 bool is_active_favicon) { | 104 bool is_active_favicon) { |
| 105 #if !defined(IOS) | |
| 106 DCHECK_EQ(page_url, GetActiveURL()); | |
| 107 // On iOS the active URL can change in between calls to FetchFavicon(). For | |
| 108 // instance, FetchFavicon() is not synchronously called when the active URL | |
| 109 // changes as a result of CRWSessionController::goToEntry(). | |
| 110 // TODO(stuartmorgan): Enable the DCHECK on iOS once favicon fetches occur | |
| 111 // synchronously after active URL changes on iOS. | |
| 112 #endif | |
| 113 if (page_url != GetActiveURL()) | |
|
sky
2015/09/16 15:14:24
Shouldn't this be an a #else?
pkotwicz
2015/09/16 15:17:56
I still check this on non-IOS in the case that Fav
stuartmorgan
2015/09/16 18:35:58
It's explicitly against Chromium's style guide.
pkotwicz
2015/09/16 18:47:57
Fixed now. You are right it is specifically mentio
| |
| 114 return; | |
| 115 | |
| 104 if (is_active_favicon) { | 116 if (is_active_favicon) { |
| 105 bool icon_url_changed = GetActiveFaviconURL() != icon_url; | 117 bool icon_url_changed = GetActiveFaviconURL() != icon_url; |
| 106 // No matter what happens, we need to mark the favicon as being set. | 118 // No matter what happens, we need to mark the favicon as being set. |
| 107 SetActiveFaviconValidity(true); | 119 SetActiveFaviconValidity(true); |
| 108 SetActiveFaviconURL(icon_url); | 120 SetActiveFaviconURL(icon_url); |
| 109 | 121 |
| 110 if (image.IsEmpty()) | 122 if (image.IsEmpty()) |
| 111 return; | 123 return; |
| 112 | 124 |
| 113 SetActiveFaviconImage(image); | 125 SetActiveFaviconImage(image); |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 134 void FaviconDriverImpl::SetFaviconOutOfDateForPage(const GURL& url, | 146 void FaviconDriverImpl::SetFaviconOutOfDateForPage(const GURL& url, |
| 135 bool force_reload) { | 147 bool force_reload) { |
| 136 if (favicon_service_) { | 148 if (favicon_service_) { |
| 137 favicon_service_->SetFaviconOutOfDateForPage(url); | 149 favicon_service_->SetFaviconOutOfDateForPage(url); |
| 138 if (force_reload) | 150 if (force_reload) |
| 139 favicon_service_->ClearUnableToDownloadFavicons(); | 151 favicon_service_->ClearUnableToDownloadFavicons(); |
| 140 } | 152 } |
| 141 } | 153 } |
| 142 | 154 |
| 143 void FaviconDriverImpl::OnUpdateFaviconURL( | 155 void FaviconDriverImpl::OnUpdateFaviconURL( |
| 156 const GURL& page_url, | |
| 144 const std::vector<FaviconURL>& candidates) { | 157 const std::vector<FaviconURL>& candidates) { |
| 145 DCHECK(!candidates.empty()); | 158 DCHECK(!candidates.empty()); |
| 146 favicon_handler_->OnUpdateFaviconURL(candidates); | 159 favicon_handler_->OnUpdateFaviconURL(page_url, candidates); |
| 147 if (touch_icon_handler_.get()) | 160 if (touch_icon_handler_.get()) |
| 148 touch_icon_handler_->OnUpdateFaviconURL(candidates); | 161 touch_icon_handler_->OnUpdateFaviconURL(page_url, candidates); |
| 149 if (large_icon_handler_.get()) | 162 if (large_icon_handler_.get()) |
| 150 large_icon_handler_->OnUpdateFaviconURL(candidates); | 163 large_icon_handler_->OnUpdateFaviconURL(page_url, candidates); |
| 151 } | 164 } |
| 152 | 165 |
| 153 } // namespace favicon | 166 } // namespace favicon |
| OLD | NEW |