Index: chrome/browser/renderer_host/backing_store.cc |
diff --git a/chrome/browser/renderer_host/backing_store.cc b/chrome/browser/renderer_host/backing_store.cc |
index a68e78581cb62c2e51c8cd357cb2aa4e4ec5d8fb..8f8a1c98f925ad728b3a48362239911983bf870e 100644 |
--- a/chrome/browser/renderer_host/backing_store.cc |
+++ b/chrome/browser/renderer_host/backing_store.cc |
@@ -4,7 +4,7 @@ |
#include "chrome/browser/renderer_host/backing_store.h" |
-class RenderWidgetHost; |
+#include "chrome/browser/renderer_host/render_widget_host.h" |
namespace { |
@@ -22,10 +22,10 @@ static int GetBackingStoreCacheSize() { |
// Creates the backing store for the host based on the dimensions passed in. |
// Removes the existing backing store if there is one. |
BackingStore* CreateBackingStore(RenderWidgetHost* host, |
- const gfx::Rect& backing_store_rect) { |
+ const gfx::Size& backing_store_size) { |
BackingStoreManager::RemoveBackingStore(host); |
- BackingStore* backing_store = new BackingStore(backing_store_rect.size()); |
+ BackingStore* backing_store = host->AllocBackingStore(backing_store_size); |
int backing_store_cache_size = GetBackingStoreCacheSize(); |
if (backing_store_cache_size > 0) { |
if (!cache) |
@@ -58,21 +58,21 @@ BackingStore* BackingStoreManager::GetBackingStore( |
// static |
BackingStore* BackingStoreManager::PrepareBackingStore( |
RenderWidgetHost* host, |
- const gfx::Rect& backing_store_rect, |
+ const gfx::Size& backing_store_size, |
base::ProcessHandle process_handle, |
TransportDIB* bitmap, |
const gfx::Rect& bitmap_rect, |
bool* needs_full_paint) { |
- BackingStore* backing_store = GetBackingStore(host, |
- backing_store_rect.size()); |
+ BackingStore* backing_store = GetBackingStore(host, backing_store_size); |
if (!backing_store) { |
// We need to get Webkit to generate a new paint here, as we |
// don't have a previous snapshot. |
- if (bitmap_rect != backing_store_rect) { |
+ if (bitmap_rect.size() != backing_store_size || |
+ bitmap_rect.x() != 0 || bitmap_rect.y() != 0) { |
DCHECK(needs_full_paint != NULL); |
*needs_full_paint = true; |
} |
- backing_store = CreateBackingStore(host, backing_store_rect); |
+ backing_store = CreateBackingStore(host, backing_store_size); |
} |
DCHECK(backing_store != NULL); |