1// Copyright 2014 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#ifndef COMPONENTS_SEARCH_PROVIDER_LOGOS_LOGO_COMMON_H_ 6#define COMPONENTS_SEARCH_PROVIDER_LOGOS_LOGO_COMMON_H_ 7 8#include <string> 9 10#include "base/memory/ref_counted.h" 11#include "base/memory/ref_counted_memory.h" 12#include "base/time/time.h" 13#include "third_party/skia/include/core/SkBitmap.h" 14 15namespace search_provider_logos { 16 17// The maximum number of milliseconds that a logo can be cached. 18extern const int64 kMaxTimeToLiveMS; 19 20struct LogoMetadata { 21 LogoMetadata(); 22 ~LogoMetadata(); 23 24 // For use by the client ---------------------------------------------------- 25 26 // The URL to load when the logo is clicked. 27 std::string on_click_url; 28 // The accessibility text for the logo. 29 std::string alt_text; 30 // The mime type of the logo image. 31 std::string mime_type; 32 33 // For use by LogoTracker --------------------------------------------------- 34 35 // The URL from which the logo was downloaded (without the fingerprint param). 36 std::string source_url; 37 // A fingerprint (i.e. hash) identifying the logo. Used when revalidating the 38 // logo with the server. 39 std::string fingerprint; 40 // Whether the logo can be shown optimistically after it's expired while a 41 // fresh logo is being downloaded. 42 bool can_show_after_expiration; 43 // When the logo expires. After this time, the logo will not be used and will 44 // be deleted. 45 base::Time expiration_time; 46}; 47 48struct EncodedLogo { 49 EncodedLogo(); 50 ~EncodedLogo(); 51 52 // The jpeg- or png-encoded image. 53 scoped_refptr<base::RefCountedString> encoded_image; 54 // Metadata about the logo. 55 LogoMetadata metadata; 56}; 57 58struct Logo { 59 Logo(); 60 ~Logo(); 61 62 // The logo image. 63 SkBitmap image; 64 // Metadata about the logo. 65 LogoMetadata metadata; 66}; 67 68} // namespace search_provider_logos 69 70#endif // COMPONENTS_SEARCH_PROVIDER_LOGOS_LOGO_COMMON_H_ 71