summaryrefslogtreecommitdiffstats
path: root/content/browser/gpu/gpu_process_host.h
Commit message (Collapse)AuthorAgeFilesLines
* Convert plugin and GPU process to brokered handle duplication.jschuh@chromium.org2012-04-141-4/+0
| | | | | | | BUG=119250 Review URL: https://chromiumcodereview.appspot.com/9958034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132303 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 132218 - Convert plugin and GPU process to brokered handle duplication.eroman@chromium.org2012-04-131-0/+4
| | | | | | | | | | | | (Seems to be responsible for VMTest failure on ChromiumOS). BUG=119250 Review URL: https://chromiumcodereview.appspot.com/9958034 TBR=jschuh@chromium.org Review URL: https://chromiumcodereview.appspot.com/10081018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132254 0039d316-1c4b-4281-b951-d872f2087c98
* Convert plugin and GPU process to brokered handle duplication.jschuh@chromium.org2012-04-131-4/+0
| | | | | | | BUG=119250 Review URL: https://chromiumcodereview.appspot.com/9958034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132218 0039d316-1c4b-4281-b951-d872f2087c98
* Index GpuProcessHost by kind rather than ID.apatrick@chromium.org2012-04-121-1/+2
| | | | | | | There should never be more than one GpuProcessHost of each kind (sandboxed vs. unsandboxed). The original motivation for having a map by ID was to allow one GPU process per renderer process. This is no longer the case and it is making the code awkward. Review URL: https://chromiumcodereview.appspot.com/10050004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132084 0039d316-1c4b-4281-b951-d872f2087c98
* Log GPU process launch time to UMA.fischman@chromium.org2012-04-111-0/+4
| | | | | | | | | | BUG=106509 TEST=manually checked chrome://histograms/GPU.GPUPro Review URL: http://codereview.chromium.org/10037025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131691 0039d316-1c4b-4281-b951-d872f2087c98
* Cache shared texture in browserjbauman@chromium.org2012-04-071-0/+3
| | | | | | | | | | | | Doing CreateTexture every frame seems to cause a leak in the NVIDIA driver on some optimus systems, so instead cache the texture while it exists. BUG=115422 TEST= Review URL: http://codereview.chromium.org/10007024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131245 0039d316-1c4b-4281-b951-d872f2087c98
* Remove TOOLKIT_USES_GTK and consolidate it into TOOLKIT_GTKoshima@chromium.org2012-04-051-1/+1
| | | | | | | | | | | Add gtk dependency to base.gyp for android host_os="linux" case BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/9969080 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@130784 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor GpuProcessHost::GetForClient to GpuProcessHost::Get, which takes a ↵apatrick@chromium.org2012-03-151-11/+16
| | | | | | | | | | | GPU process kind rather than a client ID. There is no longer a plan to have a GPU process for each client to identify the GPU process by its kind (sandboxed or unsandboxed) rather than client ID. I checked about:gpu still works and that the limit on the number of times the sandboxed GPU is relaunched is still limitted. Review URL: https://chromiumcodereview.appspot.com/9559013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@126960 0039d316-1c4b-4281-b951-d872f2087c98
* Fix context sharing between channels to be order-independent.piman@chromium.org2012-03-081-1/+1
| | | | | | | | | | | | | | Ensuring order of channel recreation after a GPU process death is very hard. With this there's not need. A channel is either shared or not, all the "shared" channels share their context together, every other one doesn't share with anything. More restrictive but it's enough for our needs. BUG=116913 TEST=chrome --ui-use-gpu-process, kill GPU process, observe GpuChannelManager::OnEstablishChannel crash doesn't happen. Review URL: https://chromiumcodereview.appspot.com/9619017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125521 0039d316-1c4b-4281-b951-d872f2087c98
* Windows: Limit D3D devices to one per Present Thread (4 max).apatrick@chromium.org2012-03-071-0/+1
| | | | | | | | | | | | | Instead of one D3D device per unsuspended tab, there is one D3D device per Present Thread plus one additional swap chain per unsuspended tab. Also, the swap chains are completely destroyed when a tab is suspended, rather than resizing the device swap chain to 1 x 1. Specified flag on D3D device creation to tell it not to create worker threads to evaluate vertex shaders because we aren't using vertex shaders here but the devices appeared to create some (actually lots) anyway. Sent Suspend notification directly from browser IO thread to present thread rather than via UI thread so tehy don't get unnecessarily held up if the UI thread is busy. BUG=116175,115707 Review URL: https://chromiumcodereview.appspot.com/9565043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125439 0039d316-1c4b-4281-b951-d872f2087c98
* Land 9348117: (Aura) use GPU process for UIbacker@chromium.org2012-02-241-2/+3
| | | | | | | | | | | | | This is behind a flag (--ui-use-gpu-process). Currently problems occur when the GPU process crash, this will be handled in a follow-up CL. BUG=99516 TEST=chrome --ui-use-gpu-process (with an aura build) TBR=sky,jam,apatrick Review URL: https://chromiumcodereview.appspot.com/9442017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123473 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: Remove base::environment_vector and ↵thestig@chromium.org2012-02-241-0/+1
| | | | | | | | | | | base::file_handle_mapping_vector to StudlyCaps. BUG=none TEST=none Review URL: http://codereview.chromium.org/9429039 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123438 0039d316-1c4b-4281-b951-d872f2087c98
* Allow GPU process to present to the compositing surface without the ↵apatrick@chromium.org2012-02-211-0/+9
| | | | | | | | | | | | | involvement of the UI thread. This is to prevent a potential deadlock and so I can revert this: https://chromiumcodereview.appspot.com/9295021 BUG=111514 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=122205 Review URL: https://chromiumcodereview.appspot.com/9380019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122915 0039d316-1c4b-4281-b951-d872f2087c98
* Coverity: Fix pass-by-values.jhawkins@chromium.org2012-02-211-9/+9
| | | | | | | | | | | | CID_COUNT=7 CID=103317,103318,103319,103320,103321,103322,103323 BUG=none TEST=none R=groby Review URL: https://chromiumcodereview.appspot.com/9414033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122853 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 122213 - aura: Use GPU process for UIdpapad@chromium.org2012-02-161-3/+2
| | | | | | | | | | | | | | | | This is behind a flag (--ui-use-gpu-process). Currently problems occur when the GPU process crash, this will be handled in a follow-up CL. BUG=99516 TEST=chrome --ui-use-gpu-process (with an aura build) Review URL: http://codereview.chromium.org/9348117 TBR=piman@chromium.org Review URL: https://chromiumcodereview.appspot.com/9347063 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122219 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 122205 - Allow GPU process to present to the compositing surface ↵apatrick@chromium.org2012-02-161-9/+0
| | | | | | | | | | | | | | | | without the involvement of the UI thread. This is to prevent a potential deadlock and so I can revert this: https://chromiumcodereview.appspot.com/9295021 BUG=111514 Review URL: http://codereview.chromium.org/9380019 TBR=apatrick@chromium.org Review URL: https://chromiumcodereview.appspot.com/9347062 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122218 0039d316-1c4b-4281-b951-d872f2087c98
* aura: Use GPU process for UIpiman@chromium.org2012-02-161-2/+3
| | | | | | | | | | | | | This is behind a flag (--ui-use-gpu-process). Currently problems occur when the GPU process crash, this will be handled in a follow-up CL. BUG=99516 TEST=chrome --ui-use-gpu-process (with an aura build) Review URL: http://codereview.chromium.org/9348117 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122213 0039d316-1c4b-4281-b951-d872f2087c98
* Not ready for review yet.apatrick@chromium.org2012-02-161-0/+9
| | | | | | | | | | | Allow GPU process to present to the compositing surface without the involvement of the UI thread. This is to prevent a potential deadlock and so I can revert this: https://chromiumcodereview.appspot.com/9295021 BUG=111514 Review URL: http://codereview.chromium.org/9380019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122205 0039d316-1c4b-4281-b951-d872f2087c98
* Rename GpuProcessHost::GetForRenderer to GetForClientpiman@chromium.org2012-02-101-11/+10
| | | | | | | | | | BUG=none TEST=compiles Review URL: http://codereview.chromium.org/9370038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121519 0039d316-1c4b-4281-b951-d872f2087c98
* PluginWindowHandle -> GLSurfaceHandle for GPU process rendering surfaces.piman@chromium.org2012-02-081-1/+1
| | | | | | | | | | | | | | | | | | | | PluginWindowHandle is limited to just a native window handle, and isn't expressive enough to handle a variety of cases (present and future): 1- no render surface (offscreen) 2- a transport surface (for a renderer, requiring synchonization on swap), allocated by the browser as a native window (desktop linux, win) 3- a transport surface, without a native window handle, allocated by the GPU process (mac, linux aura) The discrimination between some of these cases (e.g. desktop linux vs linux aura) is currently done with small hacks, which this CL cleans up. But mostly this is to prepare for new cases: 4- a main surface (for the UI), allocated by the browser as a native window (aura) - in this CL 5- a transport surface in the form of a texture in the UI gl context (aura) - in a future CL BUG=99516 TEST=run chrome, go to poster circle. Check that everything works, including with resizing the window. Review URL: http://codereview.chromium.org/9353001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120910 0039d316-1c4b-4281-b951-d872f2087c98
* Fallback to software renderer if GPU process crashes often enough.jbauman@chromium.org2012-02-081-0/+5
| | | | | | | | | | | | This lets us use a software renderer on a card with a broken 3d implementation even if we don't have it blacklisted. BUG=111502 TEST= Review URL: http://codereview.chromium.org/9303014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120882 0039d316-1c4b-4281-b951-d872f2087c98
* Remove chrome dependencies on GpuProcessHost. I've moved all of the ↵jam@chromium.org2012-02-061-1/+1
| | | | | | | | | | | WebKitPrefs setting that's for content features to content. A lot of the GPU command line flags were in chrome but should have been in content. I'll remove the GpuProcessHostUIShim dependency in a followup change where I'll move all the debugging handlers to content. BUG=98716 Review URL: https://chromiumcodereview.appspot.com/9316114 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120530 0039d316-1c4b-4281-b951-d872f2087c98
* Fix DirectX diagnostic collection for about:gpu page.apatrick@chromium.org2012-01-281-1/+5
| | | | | | | The DirectX diagnostics are collected by a separate GPU process that is not sandboxed. This is because the sandbox prevents them from being collected. Review URL: https://chromiumcodereview.appspot.com/9212054 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119534 0039d316-1c4b-4281-b951-d872f2087c98
* Rename BrowserChildProcessHost implementation class to ↵jam@chromium.org2012-01-231-2/+2
| | | | | | | | | BrowserChildProcessHostImpl. BUG=98716 Review URL: https://chromiumcodereview.appspot.com/9117006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118758 0039d316-1c4b-4281-b951-d872f2087c98
* Add a Content API around BrowserChildProcessHost, similar to what was done ↵jam@chromium.org2012-01-201-11/+15
| | | | | | | | | | | | with ChildProcessHost. Now classes like PluginProcessHost don't derive from it, but instead use composition. I've also moved the iterator class into its own file in the public directory. Since classes don't derive from BrowserChildProcessHost and so can't static_cast from it, I added a template helper that does this. BUG=98716 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=118415 Review URL: https://chromiumcodereview.appspot.com/9150017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118516 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 118415 - Add a Content API around BrowserChildProcessHost, similar to ↵jam@chromium.org2012-01-201-15/+11
| | | | | | | | | | | | | what was done with ChildProcessHost. Now classes like PluginProcessHost don't derive from it, but instead use composition. I've also moved the iterator class into its own file in the public directory. Since classes don't derive from BrowserChildProcessHost and so can't static_cast from it, I added a template helper that does this. BUG=98716 Review URL: https://chromiumcodereview.appspot.com/9150017 TBR=jam@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118420 0039d316-1c4b-4281-b951-d872f2087c98
* Add a Content API around BrowserChildProcessHost, similar to what was done ↵jam@chromium.org2012-01-201-11/+15
| | | | | | | | | | | with ChildProcessHost. Now classes like PluginProcessHost don't derive from it, but instead use composition. I've also moved the iterator class into its own file in the public directory. Since classes don't derive from BrowserChildProcessHost and so can't static_cast from it, I added a template helper that does this. BUG=98716 Review URL: https://chromiumcodereview.appspot.com/9150017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118415 0039d316-1c4b-4281-b951-d872f2087c98
* gpu: reference target surfaces through a globally unique surface id.piman@chromium.org2012-01-181-8/+4
| | | | | | | | | | | | | | | | This allows the gpu process to ignore all knowledge of renderers. It simplifies some of the gpu <-> browser and gpu <-> renderer IPC, but mostly paves the way for non-renderer clients. Surfaces are kept in a global GpuSurfaceTracker which is just a thread-safe map. BUG=99516 TEST=covered by existing tests. Run chrome, open poster circle (or other accelerated content page). Review URL: http://codereview.chromium.org/9194005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118172 0039d316-1c4b-4281-b951-d872f2087c98
* Add the ability to share GL contexts across channels.piman@chromium.org2012-01-121-7/+7
| | | | | | | | | | | | | | | This is patch 1 of many to enable the use of the GPU process for the browser UI. Before this, all contexts within one channel were shared, but not across channels. With this patch channels can choose to share contexts with other ones. This patch also renames the various "renderer_id" to "client_id", since the GPU process doesn't care that the other side is a renderer or not. BUG=99516 TEST=None yet, but will come with later patches Review URL: http://codereview.chromium.org/9107033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@117534 0039d316-1c4b-4281-b951-d872f2087c98
* Remove custom Task implementations and re-exorcise old callbacks from gpu.dcheng@chromium.org2011-12-101-13/+12
| | | | | | | | | | BUG=none TEST=trybots Review URL: http://codereview.chromium.org/8887001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113924 0039d316-1c4b-4281-b951-d872f2087c98
* Add a JS API for detecting WebGL availability.zmo@google.com2011-12-081-1/+0
| | | | | | | | | | Move GpuInfoUpdate to UI thread to avoid potential racing. BUG=104768 TEST=ExtensionWebstorePrivateBundleTest.GetWebGLStatus Review URL: http://codereview.chromium.org/8772031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113688 0039d316-1c4b-4281-b951-d872f2087c98
* Use ForceShutdown to kill old GPU process.jbauman@chromium.org2011-12-071-0/+2
| | | | | | | | | | | | | This is cleaner and won't cause spurious crash reports. BUG= TEST= Review URL: http://codereview.chromium.org/8823005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113462 0039d316-1c4b-4281-b951-d872f2087c98
* Make ChildProcessHost be used through an interface in content/public, ↵jam@chromium.org2011-12-031-1/+1
| | | | | | | | | instead of by inheritence. BUG=98716 Review URL: http://codereview.chromium.org/8787004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112878 0039d316-1c4b-4281-b951-d872f2087c98
* Don't make classes derive from ChildProcessHost, and instead have them use ↵jam@chromium.org2011-12-021-2/+0
| | | | | | | | | it through composition. This cleans up the code and makes it easier to understand (as well as more closely conform to the Google C++ style guide). It also makes it possible to add an interface around ChildProcessHost in a future change. BUG=98716 Review URL: http://codereview.chromium.org/8774040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112769 0039d316-1c4b-4281-b951-d872f2087c98
* A few less TOUCH_UIs.backer@chromium.org2011-11-221-1/+1
| | | | | | | | | | | There is no more TOUCH_UI. This is a NO-OP because defined(UI_COMPOSITOR_IMAGE_TRANSPORT) ==> !defined(TOOLKIT_USES_GTK). BUG=None TEST=None Review URL: http://codereview.chromium.org/8617001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111142 0039d316-1c4b-4281-b951-d872f2087c98
* Add OVERRIDE to content/.avi@chromium.org2011-11-171-5/+5
| | | | | | | | | BUG=104314 TEST=no change Review URL: http://codereview.chromium.org/8587009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110544 0039d316-1c4b-4281-b951-d872f2087c98
* Allow switching to SwiftShader when GPU is blacklistedjbauman@chromium.org2011-11-111-0/+5
| | | | | | | | | | | | When a path to swiftshader is specified and the current GPU is blacklisted, tell the gpu process to use swiftshader to render it. If there already is a gpu process, kill it and make a new one that uses swiftshader BUG= TEST= Review URL: http://codereview.chromium.org/8480015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109695 0039d316-1c4b-4281-b951-d872f2087c98
* Move GPUInfo to content/public/common and put it into the content namespace.jam@chromium.org2011-10-201-4/+4
| | | | | | | BUG=98716 Review URL: http://codereview.chromium.org/8363007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106637 0039d316-1c4b-4281-b951-d872f2087c98
* Making TOOLKIT_USES_GTK orthogonal to USE_AURA.saintlou@chromium.org2011-09-201-1/+1
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/7973003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@102019 0039d316-1c4b-4281-b951-d872f2087c98
* Aura under Linux is enabled with:saintlou@chromium.org2011-09-181-1/+1
| | | | | | | | | | | 'use_aura': 1, BUG=none TEST=none Review URL: http://codereview.chromium.org/7850026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@101704 0039d316-1c4b-4281-b951-d872f2087c98
* Annotate all of the functions in content that need to be exported, in ↵dpranke@chromium.org2011-09-131-4/+5
| | | | | | | | | | | | preparation for creating a content shared library. R=darin@chromium.org, jam@chromium.org, willchan@chromium.org BUG=90442 TEST=everything still compiles Review URL: http://codereview.chromium.org/7800015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100975 0039d316-1c4b-4281-b951-d872f2087c98
* Tag IPC::Channel::Listener implementations with OVERRIDEevan@chromium.org2011-08-161-2/+2
| | | | | | Review URL: http://codereview.chromium.org/7661031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97021 0039d316-1c4b-4281-b951-d872f2087c98
* Remove TabContentsView methods that just call to the delegate, and have them ↵jam@chromium.org2011-07-111-0/+7
| | | | | | | | | be part of the delegate interface instead. This is towards making TabContentsView just an interface. BUG=87702 Review URL: http://codereview.chromium.org/7277027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91989 0039d316-1c4b-4281-b951-d872f2087c98
* Make EstablishGpuChannel synchronous. Remove obsolete Synchronize msg.sievers@chromium.org2011-06-081-11/+0
| | | | | | | | This simplifies message routing to the compositor thread a bit. Review URL: http://codereview.chromium.org/7129006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@88387 0039d316-1c4b-4281-b951-d872f2087c98
* Replace OS_LINUX ifdefs with OS_POSIX & !OS_MACOSX, TOOLKIT_USES_GTK, ortony@chromium.org2011-05-311-1/+1
| | | | | | | | | | | USE_X11 where possible. An earlier version of this patch was used to build Chromium on FreeBSD, OpenBSD, and Solaris. Patch by ruben (chromium@hybridsource.org) Review URL: http://codereview.chromium.org/7006006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@87382 0039d316-1c4b-4281-b951-d872f2087c98
* Don't try to lock surfaces on TOUCH_UI.backer@chromium.org2011-05-301-1/+1
| | | | | | | | | | | On TOUCH_UI, the window to which we are drawing to cannot be locked (they are backed by GtkFixed, not GtkPreserveWindow), so do not try. BUG="Surface *** cannot be referenced." always logged on TOUCH_UI builds on accelerated content. TEST=Try 3D CSS on a TOUCH_UI build. Above message should not be there. Review URL: http://codereview.chromium.org/7085007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@87231 0039d316-1c4b-4281-b951-d872f2087c98
* Fix gpu acceleration with --in-process-gpu and --single-process modes.sievers@google.com2011-05-271-0/+8
| | | | | | | | | | | | With recent changes that have moved gpu message handling in the browser to the IO thread (and moved the handling of messages between gpu and renderer, that are mediated by the browser, to GpuProcessHost), the routing for such messages was broken when running the gpu thread (rather than process). The new approach is to always instantiate GpuProcessHost (even when running a gpu thread only) and have a real IPC channel between host and gpu thread. This makes the 'in-process' GPU code work similar to what the renderer does when running --single-process. Note that --single-process mode is potentially still a bit fragile with this, since ChildProcess and ChildThread are currently written to only allow a single static instance in one process (it would be better to instantiate GpuProcess and RenderProcess simultaneously), so ambiguous calls to access e.g. the main thread are possible. Review URL: http://codereview.chromium.org/7054005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86958 0039d316-1c4b-4281-b951-d872f2087c98
* iwyu: Use callback_old.h where appropriate, part 1.jhawkins@chromium.org2011-05-101-1/+1
| | | | | | | | | | | BUG=none TEST=none R=thakis@chromium.org Review URL: http://codereview.chromium.org/6985009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84725 0039d316-1c4b-4281-b951-d872f2087c98
* Moved content/browser/gpu_* to content/browser/gpu/.apatrick@chromium.org2011-05-091-0/+157
Also added an OWNERS file with myself and kbr. TEST=build locally, try BUG=none Review URL: http://codereview.chromium.org/6931017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84661 0039d316-1c4b-4281-b951-d872f2087c98