| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
BUG=none
TEST=compiles
Review URL: http://codereview.chromium.org/6393006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72614 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add support for GL_OES_rgb8_rgba8. Update feature_info unit tests.
Tested with the accelerated 2D canvas in WebKit with multisampling
turned on.
BUG=none
TEST=gpu_unittests
Review URL: http://codereview.chromium.org/6268016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72595 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
TEST=none
BUG=67873
Review URL: http://codereview.chromium.org/6359009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72233 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
the link is unsuccessful but not replace the old program.
TEST=webgl conformance tests pass
BUG=none
Review URL: http://codereview.chromium.org/6242006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71882 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
TEST=ran the conformance tests
BUG=none
Review URL: http://codereview.chromium.org/6282008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71849 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
and strides that do not match type.
TEST=unit tests
BUG=none
Review URL: http://codereview.chromium.org/5991012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70800 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=none
TEST=gpu_unittests
Review URL: http://codereview.chromium.org/6008011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70541 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=62617
TEST=LayoutTests/fast/canvas/webgl/is-object.html
Review URL: http://codereview.chromium.org/4723003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70517 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Nico did some treemapping of our build time on Mac, and (surprise!) gmock
unittests dominated. Gmock works with several large, heavy templates, and previous patches that out of line the ctors/dtors have significantly sped up compilation (e.g.GLMock) and have reduced thrashing.
Nico says I should plug this again: http://www.chromium.org/developers/coding-style/cpp-dos-and-donts
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6056008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70516 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
adding the new API incrementally so as not to break the demos.
Review URL: http://codereview.chromium.org/6062003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70037 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
formats are incompatible.
TEST=unit tests, more WebGL conformance tests pass.
BUG=none
Review URL: http://codereview.chromium.org/6028005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70021 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GL_EXT_read_format_bgra on desktop systems where the underlying
extension is GL_EXT_bgra. Fixed glDrawArrays to synthesize
INVALID_VALUE instead of INVALID_ENUM when first < 0. Tested these
changes with --enable-accelerated-2d-canvas.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6015006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69907 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
The default for the context's backing FBO is 0. If the context does have an internal FBO,
it can return it so that glBindFramebuffer(0) will not detach the texture from it.
Review URL: http://codereview.chromium.org/5987004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69879 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
offscreen source areas like glReadPixels does.
TEST=webgl conformance tests pass
BUG=none
Review URL: http://codereview.chromium.org/6035003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69869 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/5927002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69838 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/5779006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69279 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=none
TEST=compiles
Review URL: http://codereview.chromium.org/5741001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69041 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
TEST=unit tests
BUG=65705
Review URL: http://codereview.chromium.org/5676003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69039 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
of the shader source.
TEST=added webgl conformance test
BUG=66494
Review URL: http://codereview.chromium.org/5719003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69024 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
tests per file so that tests do not move from file to
file.
The problem is gles2_cmd_decoder_n_unittest_autogen.h
is dependent on gles2_cmd_decoder_n_unittest.cc
So if a test moves to another generated file then
the things it depends on do not move withit.
TEST=none
BUG=65400
Review URL: http://codereview.chromium.org/5686003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68897 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
can queue from ggl to the command buffer code.
TEST=none
BUG=none
Review URL: http://codereview.chromium.org/5606009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68479 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
implementation via new glGetRequestableExtensionsCHROMIUM and
glRequestExtensionCHROMIUM entry points. These entry points are needed in
order to allow WebGL to both query the available extensions and enable them
individually.
Added these entry points to WebGraphicsContext3DCommandBufferImpl. A
subsequent WebKit checkin under https://bugs.webkit.org/show_bug.cgi?id=40316
will utilize them and implement the OES_texture_float extension for WebGL.
BUG=none
TEST=none (ran with new oes-texture-float.html WebGL conformance test)
Review URL: http://codereview.chromium.org/5626008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68352 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
TEST=unit tests
BUG=64746
Review URL: http://codereview.chromium.org/5586002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68230 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
TEST=none
BUG=none
Review URL: http://codereview.chromium.org/5568004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68224 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
not negative.
Prevents writing to buffer out of range.
TEST=try
BUG=none
Review URL: http://codereview.chromium.org/5525001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67937 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
between GPU process and browser process. Thanks to Al Patrick for the
renderer<->GPU flow control mechanism.
This CL prevents the renderer from issuing more OpenGL work than the
GPU process can execute, and, on the Mac, prevents the combination of
the renderer and GPU processes from transmitting more frames via
IOSurfaces from the GPU to the browser process than can be handled by
the GPU.
This fix causes the renderer to block inside ggl::SwapBuffers() when
it gets too far ahead. Different strategies can be considered going
forward, including measuring frame rates in the GPU and renderer
processes and trying to match them via techniques such as delaying the
execution of some timers. However, despite the general undesirability
of blocking the render thread, this fix results in a significant
performance improvement.
With this fix integrated, a fill-limited test case from Chris Rogers
displays at 60 FPS instead of 15 FPS on a Mac Pro. Gregg Tavares'
aquarium from webglsamples.googlecode.com displays at 30 FPS instead
of 4 or 5 FPS on a MacBook Pro. The frame rates measured at the
JavaScript level now match the actual frame rate of the browser, where
previously they were much higher since they were issuing more work
than the browser could render.
A few other minor OpenGL bugs potentially impacting the correctness of
the Mac compositor are being fixed as well in this CL.
Verified that WebGL, CSS 3D and YouTube (Core Animation plugin)
content all work.
BUG=63539
TEST=none
Review URL: http://codereview.chromium.org/5317007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67470 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
GL naming convention.
TEST=none
BUG=none
Review URL: http://codereview.chromium.org/5210001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66695 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Similar to sharing VBOs for both index buffers and
vertex buffers this support is off by default but
is turned on in the OpenGL ES 2.0 conformance
tests (another CL)
We can decide how/if to expose it to Pepper later if
we want to claim Pepper is Open GL ES 2.0 conformant.
TEST=The GL_FIXED OpenGL ES 2.0 conformance tests passes
BUG=none
Review URL: http://codereview.chromium.org/5026003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66649 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
Someone moved the files in PPAPI around and hand-modified autogenerated files.
This CL moves the change to the .py file used to generate them.
BUG=none
TEST=generated files identical to hand-modified version.
Review URL: http://codereview.chromium.org/5147003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66520 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
initialization fails.
BUG=none
TEST=run GPU process under valgrind on a machine w/no GPU
Review URL: http://codereview.chromium.org/5181002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66489 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This new command is used to pipe resize requests to the GPU process. It will allow is to synchronize the resize with the drawing. Specifically, if we resize at the wrong time, we will damage the backbuffer, causing visual artefacts (http://code.google.com/p/chromium/issues/detail?id=54430).
The resize request gets sent to the GLContext. Each backend will implement it differently. At this point it's set as a NOP.
-I will do an XResizeWindow on Linux.
-Nat will do a resize on Windows.
-Nico (or me?) will refactor the MacOSX code to use this path.
There is one line webkit patch that's necessary to activate this code (removing an #ifdef).
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/4671003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66307 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Forgot to add an enum
TEST=another opengl es 2.0 conformance test passes
BUG=none
Review URL: http://codereview.chromium.org/4867001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66030 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
TEST=another opengl es 2.0 conformance test passes
BUG=none
Review URL: http://codereview.chromium.org/4862001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66007 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
which means that the underlying OpenGL makes sure
buffers, textures and renderbuffers are cleared.
TEST=unit tests
BUG=none
Review URL: http://codereview.chromium.org/4844001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65883 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
returned by OpenGL drivers.
TEST=unit tests, ran OpenGL ES 2.0 conformance tests and ran WebGL conformance test. Things that used to fail now pass.
BUG=none
Review URL: http://codereview.chromium.org/4829001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65882 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
I believe this bug can only be triggered when there is a corresponding OpenGL bug. However, the i915 driver has this bug.
Patch from Kenneth Waters <kwaters@chromium.org>.
TEST=built and run against broken i915 driver
BUG=none
Review URL: http://codereview.chromium.org/4710002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65809 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Return correct values for GL_MAX_VIEWPORT_DIMS
* connect blitFramebufferEXT to blitFramebufferANGLE
TEST=unit tests
BUG=55471,55560,56733
Review URL: http://codereview.chromium.org/4500001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65560 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
texture of command buffer offscreen contexts, and properly track these
states in the TextureManager. Using code does not have the opportunity
to set these parameters before it is determined that the backing
framebuffer is incomplete.
Ran WebGL content on Linux to verify fix.
BUG=62432
TEST=none
Review URL: http://codereview.chromium.org/4670002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65487 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Original review URL: http://codereview.chromium.org/3531008
TEST=try, ui_tests
BUG=none
Review URL: http://codereview.chromium.org/4545003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65283 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- It now uses GGL instead of a child window.
- Fixed a bug where GLES2 decoder set texture state without updating TextureInfo.
- Fixed Pepper3D demos and added awesome 3D CSS programmer art.
- Removed ggl::GetCurrentContext to prevent further abuse. Fixed said abuse :)
- GGL exposes GLES2Implementation to allow issue of GL calls on a particular context without making that context globally current.
- Removed redundant "this context" argument from GGL SwapBuffers completion callback.
- Temporarily removed context lost notification. I need to figure out the best semantics.
TEST=Run Pepper3D and WebGL demos and YouTube videos on Windows and Mac.
BUG=none
Review URL: http://codereview.chromium.org/3531008
TBR=apatrick@chromium.org
Review URL: http://codereview.chromium.org/4561001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65169 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- It now uses GGL instead of a child window.
- Fixed a bug where GLES2 decoder set texture state without updating TextureInfo.
- Fixed Pepper3D demos and added awesome 3D CSS programmer art.
- Removed ggl::GetCurrentContext to prevent further abuse. Fixed said abuse :)
- GGL exposes GLES2Implementation to allow issue of GL calls on a particular context without making that context globally current.
- Removed redundant "this context" argument from GGL SwapBuffers completion callback.
- Temporarily removed context lost notification. I need to figure out the best semantics.
TEST=Run Pepper3D and WebGL demos and YouTube videos on Windows and Mac.
BUG=none
Review URL: http://codereview.chromium.org/3531008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65152 0039d316-1c4b-4281-b951-d872f2087c98
|