thumbnail_service_impl.h revision d0247b1b59f9c528cb6df88b4f2b9afaf80d181e
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 13namespace base { 14class RefCountedMemory; 15} 16 17namespace thumbnails { 18 19// An implementation of ThumbnailService which delegates storage and most of 20// logic to an underlying TopSites instances. 21class 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 bool ShouldAcquirePageThumbnail(const GURL& url) OVERRIDE; 34 35 // Implementation of RefcountedBrowserContextKeyedService. 36 virtual void ShutdownOnUIThread() OVERRIDE; 37 38 private: 39 virtual ~ThumbnailServiceImpl(); 40 41 scoped_refptr<history::TopSites> top_sites_; 42 bool use_thumbnail_retargeting_; 43 44 DISALLOW_COPY_AND_ASSIGN(ThumbnailServiceImpl); 45}; 46 47} // namespace thumbnails 48 49#endif // CHROME_BROWSER_THUMBNAILS_THUMBNAIL_SERVICE_IMPL_H_ 50