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 5 #include "components/favicon/content/favicon_url_util.h" 6 7 #include <algorithm> 8 #include <iterator> 9 10 #include "components/favicon/core/favicon_url.h" 11 #include "components/favicon_base/favicon_types.h" 12 13 namespace favicon { 14 namespace { 15 IconTypeFromContentIconType(blink::mojom::FaviconIconType icon_type)16favicon_base::IconType IconTypeFromContentIconType( 17 blink::mojom::FaviconIconType icon_type) { 18 switch (icon_type) { 19 case blink::mojom::FaviconIconType::kFavicon: 20 return favicon_base::IconType::kFavicon; 21 case blink::mojom::FaviconIconType::kTouchIcon: 22 return favicon_base::IconType::kTouchIcon; 23 case blink::mojom::FaviconIconType::kTouchPrecomposedIcon: 24 return favicon_base::IconType::kTouchPrecomposedIcon; 25 case blink::mojom::FaviconIconType::kInvalid: 26 return favicon_base::IconType::kInvalid; 27 } 28 NOTREACHED(); 29 return favicon_base::IconType::kInvalid; 30 } 31 32 } // namespace 33 FaviconURLFromContentFaviconURL(const blink::mojom::FaviconURL & favicon_url)34FaviconURL FaviconURLFromContentFaviconURL( 35 const blink::mojom::FaviconURL& favicon_url) { 36 return FaviconURL(favicon_url.icon_url, 37 IconTypeFromContentIconType(favicon_url.icon_type), 38 favicon_url.icon_sizes); 39 } 40 FaviconURLsFromContentFaviconURLs(const std::vector<blink::mojom::FaviconURL> & favicon_urls)41std::vector<FaviconURL> FaviconURLsFromContentFaviconURLs( 42 const std::vector<blink::mojom::FaviconURL>& favicon_urls) { 43 std::vector<FaviconURL> result; 44 result.reserve(favicon_urls.size()); 45 std::transform(favicon_urls.begin(), favicon_urls.end(), 46 std::back_inserter(result), FaviconURLFromContentFaviconURL); 47 return result; 48 } 49 50 } // namespace favicon 51