Chromium Code Reviews| Index: chrome/browser/ui/intents/web_intent_icon_loader.cc |
| diff --git a/chrome/browser/ui/intents/web_intent_icon_loader.cc b/chrome/browser/ui/intents/web_intent_icon_loader.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..ab52b7b7f7399733f1fe5f1ad7bfb5ebe058df83 |
| --- /dev/null |
| +++ b/chrome/browser/ui/intents/web_intent_icon_loader.cc |
| @@ -0,0 +1,49 @@ |
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "chrome/browser/ui/intents/web_intent_icon_loader.h" |
| + |
| +#include "chrome/browser/favicon/favicon_service.h" |
| +#include "chrome/browser/favicon/favicon_service_factory.h" |
| +#include "chrome/browser/ui/intents/web_intent_picker_model.h" |
| +#include "ui/gfx/favicon_size.h" |
| + |
| +namespace web_intents { |
| + |
| +IconLoader::IconLoader(Profile* profile, |
| + WebIntentPickerModel* model) |
| + : profile_(profile), |
| + model_(model), |
| + ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) { |
| +} |
| + |
| +IconLoader::~IconLoader() {} |
| + |
| +void IconLoader::LoadFavicon(const GURL& url) { |
| + FaviconService* favicon_service = |
| + FaviconServiceFactory::GetForProfile(profile_, |
| + Profile::EXPLICIT_ACCESS); |
| + |
| + favicon_service->GetFaviconImageForURL( |
| + FaviconService::FaviconForURLParams( |
| + profile_, |
|
James Hawkins
2012/10/17 03:38:39
Optional nit: Condense parameters to save rows.
|
| + url, |
| + history::FAVICON, |
| + gfx::kFaviconSize, |
| + &favicon_consumer_), |
| + base::Bind( |
| + &IconLoader::OnFaviconDataAvailable, |
| + weak_ptr_factory_.GetWeakPtr(), |
| + url)); |
| +} |
| + |
| +void IconLoader::OnFaviconDataAvailable( |
| + const GURL& url, |
| + FaviconService::Handle, |
| + const history::FaviconImageResult& image_result) { |
| + if (!image_result.image.IsEmpty()) |
| + model_->UpdateFaviconForServiceWithURL(url, image_result.image); |
| +} |
| + |
| +} // namespace web_intents |