| 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/ui/search_engines/template_url_table_model.h" | 5 #include "chrome/browser/ui/search_engines/template_url_table_model.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
| 9 #include "base/i18n/rtl.h" | 9 #include "base/i18n/rtl.h" |
| 10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
| 11 #include "base/strings/utf_string_conversions.h" | 11 #include "base/strings/utf_string_conversions.h" |
| 12 #include "base/task/cancelable_task_tracker.h" | 12 #include "base/task/cancelable_task_tracker.h" |
| 13 #include "chrome/browser/favicon/favicon_service.h" | 13 #include "chrome/browser/favicon/favicon_service.h" |
| 14 #include "chrome/browser/favicon/favicon_service_factory.h" | 14 #include "chrome/browser/favicon/favicon_service_factory.h" |
| 15 #include "chrome/browser/profiles/profile.h" | 15 #include "chrome/browser/profiles/profile.h" |
| 16 #include "chrome/browser/search_engines/template_url_service.h" | 16 #include "chrome/browser/search_engines/template_url_service.h" |
| 17 #include "components/favicon_base/favicon_types.h" | 17 #include "components/favicon_base/favicon_types.h" |
| 18 #include "components/search_engines/template_url.h" | 18 #include "components/search_engines/template_url.h" |
| 19 #include "grit/generated_resources.h" | 19 #include "grit/generated_resources.h" |
| 20 #include "grit/ui_resources.h" | 20 #include "grit/ui_resources.h" |
| 21 #include "third_party/skia/include/core/SkBitmap.h" | 21 #include "third_party/skia/include/core/SkBitmap.h" |
| 22 #include "ui/base/l10n/l10n_util.h" | 22 #include "ui/base/l10n/l10n_util.h" |
| 23 #include "ui/base/models/table_model_observer.h" | 23 #include "ui/base/models/table_model_observer.h" |
| 24 #include "ui/base/resource/resource_bundle.h" | 24 #include "ui/base/resource/resource_bundle.h" |
| 25 #include "ui/gfx/favicon_size.h" | |
| 26 #include "ui/gfx/image/image_skia.h" | 25 #include "ui/gfx/image/image_skia.h" |
| 27 | 26 |
| 28 // Group IDs used by TemplateURLTableModel. | 27 // Group IDs used by TemplateURLTableModel. |
| 29 static const int kMainGroupID = 0; | 28 static const int kMainGroupID = 0; |
| 30 static const int kOtherGroupID = 1; | 29 static const int kOtherGroupID = 1; |
| 31 static const int kExtensionGroupID = 2; | 30 static const int kExtensionGroupID = 2; |
| 32 | 31 |
| 33 // ModelEntry ---------------------------------------------------- | 32 // ModelEntry ---------------------------------------------------- |
| 34 | 33 |
| 35 // ModelEntry wraps a TemplateURL as returned from the TemplateURL. | 34 // ModelEntry wraps a TemplateURL as returned from the TemplateURL. |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 91 GURL url(template_url_->url()); | 90 GURL url(template_url_->url()); |
| 92 if (url.is_valid()) | 91 if (url.is_valid()) |
| 93 favicon_url = TemplateURL::GenerateFaviconURL(url); | 92 favicon_url = TemplateURL::GenerateFaviconURL(url); |
| 94 } | 93 } |
| 95 if (!favicon_url.is_valid()) | 94 if (!favicon_url.is_valid()) |
| 96 return; | 95 return; |
| 97 } | 96 } |
| 98 load_state_ = LOADING; | 97 load_state_ = LOADING; |
| 99 favicon_service->GetFaviconImage( | 98 favicon_service->GetFaviconImage( |
| 100 favicon_url, | 99 favicon_url, |
| 101 favicon_base::FAVICON, | |
| 102 gfx::kFaviconSize, | |
| 103 base::Bind(&ModelEntry::OnFaviconDataAvailable, base::Unretained(this)), | 100 base::Bind(&ModelEntry::OnFaviconDataAvailable, base::Unretained(this)), |
| 104 &tracker_); | 101 &tracker_); |
| 105 } | 102 } |
| 106 | 103 |
| 107 void OnFaviconDataAvailable( | 104 void OnFaviconDataAvailable( |
| 108 const favicon_base::FaviconImageResult& image_result) { | 105 const favicon_base::FaviconImageResult& image_result) { |
| 109 load_state_ = LOADED; | 106 load_state_ = LOADED; |
| 110 if (!image_result.image.IsEmpty()) { | 107 if (!image_result.image.IsEmpty()) { |
| 111 favicon_ = image_result.image.AsImageSkia(); | 108 favicon_ = image_result.image.AsImageSkia(); |
| 112 model_->FaviconAvailable(this); | 109 model_->FaviconAvailable(this); |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 393 return entry.Pass(); | 390 return entry.Pass(); |
| 394 } | 391 } |
| 395 | 392 |
| 396 void TemplateURLTableModel::AddEntry(int index, scoped_ptr<ModelEntry> entry) { | 393 void TemplateURLTableModel::AddEntry(int index, scoped_ptr<ModelEntry> entry) { |
| 397 entries_.insert(entries_.begin() + index, entry.release()); | 394 entries_.insert(entries_.begin() + index, entry.release()); |
| 398 if (index <= last_other_engine_index_) | 395 if (index <= last_other_engine_index_) |
| 399 ++last_other_engine_index_; | 396 ++last_other_engine_index_; |
| 400 if (observer_) | 397 if (observer_) |
| 401 observer_->OnItemsAdded(index, 1); | 398 observer_->OnItemsAdded(index, 1); |
| 402 } | 399 } |
| OLD | NEW |