favicon_url_util.cc 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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
  3. // found in the LICENSE file.
  4. #include "components/favicon/ios/favicon_url_util.h"
  5. #include <algorithm>
  6. #include <iterator>
  7. #include "base/notreached.h"
  8. #include "components/favicon/core/favicon_url.h"
  9. #include "components/favicon_base/favicon_types.h"
  10. #include "ios/web/public/favicon/favicon_url.h"
  11. namespace favicon {
  12. namespace {
  13. favicon_base::IconType IconTypeFromWebIconType(
  14. web::FaviconURL::IconType icon_type) {
  15. switch (icon_type) {
  16. case web::FaviconURL::IconType::kFavicon:
  17. return favicon_base::IconType::kFavicon;
  18. case web::FaviconURL::IconType::kTouchIcon:
  19. return favicon_base::IconType::kTouchIcon;
  20. case web::FaviconURL::IconType::kTouchPrecomposedIcon:
  21. return favicon_base::IconType::kTouchPrecomposedIcon;
  22. case web::FaviconURL::IconType::kWebManifestIcon:
  23. return favicon_base::IconType::kWebManifestIcon;
  24. case web::FaviconURL::IconType::kInvalid:
  25. return favicon_base::IconType::kInvalid;
  26. }
  27. NOTREACHED();
  28. return favicon_base::IconType::kInvalid;
  29. }
  30. } // namespace
  31. FaviconURL FaviconURLFromWebFaviconURL(
  32. const web::FaviconURL& favicon_url) {
  33. return FaviconURL(favicon_url.icon_url,
  34. IconTypeFromWebIconType(favicon_url.icon_type),
  35. favicon_url.icon_sizes);
  36. }
  37. std::vector<FaviconURL> FaviconURLsFromWebFaviconURLs(
  38. const std::vector<web::FaviconURL>& favicon_urls) {
  39. std::vector<FaviconURL> result;
  40. result.reserve(favicon_urls.size());
  41. std::transform(favicon_urls.begin(), favicon_urls.end(),
  42. std::back_inserter(result), FaviconURLFromWebFaviconURL);
  43. return result;
  44. }
  45. } // namespace favicon