Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(749)

Unified Diff: chrome/browser/tab_contents/thumbnail_generator.h

Issue 6246007: Generate thumbnails in the browser process. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/tab_contents/thumbnail_generator.h
diff --git a/chrome/browser/tab_contents/thumbnail_generator.h b/chrome/browser/tab_contents/thumbnail_generator.h
index 335b2cbcd8e4ea75f1aaa4ea4e32b3bd488f3635..c6e4cbcb6c7bc74e69ce1ed373c2f898e910bc6c 100644
--- a/chrome/browser/tab_contents/thumbnail_generator.h
+++ b/chrome/browser/tab_contents/thumbnail_generator.h
@@ -26,6 +26,39 @@ class TabContents;
class ThumbnailGenerator : NotificationObserver {
public:
typedef Callback1<const SkBitmap&>::Type ThumbnailReadyCallback;
+ // The result of clipping. This can be used to determine if the
+ // generated thumbnail is good or not.
+ enum ClipResult {
+ // The source image is smaller.
+ kSourceIsSmaller,
+ // Wider than tall, clip horizontally.
+ kWiderThanTall,
+ // Taller than wide, clip vertically.
+ kTallerThanWide,
+ // The source and destination aspect ratios are identical.
+ kNotClipped,
+ };
+
+ // Bitmasks of options for generating a thumbnail.
+ enum ThumbnailOptions {
+ // No options.
+ kNone = 0,
+ // Request a clipped thumbnail with the aspect ratio preserved.
+ kClippedThumbnail = 1 << 0,
+ // Calculate the boring score.
+ kBoringScore = 1 << 1,
+ };
+
+ // The result of thumbnailing.
+ struct ThumbnailResult {
+ ThumbnailResult() : clip_result(kNotClipped), boring_score(0.0) {}
+
+ ClipResult clip_result;
+ // The boring score is the 0,1 ranged percentage of boringness. Higher
+ // boring scores indicate that the generated thumbnail is more like empty.
+ double boring_score;
+ };
+
// This class will do nothing until you call StartThumbnailing.
ThumbnailGenerator();
~ThumbnailGenerator();
@@ -61,6 +94,14 @@ class ThumbnailGenerator : NotificationObserver {
// renderer.
SkBitmap GetThumbnailForRenderer(RenderWidgetHost* renderer) const;
+ // This returns a thumbnail of a fixed, small size for the given
+ // renderer. |options| is a bitmask of ThumbnailOptions. If
+ // |thumbnail_result| is non-NULL, additional information like the
+ // boring boring score will be stored in it.
+ SkBitmap GetThumbnailForRendererWithOptions(RenderWidgetHost* renderer,
+ int options,
+ ThumbnailResult* result) const;
+
// Start or stop monitoring notifications for |renderer| based on the value
// of |monitor|.
void MonitorRenderer(RenderWidgetHost* renderer, bool monitor);

Powered by Google App Engine
This is Rietveld 408576698