http://trac.webkit.org/changeset/146082 fixed this by not making a purgeable buffer if a SharedBuffer has multiple refs, but the check was put in ResourceBuffer::createPurgeableBuffer instead of down in SharedBuffer::createPurgeableBuffer. This is fine for ToT WebKit, because ResourceBuffer::createPurgeableBuffer is the only caller of SharedBuffer::createPurgeableBuffer, but causes trouble for not-quite-yet-upstreamed iOS SharedBuffer code, which has another caller of SharedBuffer::createPurgeableBuffer. Pushing the early-return down into SharedBuffer::createPurgeableBuffer makes more sense and will fix the aforementioned assertion failures on iOS, and hopefully resolve some hard-to-track-down crashes.
Created attachment 219558 [details] patch
Comment on attachment 219558 [details] patch Patch looks fine to me. Though you'll need an official reviewer to give you r+.
http://trac.webkit.org/changeset/160792