summaryrefslogtreecommitdiffstats
path: root/chrome/gpu
Commit message (Collapse)AuthorAgeFilesLines
* Don't compile in experimental GPU video decoding IPC handling for now.cevans@chromium.org2011-02-161-1/+3
| | | | | | | | | BUG=NONE TEST=NONE Review URL: http://codereview.chromium.org/6473016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75108 0039d316-1c4b-4281-b951-d872f2087c98
* Implement webkit media metrics in chromium.scherkus@chromium.org2011-02-165-6/+17
| | | | | | | | | | | | | | | This implements the chromium side of the webkit media statistics feature. A followup cl (in webkit) will wire the two sides together. Patch by sjl@chromium.org: http://codereview.chromium.org/6246091/ BUG=71255 TEST=media_unittests git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75050 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 74700 - Revert the "out-of-lining of test code" change within src/mediansylvain@chromium.org2011-02-121-1/+1
| | | | | | | | | | | | | to see if it fixes the gmock crashes we've been seeing since the change has been made. The original change was split between r74660, r74168, r74059 Review URL: http://codereview.chromium.org/6473006 TBR=nsylvain@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74712 0039d316-1c4b-4281-b951-d872f2087c98
* Revert the "out-of-lining of test code" change within src/mediansylvain@chromium.org2011-02-111-1/+1
| | | | | | | | | | | to see if it fixes the gmock crashes we've been seeing since the change has been made. The original change was split between r74660, r74168, r74059 Review URL: http://codereview.chromium.org/6473006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74700 0039d316-1c4b-4281-b951-d872f2087c98
* Disarm and reset GPU watchdog if it sleeps for an extended period of time.apatrick@chromium.org2011-02-113-8/+25
| | | | | | | | | TEST=simulate sleeping watchdog thread, try BUG=72697 Review URL: http://codereview.chromium.org/6503007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74689 0039d316-1c4b-4281-b951-d872f2087c98
* Another big out-of-lining of test code. Hits a lot of gmock objectserg@google.com2011-02-083-2/+12
| | | | | | | | | BUG=none TEST=compiles Review URL: http://codereview.chromium.org/6413036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74168 0039d316-1c4b-4281-b951-d872f2087c98
* Change includes of gfx/* to ui/gfx/*sail@chromium.org2011-02-054-6/+6
| | | | | | | | | BUG=71063 TEST=compiled Review URL: http://codereview.chromium.org/6312156 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73890 0039d316-1c4b-4281-b951-d872f2087c98
* Small fixes for GPU process in single process mode.backer@chromium.org2011-01-312-4/+7
| | | | | | | | | | | | | ChildThread::current() doesn't necessarily refer to the GpuThread in single-process mode. Disabled about:gpu logging for single process mode. BUG=none TEST=by hand Review URL: http://codereview.chromium.org/6312031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73183 0039d316-1c4b-4281-b951-d872f2087c98
* Route LOG messages generated on the GPU process to the about:gpu page.nduca@chromium.org2011-01-272-2/+26
| | | | | | | | | BUG=57069 TEST= Review URL: http://codereview.chromium.org/6262017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72881 0039d316-1c4b-4281-b951-d872f2087c98
* Route IPC through browser when creating a viewable command buffer.backer@chromium.org2011-01-275-70/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The communications path for creating a viewable command buffer used to be directly from the renderer (gpu_channel.cc) to the gpu process (gpu_channel.cc). This patch makes the browser an intermediary: - renderer (gpu_channel.cc) makes a synchronous request to the browser (picked up in renderer_message_filter.cc and forwarded to gpu_process_host.cc) - browser (gpu_process_host.cc) makes an asynchronous request to the gpu process (picked up in gpu_thread.cc and forwarded to gpu_channel.cc) for the command buffer - gpu process (gpu_thread.cc) sends an ACK with the route_id for the command buffer back to the browser (gpu_process_host.cc) - browser (gpu_process_host.cc) sends a delayed reply back to the renderer (gpu_channel_host.cc), which had blocked There are several motivations for this patch: - creating an onscreen command buffer requires a window to draw into (which is acquired/locked in the browser); by routing through the browser, we can acquire the get the window beforehand (thereby preventing a deadlock in some other work that I'm doing) - we can eliminate several separate synchronous IPC messages for obtaining and releasing the window associated with drawing (I've tried to unify the different code paths for Linux, Windows, and Mac) - in the future, we can have the browser allocate SHM for the command buffer and transfer buffers, allowing us to sandbox the gpu process BUG=none TEST=by hand on all 3 platforms, trybots Review URL: http://codereview.chromium.org/6343006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72798 0039d316-1c4b-4281-b951-d872f2087c98
* Reland 72704 - Defered collect DirectX diagnostics until they are needed for ↵apatrick@chromium.org2011-01-275-19/+26
| | | | | | | | | | | | | | | | | | | about:gpu. This is because collecting the stats often crashes. Added a guard to prevent the collection of diagnostics on multiple threads simultaneously. Renamed GPUInfo::Progress to GPUInfo::Level. TEST=try, about:gpu does not cause concurrent diagnostics collection BUG=none Review URL: http://codereview.chromium.org/6364013 Review URL: http://codereview.chromium.org/6341011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72731 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 72704 - Defered collect DirectX diagnostics until they are needed for ↵apatrick@chromium.org2011-01-264-25/+18
| | | | | | | | | | | | | | | | | | | | about:gpu. This is because collecting the stats often crashes. Added a guard to prevent the collection of diagnostics on multiple threads simultaneously. Renamed GPUInfo::Progress to GPUInfo::Level. TEST=try, about:gpu does not cause concurrent diagnostics collection BUG=none Review URL: http://codereview.chromium.org/6364013 TBR=apatrick@chromium.org Review URL: http://codereview.chromium.org/6370013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72707 0039d316-1c4b-4281-b951-d872f2087c98
* Defered collect DirectX diagnostics until they are needed for about:gpu.apatrick@chromium.org2011-01-264-18/+25
| | | | | | | | | | | | | | | This is because collecting the stats often crashes. Added a guard to prevent the collection of diagnostics on multiple threads simultaneously. Renamed GPUInfo::Progress to GPUInfo::Level. TEST=try, about:gpu does not cause concurrent diagnostics collection BUG=none Review URL: http://codereview.chromium.org/6364013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72704 0039d316-1c4b-4281-b951-d872f2087c98
* Make Pepper resize the buffer through the command buffer.piman@google.com2011-01-261-19/+18
| | | | | | | | | | | This adds support for glResizeCHROMIUM for off-screen contexts. BUG=none TEST=Pepper flash. Review URL: http://codereview.chromium.org/6241015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72575 0039d316-1c4b-4281-b951-d872f2087c98
* Collect GL_EXTENSIONS string in GPUInfo and display it in about:gpu page.zmo@google.com2011-01-252-2/+20
| | | | | | | | (A second try after being reverted.) Review URL: http://codereview.chromium.org/6279009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72445 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 72180 - Collect GL_EXTENSIONS string in GPUInfo and display it in ↵asargent@chromium.org2011-01-212-18/+2
| | | | | | | | | | | | | | about:gpu page. BUG=none TEST=GL_EXTENSIONS showing in about:gpu Review URL: http://codereview.chromium.org/6306008 TBR=zmo@google.com Review URL: http://codereview.chromium.org/6324008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72182 0039d316-1c4b-4281-b951-d872f2087c98
* Collect GL_EXTENSIONS string in GPUInfo and display it in about:gpu page.zmo@google.com2011-01-212-2/+18
| | | | | | | | | BUG=none TEST=GL_EXTENSIONS showing in about:gpu Review URL: http://codereview.chromium.org/6306008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72180 0039d316-1c4b-4281-b951-d872f2087c98
* Remove obsolete base/lock.h and fix up callers to use the new header file andbrettw@chromium.org2011-01-211-1/+0
| | | | | | | | | | | the base namespace. Fix several files including lock.h unnecessarily. BUG=none TEST=none Original review=http://codereview.chromium.org/6142009/ Patch by leviw@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72106 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor and improve gpu_info_collector: collect information on linux;zmo@google.com2011-01-217-247/+440
| | | | | | | | | | | | | collect extra information (driver_vendor, gl_renderer, etc.) on Mac/linux. Note that this CL takes some code from rlp's long outstandingCL (with her permission). BUG=49579 TEST=unittest Review URL: http://codereview.chromium.org/6346007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72055 0039d316-1c4b-4281-b951-d872f2087c98
* Corrected GPU watchdog termination error message.apatrick@chromium.org2011-01-191-2/+2
| | | | | | | | | TEST=try BUG=none Review URL: http://codereview.chromium.org/6262006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71738 0039d316-1c4b-4281-b951-d872f2087c98
* Disabled the Windows error dialog for the GPU process.apatrick@chromium.org2011-01-191-0/+11
| | | | | | | | | | | Rather than displaying a modal dialog, LoadLibrary and similar return an error. This allows the GPU process to fail or fall back without interacting with the user. TEST=try BUG=69610 Review URL: http://codereview.chromium.org/6271006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71736 0039d316-1c4b-4281-b951-d872f2087c98
* The GPU process cannot be placed on a UI thread in --single-process mode ↵backer@chromium.org2011-01-181-6/+1
| | | | | | | | | | | | | | | because glib is not thread safe. This patch moves it onto a IO thread instead. Connections to the X server are not thread safe. I've made changes so that each thread gets it's own connection. Finally, GpuHostMsg_GetViewXID needed to be needed to be sent from the thread added to GpuChannel instead of ChildThread::current(). BUG=69674 TEST=try --single-process with --enable-accelerated-layers on http://webkit.org/blog/386/3d-transforms/ Review URL: http://codereview.chromium.org/6340004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71655 0039d316-1c4b-4281-b951-d872f2087c98
* Make CommandBuffer::Flush asynchronous, and add CommandBuffer::FlushSync ↵piman@google.com2011-01-141-2/+2
| | | | | | | | | | | | | with former semantics. Also force a flush when the buffer is getting full. BUG=none TEST=gpu_unittests, some webgl content, some 3d css content, pepper flash Review URL: http://codereview.chromium.org/6316002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71514 0039d316-1c4b-4281-b951-d872f2087c98
* GPU service now runs on new thread in browser process when --single-process ↵apatrick@chromium.org2011-01-136-18/+43
| | | | | | | | | | | is specified. TEST=try BUG=none Review URL: http://codereview.chromium.org/6189008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71359 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land of http://codereview.chromium.org/6094009 with Mac build fix.kbr@google.com2011-01-073-100/+125
| | | | | | | | | | | | | | | | | | | | | Perform GPU-related initialization in GPU process in response to an IPC from the browser. Because Chromium's child process host detects that the child has crashed by watching for IPC channel errors, it is imperative that the GPU process's IPC channel be set up before it does any work that might cause it to crash. If initialization fails, the GPU process quits its message loop and cooperatively exits. Fixed a bug in the GpuProcessHost where it would not unblock renderers waiting for GPU process initialization if the GPU process exited. BUG=65369 TEST=ran test case from bug on machine with no GPU hardware and verified that it no longer hangs the renderer, and that the GPU process exits Review URL: http://codereview.chromium.org/6124002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70747 0039d316-1c4b-4281-b951-d872f2087c98
* Revert http://codereview.chromium.org/6094009 (r70768) due tokbr@google.com2011-01-063-124/+100
| | | | | | | | | | | | compilation error on Mac OS X. BUG=65369 TBR=apatrick TEST=none Review URL: http://codereview.chromium.org/6150001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70681 0039d316-1c4b-4281-b951-d872f2087c98
* Perform GPU-related initialization in GPU process in response to ankbr@google.com2011-01-063-100/+124
| | | | | | | | | | | | | | | | | | | | IPC from the browser. Because Chromium's child process host detects that the child has crashed by watching for IPC channel errors, it is imperative that the GPU process's IPC channel be set up before it does any work that might cause it to crash. If initialization fails, the GPU process quits its message loop and cooperatively exits. Fixed a bug in the GpuProcessHost where it would not unblock renderers waiting for GPU process initialization if the GPU process exited. BUG=65369 TEST=ran test case from bug on machine with no GPU hardware and verified that it no longer hangs the renderer, and that the GPU process exits Review URL: http://codereview.chromium.org/6094009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70678 0039d316-1c4b-4281-b951-d872f2087c98
* Move base/thread.h to base/threading, fix up callers to use the new location.brettw@chromium.org2011-01-011-1/+1
| | | | | | | | TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/6028009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70345 0039d316-1c4b-4281-b951-d872f2087c98
* Move app/win_util to app/win and fix the namespace usage.brettw@google.com2010-12-312-12/+4
| | | | | | | | | | | | | | Split out the two classes: ScopedComInitializer and ScopedCOMem (which I renamed) to separate files. I removed the win_util_path file which had one function in it and moved the function to win_util. Somehow, this was getting picked up by the nacl64 build and the call in sandbox_policy was then not being defined. I just implemented the function in-plcae since it's just a simple wrapper around a Windows API call. TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/6013009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70343 0039d316-1c4b-4281-b951-d872f2087c98
* Move platform_thread to base/threading and put in the base namespace. I left abrettw@chromium.org2010-12-311-1/+2
| | | | | | | | | | | stub and "using" declarations in the old location to avoid having to change the entire project at once. TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/6001010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70342 0039d316-1c4b-4281-b951-d872f2087c98
* Move some misc thread-related stuff from base to base/thread and into the basebrettw@chromium.org2010-12-301-2/+2
| | | | | | | | | | namespace. This does not move the "hard" thread stuff (thread.h). TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/6079009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70315 0039d316-1c4b-4281-b951-d872f2087c98
* Move the SetProcTitle code out of base and into chrome/common. This is onlybrettw@chromium.org2010-12-291-7/+0
| | | | | | | | | | | | | | used to support the weird way Chrome manages processes, so doesn't belong in the central CommandLine class. This also provides an empty implementation on Mac & Windows to avoid some ifdefs in the main functions. TEST=everything compiles BUG=none Review URL: http://codereview.chromium.org/6002013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70276 0039d316-1c4b-4281-b951-d872f2087c98
* Make IPC::Channel::Listener:OnMessageReceived have a return value indicating ↵jam@chromium.org2010-12-2410-22/+34
| | | | | | | | | whether a message was processed or not. TBR=brettw Review URL: http://codereview.chromium.org/5978003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70139 0039d316-1c4b-4281-b951-d872f2087c98
* Mac: Unbreak --no-gpu-sandbox.thakis@chromium.org2010-12-231-0/+5
| | | | | | | | | | | This regressed when I moved CrApplication out of base. BUG=none TEST=none Review URL: http://codereview.chromium.org/6065007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70102 0039d316-1c4b-4281-b951-d872f2087c98
* Mac: Don't hang gpu process if a tab that shares its renderer process with ↵thakis@chromium.org2010-12-226-15/+49
| | | | | | | | | | | | | | | | | | | | | | other tabs and that has accelerated content and outstanding paints. The problem was that the renderer process busy-waits on the GPU process to flush all gpu commands on close, and the GPU process waits with processing commands from the renderer until a paint ack arrives from the browser. But since the window is already closed, no paint acks are sent any more. The fix is to let the browser tell the GPU process when a window is closed, and then let the GPU process not wait for paint acks if the corresponding window has already been closed. Closed windows are identified by (renderer process id, render view routing id). Identifying closed windows by either surface id or gpu channel stub routing id does not work, because they are both created on the GPU side and sent to the browser asynchronously, so it's possible that a browser tab is closed before the ID arrives from the GPU process – in that case, it can't send the "window closed" message even though the GPU process is already in a state where it needs this event. BUG=67170 TEST= 1.) Go to http://www.chromeexperiments.com/detail/body-browser/?f=webgl , click "Launch Experiment", wait until everything is loaded, close popup. %cpu of gpu process and renderer process should go to 0 2.) Go to http://www.chromeexperiments.com/detail/body-browser/?f=webgl , click "Launch Experiment", wait until the bar on the left is loaded but the body isn't yet, close popup. %cpu of gpu process and renderer process should go to 0, but it might take a few seconds until the %cpu in the renderer go down (the site decides to parse the XHR data that gets flushed on widget close) 3.) Go to http://www.chromeexperiments.com/detail/nine-point-five/?f=webgl , click "Launch Experiment", wait until everything is loaded, close popup. %cpu of gpu process and renderer process should go to 0 4.) Go to http://www.chromeexperiments.com/detail/nine-point-five/?f=webgl , click "Launch Experiment", close popup immediately after the background color changed to light grey. %cpu of gpu process and renderer process should go to 0 5.) Go to http://www.chromeexperiments.com/detail/nine-point-five/?f=webgl , click "Launch Experiment", close popup immediately. %cpu of gpu process and renderer process should go to 0 Review URL: http://codereview.chromium.org/6076005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70000 0039d316-1c4b-4281-b951-d872f2087c98
* Collect GPU information (vendor id and device id) in Linux.zmo@google.com2010-12-211-7/+245
| | | | | | | | | BUG=49579 TEST=about:gpu page shows correct vendor-id and device-id in linux Review URL: http://codereview.chromium.org/5861007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69836 0039d316-1c4b-4281-b951-d872f2087c98
* Blacklist bad GPU drivers: currenly we disable all gpu related features if a ↵zmo@google.com2010-12-112-0/+17
| | | | | | | | | | | (os, device, driver) configuration is on the blacklist. BUG=58182 TEST=unittest Review URL: http://codereview.chromium.org/5612002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68948 0039d316-1c4b-4281-b951-d872f2087c98
* Convert over to channel handlesdmaclach@chromium.org2010-12-083-42/+18
| | | | | | | | | | | | This hides some of the internals of the posix channels from users, and gets rid of several #ifdef POSIX blocks. Generally simplifies usage of channels xplatform. BUG=none TEST=build Review URL: http://codereview.chromium.org/5598010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68621 0039d316-1c4b-4281-b951-d872f2087c98
* Add a new GetInstance() method for singleton classes, take 2.satish@chromium.org2010-12-083-4/+10
| | | | | | | | | | | | | | | | | | 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
* Disabled GPU watchdog thread on Windows.apatrick@chromium.org2010-12-081-21/+11
| | | | | | | | | | | | | I coulndn't find good enough heuristics for automatically aborting the GPU process on Windows. With this change we still have the browser's watchdog, which prompts the user if they want to kill the process if it times out. The GPU watchdog timer seems to be working okay on Mac and Linux so I have left it enabled. For the same reason, I took out the field trial. Previously, only 15% of users were in the field trial. Now they all are. TEST=about:gpuhang, try BUG=65229,58396,64655 Review URL: http://codereview.chromium.org/5537006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68545 0039d316-1c4b-4281-b951-d872f2087c98
* Initialize destinations variables before calling GL functionsgman@chromium.org2010-12-071-3/+5
| | | | | | | | | | | | because if the context is lost those variables will be uninitialized. TEST=ran chrome, conformance tests, unit tests and hand edited gles2_demo to test BUG=none Review URL: http://codereview.chromium.org/5254006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68480 0039d316-1c4b-4281-b951-d872f2087c98
* If compositor window already exists, then simply return it rather than ↵nduca@chromium.org2010-12-061-1/+1
| | | | | | | | | | | complaining. May affect how bug 65194 manifests. BUG=65194 TEST=Verify against WebGL demos, poster circle content with tab opening and closing, as well as killing of GPU process. Review URL: http://codereview.chromium.org/5528007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68362 0039d316-1c4b-4281-b951-d872f2087c98
* Coverity: Initialize member variables.jhawkins@chromium.org2010-12-052-14/+22
| | | | | | | | | | | | Also fix up some style issues. CID=13912,13971,13977 BUG=none TEST=none Review URL: http://codereview.chromium.org/5618002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68313 0039d316-1c4b-4281-b951-d872f2087c98
* Removed kChromiumRendererIdProperty window property.apatrick@chromium.org2010-12-021-15/+12
| | | | | | | | | | | | | This property was used by the GPU process to determine whether a particular renderer process had the right to render to a window. It turns out that this is no longer needed because now the browser tells the GPU process which child compositor window to render to and the GPU process trusts the browser process. Also uncovered and fixed a bug in gpu_channel_host.cc where the renderer would hang if the GPU process failed to return a command buffer. TEST=try BUG=64834 Review URL: http://codereview.chromium.org/5607001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68096 0039d316-1c4b-4281-b951-d872f2087c98
* Add a base class for objects that want to filter messages on the IO thread. ↵jam@chromium.org2010-12-021-1/+1
| | | | | | | | | I'll switch the filters to it in future separate changes. I've also taken out the special case for an initial filter from the IPC classes. The reason it existed was that there was a race condition of some messages not being filtered if a filter is added after construction but before launching the peer process. Taking it out allows us to add more than one filter and makes things a little cleaner. Review URL: http://codereview.chromium.org/5513001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68043 0039d316-1c4b-4281-b951-d872f2087c98
* Mac: Scaffolding for sandboxing GPU process.thakis@chromium.org2010-12-021-2/+29
| | | | | | | | | | | | | The sandbox config allows everything for now; I will put in restrictions in a follow-up CL (which should be small). This CL should have no visible effect (other than changing a few LOG(WARNING) to LOG(ERROR)). BUG=48607 TEST=GPU process still works Review URL: http://codereview.chromium.org/5491001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67939 0039d316-1c4b-4281-b951-d872f2087c98
* In CreateCompositorHostWindow, reply with null window handle if ↵nduca@chromium.org2010-12-021-4/+4
| | | | | | | | | | | | RenderViewHost does not exist. BUG=64850 TEST=Verify that associated crash goes away in Canary Review URL: http://codereview.chromium.org/5490001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67917 0039d316-1c4b-4281-b951-d872f2087c98
* Switched GPU watchdog timeout to be based on main thread's user + kernel ↵apatrick@chromium.org2010-12-014-36/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | time rather than wall clock time on Windows. Only on Windows because it is the only platform 58396 appears to be happening on. My latest hairbrained theory is that it is timing out and aborting while Windows boxes are resuming from hypernation. In that case wall clock time might incorporate a lot of I/O time for paging in data from swapfile. This is an attempt to hide that I/O time, counting only active CPU time. It catches hangs like this: for (;;) { } and this: for (;;) { Sleep(0); } but not this: for (;;) { Sleep(1000); } because that just makes the thread largely idle. It also does not catch deadlocks. Also fixed null dereference in GPU watchdog termination code. BUG=64648, 58396 TEST=test GPU watchdog locally, try Review URL: http://codereview.chromium.org/5301007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67891 0039d316-1c4b-4281-b951-d872f2087c98
* Defer window destruction until GPU finished drawing.backer@chromium.org2010-11-301-0/+4
| | | | | | | | | | | | | | | | | 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-301-0/+1
| | | | | | | | | | | 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