summaryrefslogtreecommitdiffstats
path: root/gfx
Commit message (Collapse)AuthorAgeFilesLines
* Cleanup: USE_X11 + OS_MACOSX = OS_POSIX.thestig@chromium.org2010-12-211-3/+3
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/5856001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69854 0039d316-1c4b-4281-b951-d872f2087c98
* Keep deinlining stuff.erg@google.com2010-12-153-2/+20
| | | | | | | | | BUG=none TEST=compiles Review URL: http://codereview.chromium.org/5783004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69273 0039d316-1c4b-4281-b951-d872f2087c98
* Make members of Singleton<T> private and only visible to the singleton type. ↵satish@chromium.org2010-12-141-1/+1
| | | | | | | | | | | | | | | This enforces that the Singleton<T> pattern can only be used within classes which want singleton-ness. As part of this CL I have also fixed up files which got missed in my previous CLs to use a GetInstance() method and use Singleton<T> from the source file. There are a small number of places where I have also switched to LazyInstance as that was more appropriate for types used in a single source file. BUG=65298 TEST=all existing tests should continue to pass. Review URL: http://codereview.chromium.org/5682008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69107 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 68932 - Make members of Singleton<T> private and only visible to the ↵satish@chromium.org2010-12-111-1/+1
| | | | | | | | | | | | | | | | | | singleton type. This enforces that the Singleton<T> pattern can only be used within classes which want singleton-ness. As part of this CL I have also fixed up files which got missed in my previous CLs to use a GetInstance() method and use Singleton<T> from the source file. There are a small number of places where I have also switched to LazyInstance as that was more appropriate for types used in a single source file. BUG=65298 TEST=all existing tests should continue to pass. Review URL: http://codereview.chromium.org/5682008 TBR=satish@chromium.org Review URL: http://codereview.chromium.org/5721005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68936 0039d316-1c4b-4281-b951-d872f2087c98
* Make members of Singleton<T> private and only visible to the singleton type. ↵satish@chromium.org2010-12-111-1/+1
| | | | | | | | | | | | | | | This enforces that the Singleton<T> pattern can only be used within classes which want singleton-ness. As part of this CL I have also fixed up files which got missed in my previous CLs to use a GetInstance() method and use Singleton<T> from the source file. There are a small number of places where I have also switched to LazyInstance as that was more appropriate for types used in a single source file. BUG=65298 TEST=all existing tests should continue to pass. Review URL: http://codereview.chromium.org/5682008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68932 0039d316-1c4b-4281-b951-d872f2087c98
* A small wstring -> string16 cleanup in PlatformFont.tony@chromium.org2010-12-108-15/+14
| | | | | | | | BUG=23581 Review URL: http://codereview.chromium.org/5794001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68908 0039d316-1c4b-4281-b951-d872f2087c98
* Get rid of std::wstring version of HasSwitch.tfarina@chromium.org2010-12-081-4/+2
| | | | | | | | | BUG=24672 TEST=trybots Review URL: http://codereview.chromium.org/5649003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68650 0039d316-1c4b-4281-b951-d872f2087c98
* Mac: Use high-quality interpolation to draw tabpose thumbnails.thakis@chromium.org2010-12-082-0/+31
| | | | | | | | | BUG=50307,65894 TEST=Activate tabpose, thumbnails should look nicer, but the feature shouldn't be visibly slower. Review URL: http://codereview.chromium.org/5526011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68610 0039d316-1c4b-4281-b951-d872f2087c98
* Add a new GetInstance() method for singleton classes, take 2.satish@chromium.org2010-12-083-4/+9
| | | | | | | | | | | | | | | | | | This is a small step towards making all singleton classes use the Singleton<T> pattern within their code and not expect the callers to know about it. This CL includes all files except those under chrome/browser, chrome/net, chrome/service and third_party/WebKit (these will be done in future CLs). Suggested files to focus for reviewers: - joi@ for files under src/ceee - tommi@ for files under src/chrome_frame - maruel@ for the rest of the files. BUG=65298 TEST=all existing tests should continue to pass. Review URL: http://codereview.chromium.org/5581008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68577 0039d316-1c4b-4281-b951-d872f2087c98
* Integrates libjpeg-turbo into Chromium (Chromium side)hbono@chromium.org2010-12-072-2/+2
| | | | | | | | | | This change is the Chromium-side change that integrates libjpeg-turbo into Chromium. (We need another change for WebKit.) It adds a GYP option 'libjpeg_turbo' so we can switch from libjpeg to libjpeg-turbo and use libjpeg-turbo when its value is 1. (Unfortunately, its value must be 0 for now to avoid build breaks until we land all changes required for libjpeg-turbo.) BUG=48789 TEST=build Chromium. Review URL: http://codereview.chromium.org/5292007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68453 0039d316-1c4b-4281-b951-d872f2087c98
* This CL add a GetInstance() method to singleton classes instead of relying ↵satish@chromium.org2010-12-041-1/+5
| | | | | | | | | | | | | | | | | on the callers to use Singleton<T>. In some cases I have used the LazyInstance<T> pattern as that was simpler. This is a small step towards making all singleton classes use the Singleton<T> pattern within their code and not expect the callers to know about it. I have selected all files under src/app and src/base which use Singleton<T> in this CL. Once this CL goes in I'll work on the rest of the files. BUG=65298 TEST=all existing tests should continue to pass. Review URL: http://codereview.chromium.org/5527004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68300 0039d316-1c4b-4281-b951-d872f2087c98
* ChromeOS status text halo polish.xiyuan@chromium.org2010-12-041-0/+1
| | | | | | | | | | | | | - Fix the spikes on text of certain font by using round line join instead of default mitter join; - Use the same 0.7 black as other icons instead of 1.0 black; BUG=chromium-os:9787 TEST=Verify fix for chromium-os:9787 Review URL: http://codereview.chromium.org/5522007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68255 0039d316-1c4b-4281-b951-d872f2087c98
* Defer window destruction until GPU finished drawing.backer@chromium.org2010-11-303-7/+87
| | | | | | | | | | | | | | | | | When a tab is closed, it takes a while before the GPU stops drawing into the window. Destroying the window before the GPU has flushed its drawing pipeline causes unsightly X11 errors. The custom widget class that we use for drawing tab contents has a lock that is set when the GPU process is drawing to that widget. We use this lock to determine who should delete the associated window: - if the lock is clear at the time of widget destruction, the widget destroys the window - if the lock is set, the GPU process signals to the browser to destroy the widget (it has to be done in the browser process b/c the X window is wrapped in a GdkWindow that resides in the browser address space) Most the management is done in GtkNativeViewManager. I've added another map from XID to GtkWidget to facilitate this management. BUG=55158 TEST=Open two windows with http://webkit.org/blog-files/3d-transforms/poster-circle.html Close one of them. There should be no X11 errors generated. Review URL: http://codereview.chromium.org/5275009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67719 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 67662 - FBTF: Remove unneeded headers from base/ (part 10)thestig@chromium.org2010-11-302-9/+6
| | | | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/5139006 TBR=thestig@chromium.org Review URL: http://codereview.chromium.org/5270010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67674 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Remove unneeded headers from base/ (part 10)thestig@chromium.org2010-11-302-6/+9
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/5139006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67662 0039d316-1c4b-4281-b951-d872f2087c98
* Resize synchronization for Linux.backer@chromium.org2010-11-252-3/+39
| | | | | | | | | | | | | | | | | | | | | | | This patch makes synchronous calls from the GPU to the Browser process to resize windows. It must be synchronous because we must be sure when the resize happens, it must be initiated by the GPU because we have to time the resize with GL drawing, and the resize must be done by the Browser because of how GDK/GTK is structured. Specifically, when a window that a GL context is associated with is resized, the back buffer gets blanked. So it is important that we synchronize the resize with the drawing to the back buffer. On Linux, the X window that we are drawing to is wrapped in a GdkWindow inside the Browser process. GDK/GTK assumes that all changes to the window happen via GDK calls. In particular, the size of the window is cached inside the GdkWindow object so that it does not have to make a call to the X server in order to get window geometry. Unfortunately, this necessitates resizing the window inside of the Browser process. For more discussion of this approach and (some unsuccessfully attempted) alternatives see https://docs.google.com/a/google.com/document/d/1ZNouL-X_Ml1x8sqy-sofz63pDAeo36VWi_yQihaE2YI/edit?hl=en This patch set uncovered another bug: - open in two separate windows http://webkit.org/blog/386/3d-transforms/ and http://webkit.org/blog-files/3d-transforms/poster-circle.html - resize the former until it is smallish - watch the root layer of the former show up as the root layer of the later. To my knowledge, this is first trigger of this bug. If and when this patch is accepted, I will file the bug. BUG=http://code.google.com/p/chromium/issues/detail?id=54430 TEST=Go to http://peter.sh/2010/06/chromium-now-features-gpu-acceleration-and-css-3d-transforms/ . Rotate Z with the slider to trigger the compositor. Resize the window. The resize may be janky (we're uploading large textures), but it should display properly. Contributed by backer@chromium.org Review URL: http://codereview.chromium.org/5105006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67416 0039d316-1c4b-4281-b951-d872f2087c98
* Replace TabContentsViewGtk with TabContentsViewViews as part of the ongoinganicolao@chromium.org2010-11-245-1/+22
| | | | | | | | | | | effort to eliminate GTK for TOUCH_UI. BUG=none TEST=manually tested Review URL: http://codereview.chromium.org/4319003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67291 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup AdjustStringForLocaleDirection() to modify input parameter in place.jeremy@chromium.org2010-11-241-7/+8
| | | | | | | | | | | As described in the bug, the current behavior is confusing and bug-prone. BUG=47194 TEST=Check that there are no visible regressions in RTL and LTR language UIs on Linux & Windows. Review URL: http://codereview.chromium.org/5154009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67237 0039d316-1c4b-4281-b951-d872f2087c98
* Refactoring of cursor usage (primarily for linux).sadrul@chromium.org2010-11-232-0/+44
| | | | | | | | | | | | | | Add API to WebCursor to return a native-cursor, and implementation for windows, linux and mac. For linux: Move gtk_util::GetCursor into gfx:: namespace. Also, get rid of ref/unref'ing the cursors from everywhere. Instead, do almost all of it in one place (in gfx). Also, show proper cursors for web-pages with touchui=1 (i.e. add support for updating cursor in RenderWidgetHostViewViews). Review URL: http://codereview.chromium.org/5110010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67034 0039d316-1c4b-4281-b951-d872f2087c98
* Convert SizeStringInt from taking a wstring to a string16.tony@chromium.org2010-11-226-10/+17
| | | | | | | | BUG=23581 Review URL: http://codereview.chromium.org/5158006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66973 0039d316-1c4b-4281-b951-d872f2087c98
* Add 1px black border for ChromeOS status button.xiyuan@chromium.org2010-11-182-69/+180
| | | | | | | | | | | | | | - Move Linux's CanvasSkia::DrawStringInt into DrawStringWithHalo and added code to support text halo and change DrawStringInt to use it; - Make views::TextButton support text halo; - Use the text halo for chromeos::StatusButton; BUG=chromium-os:8657 TEST=Verify 1px black border is added to ChromeOS status buttons. Review URL: http://codereview.chromium.org/5071002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66632 0039d316-1c4b-4281-b951-d872f2087c98
* [gtk] make tab title font irrespective of display DPI.estade@chromium.org2010-11-122-5/+5
| | | | | | | | | | | The font size is changed from 9 to 13 in order to offset the new correction. The font has the same same pixel size that was displayed before on my 101 DPI display. BUG=62536 TEST=using Xephyr -dpi XXX Review URL: http://codereview.chromium.org/4837002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65971 0039d316-1c4b-4281-b951-d872f2087c98
* gtk: refactor copy-pasted codeevan@chromium.org2010-11-052-0/+25
| | | | | | | | | | I wanted to do the same thing in a third place. TEST=compiles Review URL: http://codereview.chromium.org/4508004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65263 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "gtk: refactor copy-pasted code"evan@chromium.org2010-11-052-25/+0
| | | | | | Build break. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65247 0039d316-1c4b-4281-b951-d872f2087c98
* gtk: refactor copy-pasted codeevan@chromium.org2010-11-052-0/+25
| | | | | | | | | | I wanted to do the same thing in a third place. TEST=compiles Review URL: http://codereview.chromium.org/4508004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65246 0039d316-1c4b-4281-b951-d872f2087c98
* Removes SQLite dependency from gfxbulach@chromium.org2010-11-041-1/+0
| | | | | | | | | | | (no functional changes, just tidying up gyp). BUG=none TEST=none Review URL: http://codereview.chromium.org/4396003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65047 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: Remove base/gtk_util.h by moving its methods tojhawkins@chromium.org2010-10-293-23/+72
| | | | | | | | | | | gfx/gtk_util.h BUG=none TEST=none Review URL: http://codereview.chromium.org/4150006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64348 0039d316-1c4b-4281-b951-d872f2087c98
* Alternative to overlays on X windows.piman@chromium.org2010-10-285-115/+245
| | | | | | | | | | | | | | Created a new GTK widget that gives us more control over when X windows (associated with GL contexts) are created and destroyed. This achieves the same thing as the overlay code (now reverted). It fixes two regressions with the overlay code: - maps.google.com and html5test.com now work (switching between software and hardware rendering) - expose events now get through in accelerated mode BUG=58862,59887 TEST=Go to html5test.com. Should switch contents to show results. Disable compositing window manager. Go to http://peter.sh/2010/06/chromium-now-features-gpu-acceleration-and-css-3d-transforms/. Adjust the rotate z slider to enable accelerated compositing. Drag a different window over top. Redraws should happen. Review URL: http://codereview.chromium.org/3973009 Patch from Jonathan Backer <backer@chromium.org>. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64291 0039d316-1c4b-4281-b951-d872f2087c98
* [gtk] spoof proof infobars, take 2estade@chromium.org2010-10-263-10/+45
| | | | | | | | | | | | | | | | | | This looks like a big review, but a lot of it is just shuffling code around: - rip out dropshadow code - move arrow state and drawing to a model class, to allow sharing between BrowserWindow and Infobar - get rid of InfoBar's border_bin_ and slightly simplify baseclasses by no longer requiring them to call show() on the toplevel widget Added stuff: - transition between arrow colors (previous_color_ vs. target_color_ business) - arrows protruding on neighboring infobars BUG=48996 TEST=manual, with animations slowed down 100x Review URL: http://codereview.chromium.org/3919004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63956 0039d316-1c4b-4281-b951-d872f2087c98
* Create gfx::ScopedImage. This wraps a gfx::NativeImage and hides the underlyingrsesek@chromium.org2010-10-214-4/+252
| | | | | | | | | | | memory management for each platform under a consistent interface. BUG=none TEST=Compile and gfx_unittests Review URL: http://codereview.chromium.org/3841002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63359 0039d316-1c4b-4281-b951-d872f2087c98
* Add FORMAT_SkBitmap to JPEGCodec.klobag@chromium.org2010-10-192-7/+15
| | | | | | | | When encoding or decoding JPEG to SkBitmap, choose RGBA or BGRA depending on the skia bitmap's bit order. Review URL: http://codereview.chromium.org/3806010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63061 0039d316-1c4b-4281-b951-d872f2087c98
* Move scoped_nsdisable_screen_update from base to app/macbrettw@chromium.org2010-10-181-2/+2
| | | | | | | | | | | Move scoped_aedesc from base to base/mac Use namespace and proper Google-style class naming. TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/3828009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62904 0039d316-1c4b-4281-b951-d872f2087c98
* Move scoped_cftyperef from base to base/mac, use the new namespace, and name itbrettw@chromium.org2010-10-172-6/+6
| | | | | | | | | | properly (scoped_cftyperef -> ScopedCFTypeRef). TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/3855001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62887 0039d316-1c4b-4281-b951-d872f2087c98
* Move windows version-related stuff out of base/win_util and into ↵brettw@chromium.org2010-10-152-9/+9
| | | | | | | | | | | | | | base/win/windows_version. Many files now only need to include this instead of all of win_util. Remove a bunch of unused code from base/win_util. There was a surprising amount. Replace the AppUserModel property key with the one from the SDK now that we use the Win7 SDK. Move GetLogonSessionOnlyDACL from win_util to ipc since it's only used in that one place. TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/3823002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62694 0039d316-1c4b-4281-b951-d872f2087c98
* Landing http://codereview.chromium.org/3786003 for Gracejrg@chromium.org2010-10-141-8/+8
| | | | | | | | | | | TBR=brettw@chromium.org Original description: We should use SkGetPackedX32 instead SkColorGetX to get the components out of a SkPMColor. Review URL: http://codereview.chromium.org/3802005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62664 0039d316-1c4b-4281-b951-d872f2087c98
* gfx: Get rid of deprecated version of CreateIconFileFromSkBitmap.tfarina@chromium.org2010-10-143-12/+5
| | | | | | | | | BUG=23581 TEST=trybots Review URL: http://codereview.chromium.org/3745003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62488 0039d316-1c4b-4281-b951-d872f2087c98
* Make drawing consistent with webkit wrt default colors and effectsdavemoore@chromium.org2010-10-111-4/+4
| | | | | | | | | | | | We weren't drawing the new chromium scrollbars exactly the same as webkit had, causing layout test failures. BUG=NONE TEST=NONE Review URL: http://codereview.chromium.org/3697003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62200 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed include in test_webkit_clientdavemoore@chromium.org2010-10-106-0/+577
| | | | | | | | | | | | | retrying "Revert 62068 - Move implementation of linux scrollbars from webkit using new" See: http://codereview.chromium.org/3618014 TBR:jam@chromium.org BUG=chromium-os:6857 TEST=Verify that both linux and chromeos scrollbars look right. Review URL: http://codereview.chromium.org/3697001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62093 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 62068 - Move implementation of linux scrollbars from webkit using newdavemoore@chromium.org2010-10-096-577/+0
| | | | | | | | | | | | | | WebThemeEngine api. Also implement chromeos specific version. BUG=chromium-os:6857 TEST=Verify that both linux and chromeos scrollbars look right. Review URL: http://codereview.chromium.org/3618014 TBR=davemoore@chromium.org Review URL: http://codereview.chromium.org/3678003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62070 0039d316-1c4b-4281-b951-d872f2087c98
* Move implementation of linux scrollbars from webkit using newdavemoore@chromium.org2010-10-096-0/+577
| | | | | | | | | | | WebThemeEngine api. Also implement chromeos specific version. BUG=chromium-os:6857 TEST=Verify that both linux and chromeos scrollbars look right. Review URL: http://codereview.chromium.org/3618014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62068 0039d316-1c4b-4281-b951-d872f2087c98
* Fix gfx unit-tests so they do not crash on Windows, prior to Windows 7georgey@chromium.org2010-10-065-3/+166
| | | | | | | | | Also fix failing Font test. TEST=unit tests BUG=46733 Review URL: http://codereview.chromium.org/3615001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61725 0039d316-1c4b-4281-b951-d872f2087c98
* Create an X window overlay with static ID for GL contexts.piman@chromium.org2010-10-062-11/+139
| | | | | | | | | | | | | | | | | | This code creates an X window that overlays where tab contents are drawn. The handle associated with this window never changes (unlike the X window associated with a GTK widget that is created and destroyed whenever the widget is realized and unrealized respectively). This is helpful when creating a GL context associated with an X window. Also, having a floating overlay allows us to handle detaching GPU accelerated tabs. This code seems to have uncovered a race condition within the GPU process. When a tab that uses accelerated compositing is detached (e.g. http://webkit.org/blog/386/3d-transforms/), the tab contents often don't get displayed even though the tab is redrawn. A slight delay of about 100ms in the GPU process on the call to glXSwapBuffers (in gl_context_linux.cc) fixes this. To witness that GL can draw to the overlay after delay, try it with a tab with constant animation (e.g. http://webkit.org/blog-files/3d-transforms/poster-circle.html). I've written a bare bones test (about 150 lines of C) of the overlay technique, and it requires no such delay b/w reparenting the glXSwapBuffers. I've also confirmed that there is no synchronization issues w.r.t. the X server between my patch and GL draw commands. I propose filing a new bug for the race, if this patch gets accepted. BUG=53345,56419 TEST=Open two tabs, one with GPU rendered content (http://webkit.org/blog/386/3d-transforms/). Detach the tab with GPU rendered content. GPU process shouldn't crash. Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=61561 Review URL: http://codereview.chromium.org/3509004 Patch from Jonathan Backer <backer@google.com>. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61695 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 61561 - Create an X window overlay with static ID for GL contexts.dhollowa@chromium.org2010-10-052-139/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reverting due to Valgrind issues on Linux tests: http://build.chromium.org/buildbot/memory/builders/Linux%20Tests%20(valgrind)(2)/builds/7671/steps/memory%20test:%20ui/logs/stdio Suppression (error hash=#000000007803F359#): { <insert_a_suppression_name_here> Memcheck:Addr4 fun:_ZN20GtkNativeViewManager9OnDestroyEP10_GtkWidget fun:_ZN62_GLOBAL__N_gfx_gtk_native_view_id_manager.cc_00000000_E72B30A69OnDestroyEP10_GtkObjectPv fun:g_cclosure_marshal_VOID__VOID fun:g_closure_invoke fun:signal_emit_unlocked_R fun:g_signal_emit_valist fun:g_signal_emit fun:gtk_object_dispose fun:gtk_widget_dispose fun:g_object_run_dispose fun:gtk_object_destroy fun:_ZN23RenderWidgetHostViewGtk7DestroyEv fun:_ZN16RenderWidgetHost7DestroyEv fun:_ZN16RenderWidgetHost8ShutdownEv fun:_ZN14RenderViewHost8ShutdownEv fun:_ZN21RenderViewHostManagerD1Ev fun:_ZN11TabContentsD0Ev fun:_ZN13TabStripModel16InternalCloseTabEP11TabContentsib fun:_ZN13TabStripModel17InternalCloseTabsERKSt6vectorIiSaIiEEj fun:_ZN13TabStripModel18CloseTabContentsAtEij fun:_ZN7Browser13CloseContentsEP11TabContents fun:_ZN11TabContents5CloseEP14RenderViewHost } No absolute smoking gun. But seems very likely. -- This code creates an X window that overlays where tab contents are drawn. The handle associated with this window never changes (unlike the X window associated with a GTK widget that is created and destroyed whenever the widget is realized and unrealized respectively). This is helpful when creating a GL context associated with an X window. Also, having a floating overlay allows us to handle detaching GPU accelerated tabs. This code seems to have uncovered a race condition within the GPU process. When a tab that uses accelerated compositing is detached (e.g. http://webkit.org/blog/386/3d-transforms/), the tab contents often don't get displayed even though the tab is redrawn. A slight delay of about 100ms in the GPU process on the call to glXSwapBuffers (in gl_context_linux.cc) fixes this. To witness that GL can draw to the overlay after delay, try it with a tab with constant animation (e.g. http://webkit.org/blog-files/3d-transforms/poster-circle.html). I've written a bare bones test (about 150 lines of C) of the overlay technique, and it requires no such delay b/w reparenting the glXSwapBuffers. I've also confirmed that there is no synchronization issues w.r.t. the X server between my patch and GL draw commands. I propose filing a new bug for the race, if this patch gets accepted. BUG=53345,56419 TEST=Open two tabs, one with GPU rendered content (http://webkit.org/blog/386/3d-transforms/). Detach the tab with GPU rendered content. GPU process shouldn't crash. Review URL: http://codereview.chromium.org/3509004 Patch from Jonathan Backer <backer@google.com>. TBR=piman@chromium.org Review URL: http://codereview.chromium.org/3548015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61589 0039d316-1c4b-4281-b951-d872f2087c98
* Create an X window overlay with static ID for GL contexts.piman@chromium.org2010-10-052-11/+139
| | | | | | | | | | | | | | | | This code creates an X window that overlays where tab contents are drawn. The handle associated with this window never changes (unlike the X window associated with a GTK widget that is created and destroyed whenever the widget is realized and unrealized respectively). This is helpful when creating a GL context associated with an X window. Also, having a floating overlay allows us to handle detaching GPU accelerated tabs. This code seems to have uncovered a race condition within the GPU process. When a tab that uses accelerated compositing is detached (e.g. http://webkit.org/blog/386/3d-transforms/), the tab contents often don't get displayed even though the tab is redrawn. A slight delay of about 100ms in the GPU process on the call to glXSwapBuffers (in gl_context_linux.cc) fixes this. To witness that GL can draw to the overlay after delay, try it with a tab with constant animation (e.g. http://webkit.org/blog-files/3d-transforms/poster-circle.html). I've written a bare bones test (about 150 lines of C) of the overlay technique, and it requires no such delay b/w reparenting the glXSwapBuffers. I've also confirmed that there is no synchronization issues w.r.t. the X server between my patch and GL draw commands. I propose filing a new bug for the race, if this patch gets accepted. BUG=53345,56419 TEST=Open two tabs, one with GPU rendered content (http://webkit.org/blog/386/3d-transforms/). Detach the tab with GPU rendered content. GPU process shouldn't crash. Review URL: http://codereview.chromium.org/3509004 Patch from Jonathan Backer <backer@google.com>. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61561 0039d316-1c4b-4281-b951-d872f2087c98
* Define gfx::NativeImage and add ResourceBundle::GetNativeImageNamed().rsesek@chromium.org2010-10-051-1/+16
| | | | | | | | | BUG=none TEST=compile Review URL: http://codereview.chromium.org/3597008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61545 0039d316-1c4b-4281-b951-d872f2087c98
* clang/mac: Fix almost all problems when building all.xcodeproj.thakis@chromium.org2010-10-044-8/+8
| | | | | | | | BUG=None TEST=None TBR=hans git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61344 0039d316-1c4b-4281-b951-d872f2087c98
* clang/mac: Fix most problems in unittest targets in webkit.gypthakis@chromium.org2010-10-032-4/+4
| | | | | | | | | | | | This does to WebPoint/gfx::Point what we did to WebString/string16 last friday and fixes a bunch of other small issues. Also fix two tiny issues in the base unit tests target. BUG=None TEST=None TBR=hans git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61343 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Move ctors/dtors into implementation files. Adds ctors/dtors to ↵erg@google.com2010-09-304-1/+7
| | | | | | | | | | | | | | non-POD structs. Cuts ~2MB off our .a files (Debug, Linux). Also added the "virtual" keyword on a whole bunch of virtual dtors that were missing it. BUG=none TEST=compiles Review URL: http://codereview.chromium.org/3522004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61100 0039d316-1c4b-4281-b951-d872f2087c98
* Remove use of Skia's safeUnref() in favor of SkSafeUnref(...)vandebo@chromium.org2010-09-242-3/+3
| | | | | | | | | | | safeUnref() technically has undefined behavior on a null pointer. TEST=green bots BUG=none Review URL: http://codereview.chromium.org/3475007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60483 0039d316-1c4b-4281-b951-d872f2087c98
* Printing: Implement PrintingContext::UseDefaultSettings for Linux/Cairo.jhawkins@chromium.org2010-09-211-6/+6
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/3389005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60087 0039d316-1c4b-4281-b951-d872f2087c98