Index: chrome/renderer/chrome_render_view_observer.cc |
diff --git a/chrome/renderer/chrome_render_view_observer.cc b/chrome/renderer/chrome_render_view_observer.cc |
index b814667c8a763f2de00a95e40e83dc709eee4ca4..f0b64e49ab28c8a0b9d5c513544afffad9b45ba6 100644 |
--- a/chrome/renderer/chrome_render_view_observer.cc |
+++ b/chrome/renderer/chrome_render_view_observer.cc |
@@ -5,6 +5,7 @@ |
#include "chrome/renderer/chrome_render_view_observer.h" |
#include "base/command_line.h" |
+#include "base/debug/trace_event.h" |
#include "base/message_loop.h" |
#include "base/metrics/histogram.h" |
#include "base/string_util.h" |
@@ -838,6 +839,8 @@ void ChromeRenderViewObserver::CapturePageInfo(int load_id, |
if (!preliminary_capture) |
last_indexed_url_ = stripped_url; |
+ TRACE_EVENT0("renderer", "ChromeRenderViewObserver::CapturePageInfo"); |
+ |
// Retrieve the frame's full text. |
string16 contents; |
CaptureText(main_frame, &contents); |
@@ -909,6 +912,8 @@ void ChromeRenderViewObserver::CaptureThumbnail() { |
if (render_view()->GetSize().IsEmpty()) |
return; // Don't create an empty thumbnail! |
+ TRACE_EVENT0("renderer", "ChromeRenderViewObserver::CaptureThumbnail"); |
+ |
ThumbnailScore score; |
SkBitmap thumbnail; |
if (!CaptureFrameThumbnail(render_view()->GetWebView(), kThumbnailWidth, |
@@ -928,9 +933,13 @@ bool ChromeRenderViewObserver::CaptureFrameThumbnail(WebView* view, |
skia::PlatformCanvas canvas; |
- // Paint |view| into |canvas|. |
- if (!PaintViewIntoCanvas(view, canvas)) |
- return false; |
+ { |
+ TRACE_EVENT0("renderer", |
+ "ChromeRenderViewObserver::CaptureFrameThumbnail::PaintViewIntoCanvas"); |
+ // Paint |view| into |canvas|. |
+ if (!PaintViewIntoCanvas(view, canvas)) |
+ return false; |
+ } |
SkDevice* device = skia::GetTopDevice(canvas); |
@@ -973,13 +982,21 @@ bool ChromeRenderViewObserver::CaptureFrameThumbnail(WebView* view, |
SkBitmap subset; |
device->accessBitmap(false).extractSubset(&subset, src_rect); |
+ TRACE_EVENT_BEGIN0("renderer", |
+ "ChromeRenderViewObserver::CaptureFrameThumbnail::DownsampleByTwo"); |
// First do a fast downsample by powers of two to get close to the final size. |
SkBitmap downsampled_subset = |
SkBitmapOperations::DownsampleByTwoUntilSize(subset, w, h); |
- |
- // Do a high-quality resize from the downscaled size to the final size. |
- *thumbnail = skia::ImageOperations::Resize( |
- downsampled_subset, skia::ImageOperations::RESIZE_LANCZOS3, w, h); |
+ TRACE_EVENT_END0("renderer", |
+ "ChromeRenderViewObserver::CaptureFrameThumbnail::DownsampleByTwo"); |
+ |
+ { |
+ TRACE_EVENT0("renderer", |
+ "ChromeRenderViewObserver::CaptureFrameThumbnail::DownsampleLanczos3"); |
+ // Do a high-quality resize from the downscaled size to the final size. |
+ *thumbnail = skia::ImageOperations::Resize( |
+ downsampled_subset, skia::ImageOperations::RESIZE_LANCZOS3, w, h); |
+ } |
score->boring_score = CalculateBoringScore(thumbnail); |