// Copyright 2013 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. #ifndef CHROME_COMMON_FAVICON_FAVICON_TYPES_H_ #define CHROME_COMMON_FAVICON_FAVICON_TYPES_H_ #include "base/memory/ref_counted_memory.h" #include "ui/gfx/image/image.h" #include "ui/gfx/size.h" #include "url/gurl.h" namespace chrome { typedef int64 FaviconID; // Defines the icon types. They are also stored in icon_type field of favicons // table. // The values of the IconTypes are used to select the priority in which favicon // data is returned in HistoryBackend and ThumbnailDatabase. Data for the // largest IconType takes priority if data for multiple IconTypes is available. enum IconType { INVALID_ICON = 0x0, FAVICON = 1 << 0, TOUCH_ICON = 1 << 1, TOUCH_PRECOMPOSED_ICON = 1 << 2 }; // Defines a gfx::Image of size desired_size_in_dip composed of image // representations for each of the desired scale factors. struct FaviconImageResult { FaviconImageResult(); ~FaviconImageResult(); // The resulting image. gfx::Image image; // The URL of the favicon which contains all of the image representations of // |image|. // TODO(pkotwicz): Return multiple |icon_urls| to allow |image| to have // representations from several favicons once content::FaviconStatus supports // multiple URLs. GURL icon_url; }; // Defines a favicon bitmap which best matches the desired DIP size and one of // the desired scale factors. struct FaviconBitmapResult { FaviconBitmapResult(); ~FaviconBitmapResult(); // Returns true if |bitmap_data| contains a valid bitmap. bool is_valid() const { return bitmap_data.get() && bitmap_data->size(); } // Indicates whether |bitmap_data| is expired. bool expired; // The bits of the bitmap. scoped_refptr<base::RefCountedMemory> bitmap_data; // The pixel dimensions of |bitmap_data|. gfx::Size pixel_size; // The URL of the containing favicon. GURL icon_url; // The icon type of the containing favicon. IconType icon_type; }; // Define type with same structure as FaviconBitmapResult for passing data to // HistoryBackend::SetFavicons(). typedef FaviconBitmapResult FaviconBitmapData; } // namespace chrome #endif // CHROME_COMMON_FAVICON_FAVICON_TYPES_H_