| Index: chrome/browser/favicon/favicon_handler.cc
|
| diff --git a/chrome/browser/favicon/favicon_handler.cc b/chrome/browser/favicon/favicon_handler.cc
|
| index 11e0d62d960158d6c7a633a46cd2fe4954437966..ed91dcc3285c1a0fc9f2cc80d845394d761e5ab8 100644
|
| --- a/chrome/browser/favicon/favicon_handler.cc
|
| +++ b/chrome/browser/favicon/favicon_handler.cc
|
| @@ -21,7 +21,9 @@
|
| #include "chrome/common/icon_messages.h"
|
| #include "content/public/browser/favicon_status.h"
|
| #include "content/public/browser/navigation_entry.h"
|
| +#include "grit/ui_resources.h"
|
| #include "skia/ext/image_operations.h"
|
| +#include "ui/base/resource/resource_bundle.h"
|
| #include "ui/gfx/codec/png_codec.h"
|
| #include "ui/gfx/image/image.h"
|
| #include "ui/gfx/image/image_skia.h"
|
| @@ -370,7 +372,12 @@ void FaviconHandler::ProcessCurrentUrl() {
|
| history::FAVICON))
|
| return;
|
|
|
| + // TODO(msw): valid depending on url, or leave as-is?
|
| + entry->GetFavicon().valid = false;
|
| entry->GetFavicon().url = current_candidate()->icon_url;
|
| + // TODO(msw): Will this cause flicker? Do this when the fetch errors out?
|
| + ResourceBundle& rb = ResourceBundle::GetSharedInstance();
|
| + entry->GetFavicon().image = rb.GetNativeImageNamed(IDR_DEFAULT_FAVICON);
|
| } else if (!favicon_expired_or_incomplete_ && got_favicon_from_history_ &&
|
| HasValidResult(history_results_) &&
|
| DoUrlsAndIconsMatch(*current_candidate(), history_results_)) {
|
| @@ -428,7 +435,15 @@ void FaviconHandler::OnDidDownloadFavicon(
|
| // Remove the first member of image_urls_ and process the remaining.
|
| image_urls_.pop_front();
|
| ProcessCurrentUrl();
|
| - } else if (favicon_candidate_.icon_type != history::INVALID_ICON) {
|
| + } else {
|
| + // Show the default favicon if the response was invalid.
|
| + if (favicon_candidate_.icon_type != history::INVALID_ICON) {
|
| + ResourceBundle& rb = ResourceBundle::GetSharedInstance();
|
| + favicon_candidate_.image = rb.GetNativeImageNamed(IDR_DEFAULT_FAVICON);
|
| + // TODO(msw): the icon_type is not necessarily |FAVICON|...
|
| + favicon_candidate_.icon_type = history::FAVICON;
|
| + }
|
| +
|
| // No more icons to request, set the favicon from the candidate.
|
| SetFavicon(favicon_candidate_.url,
|
| favicon_candidate_.image_url,
|
|
|