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