Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(855)

Issue 1414553002: Fix out-of-memory crashes related to ArrayBuffer allocation

Created:
5 years, 2 months ago by Justin Novosad
Modified:
5 years ago
CC:
blink-reviews, blink-reviews-bindings_chromium.org, blink-reviews-dom_chromium.org, blink-reviews-html_chromium.org, blink-reviews-platform-graphics_chromium.org, blink-reviews-wtf_chromium.org, Rik, Inactive, chromium-reviews, danakj, dglazkov+blink, dshwang, drott+blinkwatch_chromium.org, krit, eae+blinkwatch, eric.carlson_apple.com, feature-media-reviews_chromium.org, f(malita), jbroman, johnme+watch_chromium.org, jshin+watch_chromium.org, kinuko+fileapi, Mikhail, mlamouri+watch-blink_chromium.org, mvanouwerkerk+watch_chromium.org, nhiroki, pdr+graphicswatchlist_chromium.org, peter+watch_chromium.org, philipj_slow, piman+watch_chromium.org, rwlbuis, Raymond Toy, scheib+watch_chromium.org, Stephen Chennney, sof, tommyw+watchlist_chromium.org, toyoshim+midi_chromium.org, tyoshino+watch_chromium.org, tzik, vivekg_samsung, vivekg, vmpstr+blinkwatch_chromium.org, yhirano+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Fix out-of-memory crashes related to ArrayBuffer allocation Context: In the past, ArrayBuffer creation would return a null pointer when memory allocation failed. The problem with that approach was that not all callsites (and there are many) handle null pointers gracefully, or check for null pointers at all. So this approach was leading to potential security vulnerabilities. Right now, failure to allocate an ArrayBuffer will crash the process, which is secure, but is responsible for a significant number of crashes. As of Chrome 46, 2% of renderer crashes on desktop are in WTF::ArrayBufferContents::allocateMemory. This change should bring that number very close to zero. Crash mitigation strategy: 1) In accordance with the ECMAScript specification, failure to allocate the memory block that backs an ArrayBuffer should result in a RangeError exception being thrown. Many API that internally create ArrayBuffers are currently crashing instead of throwing an exception. Spec work is ongoing on a cases by case basis to have the specs for the APIs changed to state that exceptions thrown by the ArrayBuffer allocation step are rethrown. These new exceptions, even if they are not caught and result in script halting, are a much better UX than a process crash. For example, an ill-behaved ad in an iframe will not interfere the host page when there is an unhandled OOM condition. 2) In places that are not inside the scope of a script execution context, we cannot throw exceptions, so we fail silently instead of crashing if doing so is possible and makes sense. 3) Allocation of trivially small fixed size buffers are not resolved by this change and will still crash the renderer. If it is not possible to allocate very small objects, the process is probably doomed anyways. 4) This patch leaves many non-trivial call sites in an unresolved state, meaning that they will crash on allocation failure. The sites of these potential crashes now have comments leading to crbug.com/536816, and in some cases suggestions on possible resolution approaches. The expectations is that these cases will be addressed as needed, based on incoming crash reports. Intent to ship thread: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/pZ9kld0LehA BUG=537903, 536816, 535136, 532337 R=binji@chromium.org

Patch Set 1 #

Total comments: 21

Patch Set 2 : applied review comments #

Total comments: 2

Patch Set 3 : rebase + revert some behavior changes #

Patch Set 4 : Reverting some behavior changes #

Total comments: 11

Patch Set 5 : rebase and applied senorblanco+haraken feedbac #

Total comments: 23

Patch Set 6 : more fixme -> todo #

Patch Set 7 : Applied haraken's feedback #

Patch Set 8 : tweaks #

Patch Set 9 : rebase+more tweaks #

Unified diffs Side-by-side diffs Delta from patch set Stats (+772 lines, -321 lines) Patch
A third_party/WebKit/LayoutTests/fast/canvas/imageData-oom.html View 1 chunk +33 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fast/canvas/imageData-oom-expected.txt View 1 2 3 4 1 chunk +10 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp View 1 2 3 4 5 6 4 chunks +28 lines, -7 lines 0 comments Download
M third_party/WebKit/Source/bindings/core/v8/SerializedScriptValue.cpp View 3 4 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp View 1 2 3 4 5 1 chunk +8 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp View 1 2 3 4 5 6 1 chunk +11 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/bindings/templates/interface.cpp View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBuffer.cpp View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/dom/DOMArrayBuffer.h View 1 chunk +27 lines, -13 lines 0 comments Download
M third_party/WebKit/Source/core/dom/DOMMatrixReadOnly.h View 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/dom/DOMMatrixReadOnly.cpp View 1 2 3 4 2 chunks +8 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/dom/DOMSharedArrayBuffer.h View 1 2 3 4 5 6 1 chunk +13 lines, -7 lines 0 comments Download
M third_party/WebKit/Source/core/dom/DOMTypedArray.h View 1 2 chunks +23 lines, -7 lines 0 comments Download
M third_party/WebKit/Source/core/fileapi/FileReader.cpp View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/fileapi/FileReaderLoader.h View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/fileapi/FileReaderLoader.cpp View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/fileapi/FileReaderSync.cpp View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/html/HTMLCanvasElement.h View 1 2 3 4 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp View 1 2 3 4 7 chunks +30 lines, -9 lines 0 comments Download
M third_party/WebKit/Source/core/html/ImageData.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/html/ImageData.cpp View 1 2 3 4 3 chunks +12 lines, -9 lines 0 comments Download
M third_party/WebKit/Source/core/imagebitmap/ImageBitmapFactories.cpp View 1 2 3 4 1 chunk +5 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/testing/Internals.h View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/testing/Internals.cpp View 1 2 3 4 5 6 7 8 1 chunk +7 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/testing/Internals.idl View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.cpp View 1 2 3 4 5 6 7 8 2 chunks +4 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/modules/bluetooth/BluetoothGATTCharacteristic.cpp View 1 2 3 4 5 1 chunk +4 lines, -1 line 0 comments Download
M third_party/WebKit/Source/modules/bluetooth/ConvertWebVectorToArrayBuffer.cpp View 1 2 3 4 1 chunk +8 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.h View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp View 1 2 3 4 5 6 7 8 3 chunks +7 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.idl View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2DAPITest.cpp View 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2DTest.cpp View 1 2 1 chunk +5 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/modules/crypto/CryptoKey.cpp View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/modules/crypto/CryptoResultImpl.cpp View 1 2 3 4 5 6 1 chunk +15 lines, -1 line 0 comments Download
M third_party/WebKit/Source/modules/crypto/NormalizeAlgorithm.cpp View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/modules/encoding/TextEncoder.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/modules/encoding/TextEncoder.cpp View 1 2 3 4 2 chunks +10 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/modules/encoding/TextEncoder.idl View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp View 1 2 3 4 5 6 chunks +26 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/modules/encryptedmedia/MediaKeySession.cpp View 1 2 3 4 3 chunks +13 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/modules/encryptedmedia/MediaKeyStatusMap.cpp View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/modules/encryptedmedia/MediaKeys.cpp View 1 2 3 4 1 chunk +7 lines, -1 line 0 comments Download
M third_party/WebKit/Source/modules/fetch/Body.cpp View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/modules/fetch/BodyStreamBuffer.cpp View 1 2 3 4 5 6 1 chunk +21 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/modules/fetch/FetchFormDataConsumerHandleTest.cpp View 3 chunks +3 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/modules/mediastream/RTCDataChannel.cpp View 1 2 3 4 1 chunk +6 lines, -1 line 0 comments Download
M third_party/WebKit/Source/modules/presentation/PresentationConnection.cpp View 1 2 3 4 5 6 7 8 3 chunks +10 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/modules/push_messaging/PushMessageData.cpp View 1 2 3 4 5 6 7 8 1 chunk +8 lines, -1 line 0 comments Download
M third_party/WebKit/Source/modules/push_messaging/PushSubscription.cpp View 1 2 3 2 chunks +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/modules/webaudio/AudioBuffer.cpp View 1 2 3 4 5 6 7 8 2 chunks +12 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp View 1 2 3 4 5 6 7 8 3 chunks +9 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp View 1 2 3 4 5 6 7 8 5 chunks +9 lines, -9 lines 0 comments Download
M third_party/WebKit/Source/modules/webmidi/MIDIInput.cpp View 1 2 3 4 1 chunk +8 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/modules/webmidi/MIDIOutput.cpp View 1 2 3 4 1 chunk +9 lines, -1 line 0 comments Download
M third_party/WebKit/Source/modules/websockets/DOMWebSocket.cpp View 1 2 3 4 5 6 1 chunk +6 lines, -1 line 0 comments Download
M third_party/WebKit/Source/modules/websockets/DOMWebSocketTest.cpp View 1 2 3 4 5 6 7 chunks +14 lines, -9 lines 0 comments Download
M third_party/WebKit/Source/modules/websockets/DocumentWebSocketChannel.cpp View 1 2 3 4 5 6 7 2 chunks +8 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/modules/websockets/DocumentWebSocketChannelTest.cpp View 6 chunks +10 lines, -10 lines 0 comments Download
M third_party/WebKit/Source/modules/webusb/USBInTransferResult.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp View 1 2 3 4 5 6 7 8 3 chunks +9 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/web/WebArrayBuffer.cpp View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/web/WebSocketImpl.cpp View 1 2 3 4 1 chunk +7 lines, -1 line 0 comments Download
M third_party/WebKit/Source/wtf/ArrayBuffer.h View 5 chunks +55 lines, -50 lines 0 comments Download
M third_party/WebKit/Source/wtf/ArrayBuffer.cpp View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/wtf/ArrayBufferBuilder.h View 1 3 chunks +3 lines, -1 line 0 comments Download
M third_party/WebKit/Source/wtf/ArrayBufferBuilder.cpp View 1 4 chunks +16 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/wtf/ArrayBufferContents.h View 1 4 chunks +26 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/wtf/ArrayBufferContents.cpp View 1 6 chunks +45 lines, -14 lines 0 comments Download
M third_party/WebKit/Source/wtf/Float32Array.h View 1 2 chunks +10 lines, -11 lines 0 comments Download
M third_party/WebKit/Source/wtf/Float64Array.h View 2 chunks +12 lines, -10 lines 0 comments Download
M third_party/WebKit/Source/wtf/Int16Array.h View 2 chunks +12 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/wtf/Int32Array.h View 2 chunks +12 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/wtf/Int8Array.h View 2 chunks +12 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/wtf/TypedArrayBase.h View 2 chunks +25 lines, -13 lines 0 comments Download
M third_party/WebKit/Source/wtf/Uint16Array.h View 2 chunks +12 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/wtf/Uint32Array.h View 2 chunks +12 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/wtf/Uint8Array.h View 2 chunks +12 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/wtf/Uint8ClampedArray.h View 2 chunks +12 lines, -6 lines 0 comments Download

Depends on Patchset:

Messages

Total messages: 32 (10 generated)
Justin Novosad
Work in progress. Still working on tests and spec edits @binji: Could you provide some ...
5 years, 2 months ago (2015-10-16 21:31:51 UTC) #1
jsbell
Exciting! The Indexed DB/binary key usage is going to be very odd here. Fortunately it's ...
5 years, 2 months ago (2015-10-16 22:12:24 UTC) #3
binji
This is looking good, mostly just nits. https://codereview.chromium.org/1414553002/diff/1/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp File third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp (right): https://codereview.chromium.org/1414553002/diff/1/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp#newcode197 third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp:197: exceptionState.throwRangeError("Out of ...
5 years, 2 months ago (2015-10-16 22:12:40 UTC) #5
jsbell
https://codereview.chromium.org/1414553002/diff/1/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp File third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp (right): https://codereview.chromium.org/1414553002/diff/1/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp#newcode104 third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp:104: isolate->ThrowException(v8::Exception::RangeError(v8::String::NewFromUtf8(isolate, "Out of memory. Failed to allocate ArrayBuffer."))); Hrm, ...
5 years, 2 months ago (2015-10-16 22:16:27 UTC) #7
Justin Novosad
https://codereview.chromium.org/1414553002/diff/1/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp File third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp (right): https://codereview.chromium.org/1414553002/diff/1/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp#newcode104 third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp:104: isolate->ThrowException(v8::Exception::RangeError(v8::String::NewFromUtf8(isolate, "Out of memory. Failed to allocate ArrayBuffer."))); On ...
5 years, 2 months ago (2015-10-19 16:42:52 UTC) #8
jsbell
Thanks, and apologies for more questions than answers. Kudos for taking on retrofitting OOM handling. ...
5 years, 2 months ago (2015-10-20 22:25:50 UTC) #9
tyoshino (SeeGerritForStatus)
Took a look at XMLHttpRequest and the code path affecting it. Looks good. As https://github.com/whatwg/xhr/issues/26 ...
5 years, 2 months ago (2015-10-21 05:36:11 UTC) #10
Justin Novosad
+haraken for Source/bindings/OWNER and for Source/modules/OWNER (I don't think it is necessary to bother owners ...
5 years, 1 month ago (2015-10-29 16:07:17 UTC) #15
haraken
https://codereview.chromium.org/1414553002/diff/60001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp File third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp (right): https://codereview.chromium.org/1414553002/diff/60001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp#newcode1583 third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp:1583: NonThrowableExceptionState exceptionState; Why can't we use a normal ExecptionState? ...
5 years, 1 month ago (2015-10-29 16:24:34 UTC) #16
Stephen White
https://codereview.chromium.org/1414553002/diff/60001/third_party/WebKit/LayoutTests/crypto/subtle/digest-arraybuffer-oom.html File third_party/WebKit/LayoutTests/crypto/subtle/digest-arraybuffer-oom.html (right): https://codereview.chromium.org/1414553002/diff/60001/third_party/WebKit/LayoutTests/crypto/subtle/digest-arraybuffer-oom.html#newcode23 third_party/WebKit/LayoutTests/crypto/subtle/digest-arraybuffer-oom.html:23: internals.fakeOutOfMemoryForNextArrayBufferAllocation(); Nice! https://codereview.chromium.org/1414553002/diff/60001/third_party/WebKit/Source/core/imagebitmap/ImageBitmapFactories.cpp File third_party/WebKit/Source/core/imagebitmap/ImageBitmapFactories.cpp (right): https://codereview.chromium.org/1414553002/diff/60001/third_party/WebKit/Source/core/imagebitmap/ImageBitmapFactories.cpp#newcode184 third_party/WebKit/Source/core/imagebitmap/ImageBitmapFactories.cpp:184: // ...
5 years, 1 month ago (2015-10-29 16:29:52 UTC) #18
Stephen White
modules/canvas2d lgtm, but will leave the rest for haraken
5 years, 1 month ago (2015-10-29 16:30:35 UTC) #19
Justin Novosad
https://codereview.chromium.org/1414553002/diff/60001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp File third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp (right): https://codereview.chromium.org/1414553002/diff/60001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp#newcode1583 third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp:1583: NonThrowableExceptionState exceptionState; On 2015/10/29 16:24:34, haraken wrote: > > ...
5 years, 1 month ago (2015-10-29 18:26:02 UTC) #20
haraken
Finished looking at modules/ and bindings/. Will take a look at core/ tomorrow :) https://codereview.chromium.org/1414553002/diff/80001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp ...
5 years, 1 month ago (2015-10-29 18:58:37 UTC) #21
Justin Novosad
+cc jochen (you asked for it on blink-dev) +wfh for security review (you volunteered on ...
5 years, 1 month ago (2015-10-29 19:10:11 UTC) #23
Justin Novosad
New patch. https://codereview.chromium.org/1414553002/diff/80001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp File third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp (right): https://codereview.chromium.org/1414553002/diff/80001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp#newcode254 third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp:254: ASSERT(static_cast<const uint8_t*>(arrayBufferView.bufferBaseOrNull()->data()) + arrayBufferView.byteOffset() == On 2015/10/29 ...
5 years, 1 month ago (2015-11-05 00:17:52 UTC) #24
Will Harris
Hi. Thanks for doing this! From a security perspective I think this is very much ...
5 years, 1 month ago (2015-11-11 23:08:53 UTC) #25
Justin Novosad
On 2015/11/11 23:08:53, Will Harris wrote: > Hi. Thanks for doing this! > I wonder ...
5 years, 1 month ago (2015-11-12 16:15:19 UTC) #26
Will Harris
a sheet with all the sites you found would be great, it could also act ...
5 years, 1 month ago (2015-11-13 18:05:39 UTC) #27
jsbell
+1 to a checklist. We can assign owners, etc. I'd still prefer an initial CL ...
5 years, 1 month ago (2015-11-13 18:15:05 UTC) #28
jochen (gone - plz use gerrit)
what about https://code.google.com/p/chromium/codesearch#chromium/src/gin/array_buffer.cc&l=24 ?
5 years ago (2015-11-24 16:37:12 UTC) #30
Justin Novosad
On 2015/11/24 16:37:12, jochen wrote: > what about > https://code.google.com/p/chromium/codesearch#chromium/src/gin/array_buffer.cc&l=24 > ? What is that?
5 years ago (2015-11-24 17:38:10 UTC) #31
jochen (gone - plz use gerrit)
5 years ago (2015-11-24 17:40:05 UTC) #32
On 2015/11/24 at 17:38:10, junov wrote:
> On 2015/11/24 16:37:12, jochen wrote:
> > what about
> >
https://code.google.com/p/chromium/codesearch#chromium/src/gin/array_buffer.c...
> > ?
> 
> What is that?

it's another array buffer allocator we use, e.g., for the PDF plugin, or the
proxy auto-config

Powered by Google App Engine
This is Rietveld 408576698