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

Unified Diff: chrome/renderer/render_widget.cc

Issue 4569002: Fix ThumbnailGenerator on Windows. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Just fix thumbnail generator for now Created 10 years, 1 month 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/renderer/render_widget.cc
diff --git a/chrome/renderer/render_widget.cc b/chrome/renderer/render_widget.cc
index 17c0ee73159a9a3d6c2fd517431079d2c71bdcf7..6ff6b09cf301c2080c10f0c4c45cc21292697005 100644
--- a/chrome/renderer/render_widget.cc
+++ b/chrome/renderer/render_widget.cc
@@ -819,8 +819,17 @@ void RenderWidget::OnMsgPaintAtSize(const TransportDIB::Handle& dib_handle,
int tag,
const gfx::Size& page_size,
const gfx::Size& desired_size) {
- if (!webwidget_ || dib_handle == TransportDIB::DefaultHandleValue())
+ if (!webwidget_ || !TransportDIB::is_valid(dib_handle)) {
+ if (TransportDIB::is_valid(dib_handle)) {
+ // Close our unused handle.
+#if defined(OS_WIN)
+ ::CloseHandle(dib_handle);
+#elif defined(OS_MACOSX)
+ base::SharedMemory::CloseHandle(dib_handle);
+#endif
+ }
return;
+ }
if (page_size.IsEmpty() || desired_size.IsEmpty()) {
// If one of these is empty, then we just return the dib we were
@@ -831,11 +840,8 @@ void RenderWidget::OnMsgPaintAtSize(const TransportDIB::Handle& dib_handle,
// Map the given DIB ID into this process, and unmap it at the end
// of this function.
- scoped_ptr<TransportDIB> paint_at_size_buffer(TransportDIB::Map(dib_handle));
-
- DCHECK(paint_at_size_buffer.get());
- if (!paint_at_size_buffer.get())
- return;
+ scoped_ptr<TransportDIB> paint_at_size_buffer(
+ TransportDIB::CreateWithHandle(dib_handle));
gfx::Size canvas_size = page_size;
float x_scale = static_cast<float>(desired_size.width()) /
« app/surface/transport_dib_win.cc ('K') | « chrome/browser/tab_contents/thumbnail_generator.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698