From 0815731ac884b41853725e51e26b0697449747b4 Mon Sep 17 00:00:00 2001 From: "thestig@chromium.org" Date: Fri, 30 Jan 2009 00:34:11 +0000 Subject: Fix a bunch of lint complaints in preparation to land issue 19046. Mostly formatting changes, i.e. CRLF, space at end of line. Review URL: http://codereview.chromium.org/19486 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8933 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/renderer_host/backing_store.cc | 217 +++++++++-------- chrome/browser/renderer_host/backing_store.h | 260 ++++++++++----------- chrome/browser/renderer_host/backing_store_win.cc | 244 +++++++++---------- chrome/browser/renderer_host/render_widget_host.cc | 6 +- 4 files changed, 363 insertions(+), 364 deletions(-) (limited to 'chrome/browser') diff --git a/chrome/browser/renderer_host/backing_store.cc b/chrome/browser/renderer_host/backing_store.cc index 28d47bc..9cff6aa7 100644 --- a/chrome/browser/renderer_host/backing_store.cc +++ b/chrome/browser/renderer_host/backing_store.cc @@ -1,109 +1,108 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/renderer_host/backing_store.h" - -class RenderWidgetHost; - -namespace { - -typedef OwningMRUCache BackingStoreCache; -static BackingStoreCache* cache = NULL; - -// Returns the size of the backing store cache. -// TODO(iyengar) Make this dynamic, i.e. based on the available resources -// on the machine. -static int GetBackingStoreCacheSize() { - const int kMaxSize = 5; - return kMaxSize; -} - -// 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) { - BackingStoreManager::RemoveBackingStore(host); - - BackingStore* backing_store = new BackingStore(backing_store_rect.size()); - int backing_store_cache_size = GetBackingStoreCacheSize(); - if (backing_store_cache_size > 0) { - if (!cache) - cache = new BackingStoreCache(backing_store_cache_size); - cache->Put(host, backing_store); - } - return backing_store; -} - -} // namespace - -// BackingStoreManager --------------------------------------------------------- - -// static -BackingStore* BackingStoreManager::GetBackingStore( - RenderWidgetHost* host, - const gfx::Size& desired_size) { - BackingStore* backing_store = Lookup(host); - if (backing_store) { - // If we already have a backing store, then make sure it is the correct - // size. - if (backing_store->size() == desired_size) - return backing_store; - backing_store = NULL; - } - - return backing_store; -} - -// static -BackingStore* BackingStoreManager::PrepareBackingStore( - RenderWidgetHost* host, - const gfx::Rect& backing_store_rect, - base::ProcessHandle process_handle, - HANDLE bitmap_section, - const gfx::Rect& bitmap_rect, - bool* needs_full_paint) { - BackingStore* backing_store = GetBackingStore(host, - backing_store_rect.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) { - DCHECK(needs_full_paint != NULL); - *needs_full_paint = true; - } - backing_store = CreateBackingStore(host, backing_store_rect); - } - - DCHECK(backing_store != NULL); - backing_store->PaintRect(process_handle, bitmap_section, bitmap_rect); - return backing_store; -} - -// static -BackingStore* BackingStoreManager::Lookup(RenderWidgetHost* host) { - if (cache) { - BackingStoreCache::iterator it = cache->Peek(host); - if (it != cache->end()) - return it->second; - } - return NULL; -} - -// static -void BackingStoreManager::RemoveBackingStore(RenderWidgetHost* host) { - if (!cache) - return; - - BackingStoreCache::iterator it = cache->Peek(host); - if (it == cache->end()) - return; - - cache->Erase(it); - - if (cache->empty()) { - delete cache; - cache = NULL; - } -} - +// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/renderer_host/backing_store.h" + +class RenderWidgetHost; + +namespace { + +typedef OwningMRUCache BackingStoreCache; +static BackingStoreCache* cache = NULL; + +// Returns the size of the backing store cache. +// TODO(iyengar) Make this dynamic, i.e. based on the available resources +// on the machine. +static int GetBackingStoreCacheSize() { + const int kMaxSize = 5; + return kMaxSize; +} + +// 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) { + BackingStoreManager::RemoveBackingStore(host); + + BackingStore* backing_store = new BackingStore(backing_store_rect.size()); + int backing_store_cache_size = GetBackingStoreCacheSize(); + if (backing_store_cache_size > 0) { + if (!cache) + cache = new BackingStoreCache(backing_store_cache_size); + cache->Put(host, backing_store); + } + return backing_store; +} + +} // namespace + +// BackingStoreManager --------------------------------------------------------- + +// static +BackingStore* BackingStoreManager::GetBackingStore( + RenderWidgetHost* host, + const gfx::Size& desired_size) { + BackingStore* backing_store = Lookup(host); + if (backing_store) { + // If we already have a backing store, then make sure it is the correct + // size. + if (backing_store->size() == desired_size) + return backing_store; + backing_store = NULL; + } + + return backing_store; +} + +// static +BackingStore* BackingStoreManager::PrepareBackingStore( + RenderWidgetHost* host, + const gfx::Rect& backing_store_rect, + base::ProcessHandle process_handle, + HANDLE bitmap_section, + const gfx::Rect& bitmap_rect, + bool* needs_full_paint) { + BackingStore* backing_store = GetBackingStore(host, + backing_store_rect.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) { + DCHECK(needs_full_paint != NULL); + *needs_full_paint = true; + } + backing_store = CreateBackingStore(host, backing_store_rect); + } + + DCHECK(backing_store != NULL); + backing_store->PaintRect(process_handle, bitmap_section, bitmap_rect); + return backing_store; +} + +// static +BackingStore* BackingStoreManager::Lookup(RenderWidgetHost* host) { + if (cache) { + BackingStoreCache::iterator it = cache->Peek(host); + if (it != cache->end()) + return it->second; + } + return NULL; +} + +// static +void BackingStoreManager::RemoveBackingStore(RenderWidgetHost* host) { + if (!cache) + return; + + BackingStoreCache::iterator it = cache->Peek(host); + if (it == cache->end()) + return; + + cache->Erase(it); + + if (cache->empty()) { + delete cache; + cache = NULL; + } +} diff --git a/chrome/browser/renderer_host/backing_store.h b/chrome/browser/renderer_host/backing_store.h index 07ed517..eddb4c4 100644 --- a/chrome/browser/renderer_host/backing_store.h +++ b/chrome/browser/renderer_host/backing_store.h @@ -1,130 +1,130 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_RENDERER_HOST_BACKING_STORE_H_ -#define CHROME_BROWSER_RENDERER_HOST_BACKING_STORE_H_ - -#include "base/basictypes.h" -#include "base/gfx/rect.h" -#include "base/gfx/size.h" -#include "base/process.h" -#include "build/build_config.h" -#include "chrome/common/mru_cache.h" - -#if defined(OS_WIN) -#include -#endif - -class RenderWidgetHost; - -// BackingStore ---------------------------------------------------------------- - -// Represents a backing store for the pixels in a RenderWidgetHost. -class BackingStore { - public: - BackingStore(const gfx::Size& size); - ~BackingStore(); - - const gfx::Size& size() { return size_; } - -#if defined(OS_WIN) - HDC hdc() { return hdc_; } -#endif - - // Paints the bitmap from the renderer onto the backing store. - // TODO(port): The HANDLE is a shared section on Windows. Abstract this. - bool PaintRect(base::ProcessHandle process, - HANDLE bitmap_section, - const gfx::Rect& bitmap_rect); - - // Scrolls the given rect in the backing store, replacing the given region - // identified by |bitmap_rect| by the bitmap in the file identified by the - // given file handle. - // TODO(port): The HANDLE is a shared section on Windows. Abstract this. - void ScrollRect(base::ProcessHandle process, - HANDLE bitmap, const gfx::Rect& bitmap_rect, - int dx, int dy, - const gfx::Rect& clip_rect, - const gfx::Size& view_size); - - private: - // The size of the backing store. - gfx::Size size_; - -#if defined(OS_WIN) - // Creates a dib conforming to the height/width/section parameters passed - // in. The use_os_color_depth parameter controls whether we use the color - // depth to create an appropriate dib or not. - HANDLE CreateDIB(HDC dc, - int width, int height, - bool use_os_color_depth, - HANDLE section); - - // The backing store dc. - HDC hdc_; - - // Handle to the backing store dib. - HANDLE backing_store_dib_; - - // Handle to the original bitmap in the dc. - HANDLE original_bitmap_; -#endif - - DISALLOW_COPY_AND_ASSIGN(BackingStore); -}; - -// BackingStoreManager --------------------------------------------------------- - -// This class manages backing stores in the browsr. Every RenderWidgetHost is -// associated with a backing store which it requests from this class. The -// hosts don't maintain any references to the backing stores. These backing -// stores are maintained in a cache which can be trimmed as needed. -class BackingStoreManager { - public: - // Returns a backing store which matches the desired dimensions. - // - // backing_store_rect - // The desired backing store dimensions. - // Returns a pointer to the backing store on success, NULL on failure. - static BackingStore* GetBackingStore(RenderWidgetHost* host, - const gfx::Size& desired_size); - - // Returns a backing store which is fully ready for consumption, i.e. the - // bitmap from the renderer has been copied into the backing store dc, or the - // bitmap in the backing store dc references the renderer bitmap. - // - // backing_store_rect - // The desired backing store dimensions. - // process_handle - // The renderer process handle. - // bitmap_section - // The bitmap section from the renderer. - // bitmap_rect - // The rect to be painted into the backing store - // needs_full_paint - // Set if we need to send out a request to paint the view - // to the renderer. - // TODO(port): The HANDLE is a shared section on Windows. Abstract this. - static BackingStore* PrepareBackingStore(RenderWidgetHost* host, - const gfx::Rect& backing_store_rect, - base::ProcessHandle process_handle, - HANDLE bitmap_section, - const gfx::Rect& bitmap_rect, - bool* needs_full_paint); - - // Returns a matching backing store for the host. - // Returns NULL if we fail to find one. - static BackingStore* Lookup(RenderWidgetHost* host); - - // Removes the backing store for the host. - static void RemoveBackingStore(RenderWidgetHost* host); - - private: - // Not intended for instantiation. - BackingStoreManager() {} - - DISALLOW_COPY_AND_ASSIGN(BackingStoreManager); -}; - -#endif // CHROME_BROWSER_RENDERER_HOST_BACKING_STORE_H_ +// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_RENDERER_HOST_BACKING_STORE_H_ +#define CHROME_BROWSER_RENDERER_HOST_BACKING_STORE_H_ + +#include "base/basictypes.h" +#include "base/gfx/rect.h" +#include "base/gfx/size.h" +#include "base/process.h" +#include "build/build_config.h" +#include "chrome/common/mru_cache.h" + +#if defined(OS_WIN) +#include +#endif + +class RenderWidgetHost; + +// BackingStore ---------------------------------------------------------------- + +// Represents a backing store for the pixels in a RenderWidgetHost. +class BackingStore { + public: + explicit BackingStore(const gfx::Size& size); + ~BackingStore(); + + const gfx::Size& size() { return size_; } + +#if defined(OS_WIN) + HDC hdc() { return hdc_; } +#endif + + // Paints the bitmap from the renderer onto the backing store. + // TODO(port): The HANDLE is a shared section on Windows. Abstract this. + bool PaintRect(base::ProcessHandle process, + HANDLE bitmap_section, + const gfx::Rect& bitmap_rect); + + // Scrolls the given rect in the backing store, replacing the given region + // identified by |bitmap_rect| by the bitmap in the file identified by the + // given file handle. + // TODO(port): The HANDLE is a shared section on Windows. Abstract this. + void ScrollRect(base::ProcessHandle process, + HANDLE bitmap, const gfx::Rect& bitmap_rect, + int dx, int dy, + const gfx::Rect& clip_rect, + const gfx::Size& view_size); + + private: + // The size of the backing store. + gfx::Size size_; + +#if defined(OS_WIN) + // Creates a dib conforming to the height/width/section parameters passed + // in. The use_os_color_depth parameter controls whether we use the color + // depth to create an appropriate dib or not. + HANDLE CreateDIB(HDC dc, + int width, int height, + bool use_os_color_depth, + HANDLE section); + + // The backing store dc. + HDC hdc_; + + // Handle to the backing store dib. + HANDLE backing_store_dib_; + + // Handle to the original bitmap in the dc. + HANDLE original_bitmap_; +#endif + + DISALLOW_COPY_AND_ASSIGN(BackingStore); +}; + +// BackingStoreManager --------------------------------------------------------- + +// This class manages backing stores in the browsr. Every RenderWidgetHost is +// associated with a backing store which it requests from this class. The +// hosts don't maintain any references to the backing stores. These backing +// stores are maintained in a cache which can be trimmed as needed. +class BackingStoreManager { + public: + // Returns a backing store which matches the desired dimensions. + // + // backing_store_rect + // The desired backing store dimensions. + // Returns a pointer to the backing store on success, NULL on failure. + static BackingStore* GetBackingStore(RenderWidgetHost* host, + const gfx::Size& desired_size); + + // Returns a backing store which is fully ready for consumption, i.e. the + // bitmap from the renderer has been copied into the backing store dc, or the + // bitmap in the backing store dc references the renderer bitmap. + // + // backing_store_rect + // The desired backing store dimensions. + // process_handle + // The renderer process handle. + // bitmap_section + // The bitmap section from the renderer. + // bitmap_rect + // The rect to be painted into the backing store + // needs_full_paint + // Set if we need to send out a request to paint the view + // to the renderer. + // TODO(port): The HANDLE is a shared section on Windows. Abstract this. + static BackingStore* PrepareBackingStore(RenderWidgetHost* host, + const gfx::Rect& backing_store_rect, + base::ProcessHandle process_handle, + HANDLE bitmap_section, + const gfx::Rect& bitmap_rect, + bool* needs_full_paint); + + // Returns a matching backing store for the host. + // Returns NULL if we fail to find one. + static BackingStore* Lookup(RenderWidgetHost* host); + + // Removes the backing store for the host. + static void RemoveBackingStore(RenderWidgetHost* host); + + private: + // Not intended for instantiation. + BackingStoreManager() {} + + DISALLOW_COPY_AND_ASSIGN(BackingStoreManager); +}; + +#endif // CHROME_BROWSER_RENDERER_HOST_BACKING_STORE_H_ diff --git a/chrome/browser/renderer_host/backing_store_win.cc b/chrome/browser/renderer_host/backing_store_win.cc index 9c8df95..0a09d2e 100644 --- a/chrome/browser/renderer_host/backing_store_win.cc +++ b/chrome/browser/renderer_host/backing_store_win.cc @@ -1,122 +1,122 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/renderer_host/backing_store.h" - -#include "base/gfx/gdi_util.h" -#include "chrome/browser/renderer_host/render_widget_host.h" -#include "chrome/common/win_util.h" - -// BackingStore (Windows) ------------------------------------------------------ - -BackingStore::BackingStore(const gfx::Size& size) - : size_(size), - backing_store_dib_(NULL), - original_bitmap_(NULL) { - HDC screen_dc = ::GetDC(NULL); - hdc_ = CreateCompatibleDC(screen_dc); - ReleaseDC(NULL, screen_dc); -} - -BackingStore::~BackingStore() { - DCHECK(hdc_); - - DeleteDC(hdc_); - - if (backing_store_dib_) { - DeleteObject(backing_store_dib_); - backing_store_dib_ = NULL; - } -} - -bool BackingStore::PaintRect(base::ProcessHandle process, - HANDLE bitmap_section, - const gfx::Rect& bitmap_rect) { - // The bitmap received is valid only in the renderer process. - HANDLE valid_bitmap = - win_util::GetSectionFromProcess(bitmap_section, process, false); - if (!valid_bitmap) - return false; - - if (!backing_store_dib_) { - backing_store_dib_ = CreateDIB(hdc_, size_.width(), size_.height(), true, - NULL); - DCHECK(backing_store_dib_ != NULL); - original_bitmap_ = SelectObject(hdc_, backing_store_dib_); - } - - // TODO(darin): protect against integer overflow - DWORD size = 4 * bitmap_rect.width() * bitmap_rect.height(); - void* backing_store_data = MapViewOfFile(valid_bitmap, FILE_MAP_READ, 0, 0, - size); - // These values are shared with gfx::PlatformDevice - BITMAPINFOHEADER hdr; - gfx::CreateBitmapHeader(bitmap_rect.width(), bitmap_rect.height(), &hdr); - // Account for a bitmap_rect that exceeds the bounds of our view - gfx::Rect view_rect(0, 0, size_.width(), size_.height()); - gfx::Rect paint_rect = view_rect.Intersect(bitmap_rect); - - StretchDIBits(hdc_, - paint_rect.x(), - paint_rect.y(), - paint_rect.width(), - paint_rect.height(), - 0, 0, // source x,y - paint_rect.width(), - paint_rect.height(), - backing_store_data, - reinterpret_cast(&hdr), - DIB_RGB_COLORS, - SRCCOPY); - - UnmapViewOfFile(backing_store_data); - CloseHandle(valid_bitmap); - return true; -} - -void BackingStore::ScrollRect(base::ProcessHandle process, - HANDLE bitmap, const gfx::Rect& bitmap_rect, - int dx, int dy, - const gfx::Rect& clip_rect, - const gfx::Size& view_size) { - RECT damaged_rect, r = clip_rect.ToRECT(); - ScrollDC(hdc_, dx, dy, NULL, &r, NULL, &damaged_rect); - - // TODO(darin): this doesn't work if dx and dy are both non-zero! - DCHECK(dx == 0 || dy == 0); - - // We expect that damaged_rect should equal bitmap_rect. - DCHECK(gfx::Rect(damaged_rect) == bitmap_rect); - - PaintRect(process, bitmap, bitmap_rect); -} - -HANDLE BackingStore::CreateDIB(HDC dc, - int width, int height, - bool use_system_color_depth, - HANDLE section) { - BITMAPINFOHEADER hdr; - - if (use_system_color_depth) { - HDC screen_dc = ::GetDC(NULL); - int color_depth = GetDeviceCaps(screen_dc, BITSPIXEL); - ::ReleaseDC(NULL, screen_dc); - - // Color depths less than 16 bpp require a palette to be specified in the - // BITMAPINFO structure passed to CreateDIBSection. Instead of creating - // the palette, we specify the desired color depth as 16 which allows the - // OS to come up with an approximation. Tested this with 8bpp. - if (color_depth < 16) - color_depth = 16; - - gfx::CreateBitmapHeaderWithColorDepth(width, height, color_depth, &hdr); - } else { - gfx::CreateBitmapHeader(width, height, &hdr); - } - void* data = NULL; - HANDLE dib = - CreateDIBSection(hdc_, reinterpret_cast(&hdr), - 0, &data, section, 0); - return dib; -} +// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/renderer_host/backing_store.h" + +#include "base/gfx/gdi_util.h" +#include "chrome/browser/renderer_host/render_widget_host.h" +#include "chrome/common/win_util.h" + +// BackingStore (Windows) ------------------------------------------------------ + +BackingStore::BackingStore(const gfx::Size& size) + : size_(size), + backing_store_dib_(NULL), + original_bitmap_(NULL) { + HDC screen_dc = ::GetDC(NULL); + hdc_ = CreateCompatibleDC(screen_dc); + ReleaseDC(NULL, screen_dc); +} + +BackingStore::~BackingStore() { + DCHECK(hdc_); + + DeleteDC(hdc_); + + if (backing_store_dib_) { + DeleteObject(backing_store_dib_); + backing_store_dib_ = NULL; + } +} + +bool BackingStore::PaintRect(base::ProcessHandle process, + HANDLE bitmap_section, + const gfx::Rect& bitmap_rect) { + // The bitmap received is valid only in the renderer process. + HANDLE valid_bitmap = + win_util::GetSectionFromProcess(bitmap_section, process, false); + if (!valid_bitmap) + return false; + + if (!backing_store_dib_) { + backing_store_dib_ = CreateDIB(hdc_, size_.width(), size_.height(), true, + NULL); + DCHECK(backing_store_dib_ != NULL); + original_bitmap_ = SelectObject(hdc_, backing_store_dib_); + } + + // TODO(darin): protect against integer overflow + DWORD size = 4 * bitmap_rect.width() * bitmap_rect.height(); + void* backing_store_data = MapViewOfFile(valid_bitmap, FILE_MAP_READ, 0, 0, + size); + // These values are shared with gfx::PlatformDevice + BITMAPINFOHEADER hdr; + gfx::CreateBitmapHeader(bitmap_rect.width(), bitmap_rect.height(), &hdr); + // Account for a bitmap_rect that exceeds the bounds of our view + gfx::Rect view_rect(0, 0, size_.width(), size_.height()); + gfx::Rect paint_rect = view_rect.Intersect(bitmap_rect); + + StretchDIBits(hdc_, + paint_rect.x(), + paint_rect.y(), + paint_rect.width(), + paint_rect.height(), + 0, 0, // source x,y + paint_rect.width(), + paint_rect.height(), + backing_store_data, + reinterpret_cast(&hdr), + DIB_RGB_COLORS, + SRCCOPY); + + UnmapViewOfFile(backing_store_data); + CloseHandle(valid_bitmap); + return true; +} + +void BackingStore::ScrollRect(base::ProcessHandle process, + HANDLE bitmap, const gfx::Rect& bitmap_rect, + int dx, int dy, + const gfx::Rect& clip_rect, + const gfx::Size& view_size) { + RECT damaged_rect, r = clip_rect.ToRECT(); + ScrollDC(hdc_, dx, dy, NULL, &r, NULL, &damaged_rect); + + // TODO(darin): this doesn't work if dx and dy are both non-zero! + DCHECK(dx == 0 || dy == 0); + + // We expect that damaged_rect should equal bitmap_rect. + DCHECK(gfx::Rect(damaged_rect) == bitmap_rect); + + PaintRect(process, bitmap, bitmap_rect); +} + +HANDLE BackingStore::CreateDIB(HDC dc, + int width, int height, + bool use_system_color_depth, + HANDLE section) { + BITMAPINFOHEADER hdr; + + if (use_system_color_depth) { + HDC screen_dc = ::GetDC(NULL); + int color_depth = GetDeviceCaps(screen_dc, BITSPIXEL); + ::ReleaseDC(NULL, screen_dc); + + // Color depths less than 16 bpp require a palette to be specified in the + // BITMAPINFO structure passed to CreateDIBSection. Instead of creating + // the palette, we specify the desired color depth as 16 which allows the + // OS to come up with an approximation. Tested this with 8bpp. + if (color_depth < 16) + color_depth = 16; + + gfx::CreateBitmapHeaderWithColorDepth(width, height, color_depth, &hdr); + } else { + gfx::CreateBitmapHeader(width, height, &hdr); + } + void* data = NULL; + HANDLE dib = + CreateDIBSection(hdc_, reinterpret_cast(&hdr), + 0, &data, section, 0); + return dib; +} diff --git a/chrome/browser/renderer_host/render_widget_host.cc b/chrome/browser/renderer_host/render_widget_host.cc index 281c61b..5914c74 100644 --- a/chrome/browser/renderer_host/render_widget_host.cc +++ b/chrome/browser/renderer_host/render_widget_host.cc @@ -194,11 +194,11 @@ BackingStore* RenderWidgetHost::GetBackingStore() { DCHECK(!is_hidden_) << "GetBackingStore called while hidden!"; // We might have a cached backing store that we can reuse! - BackingStore* backing_store = + BackingStore* backing_store = BackingStoreManager::GetBackingStore(this, current_size_); // If we fail to find a backing store in the cache, send out a request // to the renderer to paint the view if required. - if (!backing_store && !repaint_ack_pending_ && !resize_ack_pending_ && + if (!backing_store && !repaint_ack_pending_ && !resize_ack_pending_ && !view_being_painted_) { repaint_start_time_ = TimeTicks::Now(); repaint_ack_pending_ = true; @@ -562,7 +562,7 @@ void RenderWidgetHost::PaintBackingStoreRect(HANDLE bitmap, gfx::Rect view_rect(0, 0, view_size.width(), view_size.height()); bool needs_full_paint = false; - BackingStore* backing_store = + BackingStore* backing_store = BackingStoreManager::PrepareBackingStore(this, view_rect, process_->process().handle(), bitmap, bitmap_rect, -- cgit v1.1