| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_BROWSER_THUMBNAILS_THUMBNAIL_SERVICE_H_ | 5 #ifndef CHROME_BROWSER_THUMBNAILS_THUMBNAIL_SERVICE_H_ |
| 6 #define CHROME_BROWSER_THUMBNAILS_THUMBNAIL_SERVICE_H_ | 6 #define CHROME_BROWSER_THUMBNAILS_THUMBNAIL_SERVICE_H_ |
| 7 | 7 |
| 8 #include "chrome/browser/profiles/refcounted_profile_keyed_service.h" | 8 #include "chrome/browser/profiles/refcounted_profile_keyed_service.h" |
| 9 #include "chrome/common/thumbnail_score.h" | 9 #include "chrome/common/thumbnail_score.h" |
| 10 #include "googleurl/src/gurl.h" | 10 #include "googleurl/src/gurl.h" |
| 11 #include "ui/gfx/image/image.h" | 11 #include "ui/gfx/image/image.h" |
| 12 | 12 |
| 13 namespace base { | 13 namespace base { |
| 14 class RefCountedMemory; | 14 class RefCountedMemory; |
| 15 } | 15 } |
| 16 | 16 |
| 17 namespace thumbnails { | 17 namespace thumbnails { |
| 18 | 18 |
| 19 class ThumbnailingAlgorithm; |
| 20 class ThumbnailingContext; |
| 21 |
| 19 // An interface abstracting access to thumbnails. Intended as a temporary | 22 // An interface abstracting access to thumbnails. Intended as a temporary |
| 20 // bridge facilitating switch from TopSites as the thumbnail source to a more | 23 // bridge facilitating switch from TopSites as the thumbnail source to a more |
| 21 // robust way of handling these artefacts. | 24 // robust way of handling these artefacts. |
| 22 class ThumbnailService : public RefcountedProfileKeyedService { | 25 class ThumbnailService : public RefcountedProfileKeyedService { |
| 23 public: | 26 public: |
| 24 // Sets the given thumbnail for the given URL. Returns true if the thumbnail | 27 // Sets the given thumbnail for the given URL. Returns true if the thumbnail |
| 25 // was updated. False means either the URL wasn't known to us, or we felt | 28 // was updated. False means either the URL wasn't known to us, or we felt |
| 26 // that our current thumbnail was superior to the given one. | 29 // that our current thumbnail was superior to the given one. |
| 27 virtual bool SetPageThumbnail(const GURL& url, | 30 virtual bool SetPageThumbnail(const ThumbnailingContext& context, |
| 28 const gfx::Image& thumbnail, | 31 const gfx::Image& thumbnail) = 0; |
| 29 const ThumbnailScore& score) = 0; | 32 |
| 33 // Create and return a new instance of the algorithm. These objects are |
| 34 // lightweight and are expected to self-destruct. They encapsulate the process |
| 35 // of creating a thumbnail from tab contents. |
| 36 virtual ThumbnailingAlgorithm* CreateThumbnailingAlgorithm() const = 0; |
| 30 | 37 |
| 31 // Gets a thumbnail for a given page. Returns true iff we have the thumbnail. | 38 // Gets a thumbnail for a given page. Returns true iff we have the thumbnail. |
| 32 // This may be invoked on any thread. | 39 // This may be invoked on any thread. |
| 33 // As this method may be invoked on any thread the ref count needs to be | 40 // As this method may be invoked on any thread the ref count needs to be |
| 34 // incremented before this method returns, so this takes a scoped_refptr*. | 41 // incremented before this method returns, so this takes a scoped_refptr*. |
| 35 virtual bool GetPageThumbnail( | 42 virtual bool GetPageThumbnail( |
| 36 const GURL& url, | 43 const GURL& url, |
| 37 scoped_refptr<base::RefCountedMemory>* bytes) = 0; | 44 scoped_refptr<base::RefCountedMemory>* bytes) = 0; |
| 38 | 45 |
| 39 // Returns true if the page thumbnail should be updated. | 46 // Returns true if the page thumbnail should be updated. |
| 40 virtual bool ShouldAcquirePageThumbnail(const GURL& url) = 0; | 47 virtual bool ShouldAcquirePageThumbnail(const GURL& url) = 0; |
| 41 | 48 |
| 42 protected: | 49 protected: |
| 43 virtual ~ThumbnailService() {} | 50 virtual ~ThumbnailService() {} |
| 44 }; | 51 }; |
| 45 | 52 |
| 46 } | 53 } |
| 47 | 54 |
| 48 #endif // CHROME_BROWSER_THUMBNAILS_THUMBNAIL_SERVICE_H_ | 55 #endif // CHROME_BROWSER_THUMBNAILS_THUMBNAIL_SERVICE_H_ |
| OLD | NEW |