Home | History | Annotate | Download | only in thumbnails
      1 // Copyright (c) 2012 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 CHROME_BROWSER_THUMBNAILS_THUMBNAIL_SERVICE_IMPL_H_
      6 #define CHROME_BROWSER_THUMBNAILS_THUMBNAIL_SERVICE_IMPL_H_
      7 
      8 #include "base/memory/ref_counted.h"
      9 #include "chrome/browser/history/top_sites.h"
     10 #include "chrome/browser/profiles/profile.h"
     11 #include "chrome/browser/thumbnails/thumbnail_service.h"
     12 
     13 namespace base {
     14 class RefCountedMemory;
     15 }
     16 
     17 namespace thumbnails {
     18 
     19 // An implementation of ThumbnailService which delegates storage and most of
     20 // logic to an underlying TopSites instances.
     21 class ThumbnailServiceImpl : public ThumbnailService {
     22  public:
     23   explicit ThumbnailServiceImpl(Profile* profile);
     24 
     25   // Implementation of ThumbnailService.
     26   virtual bool SetPageThumbnail(const ThumbnailingContext& context,
     27                                 const gfx::Image& thumbnail) OVERRIDE;
     28   virtual ThumbnailingAlgorithm* GetThumbnailingAlgorithm() const OVERRIDE;
     29   virtual bool GetPageThumbnail(
     30       const GURL& url,
     31       bool prefix_match,
     32       scoped_refptr<base::RefCountedMemory>* bytes) OVERRIDE;
     33   virtual void AddForcedURL(const GURL& url) OVERRIDE;
     34   virtual bool ShouldAcquirePageThumbnail(const GURL& url) OVERRIDE;
     35 
     36   // Implementation of RefcountedBrowserContextKeyedService.
     37   virtual void ShutdownOnUIThread() OVERRIDE;
     38 
     39  private:
     40   virtual ~ThumbnailServiceImpl();
     41 
     42   scoped_refptr<history::TopSites> top_sites_;
     43   bool use_thumbnail_retargeting_;
     44 
     45   DISALLOW_COPY_AND_ASSIGN(ThumbnailServiceImpl);
     46 };
     47 
     48 }  // namespace thumbnails
     49 
     50 #endif  // CHROME_BROWSER_THUMBNAILS_THUMBNAIL_SERVICE_IMPL_H_
     51