Implement base::RefCountedSharedMemoryMapping.

This base::RefCountedMemory subclass owns a
base::ReadOnlySharedMemoryMapping instance.

To demonstrate the usefulness of this new class, convert PdfCompositor
from mojo::ScopedSharedBufferHandle to base::ReadOnlySharedMemoryRegion.
Use base::RefCountedSharedMemoryMapping to wrap memory regions and avoid
data copies.

While changing PdfCompositor, turn some DCHECKs into actual checks,
since there is no guarantee shared memory options will always succeed.

BUG=826213

Change-Id: I3135235ea350f58c83606e530b33ed6aa7be3cb5
Reviewed-on: https://chromium-review.googlesource.com/989429
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Wei Li <weili@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553255}

CrOS-Libchrome-Original-Commit: 4569648522afab19100ef6ae8c28a87a804d6852
3 files changed
tree: 2f90664050f99c10629169f17f3a893c16835202
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. device/
  6. ipc/
  7. mojo/
  8. testing/
  9. third_party/
  10. ui/