| // 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 "chrome/common/favicon/favicon_types.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_ |