summaryrefslogtreecommitdiffstats
path: root/chrome/browser/renderer_host/backing_store_manager.cc
Commit message (Collapse)AuthorAgeFilesLines
* Adds a command line flag to suppress flashing blinking for those who really, ↵slightlyoff@chromium.org2010-03-011-2/+17
| | | | | | | | | | | REALLY want it to stop. BUG=None TEST=load tons of tabs after starting with --disable-backing-store-limit and observe no blinking and HUGE memory usage. Review URL: http://codereview.chromium.org/660224 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40317 0039d316-1c4b-4281-b951-d872f2087c98
* Add the ability for the GPU process to be used to paint the backing store of abrettw@chromium.org2010-01-131-14/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tab. This is the first pass and is currently a bit buggy and incomplete. This patch refactors the backing store to make it a virtual interface which is then implemented by the platform-specific backing stores. This cleans up the multi-platform aspects of the old code, and also makes it possible to create different backing stores (such as ones in another process). This renames the BackingStore::PaintRect function to PaintToBackingStore which clears up what it does. I would often get confused and think that it paints the backing store to the screen. This makes a common way to capture backing store information and adds it to the backing store API. This removed a bunch of ugly ifdefs. This adds the ability for a backing store to specify that the TransportDIB should not be freed by RenderWidgetHost when painting is complete. This is necessary since the out-of-process version needs to use it after the RenderWidget paint function has returned. This pushes up the vector of copy_rect from RenderWidgetHost to the actual BackingStores. This prevents us from sending duplicate data over IPC. It also makes the common non-IPC case more efficient, since we end up setting up various surfaces only once when there are multiple update rects. BUG=none TEST=none Review URL: http://codereview.chromium.org/523028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36075 0039d316-1c4b-4281-b951-d872f2087c98
* Preserve optimized scrolling in the presence of multiple animating rects.darin@chromium.org2009-12-041-2/+26
| | | | | | | | | | | | | | Change PlatformCanvas so that it only fills with "sea foam green" when bitmap data is not externally supplied. Modifying the interface to make this an option bloated the CL too much. I may do this as a follow-up. Adds a new --show-paint-rects command line flag that will render a border around paint rects to help debug and study WebKit painting issues. R=brettw BUG=25905 TEST=none Review URL: http://codereview.chromium.org/414016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33861 0039d316-1c4b-4281-b951-d872f2087c98
* Header dependency cleanup in chrome/phajdan.jr@chromium.org2009-10-121-1/+1
| | | | | | | | | | | | - reduce header dependencies - remove things that shouldn't be #included in a header, like string_util.h and theme_resources.h! TEST=none BUG=none Review URL: http://codereview.chromium.org/245011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28705 0039d316-1c4b-4281-b951-d872f2087c98
* Add a Clear() function to MRUCache. This will be useful in my MemoryPurger ↵pkasting@chromium.org2009-10-021-1/+9
| | | | | | | | | | class. Technically you can call ShrinkToSize(0), but that's both less clear and slower. BUG=23400 TEST=none Review URL: http://codereview.chromium.org/257024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27892 0039d316-1c4b-4281-b951-d872f2087c98
* Remove non-full paints from uninitialized backing storecpu@chromium.org2009-09-041-0/+3
| | | | | | | | | | | | | | | When we create a new backing store, by definition, we don't have the previous bits, so it does not make sense to draw a small dransport dib over what ammounts to black pixels. BUG=13762 TEST=see bug Review URL: http://codereview.chromium.org/193017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25512 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a DCHECK corner case.yusukes@google.com2009-09-011-2/+1
| | | | | | | | | | | Allow (current + new == max) case. BUG=20673 TEST=none Review URL: http://codereview.chromium.org/176037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25010 0039d316-1c4b-4281-b951-d872f2087c98
* cap the number of tabs in the backing store cacheerikkay@chromium.org2009-08-171-26/+46
| | | | | | | | | BUG=19353 TEST=None Review URL: http://codereview.chromium.org/165538 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23584 0039d316-1c4b-4281-b951-d872f2087c98
* change backing store cache to be memory-based rather than counterikkay@chromium.org2009-06-251-44/+117
| | | | | | | | | BUG=13763 TEST=none Review URL: http://codereview.chromium.org/146095 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19246 0039d316-1c4b-4281-b951-d872f2087c98
* Adds kind-of-live thumbnail generation for a potential tab switcher.brettw@chromium.org2009-06-161-9/+42
| | | | | | | | | | | | | | | | | | | | This listens to tab events and tries to keep thumbnails ready to go. See thumbnail_generator.cc for a more detailed design. This adds a painting observer to the RenderWidgetHost to enable this new behavior, as well as a notification to allow the thumbnail generator to hook its observer in. There is also a new notification that a backing store has been disabled, which required making the backing stores know about their owning widget hosts. This component is currently disabled. We just need to uncomment the member in Profile and it will start to work. Original review: http://codereview.chromium.org/118420 Review URL: http://codereview.chromium.org/126101 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18540 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting Rev 18383 since it brings down the performance of single core page ↵mad@chromium.org2009-06-151-9/+3
| | | | | | cyclers too much... git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18385 0039d316-1c4b-4281-b951-d872f2087c98
* This is to thest the page cycler performance without the resize corner, to ↵mad@chromium.org2009-06-151-3/+9
| | | | | | | | | | | | | see if these paint optimizations are worth it. I will revert these changes as needed... You may revert them yourself if they cause you trouble before I get to revert them. I have tested these changes on two different linux configuration, but there are more code paths that I couldn't verify myself, though agl gave me the OK anyway. These changes have already been reviewed here: http://codereview.chromium.org/108040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18383 0039d316-1c4b-4281-b951-d872f2087c98
* Revert mad's backing store changes, it completely hosed Linux painting.deanm@chromium.org2009-06-111-9/+3
| | | | | | | | | This was r18090, reverted in r18092, recommitted without review in 18130. Review URL: http://codereview.chromium.org/122034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18158 0039d316-1c4b-4281-b951-d872f2087c98
* Relanding reverted patch 18090.mad@google.com2009-06-111-3/+9
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18130 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 18090jrg@chromium.org2009-06-101-9/+3
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18092 0039d316-1c4b-4281-b951-d872f2087c98
* To help resolve the performance issue introduced when enabling the resize ↵mad@google.com2009-06-101-3/+9
| | | | | | | | corner, we now keep all non-intersecting rects separately and send an array of invalidation bitmaps via IPC as opposed to a single unionized rect :-) Review URL: http://codereview.chromium.org/108040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18090 0039d316-1c4b-4281-b951-d872f2087c98
* Split the BackingStoreManager out of backing_store.* and into its own class.brettw@chromium.org2009-06-031-0/+120
Review URL: http://codereview.chromium.org/118179 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17539 0039d316-1c4b-4281-b951-d872f2087c98