summaryrefslogtreecommitdiffstats
path: root/media/tools
Commit message (Collapse)AuthorAgeFilesLines
* Revert 67293 BrowserTestCanLaunchWithOSMesa was consistently failing - ↵andybons@chromium.org2010-11-242-5/+5
| | | | | | | | | | | | | | | | | Initialize destinations variables before calling GL functions 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/5305005 TBR=gman@chromium.org Review URL: http://codereview.chromium.org/5383001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67328 0039d316-1c4b-4281-b951-d872f2087c98
* Initialize destinations variables before calling GL functionsgman@chromium.org2010-11-242-5/+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/5305005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67293 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Remove unneeded headers from base/ (part 9)thestig@chromium.org2010-11-203-5/+5
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/5091005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66873 0039d316-1c4b-4281-b951-d872f2087c98
* Move FilterType into MediaFilterCollectionacolwell@chromium.org2010-11-152-18/+20
| | | | | | | | | | | | | | | MediaFilterCollection is the only code that uses FilterType now so I'm moving the enum into that class and removing all references from the MediaFilter & derived classes. BUG=61823 TEST=No new functionality. Existing tests pass. Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=66125 Review URL: http://codereview.chromium.org/4653005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66182 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 66125 -- Broke Windows build - Move FilterType into MediaFilterCollectionlevin@chromium.org2010-11-151-10/+8
| | | | | | | | | | | | | | | | MediaFilterCollection is the only code that uses FilterType now so I'm moving the enum into that class and removing all references from the MediaFilter & derived classes. BUG=61823 TEST=No new functionality. Existing tests pass. Review URL: http://codereview.chromium.org/4653005 TBR=acolwell@chromium.org Review URL: http://codereview.chromium.org/4991003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66139 0039d316-1c4b-4281-b951-d872f2087c98
* Move FilterType into MediaFilterCollectionacolwell@chromium.org2010-11-151-8/+10
| | | | | | | | | | | | | MediaFilterCollection is the only code that uses FilterType now so I'm moving the enum into that class and removing all references from the MediaFilter & derived classes. BUG=61823 TEST=No new functionality. Existing tests pass. Review URL: http://codereview.chromium.org/4653005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66125 0039d316-1c4b-4281-b951-d872f2087c98
* Move MediaFilterCollection code into a class.scherkus@chromium.org2010-11-032-19/+20
| | | | | | | | | | | | | Refactored FilterType usage a bit to remove the need to manually associate FilterType values to filter base classes. Patch by acolwell@chromium.org: http://codereview.chromium.org/4176006/show BUG=60778 TEST=media_unittests git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64885 0039d316-1c4b-4281-b951-d872f2087c98
* media_bench output width and height of mediafbarchard@chromium.org2010-10-271-3/+8
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/4128006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64107 0039d316-1c4b-4281-b951-d872f2087c98
* Terminate FilterFactory and his nasty friendshclam@chromium.org2010-10-238-82/+23
| | | | | | | | | | | | | FilterFactory, IsMediaFormatSupported and CreateFactory are the source of evil. They also have have a gang of template functions. This patch terminate them all and make the world a better place. BUG=28207 TEST=<video> runs Review URL: http://codereview.chromium.org/3878001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63609 0039d316-1c4b-4281-b951-d872f2087c98
* Convert LOG(INFO) to VLOG(1) - media/.pkasting@chromium.org2010-10-193-38/+27
| | | | | | | | | | Also, remove some extra {}s, remove "else" after "return", eliminate a "using". BUG=none TEST=none Review URL: http://codereview.chromium.org/3912001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63140 0039d316-1c4b-4281-b951-d872f2087c98
* [media] inject VDC to decoder.jiesun@google.com2010-10-132-3/+12
| | | | | | | | | | | | | | | | | which VDC to be used should be determined by something outside instead of inside video decoder. 1. whether hardware composition is used( probably always true). 2. whether hardware composition is disabled.(if not, why we keep the skbitmap path). 3. whether a opengl or a opengles VDC is needed, probably only apply to player_x11. 4. the video decoder context are sharing a lot of states with "painter/compositor" (e.g. graphic context). and if we create VDC inside decoder, and there is no current code path to inject this to Renderer, there are also complication of the factories and creating orders. even we add that path, it maybe too late for renderer. while we need to refactor ipc_video_decoder later. BUG=None TEST=Bots Review URL: http://codereview.chromium.org/3534015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62443 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Move virtual methods to implementation files.erg@google.com2010-09-231-0/+1
| | | | | | | | | | | Remove logging.h and other headers where possible. BUG=none TEST=none Review URL: http://codereview.chromium.org/3461019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60369 0039d316-1c4b-4281-b951-d872f2087c98
* Resubmit GpuVideoDecoder and related patches.hclam@chromium.org2010-09-171-1/+1
| | | | | | | | | BUG=53714 TEST=Tree is green Review URL: http://codereview.chromium.org/3442006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59860 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 59785 - Implement FakeGlVideoDecodeEngine using FakeGlVideoDecodeContextmlloyd@chromium.org2010-09-171-1/+1
| | | | | | | | | | | | | | | | | Defines UploadToVideoFrame in VideoDecodeContext. FakeGlVideoDecodeEngine now uses FakeGlVideoDecodeContext to video frame allocation and uploading. BUG=53714 TEST=Tree is green Review URL: http://codereview.chromium.org/3312022 TBR=hclam@chromium.org Review URL: http://codereview.chromium.org/3436014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59789 0039d316-1c4b-4281-b951-d872f2087c98
* Implement FakeGlVideoDecodeEngine using FakeGlVideoDecodeContexthclam@chromium.org2010-09-171-1/+1
| | | | | | | | | | | | | | Defines UploadToVideoFrame in VideoDecodeContext. FakeGlVideoDecodeEngine now uses FakeGlVideoDecodeContext to video frame allocation and uploading. BUG=53714 TEST=Tree is green Review URL: http://codereview.chromium.org/3312022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59785 0039d316-1c4b-4281-b951-d872f2087c98
* Added FakeGlVideoDecodeEngine to exercise the IPC protocol for hardware ↵hclam@chromium.org2010-09-131-8/+8
| | | | | | | | | | | | | | | | video decoding There are several things done in this patch: 1. Added FakeGlVideoDecodeEngine 2. Fixed style problem in VideoDecodeEngine and gpu_video_common.h 3. Added route to pass texture from gpu process to WebKit BUG=53714 TEST=Tree is green Review URL: http://codereview.chromium.org/3335014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59223 0039d316-1c4b-4281-b951-d872f2087c98
* Clean up texture types in VideoFramehclam@chromium.org2010-09-091-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | A VideoFrame should only reveal it self as system memory or textures (GL or D3D). All the implementation details should be hidden. This removed EGL image, OMXBUFFERHEADERTYPE, D3D surface and MF buffer from video frame. We should only have 3 different types of video frames: 1. System memory Whether it is allocated by VideoFrame or is just memory mapped should fall into this category. Memory can either be allocated internally or provided externally. 2. GL texture EGL image or just plain GL texture should fall into this area. Decode engines should do all the necessary operations to convert texture to GL textures. 3. D3D texture Whether we are using Media Foundation or DxVA2, if we are on windows we should convert everything to D3D texture and again all the operations involved are done inside the decode engine. BUG=53714 TEST=Tree is green. This is just API change. Review URL: http://codereview.chromium.org/3303014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58899 0039d316-1c4b-4281-b951-d872f2087c98
* Rename all FillThisBuffer and EmptyThisBuffer to something more meaningfulhclam@chromium.org2010-09-051-3/+3
| | | | | | | | | | | | The FillThisBuffer and EmptyThisBuffer names are very confusing. Anyone new working on the code probably won't understand the code at all. I'm changing the names to something more meaningful, which state the actual action taken by the methods. It is also easier to tell whether the method is for input pin or for output pin by their names. Review URL: http://codereview.chromium.org/3201013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58604 0039d316-1c4b-4281-b951-d872f2087c98
* Remove refcounting of VideoDecodeEnginehclam@chromium.org2010-09-031-2/+2
| | | | | | | | | | | | | VideoDecodeEngine doesn't need refcounting, all decode engines live on one thread so there isn't a problem posting task to a random thread. Also the stop is asynchronous, we can always until the stop is done before we destroy the object and doesn't need refcounting to destroy it. TEST=media_unittests Review URL: http://codereview.chromium.org/3125032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58539 0039d316-1c4b-4281-b951-d872f2087c98
* Merge remote branch 'origin/trunk' into resubmithclam@chromium.org2010-09-031-1/+1
| | | | | | | | | | | | | | Refactor video decode engines to move them to a new folder Moving video decode engines and friends to media/video. TEST=Tree is green. Video plays. Review URL: http://codereview.chromium.org/3127027 Review URL: http://codereview.chromium.org/3291009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58446 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 58429, 58428, 58427, 58423.akalin@chromium.org2010-09-031-1/+1
| | | | | | | | TBR=hclam@chromium.org Review URL: http://codereview.chromium.org/3337009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58434 0039d316-1c4b-4281-b951-d872f2087c98
* Build fix. Fix include to point to new locations.hclam@chromium.org2010-09-021-1/+1
| | | | | | | | | | | TBR=akalin@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/3300009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58427 0039d316-1c4b-4281-b951-d872f2087c98
* media: recycle buffers/direct rendering etc. (third patch)jiesun@google.com2010-09-021-1/+1
| | | | | | | | | | | | | | 1. ffmpeg use direct rendering for ogg/h264. webm still do not use direct rendering. for both cases, decoder owns buffers. 2. video renderer change to support flush in a more flexible way. 3. openmax 's both path had been merged and both recycle buffer, 4. finish/fine tune seek logic in openmax code . TEST=test matrix/player_x11/layout test. BUG = None Review URL: http://codereview.chromium.org/3014059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58279 0039d316-1c4b-4281-b951-d872f2087c98
* Second attempt at fixing the Direct3D Present() crash. It is fixed by ↵imcheng@chromium.org2010-08-301-2/+3
| | | | | | | | | | | | realizing that the Direct3D device is shared by multiple decoder threads and the "renderer" thread and so the D3DCREATE_MULTITHREADED flag must be specified when it is created. BUG=49364 TEST=try mfdecoder with -h -r flags set. (render using Present() as fast as possible) Tried it on my laptop where it used to crash most of the time -- now with the fix, the program no longer crashes. Review URL: http://codereview.chromium.org/3218007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57884 0039d316-1c4b-4281-b951-d872f2087c98
* remove meaningless ffmpeg fast flagfbarchard@chromium.org2010-08-281-0/+1
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/3280004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57771 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 56582 - ffmpeg flag CODEC_FLAG2_FAST removedrvargas@google.com2010-08-181-1/+0
| | | | | | | | | | | | BUG=52607 TEST=ffmpeg_tests tulip\tulip2.mp4 should be same performance as media_bench.exe --video-threads=3 --fast2 --stream=video tulip\tulip2.mp4 Review URL: http://codereview.chromium.org/3157024 TBR=fbarchard@chromium.org Review URL: http://codereview.chromium.org/3125023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56606 0039d316-1c4b-4281-b951-d872f2087c98
* ffmpeg flag CODEC_FLAG2_FAST removedfbarchard@chromium.org2010-08-181-0/+1
| | | | | | | | | BUG=52607 TEST=ffmpeg_tests tulip\tulip2.mp4 should be same performance as media_bench.exe --video-threads=3 --fast2 --stream=video tulip\tulip2.mp4 Review URL: http://codereview.chromium.org/3157024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56582 0039d316-1c4b-4281-b951-d872f2087c98
* media: change engine interface to be suitable for gpu_video_decoderjiesun@google.com2010-08-131-14/+39
| | | | | | | | | 1. we want the engine interface to be agnostic to ffmpeg. 2. we want use engine interface in both in-process and out-of-process cases. Review URL: http://codereview.chromium.org/3173013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56060 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed issue with rendering in mfdecoder where it crashes when rendering D3D ↵imcheng@chromium.org2010-08-102-93/+102
| | | | | | | | | | | surfaces. Also fixed issue with flickering when drawing software-decoded frames. BUG=49364 TEST=Run the program by passing in -s or -h, and -r and see if it works. Review URL: http://codereview.chromium.org/3066047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55594 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Remove unneeded headers from base/ (part 1)thestig@chromium.org2010-08-051-4/+3
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/3071012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55034 0039d316-1c4b-4281-b951-d872f2087c98
* media bench report fpsfbarchard@chromium.org2010-08-031-17/+24
| | | | | | | | | | | also handles videos with 0 frames the same as videos with more than 0 frames, for consistency and throwing in a comment in yuv conversion BUG=none TEST=none Review URL: http://codereview.chromium.org/3073019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54842 0039d316-1c4b-4281-b951-d872f2087c98
* Add undeclared virtual destructors part 5ziadh@chromium.org2010-08-021-0/+2
| | | | | | | | | | | | | | | Preventative maintenance for abstract classes that do not declare virtual destructors. Base classes that do not declare their destructors as virtual could potentially lead to memory leaks. These files were discovered using the -Wnon-virtual-dtor flag in g++. r=jar BUG=47469 Review URL: http://codereview.chromium.org/3080013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54540 0039d316-1c4b-4281-b951-d872f2087c98
* fix another compile error on windows.nsylvain@chromium.org2010-07-311-0/+1
| | | | | | Review URL: http://codereview.chromium.org/3052032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54470 0039d316-1c4b-4281-b951-d872f2087c98
* Fix compile on windows.nsylvain@chromium.org2010-07-311-0/+1
| | | | | | Review URL: http://codereview.chromium.org/3020052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54467 0039d316-1c4b-4281-b951-d872f2087c98
* Convert more callers of the integer/string functions to usingbrettw@chromium.org2010-07-314-18/+22
| | | | | | | | | | string_number_conversions.h TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/3013046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54454 0039d316-1c4b-4281-b951-d872f2087c98
* ffmpeg roll for chromium source and windows binariesfbarchard@chromium.org2010-07-282-2/+2
| | | | | | | | | | Includes fix for XP Perf by reducing webm library size by 1.6 MB BUG=48037,50507 TEST=XP Perf and layout tests should pass Review URL: http://codereview.chromium.org/3030024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54053 0039d316-1c4b-4281-b951-d872f2087c98
* base/ header cleanup. Forward declaration instead of including.erg@google.com2010-07-284-0/+4
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/3068004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53969 0039d316-1c4b-4281-b951-d872f2087c98
* Revert r53885 "deps roll for new ffmpeg and switch to av_register_protocol2"jeremy@chromium.org2010-07-282-2/+2
| | | | | | | | Trying to track down cause of XP Perf bot regression. Review URL: http://codereview.chromium.org/3081002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53926 0039d316-1c4b-4281-b951-d872f2087c98
* deps roll for new ffmpeg and switch to av_register_protocol2fbarchard@chromium.org2010-07-282-2/+2
| | | | | | | | | BUG=48037 TEST=layout tests should still pass for media Review URL: http://codereview.chromium.org/3005034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53885 0039d316-1c4b-4281-b951-d872f2087c98
* media: player_wtl renderer forget to putCurrentFrame.jiesun@google.com2010-07-271-0/+1
| | | | | | | | forget to putCurrentFrame for this renderer. Review URL: http://codereview.chromium.org/3018021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53730 0039d316-1c4b-4281-b951-d872f2087c98
* media: preparation for recycle buffer.jiesun@google.com2010-07-221-2/+9
| | | | | | | | | | | | | | 1. add ffmpeg_video_allocator.cc/h 2. add omx_bufferheader type and av_frame type of video_frame. please see http://codereview.chromium.org/2992002/show for full commit. this is used to split that change to reviewable size of changelist. Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=53348 Review URL: http://codereview.chromium.org/3006001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53418 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting 53348...bradnelson@google.com2010-07-221-9/+2
| | | | | | | | | | | | | Broke webkit build. BUG=None TEST=Nont TBR=jiesun Review URL: http://codereview.chromium.org/3015018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53352 0039d316-1c4b-4281-b951-d872f2087c98
* media: preparation for recycle buffer.jiesun@google.com2010-07-221-2/+9
| | | | | | | | | | | | 1. add ffmpeg_video_allocator.cc/h 2. add omx_bufferheader type and av_frame type of video_frame. please see http://codereview.chromium.org/2992002/show for full commit. this is used to split that change to reviewable size of changelist. Review URL: http://codereview.chromium.org/3006001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53348 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 53281 - ffmpeg update with vp3 patches.fbarchard@chromium.org2010-07-222-2/+2
| | | | | | | | | | | | | | switch to av_register_protocol2 video-played-collapse layout test fails and will be fixed later. BUG=48037 TEST=ffmpeg should still build/run Review URL: http://codereview.chromium.org/3010016 TBR=fbarchard@chromium.org Review URL: http://codereview.chromium.org/2805098 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53285 0039d316-1c4b-4281-b951-d872f2087c98
* ffmpeg update with vp3 patches.fbarchard@chromium.org2010-07-222-2/+2
| | | | | | | | | | | switch to av_register_protocol2 video-played-collapse layout test fails and will be fixed later. BUG=48037 TEST=ffmpeg should still build/run Review URL: http://codereview.chromium.org/3010016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53281 0039d316-1c4b-4281-b951-d872f2087c98
* Remove deprecated CommandLine::GetLooseValues(), rename to args().evan@chromium.org2010-07-214-29/+38
| | | | | | | | | | | | | | | It returned a wstring, when really we wanted the native encoded strings. Fixing the majority of callers actually simplified them in many cases because the callers wanted native strings too. Since I'm touching every caller, I gave it a more useful name. I'm not sure where "loose" came from but it never made sense to me. BUG=24672 Review URL: http://codereview.chromium.org/3028010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53193 0039d316-1c4b-4281-b951-d872f2087c98
* A tool using Source Reader in Media Foundation for H264 decodinghclam@chromium.org2010-07-204-0/+1019
| | | | | | | | | Reviewed: http://codereview.chromium.org/2812050/show Submitted for: imcheng@google.com Review URL: http://codereview.chromium.org/3003002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53090 0039d316-1c4b-4281-b951-d872f2087c98
* file_util: deprecate remaining wstring functionsevan@chromium.org2010-07-167-48/+63
| | | | | | | | | | | This removes the last wstring-accepting functions from file_util on non-Windows platforms. BUG=24672 Review URL: http://codereview.chromium.org/3005005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52755 0039d316-1c4b-4281-b951-d872f2087c98
* media: refactoring video_render_base to recycle buffersjiesun@google.com2010-07-144-5/+18
| | | | | | | | | | | | | | To make recycle work, we had to define the usage scope of current frame. otherwise we are introducing tearing because we will begin to decode into the buffer before it is done by the renderer/painter/compositor. current mechanism depends on hold reference of a copied picture. we had no that luxury if we do not copy output buffers. we had to compromise by 1. in pause() ( which is not the sense of pipeline->pause(), which is implemented by set playrate = 0 ) in filter->pause() ( or in the future flush() ), which is part of seeking ( and in the future, part of stop() too) , we had to return all the buffers to owner. we had no current buffer to display. we use NULL as current frame in this case. 2. remove black frame from render base, this is only valid for system memory based video frame, even that should we use color fill instead of color conversion and scale. 3. pause and stop has to wait for pending read (actually flush) and pending paint. 4. we only advance frame when there are two or more frames in ready queue. Review URL: http://codereview.chromium.org/2836038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52398 0039d316-1c4b-4281-b951-d872f2087c98
* A simple media player using Media Foundation.hclam@chromium.org2010-07-094-0/+1345
| | | | | | | | | | | | BUG=none TEST=none Submitted for=imcheng@google.com Reviewed: http://codereview.chromium.org/2806039/show Review URL: http://codereview.chromium.org/2856033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51932 0039d316-1c4b-4281-b951-d872f2087c98